123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- """Container to stack elements with spacing."""
- from pynecone.components.component import Component
- from pynecone.components.libs.chakra import ChakraComponent
- from pynecone.var import Var
- class Wrap(ChakraComponent):
- """Layout component used to add space between elements and wrap automatically if there isn't enough space."""
- tag = "Wrap"
- # How to align the items.
- align: Var[str]
- # The flex direction of the wrap.
- direction: Var[str]
- # How to justify the items.
- justify: Var[str]
- # Whether to wrap children in `pc.wrap_item`.
- should_wrap_children: Var[bool]
- # The spacing between the items.
- spacing: Var[str]
- # The horizontal spacing between the items.
- spacing_x: Var[str]
- # The vertical spacing between the items.
- spacing_y: Var[str]
- @classmethod
- def create(cls, *children, items=None, **props) -> Component:
- """Return a wrap component.
- Args:
- children: The children of the component.
- items (list): The items of the wrap component.
- props: The properties of the component.
- Returns:
- The wrap component.
- """
- if len(children) == 0:
- children = []
- for item in items or []:
- children.append(WrapItem.create(*item))
- return super().create(*children, **props)
- class WrapItem(ChakraComponent):
- """Item of the Wrap component."""
- tag = "WrapItem"
|