feature: Add Chakra Transitions (#1058)

This commit is contained in:
TaiJuWu 2023-05-23 05:00:38 +08:00 committed by GitHub
parent b420c49cd6
commit f4d5a08faf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 76 additions and 0 deletions

View File

@ -66,6 +66,11 @@ tab_panel = TabPanel.create
tab_panels = TabPanels.create tab_panels = TabPanels.create
tabs = Tabs.create tabs = Tabs.create
visually_hidden = VisuallyHidden.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 = Alert.create
alert_description = AlertDescription.create alert_description = AlertDescription.create
alert_icon = AlertIcon.create alert_icon = AlertIcon.create

View File

@ -8,6 +8,7 @@ from .accordion import (
AccordionPanel, AccordionPanel,
) )
from .tabs import Tab, TabList, TabPanel, TabPanels, Tabs from .tabs import Tab, TabList, TabPanel, TabPanels, Tabs
from .transition import Collapse, Fade, ScaleFade, Slide, SlideFade
from .visuallyhidden import VisuallyHidden from .visuallyhidden import VisuallyHidden
__all__ = [f for f in dir() if f[0].isupper()] # type: ignore __all__ = [f for f in dir() if f[0].isupper()] # type: ignore

View 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