reflex/reflex/components/core/responsive.py
Elijah Ahianyo 34bf25071a
[REF-2821]Improve Dynamic Imports (#3345)
* Improve import times

* add lazy loading to rx.el

* add lazy loading to reflex core components

* minor refactor

* Get imports working with reflex web

* get imports to work with all reflex examples

* refactor to define imports only in the root.

* lint

* deadcode remove

* update poetry deps

* unit tests fix

* app_harness fix

* app_harness fix

* pyi file generate

* pyi file generate

* sort pyi order

* fix pyi

* fix docker ci

* rework pyi-generator

* generate pyi for __init__ files

* test pyright

* test pyright ci

* partial pyright fix

* more pyright fix

* pyright fix

* fix pyi_generator

* add rx.serializer and others

* add future annotation import which fixes container CI, then also load recharts lazily

* add new pyi files

* pyright fix

* minor fixes for reflex-web and flexdown

* forward references for py38

* ruff fix

* pyi fix

* unit tests fix

* reduce coverage to 68%

* reduce coverage to 67%

* reduce coverage to 66%as a workaround to coverage's rounding issue

* reduce coverage to 66%as a workaround to coverage's rounding issue

* exclude lazy_loader dependency review checks.

* its lazy-loader

* Add docstrings and regenerate pyi files

* add link

* address Pr comments

* CI fix

* partially address PR comments.

* edit docstrings and fix integration tests

* fix typo in docstring

* pyi fix
2024-05-31 16:43:10 +00:00

70 lines
1.9 KiB
Python

"""Responsive components."""
from reflex.components.radix.themes.layout.box import Box
# 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"])