feature: Add Chakra Transitions (#1058)
This commit is contained in:
parent
b420c49cd6
commit
f4d5a08faf
@ -66,6 +66,11 @@ tab_panel = TabPanel.create
|
||||
tab_panels = TabPanels.create
|
||||
tabs = Tabs.create
|
||||
visually_hidden = VisuallyHidden.create
|
||||
fade = Fade.create
|
||||
scale_fade = ScaleFade.create
|
||||
slide = Slide.create
|
||||
slide_fade = SlideFade.create
|
||||
collapse = Collapse.create
|
||||
alert = Alert.create
|
||||
alert_description = AlertDescription.create
|
||||
alert_icon = AlertIcon.create
|
||||
|
@ -8,6 +8,7 @@ from .accordion import (
|
||||
AccordionPanel,
|
||||
)
|
||||
from .tabs import Tab, TabList, TabPanel, TabPanels, Tabs
|
||||
from .transition import Collapse, Fade, ScaleFade, Slide, SlideFade
|
||||
from .visuallyhidden import VisuallyHidden
|
||||
|
||||
__all__ = [f for f in dir() if f[0].isupper()] # type: ignore
|
||||
|
70
pynecone/components/disclosure/transition.py
Normal file
70
pynecone/components/disclosure/transition.py
Normal file
@ -0,0 +1,70 @@
|
||||
"""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
|
Loading…
Reference in New Issue
Block a user