__init__.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. """Namespace for experimental features."""
  2. from types import SimpleNamespace
  3. from reflex.components.props import PropsBase
  4. from reflex.components.radix.themes.components.progress import progress as progress
  5. from reflex.components.sonner.toast import toast as toast
  6. from ..utils.console import warn
  7. from . import hooks as hooks
  8. from . import vars as vars
  9. from .assets import asset as asset
  10. from .client_state import ClientStateVar as ClientStateVar
  11. from .layout import layout as layout
  12. from .misc import run_in_thread as run_in_thread
  13. warn(
  14. "`rx._x` contains experimental features and might be removed at any time in the future .",
  15. )
  16. _EMITTED_PROMOTION_WARNINGS = set()
  17. class ExperimentalNamespace(SimpleNamespace):
  18. """Namespace for experimental features."""
  19. @property
  20. def toast(self):
  21. """Temporary property returning the toast namespace.
  22. Remove this property when toast is fully promoted.
  23. Returns:
  24. The toast namespace.
  25. """
  26. if "toast" not in _EMITTED_PROMOTION_WARNINGS:
  27. _EMITTED_PROMOTION_WARNINGS.add("toast")
  28. warn(f"`rx._x.toast` was promoted to `rx.toast`.")
  29. return toast
  30. _x = ExperimentalNamespace(
  31. asset=asset,
  32. client_state=ClientStateVar.create,
  33. hooks=hooks,
  34. vars=vars,
  35. layout=layout,
  36. progress=progress,
  37. PropsBase=PropsBase,
  38. run_in_thread=run_in_thread,
  39. )