12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- """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 ..utils.misc import run_in_thread
- from . import hooks as hooks
- from .client_state import ClientStateVar as ClientStateVar
- from .layout import layout as layout
- 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 progress component.
- Remove this property when progress is fully promoted.
- Returns:
- The progress component.
- """
- self.register_component_warning("progress")
- return progress
- @property
- def run_in_thread(self):
- """Temporary property returning the run_in_thread helper function.
- Remove this property when run_in_thread is fully promoted.
- Returns:
- The run_in_thread helper function.
- """
- self.register_component_warning("run_in_thread")
- return run_in_thread
- @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,
- code_block=code_block,
- )
|