reflex 0.7.0a3__tar.gz → 0.7.0a5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of reflex might be problematic. Click here for more details.
- {reflex-0.7.0a3 → reflex-0.7.0a5}/PKG-INFO +1 -1
- {reflex-0.7.0a3 → reflex-0.7.0a5}/pyproject.toml +1 -1
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/app.py +46 -22
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/compiler/utils.py +22 -12
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/sticky.py +4 -30
- reflex-0.7.0a5/reflex/components/plotly/__init__.py +32 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/plotly/plotly.py +235 -0
- reflex-0.7.0a5/reflex/components/plotly/plotly.pyi +908 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/event.py +7 -24
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/reflex.py +14 -7
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/console.py +19 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/imports.py +3 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/path_ops.py +46 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/prerequisites.py +20 -2
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/vars/base.py +42 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/vars/object.py +13 -4
- reflex-0.7.0a3/reflex/components/plotly/__init__.py +0 -5
- reflex-0.7.0a3/reflex/components/plotly/plotly.pyi +0 -143
- {reflex-0.7.0a3 → reflex-0.7.0a5}/LICENSE +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/README.md +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/apps/blank/code/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/apps/blank/code/blank.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/web/.gitignore +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/web/components/shiki/code.js +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/web/jsconfig.json +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/web/next.config.js +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/web/postcss.config.js +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/web/styles/tailwind.css +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/web/utils/client_side_routing.js +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/web/utils/helpers/paste.js +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/web/utils/helpers/range.js +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/.templates/web/utils/state.js +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/__init__.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/__main__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/admin.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/app_mixins/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/app_mixins/lifespan.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/app_mixins/middleware.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/app_mixins/mixin.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/app_module_for_backend.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/assets.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/base.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/compiler/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/compiler/compiler.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/compiler/templates.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/__init__.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/__init__.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/app_wrap.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/app_wrap.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/bare.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/body.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/body.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/document.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/document.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/error_boundary.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/error_boundary.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/fragment.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/fragment.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/head.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/head.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/link.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/link.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/meta.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/meta.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/script.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/script.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/strict_mode.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/base/strict_mode.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/component.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/__init__.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/banner.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/banner.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/breakpoints.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/client_side_routing.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/client_side_routing.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/clipboard.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/clipboard.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/colors.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/cond.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/debounce.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/debounce.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/foreach.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/html.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/html.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/layout/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/match.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/responsive.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/sticky.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/upload.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/core/upload.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/datadisplay/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/datadisplay/__init__.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/datadisplay/code.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/datadisplay/code.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/datadisplay/dataeditor.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/datadisplay/dataeditor.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/datadisplay/logo.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/datadisplay/shiki_code_block.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/dynamic.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/__init__.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/constants/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/constants/html.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/constants/react.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/constants/reflex.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/element.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/element.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/__init__.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/base.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/base.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/forms.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/forms.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/inline.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/inline.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/media.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/media.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/metadata.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/metadata.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/other.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/other.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/scripts.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/scripts.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/sectioning.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/sectioning.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/tables.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/tables.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/typography.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/el/elements/typography.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/gridjs/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/gridjs/datatable.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/gridjs/datatable.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/literals.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/lucide/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/lucide/icon.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/lucide/icon.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/markdown/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/markdown/markdown.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/markdown/markdown.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/moment/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/moment/moment.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/moment/moment.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/next/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/next/base.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/next/base.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/next/image.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/next/image.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/next/link.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/next/link.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/next/video.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/next/video.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/props.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/__init__.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/primitives/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/primitives/__init__.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/primitives/accordion.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/primitives/accordion.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/primitives/base.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/primitives/base.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/primitives/drawer.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/primitives/drawer.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/primitives/form.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/primitives/form.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/primitives/progress.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/primitives/progress.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/primitives/slider.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/primitives/slider.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/__init__.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/base.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/base.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/color_mode.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/color_mode.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/__init__.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/avatar.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/avatar.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/badge.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/badge.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/button.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/button.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/callout.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/callout.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/card.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/card.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/checkbox.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/context_menu.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/data_list.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/data_list.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/dialog.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/dialog.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/hover_card.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/icon_button.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/inset.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/inset.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/popover.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/popover.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/progress.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/progress.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/radio.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/radio.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/radio_cards.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/radio_group.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/scroll_area.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/segmented_control.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/select.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/select.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/separator.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/separator.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/skeleton.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/slider.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/slider.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/spinner.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/spinner.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/switch.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/switch.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/table.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/table.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/tabs.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/tabs.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/text_area.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/text_area.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/text_field.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/text_field.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/tooltip.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/base.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/base.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/box.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/box.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/center.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/center.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/container.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/container.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/flex.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/flex.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/grid.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/grid.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/list.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/list.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/section.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/section.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/spacer.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/stack.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/layout/stack.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/typography/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/typography/base.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/typography/blockquote.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/typography/code.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/typography/code.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/typography/heading.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/typography/heading.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/typography/link.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/typography/link.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/typography/text.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/radix/themes/typography/text.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/react_player/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/react_player/audio.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/react_player/audio.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/react_player/react_player.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/react_player/react_player.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/react_player/video.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/react_player/video.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/recharts/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/recharts/__init__.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/recharts/cartesian.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/recharts/cartesian.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/recharts/charts.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/recharts/charts.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/recharts/general.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/recharts/general.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/recharts/polar.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/recharts/polar.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/recharts/recharts.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/recharts/recharts.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/sonner/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/sonner/toast.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/sonner/toast.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/suneditor/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/suneditor/editor.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/suneditor/editor.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/tags/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/tags/cond_tag.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/tags/iter_tag.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/tags/match_tag.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/tags/tag.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/components/tags/tagless.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/config.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/constants/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/constants/base.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/constants/colors.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/constants/compiler.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/constants/config.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/constants/custom_components.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/constants/event.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/constants/installer.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/constants/route.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/constants/state.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/constants/style.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/constants/utils.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/custom_components/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/custom_components/custom_components.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/experimental/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/experimental/client_state.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/experimental/hooks.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/experimental/layout.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/experimental/layout.pyi +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/experimental/misc.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/istate/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/istate/data.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/istate/dynamic.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/istate/proxy.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/istate/storage.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/istate/wrappers.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/middleware/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/middleware/hydrate_middleware.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/middleware/middleware.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/model.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/page.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/route.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/state.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/style.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/testing.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/build.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/codespaces.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/compat.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/exceptions.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/exec.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/export.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/format.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/lazy_loader.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/net.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/processes.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/pyi_generator.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/redir.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/registry.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/serializers.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/telemetry.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/utils/types.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/vars/__init__.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/vars/datetime.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/vars/dep_tracking.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/vars/function.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/vars/number.py +0 -0
- {reflex-0.7.0a3 → reflex-0.7.0a5}/reflex/vars/sequence.py +0 -0
|
@@ -99,7 +99,15 @@ from reflex.state import (
|
|
|
99
99
|
_substate_key,
|
|
100
100
|
code_uses_state_contexts,
|
|
101
101
|
)
|
|
102
|
-
from reflex.utils import
|
|
102
|
+
from reflex.utils import (
|
|
103
|
+
codespaces,
|
|
104
|
+
console,
|
|
105
|
+
exceptions,
|
|
106
|
+
format,
|
|
107
|
+
path_ops,
|
|
108
|
+
prerequisites,
|
|
109
|
+
types,
|
|
110
|
+
)
|
|
103
111
|
from reflex.utils.exec import is_prod_mode, is_testing_env
|
|
104
112
|
from reflex.utils.imports import ImportVar
|
|
105
113
|
|
|
@@ -974,9 +982,10 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
974
982
|
should_compile = self._should_compile()
|
|
975
983
|
|
|
976
984
|
if not should_compile:
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
985
|
+
with console.timing("Evaluate Pages (Backend)"):
|
|
986
|
+
for route in self._unevaluated_pages:
|
|
987
|
+
console.debug(f"Evaluating page: {route}")
|
|
988
|
+
self._compile_page(route, save_page=should_compile)
|
|
980
989
|
|
|
981
990
|
# Add the optional endpoints (_upload)
|
|
982
991
|
self._add_optional_endpoints()
|
|
@@ -1002,10 +1011,11 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1002
1011
|
+ adhoc_steps_without_executor,
|
|
1003
1012
|
)
|
|
1004
1013
|
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1014
|
+
with console.timing("Evaluate Pages (Frontend)"):
|
|
1015
|
+
for route in self._unevaluated_pages:
|
|
1016
|
+
console.debug(f"Evaluating page: {route}")
|
|
1017
|
+
self._compile_page(route, save_page=should_compile)
|
|
1018
|
+
progress.advance(task)
|
|
1009
1019
|
|
|
1010
1020
|
# Add the optional endpoints (_upload)
|
|
1011
1021
|
self._add_optional_endpoints()
|
|
@@ -1013,7 +1023,7 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1013
1023
|
self._validate_var_dependencies()
|
|
1014
1024
|
self._setup_overlay_component()
|
|
1015
1025
|
self._setup_error_boundary()
|
|
1016
|
-
if config.show_built_with_reflex:
|
|
1026
|
+
if is_prod_mode() and config.show_built_with_reflex:
|
|
1017
1027
|
self._setup_sticky_badge()
|
|
1018
1028
|
|
|
1019
1029
|
progress.advance(task)
|
|
@@ -1040,13 +1050,13 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1040
1050
|
custom_components |= component._get_all_custom_components()
|
|
1041
1051
|
|
|
1042
1052
|
# Perform auto-memoization of stateful components.
|
|
1043
|
-
(
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1053
|
+
with console.timing("Auto-memoize StatefulComponents"):
|
|
1054
|
+
(
|
|
1055
|
+
stateful_components_path,
|
|
1056
|
+
stateful_components_code,
|
|
1057
|
+
page_components,
|
|
1058
|
+
) = compiler.compile_stateful_components(self._pages.values())
|
|
1059
|
+
progress.advance(task)
|
|
1050
1060
|
|
|
1051
1061
|
# Catch "static" apps (that do not define a rx.State subclass) which are trying to access rx.State.
|
|
1052
1062
|
if code_uses_state_contexts(stateful_components_code) and self._state is None:
|
|
@@ -1069,6 +1079,17 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1069
1079
|
|
|
1070
1080
|
progress.advance(task)
|
|
1071
1081
|
|
|
1082
|
+
# Copy the assets.
|
|
1083
|
+
assets_src = Path.cwd() / constants.Dirs.APP_ASSETS
|
|
1084
|
+
if assets_src.is_dir():
|
|
1085
|
+
with console.timing("Copy assets"):
|
|
1086
|
+
path_ops.update_directory_tree(
|
|
1087
|
+
src=assets_src,
|
|
1088
|
+
dest=(
|
|
1089
|
+
Path.cwd() / prerequisites.get_web_dir() / constants.Dirs.PUBLIC
|
|
1090
|
+
),
|
|
1091
|
+
)
|
|
1092
|
+
|
|
1072
1093
|
# Use a forking process pool, if possible. Much faster, especially for large sites.
|
|
1073
1094
|
# Fallback to ThreadPoolExecutor as something that will always work.
|
|
1074
1095
|
executor = None
|
|
@@ -1121,9 +1142,10 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1121
1142
|
_submit_work(compiler.remove_tailwind_from_postcss)
|
|
1122
1143
|
|
|
1123
1144
|
# Wait for all compilation tasks to complete.
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1145
|
+
with console.timing("Compile to Javascript"):
|
|
1146
|
+
for future in concurrent.futures.as_completed(result_futures):
|
|
1147
|
+
compile_results.append(future.result())
|
|
1148
|
+
progress.advance(task)
|
|
1127
1149
|
|
|
1128
1150
|
app_root = self._app_root(app_wrappers=app_wrappers)
|
|
1129
1151
|
|
|
@@ -1158,7 +1180,8 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1158
1180
|
progress.stop()
|
|
1159
1181
|
|
|
1160
1182
|
# Install frontend packages.
|
|
1161
|
-
|
|
1183
|
+
with console.timing("Install Frontend Packages"):
|
|
1184
|
+
self._get_frontend_packages(all_imports)
|
|
1162
1185
|
|
|
1163
1186
|
# Setup the next.config.js
|
|
1164
1187
|
transpile_packages = [
|
|
@@ -1184,8 +1207,9 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1184
1207
|
# Remove pages that are no longer in the app.
|
|
1185
1208
|
p.unlink()
|
|
1186
1209
|
|
|
1187
|
-
|
|
1188
|
-
|
|
1210
|
+
with console.timing("Write to Disk"):
|
|
1211
|
+
for output_path, code in compile_results:
|
|
1212
|
+
compiler_utils.write_page(output_path, code)
|
|
1189
1213
|
|
|
1190
1214
|
@contextlib.asynccontextmanager
|
|
1191
1215
|
async def modify_state(self, token: str) -> AsyncIterator[BaseState]:
|
|
@@ -119,24 +119,34 @@ def compile_imports(import_dict: ParsedImportDict) -> list[dict]:
|
|
|
119
119
|
validate_imports(collapsed_import_dict)
|
|
120
120
|
import_dicts = []
|
|
121
121
|
for lib, fields in collapsed_import_dict.items():
|
|
122
|
-
default, rest = compile_import_statement(fields)
|
|
123
|
-
|
|
124
122
|
# prevent lib from being rendered on the page if all imports are non rendered kind
|
|
125
123
|
if not any(f.render for f in fields):
|
|
126
124
|
continue
|
|
127
125
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
raise ValueError("No fields to import.")
|
|
133
|
-
import_dicts.extend(get_import_dict(module) for module in sorted(rest))
|
|
134
|
-
continue
|
|
126
|
+
lib_paths: dict[str, list[ImportVar]] = {}
|
|
127
|
+
|
|
128
|
+
for field in fields:
|
|
129
|
+
lib_paths.setdefault(field.package_path, []).append(field)
|
|
135
130
|
|
|
136
|
-
|
|
137
|
-
|
|
131
|
+
compiled = {
|
|
132
|
+
path: compile_import_statement(fields) for path, fields in lib_paths.items()
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
for path, (default, rest) in compiled.items():
|
|
136
|
+
if not lib:
|
|
137
|
+
if default:
|
|
138
|
+
raise ValueError("No default field allowed for empty library.")
|
|
139
|
+
if rest is None or len(rest) == 0:
|
|
140
|
+
raise ValueError("No fields to import.")
|
|
141
|
+
import_dicts.extend(get_import_dict(module) for module in sorted(rest))
|
|
142
|
+
continue
|
|
143
|
+
|
|
144
|
+
# remove the version before rendering the package imports
|
|
145
|
+
formatted_lib = format.format_library_name(lib) + (
|
|
146
|
+
path if path != "/" else ""
|
|
147
|
+
)
|
|
138
148
|
|
|
139
|
-
|
|
149
|
+
import_dicts.append(get_import_dict(formatted_lib, default, rest))
|
|
140
150
|
return import_dicts
|
|
141
151
|
|
|
142
152
|
|
|
@@ -2,14 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
from reflex.components.component import ComponentNamespace
|
|
4
4
|
from reflex.components.core.colors import color
|
|
5
|
-
from reflex.components.core.cond import color_mode_cond
|
|
6
|
-
from reflex.components.core.responsive import
|
|
5
|
+
from reflex.components.core.cond import color_mode_cond
|
|
6
|
+
from reflex.components.core.responsive import desktop_only
|
|
7
7
|
from reflex.components.el.elements.inline import A
|
|
8
8
|
from reflex.components.el.elements.media import Path, Rect, Svg
|
|
9
9
|
from reflex.components.radix.themes.typography.text import Text
|
|
10
|
-
from reflex.experimental.client_state import ClientStateVar
|
|
11
10
|
from reflex.style import Style
|
|
12
|
-
from reflex.vars.base import Var, VarData
|
|
13
11
|
|
|
14
12
|
|
|
15
13
|
class StickyLogo(Svg):
|
|
@@ -87,7 +85,7 @@ class StickyBadge(A):
|
|
|
87
85
|
"""
|
|
88
86
|
return super().create(
|
|
89
87
|
StickyLogo.create(),
|
|
90
|
-
|
|
88
|
+
desktop_only(StickyLabel.create()),
|
|
91
89
|
href="https://reflex.dev",
|
|
92
90
|
target="_blank",
|
|
93
91
|
width="auto",
|
|
@@ -102,36 +100,12 @@ class StickyBadge(A):
|
|
|
102
100
|
Returns:
|
|
103
101
|
The style of the component.
|
|
104
102
|
"""
|
|
105
|
-
is_localhost_cs = ClientStateVar.create(
|
|
106
|
-
"is_localhost",
|
|
107
|
-
default=True,
|
|
108
|
-
global_ref=False,
|
|
109
|
-
)
|
|
110
|
-
localhost_hostnames = Var.create(
|
|
111
|
-
["localhost", "127.0.0.1", "[::1]"]
|
|
112
|
-
).guess_type()
|
|
113
|
-
is_localhost_expr = localhost_hostnames.contains(
|
|
114
|
-
Var("window.location.hostname", _var_type=str).guess_type(),
|
|
115
|
-
)
|
|
116
|
-
check_is_localhost = Var(
|
|
117
|
-
f"useEffect(({is_localhost_cs}) => {is_localhost_cs.set}({is_localhost_expr}), [])",
|
|
118
|
-
_var_data=VarData(
|
|
119
|
-
imports={"react": "useEffect"},
|
|
120
|
-
),
|
|
121
|
-
)
|
|
122
|
-
is_localhost = is_localhost_cs.value._replace(
|
|
123
|
-
merge_var_data=VarData.merge(
|
|
124
|
-
check_is_localhost._get_all_var_data(),
|
|
125
|
-
VarData(hooks={str(check_is_localhost): None}),
|
|
126
|
-
),
|
|
127
|
-
)
|
|
128
103
|
return Style(
|
|
129
104
|
{
|
|
130
105
|
"position": "fixed",
|
|
131
106
|
"bottom": "1rem",
|
|
132
107
|
"right": "1rem",
|
|
133
|
-
|
|
134
|
-
"display": cond(is_localhost, "none", "flex"),
|
|
108
|
+
"display": "flex",
|
|
135
109
|
"flex-direction": "row",
|
|
136
110
|
"gap": "0.375rem",
|
|
137
111
|
"align-items": "center",
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""Plotly components."""
|
|
2
|
+
|
|
3
|
+
from reflex.components.component import ComponentNamespace
|
|
4
|
+
|
|
5
|
+
from .plotly import (
|
|
6
|
+
Plotly,
|
|
7
|
+
PlotlyBasic,
|
|
8
|
+
PlotlyCartesian,
|
|
9
|
+
PlotlyFinance,
|
|
10
|
+
PlotlyGeo,
|
|
11
|
+
PlotlyGl2d,
|
|
12
|
+
PlotlyGl3d,
|
|
13
|
+
PlotlyMapbox,
|
|
14
|
+
PlotlyStrict,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class PlotlyNamespace(ComponentNamespace):
|
|
19
|
+
"""Plotly namespace."""
|
|
20
|
+
|
|
21
|
+
__call__ = Plotly.create
|
|
22
|
+
basic = PlotlyBasic.create
|
|
23
|
+
cartesian = PlotlyCartesian.create
|
|
24
|
+
geo = PlotlyGeo.create
|
|
25
|
+
gl2d = PlotlyGl2d.create
|
|
26
|
+
gl3d = PlotlyGl3d.create
|
|
27
|
+
finance = PlotlyFinance.create
|
|
28
|
+
mapbox = PlotlyMapbox.create
|
|
29
|
+
strict = PlotlyStrict.create
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
plotly = PlotlyNamespace()
|
|
@@ -10,6 +10,7 @@ from reflex.components.component import Component, NoSSRComponent
|
|
|
10
10
|
from reflex.components.core.cond import color_mode_cond
|
|
11
11
|
from reflex.event import EventHandler, no_args_event_spec
|
|
12
12
|
from reflex.utils import console
|
|
13
|
+
from reflex.utils.imports import ImportDict, ImportVar
|
|
13
14
|
from reflex.vars.base import LiteralVar, Var
|
|
14
15
|
|
|
15
16
|
try:
|
|
@@ -278,3 +279,237 @@ const extractPoints = (points) => {
|
|
|
278
279
|
# Spread the figure dict over props, nothing to merge.
|
|
279
280
|
tag.special_props.append(Var(_js_expr=f"{{...{figure!s}}}"))
|
|
280
281
|
return tag
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
CREATE_PLOTLY_COMPONENT: ImportDict = {
|
|
285
|
+
"react-plotly.js": [
|
|
286
|
+
ImportVar(
|
|
287
|
+
tag="createPlotlyComponent",
|
|
288
|
+
is_default=True,
|
|
289
|
+
package_path="/factory",
|
|
290
|
+
),
|
|
291
|
+
]
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
def dynamic_plotly_import(name: str, package: str) -> str:
|
|
296
|
+
"""Create a dynamic import for a plotly component.
|
|
297
|
+
|
|
298
|
+
Args:
|
|
299
|
+
name: The name of the component.
|
|
300
|
+
package: The package path of the component.
|
|
301
|
+
|
|
302
|
+
Returns:
|
|
303
|
+
The dynamic import for the plotly component.
|
|
304
|
+
"""
|
|
305
|
+
return f"""
|
|
306
|
+
const {name} = dynamic(() => import('{package}').then(mod => createPlotlyComponent(mod)), {{ssr: false}})
|
|
307
|
+
"""
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
class PlotlyBasic(Plotly):
|
|
311
|
+
"""Display a basic plotly graph."""
|
|
312
|
+
|
|
313
|
+
tag: str = "BasicPlotlyPlot"
|
|
314
|
+
|
|
315
|
+
library = "react-plotly.js@2.6.0"
|
|
316
|
+
|
|
317
|
+
lib_dependencies: list[str] = ["plotly.js-basic-dist-min@3.0.0"]
|
|
318
|
+
|
|
319
|
+
def add_imports(self) -> ImportDict | list[ImportDict]:
|
|
320
|
+
"""Add imports for the plotly basic component.
|
|
321
|
+
|
|
322
|
+
Returns:
|
|
323
|
+
The imports for the plotly basic component.
|
|
324
|
+
"""
|
|
325
|
+
return CREATE_PLOTLY_COMPONENT
|
|
326
|
+
|
|
327
|
+
def _get_dynamic_imports(self) -> str:
|
|
328
|
+
"""Get the dynamic imports for the plotly basic component.
|
|
329
|
+
|
|
330
|
+
Returns:
|
|
331
|
+
The dynamic imports for the plotly basic component.
|
|
332
|
+
"""
|
|
333
|
+
return dynamic_plotly_import(self.tag, "plotly.js-basic-dist-min")
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
class PlotlyCartesian(Plotly):
|
|
337
|
+
"""Display a plotly cartesian graph."""
|
|
338
|
+
|
|
339
|
+
tag: str = "CartesianPlotlyPlot"
|
|
340
|
+
|
|
341
|
+
library = "react-plotly.js@2.6.0"
|
|
342
|
+
|
|
343
|
+
lib_dependencies: list[str] = ["plotly.js-cartesian-dist-min@3.0.0"]
|
|
344
|
+
|
|
345
|
+
def add_imports(self) -> ImportDict | list[ImportDict]:
|
|
346
|
+
"""Add imports for the plotly cartesian component.
|
|
347
|
+
|
|
348
|
+
Returns:
|
|
349
|
+
The imports for the plotly cartesian component.
|
|
350
|
+
"""
|
|
351
|
+
return CREATE_PLOTLY_COMPONENT
|
|
352
|
+
|
|
353
|
+
def _get_dynamic_imports(self) -> str:
|
|
354
|
+
"""Get the dynamic imports for the plotly cartesian component.
|
|
355
|
+
|
|
356
|
+
Returns:
|
|
357
|
+
The dynamic imports for the plotly cartesian component.
|
|
358
|
+
"""
|
|
359
|
+
return dynamic_plotly_import(self.tag, "plotly.js-cartesian-dist-min")
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
class PlotlyGeo(Plotly):
|
|
363
|
+
"""Display a plotly geo graph."""
|
|
364
|
+
|
|
365
|
+
tag: str = "GeoPlotlyPlot"
|
|
366
|
+
|
|
367
|
+
library = "react-plotly.js@2.6.0"
|
|
368
|
+
|
|
369
|
+
lib_dependencies: list[str] = ["plotly.js-geo-dist-min@3.0.0"]
|
|
370
|
+
|
|
371
|
+
def add_imports(self) -> ImportDict | list[ImportDict]:
|
|
372
|
+
"""Add imports for the plotly geo component.
|
|
373
|
+
|
|
374
|
+
Returns:
|
|
375
|
+
The imports for the plotly geo component.
|
|
376
|
+
"""
|
|
377
|
+
return CREATE_PLOTLY_COMPONENT
|
|
378
|
+
|
|
379
|
+
def _get_dynamic_imports(self) -> str:
|
|
380
|
+
"""Get the dynamic imports for the plotly geo component.
|
|
381
|
+
|
|
382
|
+
Returns:
|
|
383
|
+
The dynamic imports for the plotly geo component.
|
|
384
|
+
"""
|
|
385
|
+
return dynamic_plotly_import(self.tag, "plotly.js-geo-dist-min")
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
class PlotlyGl3d(Plotly):
|
|
389
|
+
"""Display a plotly 3d graph."""
|
|
390
|
+
|
|
391
|
+
tag: str = "Gl3dPlotlyPlot"
|
|
392
|
+
|
|
393
|
+
library = "react-plotly.js@2.6.0"
|
|
394
|
+
|
|
395
|
+
lib_dependencies: list[str] = ["plotly.js-gl3d-dist-min@3.0.0"]
|
|
396
|
+
|
|
397
|
+
def add_imports(self) -> ImportDict | list[ImportDict]:
|
|
398
|
+
"""Add imports for the plotly 3d component.
|
|
399
|
+
|
|
400
|
+
Returns:
|
|
401
|
+
The imports for the plotly 3d component.
|
|
402
|
+
"""
|
|
403
|
+
return CREATE_PLOTLY_COMPONENT
|
|
404
|
+
|
|
405
|
+
def _get_dynamic_imports(self) -> str:
|
|
406
|
+
"""Get the dynamic imports for the plotly 3d component.
|
|
407
|
+
|
|
408
|
+
Returns:
|
|
409
|
+
The dynamic imports for the plotly 3d component.
|
|
410
|
+
"""
|
|
411
|
+
return dynamic_plotly_import(self.tag, "plotly.js-gl3d-dist-min")
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
class PlotlyGl2d(Plotly):
|
|
415
|
+
"""Display a plotly 2d graph."""
|
|
416
|
+
|
|
417
|
+
tag: str = "Gl2dPlotlyPlot"
|
|
418
|
+
|
|
419
|
+
library = "react-plotly.js@2.6.0"
|
|
420
|
+
|
|
421
|
+
lib_dependencies: list[str] = ["plotly.js-gl2d-dist-min@3.0.0"]
|
|
422
|
+
|
|
423
|
+
def add_imports(self) -> ImportDict | list[ImportDict]:
|
|
424
|
+
"""Add imports for the plotly 2d component.
|
|
425
|
+
|
|
426
|
+
Returns:
|
|
427
|
+
The imports for the plotly 2d component.
|
|
428
|
+
"""
|
|
429
|
+
return CREATE_PLOTLY_COMPONENT
|
|
430
|
+
|
|
431
|
+
def _get_dynamic_imports(self) -> str:
|
|
432
|
+
"""Get the dynamic imports for the plotly 2d component.
|
|
433
|
+
|
|
434
|
+
Returns:
|
|
435
|
+
The dynamic imports for the plotly 2d component.
|
|
436
|
+
"""
|
|
437
|
+
return dynamic_plotly_import(self.tag, "plotly.js-gl2d-dist-min")
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
class PlotlyMapbox(Plotly):
|
|
441
|
+
"""Display a plotly mapbox graph."""
|
|
442
|
+
|
|
443
|
+
tag: str = "MapboxPlotlyPlot"
|
|
444
|
+
|
|
445
|
+
library = "react-plotly.js@2.6.0"
|
|
446
|
+
|
|
447
|
+
lib_dependencies: list[str] = ["plotly.js-mapbox-dist-min@3.0.0"]
|
|
448
|
+
|
|
449
|
+
def add_imports(self) -> ImportDict | list[ImportDict]:
|
|
450
|
+
"""Add imports for the plotly mapbox component.
|
|
451
|
+
|
|
452
|
+
Returns:
|
|
453
|
+
The imports for the plotly mapbox component.
|
|
454
|
+
"""
|
|
455
|
+
return CREATE_PLOTLY_COMPONENT
|
|
456
|
+
|
|
457
|
+
def _get_dynamic_imports(self) -> str:
|
|
458
|
+
"""Get the dynamic imports for the plotly mapbox component.
|
|
459
|
+
|
|
460
|
+
Returns:
|
|
461
|
+
The dynamic imports for the plotly mapbox component.
|
|
462
|
+
"""
|
|
463
|
+
return dynamic_plotly_import(self.tag, "plotly.js-mapbox-dist-min")
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
class PlotlyFinance(Plotly):
|
|
467
|
+
"""Display a plotly finance graph."""
|
|
468
|
+
|
|
469
|
+
tag: str = "FinancePlotlyPlot"
|
|
470
|
+
|
|
471
|
+
library = "react-plotly.js@2.6.0"
|
|
472
|
+
|
|
473
|
+
lib_dependencies: list[str] = ["plotly.js-finance-dist-min@3.0.0"]
|
|
474
|
+
|
|
475
|
+
def add_imports(self) -> ImportDict | list[ImportDict]:
|
|
476
|
+
"""Add imports for the plotly finance component.
|
|
477
|
+
|
|
478
|
+
Returns:
|
|
479
|
+
The imports for the plotly finance component.
|
|
480
|
+
"""
|
|
481
|
+
return CREATE_PLOTLY_COMPONENT
|
|
482
|
+
|
|
483
|
+
def _get_dynamic_imports(self) -> str:
|
|
484
|
+
"""Get the dynamic imports for the plotly finance component.
|
|
485
|
+
|
|
486
|
+
Returns:
|
|
487
|
+
The dynamic imports for the plotly finance component.
|
|
488
|
+
"""
|
|
489
|
+
return dynamic_plotly_import(self.tag, "plotly.js-finance-dist-min")
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
class PlotlyStrict(Plotly):
|
|
493
|
+
"""Display a plotly strict graph."""
|
|
494
|
+
|
|
495
|
+
tag: str = "StrictPlotlyPlot"
|
|
496
|
+
|
|
497
|
+
library = "react-plotly.js@2.6.0"
|
|
498
|
+
|
|
499
|
+
lib_dependencies: list[str] = ["plotly.js-strict-dist-min@3.0.0"]
|
|
500
|
+
|
|
501
|
+
def add_imports(self) -> ImportDict | list[ImportDict]:
|
|
502
|
+
"""Add imports for the plotly strict component.
|
|
503
|
+
|
|
504
|
+
Returns:
|
|
505
|
+
The imports for the plotly strict component.
|
|
506
|
+
"""
|
|
507
|
+
return CREATE_PLOTLY_COMPONENT
|
|
508
|
+
|
|
509
|
+
def _get_dynamic_imports(self) -> str:
|
|
510
|
+
"""Get the dynamic imports for the plotly strict component.
|
|
511
|
+
|
|
512
|
+
Returns:
|
|
513
|
+
The dynamic imports for the plotly strict component.
|
|
514
|
+
"""
|
|
515
|
+
return dynamic_plotly_import(self.tag, "plotly.js-strict-dist-min")
|