reflex 0.8.2a1__tar.gz → 0.8.3a2__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.8.2a1 → reflex-0.8.3a2}/PKG-INFO +1 -1
- {reflex-0.8.2a1 → reflex-0.8.3a2}/pyproject.toml +6 -3
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/utils/state.js +7 -2
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/__init__.py +1 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/__init__.pyi +2 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/app.py +8 -11
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/compiler/compiler.py +10 -38
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/error_boundary.py +6 -5
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/__init__.py +1 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/__init__.pyi +3 -0
- reflex-0.8.3a2/reflex/components/core/window_events.py +104 -0
- reflex-0.8.3a2/reflex/components/core/window_events.pyi +84 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/__init__.pyi +4 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/__init__.py +1 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/__init__.pyi +5 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/forms.py +4 -2
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/typography.py +7 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/typography.pyi +246 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/lucide/icon.py +303 -292
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/lucide/icon.pyi +303 -292
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/recharts/recharts.py +2 -2
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/sonner/toast.py +1 -1
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/constants/installer.py +2 -1
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/environment.py +3 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/event.py +69 -8
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/model.py +55 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/reflex.py +33 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/state.py +9 -4
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/testing.py +180 -288
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/console.py +17 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/exec.py +22 -5
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/processes.py +28 -38
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/types.py +1 -1
- {reflex-0.8.2a1 → reflex-0.8.3a2}/.gitignore +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/LICENSE +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/README.md +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/apps/blank/code/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/apps/blank/code/blank.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/.gitignore +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/app/entry.client.js +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/app/routes.js +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/components/shiki/code.js +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/jsconfig.json +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/postcss.config.js +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/react-router.config.js +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/styles/__reflex_style_reset.css +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/utils/client_side_routing.js +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/utils/helpers/paste.js +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/utils/helpers/range.js +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/utils/react-theme.js +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/vite-plugin-safari-cachebust.js +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/.templates/web/vite.config.js +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/__main__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/admin.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/app_mixins/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/app_mixins/lifespan.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/app_mixins/middleware.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/app_mixins/mixin.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/assets.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/base.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/compiler/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/compiler/templates.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/compiler/utils.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/__init__.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/__init__.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/app_wrap.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/app_wrap.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/bare.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/body.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/body.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/document.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/document.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/error_boundary.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/fragment.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/fragment.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/link.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/link.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/meta.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/meta.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/script.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/script.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/strict_mode.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/base/strict_mode.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/component.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/auto_scroll.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/auto_scroll.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/banner.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/banner.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/breakpoints.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/client_side_routing.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/client_side_routing.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/clipboard.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/clipboard.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/colors.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/cond.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/debounce.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/debounce.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/foreach.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/helmet.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/helmet.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/html.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/html.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/layout/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/match.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/responsive.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/sticky.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/sticky.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/upload.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/core/upload.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/datadisplay/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/datadisplay/__init__.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/datadisplay/code.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/datadisplay/code.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/datadisplay/dataeditor.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/datadisplay/dataeditor.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/datadisplay/logo.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/datadisplay/shiki_code_block.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/dynamic.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/constants/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/constants/html.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/constants/react.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/constants/reflex.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/element.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/element.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/base.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/base.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/forms.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/inline.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/inline.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/media.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/media.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/metadata.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/metadata.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/other.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/other.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/scripts.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/scripts.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/sectioning.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/sectioning.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/tables.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/el/elements/tables.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/field.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/gridjs/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/gridjs/datatable.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/gridjs/datatable.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/literals.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/lucide/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/markdown/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/markdown/markdown.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/markdown/markdown.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/moment/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/moment/moment.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/moment/moment.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/plotly/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/plotly/plotly.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/plotly/plotly.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/props.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/__init__.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/primitives/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/primitives/__init__.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/primitives/accordion.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/primitives/accordion.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/primitives/base.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/primitives/base.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/primitives/drawer.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/primitives/drawer.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/primitives/form.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/primitives/form.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/primitives/progress.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/primitives/progress.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/primitives/slider.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/primitives/slider.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/__init__.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/base.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/base.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/color_mode.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/color_mode.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/__init__.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/avatar.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/avatar.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/badge.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/badge.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/button.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/button.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/callout.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/callout.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/card.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/card.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/checkbox.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/context_menu.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/data_list.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/data_list.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/dialog.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/dialog.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/hover_card.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/icon_button.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/inset.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/inset.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/popover.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/popover.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/progress.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/progress.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/radio.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/radio.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/radio_cards.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/radio_group.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/scroll_area.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/segmented_control.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/select.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/select.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/separator.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/separator.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/skeleton.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/slider.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/slider.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/spinner.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/spinner.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/switch.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/switch.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/table.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/table.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/tabs.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/tabs.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/text_area.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/text_area.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/text_field.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/text_field.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/tooltip.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/base.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/base.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/box.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/box.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/center.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/center.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/container.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/container.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/flex.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/flex.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/grid.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/grid.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/list.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/list.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/section.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/section.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/spacer.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/stack.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/layout/stack.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/typography/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/typography/base.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/typography/blockquote.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/typography/code.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/typography/code.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/typography/heading.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/typography/heading.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/typography/link.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/typography/link.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/typography/text.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/radix/themes/typography/text.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/react_player/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/react_player/audio.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/react_player/audio.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/react_player/react_player.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/react_player/react_player.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/react_player/video.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/react_player/video.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/react_router/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/react_router/dom.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/react_router/dom.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/recharts/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/recharts/__init__.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/recharts/cartesian.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/recharts/cartesian.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/recharts/charts.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/recharts/charts.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/recharts/general.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/recharts/general.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/recharts/polar.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/recharts/polar.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/recharts/recharts.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/sonner/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/sonner/toast.pyi +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/tags/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/tags/cond_tag.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/tags/iter_tag.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/tags/match_tag.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/tags/tag.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/components/tags/tagless.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/config.py +3 -3
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/constants/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/constants/base.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/constants/colors.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/constants/compiler.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/constants/config.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/constants/custom_components.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/constants/event.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/constants/route.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/constants/state.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/constants/utils.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/custom_components/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/custom_components/custom_components.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/experimental/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/experimental/client_state.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/experimental/hooks.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/istate/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/istate/data.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/istate/dynamic.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/istate/manager.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/istate/proxy.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/istate/storage.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/istate/wrappers.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/middleware/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/middleware/hydrate_middleware.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/middleware/middleware.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/page.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/plugins/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/plugins/base.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/plugins/shared_tailwind.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/plugins/sitemap.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/plugins/tailwind_v3.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/plugins/tailwind_v4.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/py.typed +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/route.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/style.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/build.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/codespaces.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/compat.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/decorator.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/exceptions.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/export.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/format.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/imports.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/lazy_loader.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/misc.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/net.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/path_ops.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/prerequisites.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/pyi_generator.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/redir.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/registry.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/serializers.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/utils/telemetry.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/vars/__init__.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/vars/base.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/vars/datetime.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/vars/dep_tracking.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/vars/function.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/vars/number.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/vars/object.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/reflex/vars/sequence.py +0 -0
- {reflex-0.8.2a1 → reflex-0.8.3a2}/scripts/hatch_build.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "reflex"
|
|
3
|
-
version = "0.8.
|
|
3
|
+
version = "0.8.3a2"
|
|
4
4
|
description = "Web apps in pure Python."
|
|
5
5
|
license.text = "Apache-2.0"
|
|
6
6
|
authors = [
|
|
@@ -229,7 +229,7 @@ fail_fast = true
|
|
|
229
229
|
|
|
230
230
|
[[tool.pre-commit.repos]]
|
|
231
231
|
repo = "https://github.com/astral-sh/ruff-pre-commit"
|
|
232
|
-
rev = "v0.12.
|
|
232
|
+
rev = "v0.12.3"
|
|
233
233
|
hooks = [
|
|
234
234
|
{ id = "ruff-format", args = [
|
|
235
235
|
"reflex",
|
|
@@ -261,7 +261,7 @@ hooks = [
|
|
|
261
261
|
|
|
262
262
|
[[tool.pre-commit.repos]]
|
|
263
263
|
repo = "https://github.com/RobertCraigie/pyright-python"
|
|
264
|
-
rev = "v1.1.
|
|
264
|
+
rev = "v1.1.403"
|
|
265
265
|
hooks = [{ id = "pyright", args = ["reflex", "tests"], language = "system" }]
|
|
266
266
|
|
|
267
267
|
[[tool.pre-commit.repos]]
|
|
@@ -273,3 +273,6 @@ hooks = [{ id = "darglint", exclude = "^reflex/reflex.py" }]
|
|
|
273
273
|
repo = "https://github.com/pre-commit/mirrors-prettier"
|
|
274
274
|
rev = "f62a70a3a7114896b062de517d72829ea1c884b6"
|
|
275
275
|
hooks = [{ id = "prettier", require_serial = true }]
|
|
276
|
+
|
|
277
|
+
[tool.uv]
|
|
278
|
+
required-version = ">=0.7.0"
|
|
@@ -993,7 +993,7 @@ export const useEventLoop = (
|
|
|
993
993
|
window.onerror = function (msg, url, lineNo, columnNo, error) {
|
|
994
994
|
addEvents([
|
|
995
995
|
Event(`${exception_state_name}.handle_frontend_exception`, {
|
|
996
|
-
|
|
996
|
+
info: error.name + ": " + error.message + "\n" + error.stack,
|
|
997
997
|
component_stack: "",
|
|
998
998
|
}),
|
|
999
999
|
]);
|
|
@@ -1005,7 +1005,12 @@ export const useEventLoop = (
|
|
|
1005
1005
|
window.onunhandledrejection = function (event) {
|
|
1006
1006
|
addEvents([
|
|
1007
1007
|
Event(`${exception_state_name}.handle_frontend_exception`, {
|
|
1008
|
-
|
|
1008
|
+
info:
|
|
1009
|
+
event.reason?.name +
|
|
1010
|
+
": " +
|
|
1011
|
+
event.reason?.message +
|
|
1012
|
+
"\n" +
|
|
1013
|
+
event.reason?.stack,
|
|
1009
1014
|
component_stack: "",
|
|
1010
1015
|
}),
|
|
1011
1016
|
]);
|
|
@@ -52,6 +52,7 @@ from .components.core.upload import (
|
|
|
52
52
|
selected_files,
|
|
53
53
|
upload,
|
|
54
54
|
)
|
|
55
|
+
from .components.core.window_events import window_event_listener
|
|
55
56
|
from .components.datadisplay.code import code_block
|
|
56
57
|
from .components.datadisplay.dataeditor import data_editor, data_editor_theme
|
|
57
58
|
from .components.datadisplay.logo import logo
|
|
@@ -348,4 +349,5 @@ __all__ = [
|
|
|
348
349
|
"video",
|
|
349
350
|
"vstack",
|
|
350
351
|
"window_alert",
|
|
352
|
+
"window_event_listener",
|
|
351
353
|
]
|
|
@@ -400,6 +400,9 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
400
400
|
# The state class to use for the app.
|
|
401
401
|
_state: type[BaseState] | None = None
|
|
402
402
|
|
|
403
|
+
# Whether to enable state for the app. If False, the app will not use state.
|
|
404
|
+
enable_state: bool = True
|
|
405
|
+
|
|
403
406
|
# Class to manage many client states.
|
|
404
407
|
_state_manager: StateManager | None = None
|
|
405
408
|
|
|
@@ -480,7 +483,8 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
480
483
|
if issubclass(clz, AppMixin):
|
|
481
484
|
clz._init_mixin(self)
|
|
482
485
|
|
|
483
|
-
self.
|
|
486
|
+
if self.enable_state:
|
|
487
|
+
self._enable_state()
|
|
484
488
|
|
|
485
489
|
# Set up the admin dash.
|
|
486
490
|
self._setup_admin_dash()
|
|
@@ -495,7 +499,7 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
495
499
|
"""Enable state for the app."""
|
|
496
500
|
if not self._state:
|
|
497
501
|
self._state = State
|
|
498
|
-
|
|
502
|
+
self._setup_state()
|
|
499
503
|
|
|
500
504
|
def _setup_state(self) -> None:
|
|
501
505
|
"""Set up the state for the app.
|
|
@@ -847,14 +851,10 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
847
851
|
save_page: If True, the compiled page is saved to self._pages.
|
|
848
852
|
"""
|
|
849
853
|
n_states_before = len(all_base_state_classes)
|
|
850
|
-
component
|
|
851
|
-
route, self._unevaluated_pages[route], self.
|
|
854
|
+
component = compiler.compile_unevaluated_page(
|
|
855
|
+
route, self._unevaluated_pages[route], self.style, self.theme
|
|
852
856
|
)
|
|
853
857
|
|
|
854
|
-
# Indicate that the app should use state.
|
|
855
|
-
if enable_state:
|
|
856
|
-
self._enable_state()
|
|
857
|
-
|
|
858
858
|
# Indicate that evaluating this page creates one or more state classes.
|
|
859
859
|
if len(all_base_state_classes) > n_states_before:
|
|
860
860
|
self._stateful_pages[route] = None
|
|
@@ -1146,7 +1146,6 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1146
1146
|
for route in stateful_pages:
|
|
1147
1147
|
console.debug(f"BE Evaluating stateful page: {route}")
|
|
1148
1148
|
self._compile_page(route, save_page=False)
|
|
1149
|
-
self._enable_state()
|
|
1150
1149
|
self._add_optional_endpoints()
|
|
1151
1150
|
return
|
|
1152
1151
|
|
|
@@ -1345,8 +1344,6 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1345
1344
|
for route, component in zip(self._pages, page_components, strict=True):
|
|
1346
1345
|
ExecutorSafeFunctions.COMPONENTS[route] = component
|
|
1347
1346
|
|
|
1348
|
-
ExecutorSafeFunctions.STATE = self._state
|
|
1349
|
-
|
|
1350
1347
|
modify_files_tasks: list[tuple[str, str, Callable[[str], str]]] = []
|
|
1351
1348
|
|
|
1352
1349
|
with console.timing("Compile to Javascript"), executor as executor:
|
|
@@ -145,15 +145,11 @@ def _compile_contexts(state: type[BaseState] | None, theme: Component | None) ->
|
|
|
145
145
|
)
|
|
146
146
|
|
|
147
147
|
|
|
148
|
-
def _compile_page(
|
|
149
|
-
component
|
|
150
|
-
state: type[BaseState] | None,
|
|
151
|
-
) -> str:
|
|
152
|
-
"""Compile the component given the app state.
|
|
148
|
+
def _compile_page(component: BaseComponent) -> str:
|
|
149
|
+
"""Compile the component.
|
|
153
150
|
|
|
154
151
|
Args:
|
|
155
152
|
component: The component to compile.
|
|
156
|
-
state: The app state.
|
|
157
153
|
|
|
158
154
|
Returns:
|
|
159
155
|
The compiled component.
|
|
@@ -163,15 +159,12 @@ def _compile_page(
|
|
|
163
159
|
imports = utils.compile_imports(imports)
|
|
164
160
|
|
|
165
161
|
# Compile the code to render the component.
|
|
166
|
-
kwargs = {"state_name": state.get_name()} if state is not None else {}
|
|
167
|
-
|
|
168
162
|
return templates.PAGE.render(
|
|
169
163
|
imports=imports,
|
|
170
164
|
dynamic_imports=component._get_all_dynamic_imports(),
|
|
171
165
|
custom_codes=component._get_all_custom_code(),
|
|
172
166
|
hooks=component._get_all_hooks(),
|
|
173
167
|
render=component.render(),
|
|
174
|
-
**kwargs,
|
|
175
168
|
)
|
|
176
169
|
|
|
177
170
|
|
|
@@ -556,15 +549,12 @@ def compile_contexts(
|
|
|
556
549
|
return output_path, _compile_contexts(state, theme)
|
|
557
550
|
|
|
558
551
|
|
|
559
|
-
def compile_page(
|
|
560
|
-
path: str, component: BaseComponent, state: type[BaseState] | None
|
|
561
|
-
) -> tuple[str, str]:
|
|
552
|
+
def compile_page(path: str, component: BaseComponent) -> tuple[str, str]:
|
|
562
553
|
"""Compile a single page.
|
|
563
554
|
|
|
564
555
|
Args:
|
|
565
556
|
path: The path to compile the page to.
|
|
566
557
|
component: The component to compile.
|
|
567
|
-
state: The app state.
|
|
568
558
|
|
|
569
559
|
Returns:
|
|
570
560
|
The path and code of the compiled page.
|
|
@@ -573,7 +563,7 @@ def compile_page(
|
|
|
573
563
|
output_path = utils.get_page_path(path)
|
|
574
564
|
|
|
575
565
|
# Add the style to the component.
|
|
576
|
-
code = _compile_page(component
|
|
566
|
+
code = _compile_page(component)
|
|
577
567
|
return output_path, code
|
|
578
568
|
|
|
579
569
|
|
|
@@ -788,16 +778,14 @@ def into_component(component: Component | ComponentCallable) -> Component:
|
|
|
788
778
|
def compile_unevaluated_page(
|
|
789
779
|
route: str,
|
|
790
780
|
page: UnevaluatedPage,
|
|
791
|
-
state: type[BaseState] | None = None,
|
|
792
781
|
style: ComponentStyle | None = None,
|
|
793
782
|
theme: Component | None = None,
|
|
794
|
-
) ->
|
|
783
|
+
) -> Component:
|
|
795
784
|
"""Compiles an uncompiled page into a component and adds meta information.
|
|
796
785
|
|
|
797
786
|
Args:
|
|
798
787
|
route: The route of the page.
|
|
799
788
|
page: The uncompiled page object.
|
|
800
|
-
state: The state of the app.
|
|
801
789
|
style: The style of the page.
|
|
802
790
|
theme: The theme of the page.
|
|
803
791
|
|
|
@@ -813,21 +801,6 @@ def compile_unevaluated_page(
|
|
|
813
801
|
|
|
814
802
|
component._add_style_recursive(style or {}, theme)
|
|
815
803
|
|
|
816
|
-
enable_state = False
|
|
817
|
-
# Ensure state is enabled if this page uses state.
|
|
818
|
-
if state is None:
|
|
819
|
-
if page.on_load or component._has_stateful_event_triggers():
|
|
820
|
-
enable_state = True
|
|
821
|
-
else:
|
|
822
|
-
for var in component._get_vars(include_children=True):
|
|
823
|
-
var_data = var._get_all_var_data()
|
|
824
|
-
if not var_data:
|
|
825
|
-
continue
|
|
826
|
-
if not var_data.state:
|
|
827
|
-
continue
|
|
828
|
-
enable_state = True
|
|
829
|
-
break
|
|
830
|
-
|
|
831
804
|
from reflex.utils.format import make_default_page_title
|
|
832
805
|
|
|
833
806
|
component = Fragment.create(component)
|
|
@@ -856,7 +829,7 @@ def compile_unevaluated_page(
|
|
|
856
829
|
e.add_note(f"Happened while evaluating page {route!r}")
|
|
857
830
|
raise
|
|
858
831
|
else:
|
|
859
|
-
return component
|
|
832
|
+
return component
|
|
860
833
|
|
|
861
834
|
|
|
862
835
|
class ExecutorSafeFunctions:
|
|
@@ -886,7 +859,6 @@ class ExecutorSafeFunctions:
|
|
|
886
859
|
|
|
887
860
|
COMPONENTS: dict[str, BaseComponent] = {}
|
|
888
861
|
UNCOMPILED_PAGES: dict[str, UnevaluatedPage] = {}
|
|
889
|
-
STATE: type[BaseState] | None = None
|
|
890
862
|
|
|
891
863
|
@classmethod
|
|
892
864
|
def compile_page(cls, route: str) -> tuple[str, str]:
|
|
@@ -898,7 +870,7 @@ class ExecutorSafeFunctions:
|
|
|
898
870
|
Returns:
|
|
899
871
|
The path and code of the compiled page.
|
|
900
872
|
"""
|
|
901
|
-
return compile_page(route, cls.COMPONENTS[route]
|
|
873
|
+
return compile_page(route, cls.COMPONENTS[route])
|
|
902
874
|
|
|
903
875
|
@classmethod
|
|
904
876
|
def compile_unevaluated_page(
|
|
@@ -917,10 +889,10 @@ class ExecutorSafeFunctions:
|
|
|
917
889
|
Returns:
|
|
918
890
|
The route, compiled component, and compiled page.
|
|
919
891
|
"""
|
|
920
|
-
component
|
|
921
|
-
route, cls.UNCOMPILED_PAGES[route],
|
|
892
|
+
component = compile_unevaluated_page(
|
|
893
|
+
route, cls.UNCOMPILED_PAGES[route], style, theme
|
|
922
894
|
)
|
|
923
|
-
return route, component, compile_page(route, component
|
|
895
|
+
return route, component, compile_page(route, component)
|
|
924
896
|
|
|
925
897
|
@classmethod
|
|
926
898
|
def compile_theme(cls, style: ComponentStyle | None) -> tuple[str, str]:
|
|
@@ -25,11 +25,14 @@ def on_error_spec(
|
|
|
25
25
|
The arguments for the event handler.
|
|
26
26
|
"""
|
|
27
27
|
return (
|
|
28
|
-
error.stack,
|
|
28
|
+
error.name.to(str) + ": " + error.message.to(str) + "\n" + error.stack.to(str),
|
|
29
29
|
info.componentStack,
|
|
30
30
|
)
|
|
31
31
|
|
|
32
32
|
|
|
33
|
+
_ERROR_DISPLAY: str = r"""event_args.error.name + ': ' + event_args.error.message + '\n' + event_args.error.stack"""
|
|
34
|
+
|
|
35
|
+
|
|
33
36
|
class ErrorBoundary(Component):
|
|
34
37
|
"""A React Error Boundary component that catches unhandled frontend exceptions."""
|
|
35
38
|
|
|
@@ -76,9 +79,7 @@ class ErrorBoundary(Component):
|
|
|
76
79
|
div(
|
|
77
80
|
div(
|
|
78
81
|
pre(
|
|
79
|
-
Var(
|
|
80
|
-
_js_expr="event_args.error.stack",
|
|
81
|
-
),
|
|
82
|
+
Var(_js_expr=_ERROR_DISPLAY),
|
|
82
83
|
),
|
|
83
84
|
padding="0.5rem",
|
|
84
85
|
width="fit-content",
|
|
@@ -93,7 +94,7 @@ class ErrorBoundary(Component):
|
|
|
93
94
|
button(
|
|
94
95
|
"Copy",
|
|
95
96
|
on_click=set_clipboard(
|
|
96
|
-
Var(_js_expr=
|
|
97
|
+
Var(_js_expr=_ERROR_DISPLAY)
|
|
97
98
|
),
|
|
98
99
|
padding="0.35rem 0.75rem",
|
|
99
100
|
margin="0.5rem",
|
|
@@ -39,6 +39,7 @@ from .upload import (
|
|
|
39
39
|
selected_files,
|
|
40
40
|
upload,
|
|
41
41
|
)
|
|
42
|
+
from .window_events import WindowEventListener, window_event_listener
|
|
42
43
|
|
|
43
44
|
__all__ = [
|
|
44
45
|
"Clipboard",
|
|
@@ -52,6 +53,7 @@ __all__ = [
|
|
|
52
53
|
"Helmet",
|
|
53
54
|
"Html",
|
|
54
55
|
"Match",
|
|
56
|
+
"WindowEventListener",
|
|
55
57
|
"auto_scroll",
|
|
56
58
|
"breakpoints",
|
|
57
59
|
"cancel_upload",
|
|
@@ -79,4 +81,5 @@ __all__ = [
|
|
|
79
81
|
"tablet_and_desktop",
|
|
80
82
|
"tablet_only",
|
|
81
83
|
"upload",
|
|
84
|
+
"window_event_listener",
|
|
82
85
|
]
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"""Window event listener component for Reflex."""
|
|
2
|
+
|
|
3
|
+
import reflex as rx
|
|
4
|
+
from reflex.components.base.fragment import Fragment
|
|
5
|
+
from reflex.constants.compiler import Hooks
|
|
6
|
+
from reflex.event import key_event, no_args_event_spec
|
|
7
|
+
from reflex.vars.base import Var, VarData
|
|
8
|
+
from reflex.vars.object import ObjectVar
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def _on_resize_spec() -> tuple[Var[int], Var[int]]:
|
|
12
|
+
"""Args spec for the on_resize event trigger.
|
|
13
|
+
|
|
14
|
+
Returns:
|
|
15
|
+
A tuple containing window width and height variables.
|
|
16
|
+
"""
|
|
17
|
+
return (Var("window.innerWidth"), Var("window.innerHeight"))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _on_scroll_spec() -> tuple[Var[float], Var[float]]:
|
|
21
|
+
"""Args spec for the on_scroll event trigger.
|
|
22
|
+
|
|
23
|
+
Returns:
|
|
24
|
+
A tuple containing window scroll X and Y position variables.
|
|
25
|
+
"""
|
|
26
|
+
return (Var("window.scrollX"), Var("window.scrollY"))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def _on_visibility_change_spec() -> tuple[Var[bool]]:
|
|
30
|
+
"""Args spec for the on_visibility_change event trigger.
|
|
31
|
+
|
|
32
|
+
Returns:
|
|
33
|
+
A tuple containing the document hidden state variable.
|
|
34
|
+
"""
|
|
35
|
+
return (Var("document.hidden"),)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _on_storage_spec(e: ObjectVar) -> tuple[Var[str], Var[str], Var[str], Var[str]]:
|
|
39
|
+
"""Args spec for the on_storage event trigger.
|
|
40
|
+
|
|
41
|
+
Args:
|
|
42
|
+
e: The storage event.
|
|
43
|
+
|
|
44
|
+
Returns:
|
|
45
|
+
A tuple containing key, old value, new value, and URL variables.
|
|
46
|
+
"""
|
|
47
|
+
return (e.key.to(str), e.oldValue.to(str), e.newValue.to(str), e.url.to(str))
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class WindowEventListener(Fragment):
|
|
51
|
+
"""A component that listens for window events."""
|
|
52
|
+
|
|
53
|
+
# Event handlers
|
|
54
|
+
on_resize: rx.EventHandler[_on_resize_spec]
|
|
55
|
+
on_scroll: rx.EventHandler[_on_scroll_spec]
|
|
56
|
+
on_focus: rx.EventHandler[no_args_event_spec]
|
|
57
|
+
on_blur: rx.EventHandler[no_args_event_spec]
|
|
58
|
+
on_visibility_change: rx.EventHandler[_on_visibility_change_spec]
|
|
59
|
+
on_before_unload: rx.EventHandler[no_args_event_spec]
|
|
60
|
+
on_key_down: rx.EventHandler[key_event]
|
|
61
|
+
on_popstate: rx.EventHandler[no_args_event_spec]
|
|
62
|
+
on_storage: rx.EventHandler[_on_storage_spec]
|
|
63
|
+
|
|
64
|
+
def _exclude_props(self) -> list[str]:
|
|
65
|
+
"""Exclude event handler props from being passed to Fragment.
|
|
66
|
+
|
|
67
|
+
Returns:
|
|
68
|
+
List of prop names to exclude from the Fragment.
|
|
69
|
+
"""
|
|
70
|
+
return [*super()._exclude_props(), *self.event_triggers.keys()]
|
|
71
|
+
|
|
72
|
+
def add_hooks(self) -> list[str | Var[str]]:
|
|
73
|
+
"""Add hooks to register window event listeners.
|
|
74
|
+
|
|
75
|
+
Returns:
|
|
76
|
+
The hooks to add to the component.
|
|
77
|
+
"""
|
|
78
|
+
hooks = []
|
|
79
|
+
|
|
80
|
+
for prop_name, event_trigger in self.event_triggers.items():
|
|
81
|
+
# Get JS event name: remove on_ prefix and underscores
|
|
82
|
+
event_name = prop_name.removeprefix("on_").replace("_", "")
|
|
83
|
+
|
|
84
|
+
hook_expr = f"""
|
|
85
|
+
useEffect(() => {{
|
|
86
|
+
if (typeof window === 'undefined') return;
|
|
87
|
+
|
|
88
|
+
window.addEventListener('{event_name}', {event_trigger});
|
|
89
|
+
return () => window.removeEventListener('{event_name}', {event_trigger});
|
|
90
|
+
}}, []);
|
|
91
|
+
"""
|
|
92
|
+
|
|
93
|
+
hooks.append(
|
|
94
|
+
Var(
|
|
95
|
+
hook_expr,
|
|
96
|
+
_var_type="str",
|
|
97
|
+
_var_data=VarData(position=Hooks.HookPosition.POST_TRIGGER),
|
|
98
|
+
)
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
return hooks
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
window_event_listener = WindowEventListener.create
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"""Stub file for reflex/components/core/window_events.py"""
|
|
2
|
+
|
|
3
|
+
# ------------------- DO NOT EDIT ----------------------
|
|
4
|
+
# This file was generated by `reflex/utils/pyi_generator.py`!
|
|
5
|
+
# ------------------------------------------------------
|
|
6
|
+
from collections.abc import Mapping, Sequence
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
from reflex.components.base.fragment import Fragment
|
|
10
|
+
from reflex.components.core.breakpoints import Breakpoints
|
|
11
|
+
from reflex.event import EventType, KeyInputInfo, PointerEventInfo
|
|
12
|
+
from reflex.vars.base import Var
|
|
13
|
+
|
|
14
|
+
class WindowEventListener(Fragment):
|
|
15
|
+
def add_hooks(self) -> list[str | Var[str]]: ...
|
|
16
|
+
@classmethod
|
|
17
|
+
def create(
|
|
18
|
+
cls,
|
|
19
|
+
*children,
|
|
20
|
+
style: Sequence[Mapping[str, Any]]
|
|
21
|
+
| Mapping[str, Any]
|
|
22
|
+
| Var[Mapping[str, Any]]
|
|
23
|
+
| Breakpoints
|
|
24
|
+
| None = None,
|
|
25
|
+
key: Any | None = None,
|
|
26
|
+
id: Any | None = None,
|
|
27
|
+
ref: Var | None = None,
|
|
28
|
+
class_name: Any | None = None,
|
|
29
|
+
autofocus: bool | None = None,
|
|
30
|
+
custom_attrs: dict[str, Var | Any] | None = None,
|
|
31
|
+
on_before_unload: EventType[()] | None = None,
|
|
32
|
+
on_blur: EventType[()] | None = None,
|
|
33
|
+
on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
34
|
+
on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
35
|
+
on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
|
|
36
|
+
on_focus: EventType[()] | None = None,
|
|
37
|
+
on_key_down: EventType[()]
|
|
38
|
+
| EventType[str]
|
|
39
|
+
| EventType[str, KeyInputInfo]
|
|
40
|
+
| None = None,
|
|
41
|
+
on_mount: EventType[()] | None = None,
|
|
42
|
+
on_mouse_down: EventType[()] | None = None,
|
|
43
|
+
on_mouse_enter: EventType[()] | None = None,
|
|
44
|
+
on_mouse_leave: EventType[()] | None = None,
|
|
45
|
+
on_mouse_move: EventType[()] | None = None,
|
|
46
|
+
on_mouse_out: EventType[()] | None = None,
|
|
47
|
+
on_mouse_over: EventType[()] | None = None,
|
|
48
|
+
on_mouse_up: EventType[()] | None = None,
|
|
49
|
+
on_popstate: EventType[()] | None = None,
|
|
50
|
+
on_resize: EventType[()] | EventType[int] | EventType[int, int] | None = None,
|
|
51
|
+
on_scroll: EventType[()]
|
|
52
|
+
| EventType[float]
|
|
53
|
+
| EventType[float, float]
|
|
54
|
+
| None = None,
|
|
55
|
+
on_scroll_end: EventType[()] | None = None,
|
|
56
|
+
on_storage: EventType[()]
|
|
57
|
+
| EventType[str]
|
|
58
|
+
| EventType[str, str]
|
|
59
|
+
| EventType[str, str, str]
|
|
60
|
+
| EventType[str, str, str, str]
|
|
61
|
+
| None = None,
|
|
62
|
+
on_unmount: EventType[()] | None = None,
|
|
63
|
+
on_visibility_change: EventType[()] | EventType[bool] | None = None,
|
|
64
|
+
**props,
|
|
65
|
+
) -> WindowEventListener:
|
|
66
|
+
"""Create the component.
|
|
67
|
+
|
|
68
|
+
Args:
|
|
69
|
+
*children: The children of the component.
|
|
70
|
+
on_resize: Event handlers
|
|
71
|
+
style: The style of the component.
|
|
72
|
+
key: A unique key for the component.
|
|
73
|
+
id: The id for the component.
|
|
74
|
+
ref: The Var to pass as the ref to the component.
|
|
75
|
+
class_name: The class name for the component.
|
|
76
|
+
autofocus: Whether the component should take the focus once the page is loaded
|
|
77
|
+
custom_attrs: custom attribute
|
|
78
|
+
**props: The props of the component.
|
|
79
|
+
|
|
80
|
+
Returns:
|
|
81
|
+
The component.
|
|
82
|
+
"""
|
|
83
|
+
|
|
84
|
+
window_event_listener = WindowEventListener.create
|
|
@@ -239,6 +239,7 @@ from .elements.typography import (
|
|
|
239
239
|
Dl,
|
|
240
240
|
Dt,
|
|
241
241
|
Figcaption,
|
|
242
|
+
Figure,
|
|
242
243
|
Hr,
|
|
243
244
|
Ins,
|
|
244
245
|
Li,
|
|
@@ -253,6 +254,7 @@ from .elements.typography import (
|
|
|
253
254
|
dl,
|
|
254
255
|
dt,
|
|
255
256
|
figcaption,
|
|
257
|
+
figure,
|
|
256
258
|
hr,
|
|
257
259
|
ins,
|
|
258
260
|
li,
|
|
@@ -307,6 +309,7 @@ __all__ = [
|
|
|
307
309
|
"Embed",
|
|
308
310
|
"Fieldset",
|
|
309
311
|
"Figcaption",
|
|
312
|
+
"Figure",
|
|
310
313
|
"Footer",
|
|
311
314
|
"Form",
|
|
312
315
|
"G",
|
|
@@ -424,6 +427,7 @@ __all__ = [
|
|
|
424
427
|
"embed",
|
|
425
428
|
"fieldset",
|
|
426
429
|
"figcaption",
|
|
430
|
+
"figure",
|
|
427
431
|
"footer",
|
|
428
432
|
"form",
|
|
429
433
|
"g",
|
|
@@ -237,6 +237,7 @@ from .typography import (
|
|
|
237
237
|
Dl,
|
|
238
238
|
Dt,
|
|
239
239
|
Figcaption,
|
|
240
|
+
Figure,
|
|
240
241
|
Hr,
|
|
241
242
|
Ins,
|
|
242
243
|
Li,
|
|
@@ -251,6 +252,7 @@ from .typography import (
|
|
|
251
252
|
dl,
|
|
252
253
|
dt,
|
|
253
254
|
figcaption,
|
|
255
|
+
figure,
|
|
254
256
|
hr,
|
|
255
257
|
ins,
|
|
256
258
|
li,
|
|
@@ -374,6 +376,7 @@ _MAPPING = {
|
|
|
374
376
|
"dl",
|
|
375
377
|
"dt",
|
|
376
378
|
"figcaption",
|
|
379
|
+
"figure",
|
|
377
380
|
"hr",
|
|
378
381
|
"ol",
|
|
379
382
|
"li",
|
|
@@ -443,6 +446,7 @@ __all__ = [
|
|
|
443
446
|
"Embed",
|
|
444
447
|
"Fieldset",
|
|
445
448
|
"Figcaption",
|
|
449
|
+
"Figure",
|
|
446
450
|
"Footer",
|
|
447
451
|
"Form",
|
|
448
452
|
"G",
|
|
@@ -559,6 +563,7 @@ __all__ = [
|
|
|
559
563
|
"embed",
|
|
560
564
|
"fieldset",
|
|
561
565
|
"figcaption",
|
|
566
|
+
"figure",
|
|
562
567
|
"footer",
|
|
563
568
|
"form",
|
|
564
569
|
"g",
|
|
@@ -466,11 +466,13 @@ class Input(BaseInput):
|
|
|
466
466
|
if cls is Input:
|
|
467
467
|
input_type = props.get("type")
|
|
468
468
|
|
|
469
|
-
if input_type == "checkbox":
|
|
469
|
+
if isinstance(input_type, str) and input_type == "checkbox":
|
|
470
470
|
# Checkbox inputs should use the CheckboxInput class
|
|
471
471
|
return CheckboxInput.create(*children, **props)
|
|
472
472
|
|
|
473
|
-
if input_type
|
|
473
|
+
if isinstance(input_type, str) and (
|
|
474
|
+
input_type == "number" or input_type == "range"
|
|
475
|
+
):
|
|
474
476
|
# Number inputs should use the ValueNumberInput class
|
|
475
477
|
return ValueNumberInput.create(*children, **props)
|
|
476
478
|
|
|
@@ -46,6 +46,12 @@ class Figcaption(BaseHTML):
|
|
|
46
46
|
tag = "figcaption"
|
|
47
47
|
|
|
48
48
|
|
|
49
|
+
class Figure(BaseHTML):
|
|
50
|
+
"""Display the figure element."""
|
|
51
|
+
|
|
52
|
+
tag = "figure"
|
|
53
|
+
|
|
54
|
+
|
|
49
55
|
class Hr(BaseHTML):
|
|
50
56
|
"""Display the hr element."""
|
|
51
57
|
|
|
@@ -132,6 +138,7 @@ div = Div.create
|
|
|
132
138
|
dl = Dl.create
|
|
133
139
|
dt = Dt.create
|
|
134
140
|
figcaption = Figcaption.create
|
|
141
|
+
figure = Figure.create
|
|
135
142
|
hr = Hr.create
|
|
136
143
|
li = Li.create
|
|
137
144
|
ol = Ol.create
|