123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- """Import all the components."""
- from pynecone import utils
- from pynecone.propcond import PropCond
- from .component import Component
- from .datadisplay import *
- from .disclosure import *
- from .feedback import *
- from .forms import *
- from .graphing import *
- from .layout import *
- from .media import *
- from .navigation import *
- from .overlay import *
- from .typography import *
- # Add the convenience methods for all the components.
- locals().update(
- {
- utils.to_snake_case(name): value.create
- for name, value in locals().items()
- if isinstance(value, type) and issubclass(value, Component)
- }
- )
- # Add responsive styles shortcuts.
- def mobile_only(*children, **props):
- """Create a component that is only visible on mobile.
- Args:
- *children: The children to pass to the component.
- **props: The props to pass to the component.
- Returns:
- The component.
- """
- return Box.create(*children, **props, display=["block", "none", "none", "none"])
- def tablet_only(*children, **props):
- """Create a component that is only visible on tablet.
- Args:
- *children: The children to pass to the component.
- **props: The props to pass to the component.
- Returns:
- The component.
- """
- return Box.create(*children, **props, display=["none", "block", "block", "none"])
- def desktop_only(*children, **props):
- """Create a component that is only visible on desktop.
- Args:
- *children: The children to pass to the component.
- **props: The props to pass to the component.
- Returns:
- The component.
- """
- return Box.create(*children, **props, display=["none", "none", "none", "block"])
- def tablet_and_desktop(*children, **props):
- """Create a component that is only visible on tablet and desktop.
- Args:
- *children: The children to pass to the component.
- **props: The props to pass to the component.
- Returns:
- The component.
- """
- return Box.create(*children, **props, display=["none", "block", "block", "block"])
- def mobile_and_tablet(*children, **props):
- """Create a component that is only visible on mobile and tablet.
- Args:
- *children: The children to pass to the component.
- **props: The props to pass to the component.
- Returns:
- The component.
- """
- return Box.create(*children, **props, display=["block", "block", "block", "none"])
- def cond(cond_var, c1, c2=None):
- """Create a conditional component or Prop.
- Args:
- cond_var: The cond to determine which component to render.
- c1: The component or prop to render if the cond_var is true.
- c2: The component or prop to render if the cond_var is false.
- Returns:
- The conditional component.
- """
- if isinstance(c1, Component) and isinstance(c2, Component):
- return Cond.create(cond_var, c1, c2)
- return PropCond.create(cond_var, c1, c2)
|