reflex/pynecone/components/disclosure/transition.py
2023-05-22 14:00:38 -07:00

71 lines
1.6 KiB
Python

"""A transition Component."""
from typing import Union
from pynecone.components.libs.chakra import ChakraComponent
from pynecone.utils import imports
from pynecone.vars import ImportVar, Var
class Transition(ChakraComponent):
"""Base componemt of all transitions."""
in_: Var[bool]
unmount_on_exit: Var[bool] = False # type: ignore
def _get_imports(self) -> imports.ImportDict:
return imports.merge_imports(
super()._get_imports(),
{"@chakra-ui/react": {ImportVar(tag="useDisclosure")}},
)
class Fade(Transition):
"""Fade component cab be used show and hide content of your app."""
tag = "Fade"
class ScaleFade(Transition):
"""Fade component can be scaled and reverse your app."""
tag = "ScaleFade"
unmount_on_exit: Var[bool] = False # type: ignore
initial_scale: Var[float] = 0.95 # type: ignore
reverse: Var[bool] = True # type: ignore
class Slide(Transition):
"""Side can be used show content below your app."""
tag = "Slide"
direction: Var[str] = "right" # type: ignore
class SlideFade(Transition):
"""SlideFade component."""
tag = "SlideFade"
offsetX: Var[Union[str, int]] = 0 # type: ignore
offsetY: Var[Union[str, int]] = 8 # type: ignore
reverse: Var[bool] = True # type: ignore
class Collapse(Transition):
"""Collapse component can collapse some content."""
tag = "Collapse"
animateOpacity: Var[bool] = True # type: ignore
endingHeight: Var[str] = "auto" # type: ignore
startingHeight: Var[Union[str, int]] = 0 # type: ignore