1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- """Namespace for experimental features."""
- from types import SimpleNamespace
- from reflex.components.datadisplay.shiki_code_block import code_block as code_block
- from reflex.components.props import PropsBase
- from reflex.components.radix.themes.components.progress import progress as progress
- from reflex.components.sonner.toast import toast as toast
- from ..utils.console import warn
- from . import hooks as hooks
- from .client_state import ClientStateVar as ClientStateVar
- from .layout import layout as layout
- from .misc import run_in_thread as run_in_thread
- class ExperimentalNamespace(SimpleNamespace):
- """Namespace for experimental features."""
- def __getattribute__(self, item: str):
- """Get attribute from the namespace.
- Args:
- item: attribute name.
- Returns:
- The attribute.
- """
- warn(
- "`rx._x` contains experimental features and might be removed at any time in the future.",
- dedupe=True,
- )
- return super().__getattribute__(item)
- @property
- def toast(self):
- """Temporary property returning the toast namespace.
- Remove this property when toast is fully promoted.
- Returns:
- The toast namespace.
- """
- self.register_component_warning("toast")
- return toast
- @property
- def progress(self):
- """Temporary property returning the toast namespace.
- Remove this property when toast is fully promoted.
- Returns:
- The toast namespace.
- """
- self.register_component_warning("progress")
- return progress
- @staticmethod
- def register_component_warning(component_name: str):
- """Add component to emitted warnings and throw a warning if it
- doesn't exist.
- Args:
- component_name: name of the component.
- """
- warn(
- f"`rx._x.{component_name}` was promoted to `rx.{component_name}`.",
- dedupe=True,
- )
- _x = ExperimentalNamespace(
- client_state=ClientStateVar.create,
- hooks=hooks,
- layout=layout,
- PropsBase=PropsBase,
- run_in_thread=run_in_thread,
- code_block=code_block,
- )
|