reflex 0.7.9a1__tar.gz → 0.7.10a1__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.9a1 → reflex-0.7.10a1}/PKG-INFO +2 -2
- {reflex-0.7.9a1 → reflex-0.7.10a1}/pyproject.toml +3 -4
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/web/utils/state.js +3 -3
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/app.py +33 -27
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/component.py +38 -11
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/upload.py +48 -16
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/upload.pyi +7 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/react_player/audio.pyi +0 -4
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/react_player/react_player.py +21 -7
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/react_player/react_player.pyi +0 -4
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/react_player/video.pyi +0 -4
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/config.py +2 -2
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/constants/__init__.py +2 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/constants/base.py +1 -1
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/constants/config.py +7 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/constants/installer.py +19 -5
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/event.py +24 -0
- reflex-0.7.10a1/reflex/istate/manager.py +858 -0
- reflex-0.7.10a1/reflex/istate/proxy.py +757 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/page.py +8 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/reflex.py +17 -10
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/state.py +91 -1622
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/testing.py +20 -13
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/prerequisites.py +33 -40
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/pyi_generator.py +5 -4
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/redir.py +7 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/serializers.py +14 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/vars/base.py +13 -1
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/vars/number.py +16 -8
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/vars/sequence.py +2 -1
- reflex-0.7.9a1/reflex/istate/proxy.py +0 -33
- {reflex-0.7.9a1 → reflex-0.7.10a1}/.gitignore +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/LICENSE +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/README.md +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/hatch_build.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/apps/blank/code/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/apps/blank/code/blank.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/web/.gitignore +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/web/components/shiki/code.js +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/web/jsconfig.json +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/web/next.config.js +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/web/postcss.config.js +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/web/styles/tailwind.css +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/web/utils/client_side_routing.js +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/web/utils/helpers/paste.js +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/web/utils/helpers/range.js +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/__init__.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/__main__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/admin.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/app_mixins/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/app_mixins/lifespan.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/app_mixins/middleware.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/app_mixins/mixin.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/assets.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/base.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/compiler/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/compiler/compiler.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/compiler/templates.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/compiler/utils.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/__init__.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/__init__.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/app_wrap.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/app_wrap.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/bare.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/body.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/body.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/document.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/document.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/error_boundary.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/error_boundary.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/fragment.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/fragment.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/head.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/head.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/link.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/link.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/meta.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/meta.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/script.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/script.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/strict_mode.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/base/strict_mode.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/__init__.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/auto_scroll.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/auto_scroll.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/banner.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/banner.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/breakpoints.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/client_side_routing.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/client_side_routing.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/clipboard.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/clipboard.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/colors.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/cond.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/debounce.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/debounce.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/foreach.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/html.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/html.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/layout/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/match.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/responsive.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/sticky.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/core/sticky.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/datadisplay/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/datadisplay/__init__.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/datadisplay/code.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/datadisplay/code.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/datadisplay/dataeditor.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/datadisplay/dataeditor.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/datadisplay/logo.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/datadisplay/shiki_code_block.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/dynamic.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/__init__.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/constants/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/constants/html.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/constants/react.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/constants/reflex.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/element.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/element.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/__init__.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/base.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/base.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/forms.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/forms.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/inline.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/inline.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/media.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/media.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/metadata.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/metadata.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/other.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/other.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/scripts.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/scripts.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/sectioning.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/sectioning.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/tables.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/tables.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/typography.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/el/elements/typography.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/gridjs/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/gridjs/datatable.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/gridjs/datatable.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/literals.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/lucide/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/lucide/icon.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/lucide/icon.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/markdown/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/markdown/markdown.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/markdown/markdown.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/moment/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/moment/moment.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/moment/moment.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/next/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/next/base.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/next/base.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/next/image.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/next/image.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/next/link.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/next/link.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/next/video.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/next/video.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/plotly/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/plotly/plotly.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/plotly/plotly.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/props.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/__init__.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/primitives/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/primitives/__init__.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/primitives/accordion.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/primitives/accordion.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/primitives/base.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/primitives/base.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/primitives/drawer.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/primitives/drawer.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/primitives/form.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/primitives/form.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/primitives/progress.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/primitives/progress.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/primitives/slider.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/primitives/slider.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/__init__.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/base.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/base.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/color_mode.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/color_mode.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/__init__.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/avatar.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/avatar.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/badge.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/badge.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/button.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/button.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/callout.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/callout.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/card.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/card.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/checkbox.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/context_menu.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/data_list.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/data_list.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/dialog.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/dialog.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/hover_card.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/icon_button.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/inset.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/inset.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/popover.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/popover.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/progress.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/progress.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/radio.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/radio.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/radio_cards.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/radio_group.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/scroll_area.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/segmented_control.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/select.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/select.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/separator.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/separator.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/skeleton.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/slider.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/slider.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/spinner.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/spinner.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/switch.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/switch.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/table.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/table.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/tabs.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/tabs.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/text_area.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/text_area.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/text_field.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/text_field.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/tooltip.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/base.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/base.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/box.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/box.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/center.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/center.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/container.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/container.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/flex.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/flex.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/grid.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/grid.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/list.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/list.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/section.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/section.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/spacer.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/stack.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/layout/stack.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/typography/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/typography/base.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/typography/blockquote.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/typography/code.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/typography/code.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/typography/heading.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/typography/heading.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/typography/link.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/typography/link.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/typography/text.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/radix/themes/typography/text.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/react_player/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/react_player/audio.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/react_player/video.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/recharts/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/recharts/__init__.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/recharts/cartesian.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/recharts/cartesian.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/recharts/charts.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/recharts/charts.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/recharts/general.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/recharts/general.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/recharts/polar.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/recharts/polar.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/recharts/recharts.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/recharts/recharts.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/sonner/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/sonner/toast.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/sonner/toast.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/suneditor/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/suneditor/editor.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/suneditor/editor.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/tags/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/tags/cond_tag.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/tags/iter_tag.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/tags/match_tag.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/tags/tag.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/components/tags/tagless.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/constants/colors.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/constants/compiler.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/constants/custom_components.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/constants/event.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/constants/route.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/constants/state.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/constants/style.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/constants/utils.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/custom_components/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/custom_components/custom_components.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/experimental/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/experimental/client_state.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/experimental/hooks.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/experimental/layout.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/experimental/layout.pyi +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/istate/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/istate/data.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/istate/dynamic.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/istate/storage.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/istate/wrappers.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/middleware/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/middleware/hydrate_middleware.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/middleware/middleware.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/model.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/py.typed +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/route.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/style.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/build.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/codespaces.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/compat.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/console.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/decorator.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/exceptions.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/exec.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/export.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/format.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/imports.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/lazy_loader.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/misc.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/net.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/path_ops.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/processes.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/registry.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/telemetry.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/utils/types.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/vars/__init__.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/vars/datetime.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/vars/dep_tracking.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/vars/function.py +0 -0
- {reflex-0.7.9a1 → reflex-0.7.10a1}/reflex/vars/object.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: reflex
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.10a1
|
|
4
4
|
Summary: Web apps in pure Python.
|
|
5
5
|
Project-URL: homepage, https://reflex.dev
|
|
6
6
|
Project-URL: repository, https://github.com/reflex-dev/reflex
|
|
@@ -31,7 +31,7 @@ Requires-Dist: pydantic<3.0,>=1.10.21
|
|
|
31
31
|
Requires-Dist: python-multipart<1.0,>=0.0.20
|
|
32
32
|
Requires-Dist: python-socketio<6.0,>=5.12.0
|
|
33
33
|
Requires-Dist: redis<6.0,>=5.2.1
|
|
34
|
-
Requires-Dist: reflex-hosting-cli>=0.1.
|
|
34
|
+
Requires-Dist: reflex-hosting-cli>=0.1.47
|
|
35
35
|
Requires-Dist: rich<15,>=13
|
|
36
36
|
Requires-Dist: sqlmodel<0.1,>=0.0.24
|
|
37
37
|
Requires-Dist: typing-extensions>=4.13.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "reflex"
|
|
3
|
-
version = "0.7.
|
|
3
|
+
version = "0.7.10a1"
|
|
4
4
|
description = "Web apps in pure Python."
|
|
5
5
|
license = { text = "Apache-2.0" }
|
|
6
6
|
authors = [
|
|
@@ -32,7 +32,7 @@ dependencies = [
|
|
|
32
32
|
"python-socketio >=5.12.0,<6.0",
|
|
33
33
|
"python-multipart >=0.0.20,<1.0",
|
|
34
34
|
"redis >=5.2.1,<6.0",
|
|
35
|
-
"reflex-hosting-cli >=0.1.
|
|
35
|
+
"reflex-hosting-cli >=0.1.47",
|
|
36
36
|
"rich >=13,<15",
|
|
37
37
|
"sqlmodel >=0.0.24,<0.1",
|
|
38
38
|
"click >=8",
|
|
@@ -150,7 +150,7 @@ dev = [
|
|
|
150
150
|
"plotly >=6.0",
|
|
151
151
|
"pre-commit >=4.2",
|
|
152
152
|
"psycopg[binary] >=3.2",
|
|
153
|
-
"pyright >=1.1.
|
|
153
|
+
"pyright >=1.1.400",
|
|
154
154
|
"pytest >=8.3",
|
|
155
155
|
"pytest-asyncio >=0.26",
|
|
156
156
|
"pytest-benchmark >=5.1",
|
|
@@ -165,5 +165,4 @@ dev = [
|
|
|
165
165
|
"selenium >=4.31",
|
|
166
166
|
"starlette-admin >=0.14",
|
|
167
167
|
"uvicorn >=0.34.0",
|
|
168
|
-
|
|
169
168
|
]
|
|
@@ -243,13 +243,13 @@ export const applyEvent = async (event, socket) => {
|
|
|
243
243
|
if (event.name == "_set_focus") {
|
|
244
244
|
const ref =
|
|
245
245
|
event.payload.ref in refs ? refs[event.payload.ref] : event.payload.ref;
|
|
246
|
-
const
|
|
247
|
-
if (focus === undefined) {
|
|
246
|
+
const current = ref?.current;
|
|
247
|
+
if (current === undefined || current?.focus === undefined) {
|
|
248
248
|
console.error(
|
|
249
249
|
`No element found for ref ${event.payload.ref} in _set_focus`,
|
|
250
250
|
);
|
|
251
251
|
} else {
|
|
252
|
-
focus();
|
|
252
|
+
current.focus();
|
|
253
253
|
}
|
|
254
254
|
return false;
|
|
255
255
|
}
|
|
@@ -29,7 +29,7 @@ from starlette.datastructures import Headers
|
|
|
29
29
|
from starlette.datastructures import UploadFile as StarletteUploadFile
|
|
30
30
|
from starlette.exceptions import HTTPException
|
|
31
31
|
from starlette.middleware import cors
|
|
32
|
-
from starlette.requests import Request
|
|
32
|
+
from starlette.requests import ClientDisconnect, Request
|
|
33
33
|
from starlette.responses import JSONResponse, Response, StreamingResponse
|
|
34
34
|
from starlette.staticfiles import StaticFiles
|
|
35
35
|
from typing_extensions import deprecated
|
|
@@ -488,8 +488,8 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
488
488
|
set_breakpoints(self.style.pop("breakpoints"))
|
|
489
489
|
|
|
490
490
|
# Set up the API.
|
|
491
|
-
self._api = Starlette(
|
|
492
|
-
|
|
491
|
+
self._api = Starlette()
|
|
492
|
+
App._add_cors(self._api)
|
|
493
493
|
self._add_default_endpoints()
|
|
494
494
|
|
|
495
495
|
for clz in App.__mro__:
|
|
@@ -613,19 +613,6 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
613
613
|
Returns:
|
|
614
614
|
The backend api.
|
|
615
615
|
"""
|
|
616
|
-
if self._cached_fastapi_app is not None:
|
|
617
|
-
asgi_app = self._cached_fastapi_app
|
|
618
|
-
|
|
619
|
-
if not asgi_app or not self._api:
|
|
620
|
-
raise ValueError("The app has not been initialized.")
|
|
621
|
-
|
|
622
|
-
asgi_app.mount("", self._api)
|
|
623
|
-
else:
|
|
624
|
-
asgi_app = self._api
|
|
625
|
-
|
|
626
|
-
if not asgi_app:
|
|
627
|
-
raise ValueError("The app has not been initialized.")
|
|
628
|
-
|
|
629
616
|
# For py3.9 compatibility when redis is used, we MUST add any decorator pages
|
|
630
617
|
# before compiling the app in a thread to avoid event loop error (REF-2172).
|
|
631
618
|
self._apply_decorated_pages()
|
|
@@ -637,9 +624,18 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
637
624
|
# Force background compile errors to print eagerly
|
|
638
625
|
lambda f: f.result()
|
|
639
626
|
)
|
|
640
|
-
# Wait for the compile to finish
|
|
641
|
-
|
|
642
|
-
|
|
627
|
+
# Wait for the compile to finish to ensure all optional endpoints are mounted.
|
|
628
|
+
compile_future.result()
|
|
629
|
+
|
|
630
|
+
if not self._api:
|
|
631
|
+
raise ValueError("The app has not been initialized.")
|
|
632
|
+
|
|
633
|
+
if self._cached_fastapi_app is not None:
|
|
634
|
+
asgi_app = self._cached_fastapi_app
|
|
635
|
+
asgi_app.mount("", self._api)
|
|
636
|
+
App._add_cors(asgi_app)
|
|
637
|
+
else:
|
|
638
|
+
asgi_app = self._api
|
|
643
639
|
|
|
644
640
|
if self.api_transformer is not None:
|
|
645
641
|
api_transformers: Sequence[Starlette | Callable[[ASGIApp], ASGIApp]] = (
|
|
@@ -651,13 +647,18 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
651
647
|
for api_transformer in api_transformers:
|
|
652
648
|
if isinstance(api_transformer, Starlette):
|
|
653
649
|
# Mount the api to the fastapi app.
|
|
650
|
+
App._add_cors(api_transformer)
|
|
654
651
|
api_transformer.mount("", asgi_app)
|
|
655
652
|
asgi_app = api_transformer
|
|
656
653
|
else:
|
|
657
654
|
# Transform the asgi app.
|
|
658
655
|
asgi_app = api_transformer(asgi_app)
|
|
659
656
|
|
|
660
|
-
|
|
657
|
+
top_asgi_app = Starlette(lifespan=self._run_lifespan_tasks)
|
|
658
|
+
top_asgi_app.mount("", asgi_app)
|
|
659
|
+
App._add_cors(top_asgi_app)
|
|
660
|
+
|
|
661
|
+
return top_asgi_app
|
|
661
662
|
|
|
662
663
|
def _add_default_endpoints(self):
|
|
663
664
|
"""Add default api endpoints (ping)."""
|
|
@@ -709,11 +710,14 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
709
710
|
if environment.REFLEX_ADD_ALL_ROUTES_ENDPOINT.get():
|
|
710
711
|
self.add_all_routes_endpoint()
|
|
711
712
|
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
713
|
+
@staticmethod
|
|
714
|
+
def _add_cors(api: Starlette):
|
|
715
|
+
"""Add CORS middleware to the app.
|
|
716
|
+
|
|
717
|
+
Args:
|
|
718
|
+
api: The Starlette app to add CORS middleware to.
|
|
719
|
+
"""
|
|
720
|
+
api.add_middleware(
|
|
717
721
|
cors.CORSMiddleware,
|
|
718
722
|
allow_credentials=True,
|
|
719
723
|
allow_methods=["*"],
|
|
@@ -1118,7 +1122,6 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1118
1122
|
# Add the @rx.page decorated pages to collect on_load events.
|
|
1119
1123
|
for render, kwargs in DECORATED_PAGES[app_name]:
|
|
1120
1124
|
self.add_page(render, **kwargs)
|
|
1121
|
-
DECORATED_PAGES[app_name].clear()
|
|
1122
1125
|
|
|
1123
1126
|
def _validate_var_dependencies(self, state: type[BaseState] | None = None) -> None:
|
|
1124
1127
|
"""Validate the dependencies of the vars in the app.
|
|
@@ -1830,7 +1833,10 @@ def upload(app: App):
|
|
|
1830
1833
|
from reflex.utils.exceptions import UploadTypeError, UploadValueError
|
|
1831
1834
|
|
|
1832
1835
|
# Get the files from the request.
|
|
1833
|
-
|
|
1836
|
+
try:
|
|
1837
|
+
files = await request.form()
|
|
1838
|
+
except ClientDisconnect:
|
|
1839
|
+
return Response() # user cancelled
|
|
1834
1840
|
files = files.getlist("files")
|
|
1835
1841
|
if not files:
|
|
1836
1842
|
raise UploadValueError("No files were uploaded.")
|
|
@@ -43,6 +43,7 @@ from reflex.event import (
|
|
|
43
43
|
no_args_event_spec,
|
|
44
44
|
parse_args_spec,
|
|
45
45
|
run_script,
|
|
46
|
+
unwrap_var_annotation,
|
|
46
47
|
)
|
|
47
48
|
from reflex.style import Style, format_as_emotion
|
|
48
49
|
from reflex.utils import console, format, imports, types
|
|
@@ -50,14 +51,15 @@ from reflex.utils.imports import ImportDict, ImportVar, ParsedImportDict, parse_
|
|
|
50
51
|
from reflex.vars import VarData
|
|
51
52
|
from reflex.vars.base import (
|
|
52
53
|
CachedVarOperation,
|
|
54
|
+
LiteralNoneVar,
|
|
53
55
|
LiteralVar,
|
|
54
56
|
Var,
|
|
55
57
|
cached_property_no_lock,
|
|
56
58
|
)
|
|
57
59
|
from reflex.vars.function import ArgsFunctionOperation, FunctionStringVar, FunctionVar
|
|
58
60
|
from reflex.vars.number import ternary_operation
|
|
59
|
-
from reflex.vars.object import ObjectVar
|
|
60
|
-
from reflex.vars.sequence import LiteralArrayVar
|
|
61
|
+
from reflex.vars.object import LiteralObjectVar, ObjectVar
|
|
62
|
+
from reflex.vars.sequence import LiteralArrayVar, LiteralStringVar, StringVar
|
|
61
63
|
|
|
62
64
|
|
|
63
65
|
class BaseComponent(Base, ABC):
|
|
@@ -598,13 +600,36 @@ class Component(BaseComponent, ABC):
|
|
|
598
600
|
# Convert class_name to str if it's list
|
|
599
601
|
class_name = kwargs.get("class_name", "")
|
|
600
602
|
if isinstance(class_name, (list, tuple)):
|
|
601
|
-
|
|
603
|
+
has_var = False
|
|
604
|
+
for c in class_name:
|
|
605
|
+
if isinstance(c, str):
|
|
606
|
+
continue
|
|
607
|
+
if isinstance(c, Var):
|
|
608
|
+
if not isinstance(c, StringVar) and not issubclass(
|
|
609
|
+
c._var_type, str
|
|
610
|
+
):
|
|
611
|
+
raise TypeError(
|
|
612
|
+
f"Invalid class_name passed for prop {type(self).__name__}.class_name, expected type str, got value {c._js_expr} of type {c._var_type}."
|
|
613
|
+
)
|
|
614
|
+
has_var = True
|
|
615
|
+
else:
|
|
616
|
+
raise TypeError(
|
|
617
|
+
f"Invalid class_name passed for prop {type(self).__name__}.class_name, expected type str, got value {c} of type {type(c)}."
|
|
618
|
+
)
|
|
619
|
+
if has_var:
|
|
602
620
|
kwargs["class_name"] = LiteralArrayVar.create(
|
|
603
621
|
class_name, _var_type=list[str]
|
|
604
622
|
).join(" ")
|
|
605
623
|
else:
|
|
606
624
|
kwargs["class_name"] = " ".join(class_name)
|
|
607
|
-
|
|
625
|
+
elif (
|
|
626
|
+
isinstance(class_name, Var)
|
|
627
|
+
and not isinstance(class_name, StringVar)
|
|
628
|
+
and not issubclass(class_name._var_type, str)
|
|
629
|
+
):
|
|
630
|
+
raise TypeError(
|
|
631
|
+
f"Invalid class_name passed for prop {type(self).__name__}.class_name, expected type str, got value {class_name._js_expr} of type {class_name._var_type}."
|
|
632
|
+
)
|
|
608
633
|
# Construct the component.
|
|
609
634
|
for key, value in kwargs.items():
|
|
610
635
|
setattr(self, key, value)
|
|
@@ -1146,7 +1171,7 @@ class Component(BaseComponent, ABC):
|
|
|
1146
1171
|
vars.append(comp_prop)
|
|
1147
1172
|
elif isinstance(comp_prop, str):
|
|
1148
1173
|
# Collapse VarData encoded in f-strings.
|
|
1149
|
-
var =
|
|
1174
|
+
var = LiteralStringVar.create(comp_prop)
|
|
1150
1175
|
if var._get_all_var_data() is not None:
|
|
1151
1176
|
vars.append(var)
|
|
1152
1177
|
|
|
@@ -1912,8 +1937,8 @@ def _register_custom_component(
|
|
|
1912
1937
|
prop: (
|
|
1913
1938
|
Var(
|
|
1914
1939
|
"",
|
|
1915
|
-
_var_type=annotation,
|
|
1916
|
-
)
|
|
1940
|
+
_var_type=unwrap_var_annotation(annotation),
|
|
1941
|
+
).guess_type()
|
|
1917
1942
|
if not types.safe_issubclass(annotation, EventHandler)
|
|
1918
1943
|
else EventSpec(handler=EventHandler(fn=lambda: []))
|
|
1919
1944
|
)
|
|
@@ -2494,7 +2519,7 @@ def render_dict_to_var(tag: dict | Component | str, imported_names: set[str]) ->
|
|
|
2494
2519
|
return Var.create(tag)
|
|
2495
2520
|
|
|
2496
2521
|
if "iterable" in tag:
|
|
2497
|
-
function_return =
|
|
2522
|
+
function_return = LiteralArrayVar.create(
|
|
2498
2523
|
[
|
|
2499
2524
|
render_dict_to_var(child.render(), imported_names)
|
|
2500
2525
|
for child in tag["children"]
|
|
@@ -2537,7 +2562,7 @@ def render_dict_to_var(tag: dict | Component | str, imported_names: set[str]) ->
|
|
|
2537
2562
|
render_dict_to_var(tag["true_value"], imported_names),
|
|
2538
2563
|
render_dict_to_var(tag["false_value"], imported_names)
|
|
2539
2564
|
if tag["false_value"] is not None
|
|
2540
|
-
else
|
|
2565
|
+
else LiteralNoneVar.create(),
|
|
2541
2566
|
)
|
|
2542
2567
|
|
|
2543
2568
|
props = {}
|
|
@@ -2553,7 +2578,9 @@ def render_dict_to_var(tag: dict | Component | str, imported_names: set[str]) ->
|
|
|
2553
2578
|
value = prop_str[prop + 2 : -1]
|
|
2554
2579
|
props[key] = value
|
|
2555
2580
|
|
|
2556
|
-
props =
|
|
2581
|
+
props = LiteralObjectVar.create(
|
|
2582
|
+
{LiteralStringVar.create(k): Var(v) for k, v in props.items()}
|
|
2583
|
+
)
|
|
2557
2584
|
|
|
2558
2585
|
for prop in special_props:
|
|
2559
2586
|
props = props.merge(prop)
|
|
@@ -2564,7 +2591,7 @@ def render_dict_to_var(tag: dict | Component | str, imported_names: set[str]) ->
|
|
|
2564
2591
|
tag_name = Var(raw_tag_name or "Fragment")
|
|
2565
2592
|
|
|
2566
2593
|
tag_name = (
|
|
2567
|
-
|
|
2594
|
+
LiteralStringVar.create(raw_tag_name)
|
|
2568
2595
|
if raw_tag_name
|
|
2569
2596
|
and raw_tag_name.split(".")[0] not in imported_names
|
|
2570
2597
|
and raw_tag_name.lower() == raw_tag_name
|
|
@@ -13,6 +13,7 @@ from reflex.components.component import (
|
|
|
13
13
|
MemoizationLeaf,
|
|
14
14
|
StatefulComponent,
|
|
15
15
|
)
|
|
16
|
+
from reflex.components.core.cond import cond
|
|
16
17
|
from reflex.components.el.elements.forms import Input
|
|
17
18
|
from reflex.components.radix.themes.layout.box import Box
|
|
18
19
|
from reflex.config import environment
|
|
@@ -28,6 +29,7 @@ from reflex.event import (
|
|
|
28
29
|
parse_args_spec,
|
|
29
30
|
run_script,
|
|
30
31
|
)
|
|
32
|
+
from reflex.style import Style
|
|
31
33
|
from reflex.utils import format
|
|
32
34
|
from reflex.utils.imports import ImportVar
|
|
33
35
|
from reflex.vars import VarData
|
|
@@ -231,6 +233,9 @@ class Upload(MemoizationLeaf):
|
|
|
231
233
|
# Fired when files are dropped.
|
|
232
234
|
on_drop: EventHandler[_on_drop_spec]
|
|
233
235
|
|
|
236
|
+
# Style rules to apply when actively dragging.
|
|
237
|
+
drag_active_style: Style | None = None
|
|
238
|
+
|
|
234
239
|
@classmethod
|
|
235
240
|
def create(cls, *children, **props) -> Component:
|
|
236
241
|
"""Create an upload component.
|
|
@@ -266,25 +271,46 @@ class Upload(MemoizationLeaf):
|
|
|
266
271
|
# If on_drop is not provided, save files to be uploaded later.
|
|
267
272
|
upload_props["on_drop"] = upload_file(upload_props["id"])
|
|
268
273
|
else:
|
|
269
|
-
on_drop =
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
274
|
+
on_drop = (
|
|
275
|
+
[on_drop_prop]
|
|
276
|
+
if not isinstance(on_drop_prop := upload_props["on_drop"], Sequence)
|
|
277
|
+
else list(on_drop_prop)
|
|
278
|
+
)
|
|
279
|
+
for ix, event in enumerate(on_drop):
|
|
280
|
+
if isinstance(event, (EventHandler, EventSpec)):
|
|
281
|
+
# Call the lambda to get the event chain.
|
|
282
|
+
event = call_event_handler(event, _on_drop_spec)
|
|
283
|
+
elif isinstance(event, Callable):
|
|
284
|
+
# Call the lambda to get the event chain.
|
|
285
|
+
event = call_event_fn(event, _on_drop_spec)
|
|
286
|
+
if isinstance(event, EventSpec):
|
|
287
|
+
# Update the provided args for direct use with on_drop.
|
|
288
|
+
event = event.with_args(
|
|
289
|
+
args=tuple(
|
|
290
|
+
cls._update_arg_tuple_for_on_drop(arg_value)
|
|
291
|
+
for arg_value in event.args
|
|
292
|
+
),
|
|
293
|
+
)
|
|
294
|
+
on_drop[ix] = event
|
|
284
295
|
upload_props["on_drop"] = on_drop
|
|
285
296
|
|
|
286
297
|
input_props_unique_name = get_unique_variable_name()
|
|
287
298
|
root_props_unique_name = get_unique_variable_name()
|
|
299
|
+
is_drag_active_unique_name = get_unique_variable_name()
|
|
300
|
+
drag_active_css_class_unique_name = get_unique_variable_name() + "-drag-active"
|
|
301
|
+
|
|
302
|
+
# Handle special style when dragging over the drop zone.
|
|
303
|
+
if "drag_active_style" in props:
|
|
304
|
+
props.setdefault("style", Style())[
|
|
305
|
+
f"&:where(.{drag_active_css_class_unique_name})"
|
|
306
|
+
] = props.pop("drag_active_style")
|
|
307
|
+
props["class_name"].append(
|
|
308
|
+
cond(
|
|
309
|
+
Var(is_drag_active_unique_name),
|
|
310
|
+
drag_active_css_class_unique_name,
|
|
311
|
+
"",
|
|
312
|
+
),
|
|
313
|
+
)
|
|
288
314
|
|
|
289
315
|
event_var, callback_str = StatefulComponent._get_memoized_event_triggers(
|
|
290
316
|
GhostUpload.create(on_drop=upload_props["on_drop"])
|
|
@@ -303,7 +329,13 @@ class Upload(MemoizationLeaf):
|
|
|
303
329
|
}
|
|
304
330
|
)
|
|
305
331
|
|
|
306
|
-
left_side =
|
|
332
|
+
left_side = (
|
|
333
|
+
"const { "
|
|
334
|
+
f"getRootProps: {root_props_unique_name}, "
|
|
335
|
+
f"getInputProps: {input_props_unique_name}, "
|
|
336
|
+
f"isDragActive: {is_drag_active_unique_name}"
|
|
337
|
+
"}"
|
|
338
|
+
)
|
|
307
339
|
right_side = f"useDropzone({use_dropzone_arguments!s})"
|
|
308
340
|
|
|
309
341
|
var_data = VarData.merge(
|
|
@@ -12,6 +12,7 @@ from reflex.components.component import Component, ComponentNamespace, Memoizati
|
|
|
12
12
|
from reflex.components.core.breakpoints import Breakpoints
|
|
13
13
|
from reflex.constants import Dirs
|
|
14
14
|
from reflex.event import CallableEventSpec, EventSpec, EventType
|
|
15
|
+
from reflex.style import Style
|
|
15
16
|
from reflex.utils.imports import ImportVar
|
|
16
17
|
from reflex.vars import VarData
|
|
17
18
|
from reflex.vars.base import Var
|
|
@@ -157,6 +158,7 @@ class Upload(MemoizationLeaf):
|
|
|
157
158
|
no_click: Var[bool] | bool | None = None,
|
|
158
159
|
no_drag: Var[bool] | bool | None = None,
|
|
159
160
|
no_keyboard: Var[bool] | bool | None = None,
|
|
161
|
+
drag_active_style: Style | None = None,
|
|
160
162
|
style: Sequence[Mapping[str, Any]]
|
|
161
163
|
| Mapping[str, Any]
|
|
162
164
|
| Var[Mapping[str, Any]]
|
|
@@ -199,6 +201,7 @@ class Upload(MemoizationLeaf):
|
|
|
199
201
|
no_drag: Whether to disable drag and drop.
|
|
200
202
|
no_keyboard: Whether to disable using the space/enter keys to upload.
|
|
201
203
|
on_drop: Fired when files are dropped.
|
|
204
|
+
drag_active_style: Style rules to apply when actively dragging.
|
|
202
205
|
style: The style of the component.
|
|
203
206
|
key: A unique key for the component.
|
|
204
207
|
id: The id for the component.
|
|
@@ -227,6 +230,7 @@ class StyledUpload(Upload):
|
|
|
227
230
|
no_click: Var[bool] | bool | None = None,
|
|
228
231
|
no_drag: Var[bool] | bool | None = None,
|
|
229
232
|
no_keyboard: Var[bool] | bool | None = None,
|
|
233
|
+
drag_active_style: Style | None = None,
|
|
230
234
|
style: Sequence[Mapping[str, Any]]
|
|
231
235
|
| Mapping[str, Any]
|
|
232
236
|
| Var[Mapping[str, Any]]
|
|
@@ -269,6 +273,7 @@ class StyledUpload(Upload):
|
|
|
269
273
|
no_drag: Whether to disable drag and drop.
|
|
270
274
|
no_keyboard: Whether to disable using the space/enter keys to upload.
|
|
271
275
|
on_drop: Fired when files are dropped.
|
|
276
|
+
drag_active_style: Style rules to apply when actively dragging.
|
|
272
277
|
style: The style of the component.
|
|
273
278
|
key: A unique key for the component.
|
|
274
279
|
id: The id for the component.
|
|
@@ -297,6 +302,7 @@ class UploadNamespace(ComponentNamespace):
|
|
|
297
302
|
no_click: Var[bool] | bool | None = None,
|
|
298
303
|
no_drag: Var[bool] | bool | None = None,
|
|
299
304
|
no_keyboard: Var[bool] | bool | None = None,
|
|
305
|
+
drag_active_style: Style | None = None,
|
|
300
306
|
style: Sequence[Mapping[str, Any]]
|
|
301
307
|
| Mapping[str, Any]
|
|
302
308
|
| Var[Mapping[str, Any]]
|
|
@@ -339,6 +345,7 @@ class UploadNamespace(ComponentNamespace):
|
|
|
339
345
|
no_drag: Whether to disable drag and drop.
|
|
340
346
|
no_keyboard: Whether to disable using the space/enter keys to upload.
|
|
341
347
|
on_drop: Fired when files are dropped.
|
|
348
|
+
drag_active_style: Style rules to apply when actively dragging.
|
|
342
349
|
style: The style of the component.
|
|
343
350
|
key: A unique key for the component.
|
|
344
351
|
id: The id for the component.
|
|
@@ -27,8 +27,6 @@ class Audio(ReactPlayer):
|
|
|
27
27
|
light: Var[bool] | bool | None = None,
|
|
28
28
|
volume: Var[float] | float | None = None,
|
|
29
29
|
muted: Var[bool] | bool | None = None,
|
|
30
|
-
width: Var[str] | str | None = None,
|
|
31
|
-
height: Var[str] | str | None = None,
|
|
32
30
|
style: Sequence[Mapping[str, Any]]
|
|
33
31
|
| Mapping[str, Any]
|
|
34
32
|
| Var[Mapping[str, Any]]
|
|
@@ -83,8 +81,6 @@ class Audio(ReactPlayer):
|
|
|
83
81
|
light: Set to true to show just the video thumbnail, which loads the full player on click
|
|
84
82
|
volume: Set the volume of the player, between 0 and 1
|
|
85
83
|
muted: Mutes the player
|
|
86
|
-
width: Set the width of the player: ex:640px
|
|
87
|
-
height: Set the height of the player: ex:640px
|
|
88
84
|
on_ready: Called when media is loaded and ready to play. If playing is set to true, media will play immediately.
|
|
89
85
|
on_start: Called when media starts playing.
|
|
90
86
|
on_play: Called when media starts or resumes playing after pausing or buffering.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from typing import TypedDict
|
|
5
|
+
from typing import Any, TypedDict
|
|
6
6
|
|
|
7
7
|
from reflex.components.component import NoSSRComponent
|
|
8
8
|
from reflex.event import EventHandler, no_args_event_spec, passthrough_event_spec
|
|
@@ -50,12 +50,6 @@ class ReactPlayer(NoSSRComponent):
|
|
|
50
50
|
# Mutes the player
|
|
51
51
|
muted: Var[bool]
|
|
52
52
|
|
|
53
|
-
# Set the width of the player: ex:640px
|
|
54
|
-
width: Var[str]
|
|
55
|
-
|
|
56
|
-
# Set the height of the player: ex:640px
|
|
57
|
-
height: Var[str]
|
|
58
|
-
|
|
59
53
|
# Called when media is loaded and ready to play. If playing is set to true, media will play immediately.
|
|
60
54
|
on_ready: EventHandler[no_args_event_spec]
|
|
61
55
|
|
|
@@ -103,3 +97,23 @@ class ReactPlayer(NoSSRComponent):
|
|
|
103
97
|
|
|
104
98
|
# Called when picture-in-picture mode is disabled.
|
|
105
99
|
on_disable_pip: EventHandler[no_args_event_spec]
|
|
100
|
+
|
|
101
|
+
def _render(self, props: dict[str, Any] | None = None):
|
|
102
|
+
"""Render the component. Adds width and height set to None because
|
|
103
|
+
react-player will set them to some random value that overrides the
|
|
104
|
+
css width and height.
|
|
105
|
+
|
|
106
|
+
Args:
|
|
107
|
+
props: The props to pass to the component.
|
|
108
|
+
|
|
109
|
+
Returns:
|
|
110
|
+
The rendered component.
|
|
111
|
+
"""
|
|
112
|
+
return (
|
|
113
|
+
super()
|
|
114
|
+
._render(props)
|
|
115
|
+
.add_props(
|
|
116
|
+
width=Var.create(None),
|
|
117
|
+
height=Var.create(None),
|
|
118
|
+
)
|
|
119
|
+
)
|
|
@@ -30,8 +30,6 @@ class ReactPlayer(NoSSRComponent):
|
|
|
30
30
|
light: Var[bool] | bool | None = None,
|
|
31
31
|
volume: Var[float] | float | None = None,
|
|
32
32
|
muted: Var[bool] | bool | None = None,
|
|
33
|
-
width: Var[str] | str | None = None,
|
|
34
|
-
height: Var[str] | str | None = None,
|
|
35
33
|
style: Sequence[Mapping[str, Any]]
|
|
36
34
|
| Mapping[str, Any]
|
|
37
35
|
| Var[Mapping[str, Any]]
|
|
@@ -86,8 +84,6 @@ class ReactPlayer(NoSSRComponent):
|
|
|
86
84
|
light: Set to true to show just the video thumbnail, which loads the full player on click
|
|
87
85
|
volume: Set the volume of the player, between 0 and 1
|
|
88
86
|
muted: Mutes the player
|
|
89
|
-
width: Set the width of the player: ex:640px
|
|
90
|
-
height: Set the height of the player: ex:640px
|
|
91
87
|
on_ready: Called when media is loaded and ready to play. If playing is set to true, media will play immediately.
|
|
92
88
|
on_start: Called when media starts playing.
|
|
93
89
|
on_play: Called when media starts or resumes playing after pausing or buffering.
|
|
@@ -27,8 +27,6 @@ class Video(ReactPlayer):
|
|
|
27
27
|
light: Var[bool] | bool | None = None,
|
|
28
28
|
volume: Var[float] | float | None = None,
|
|
29
29
|
muted: Var[bool] | bool | None = None,
|
|
30
|
-
width: Var[str] | str | None = None,
|
|
31
|
-
height: Var[str] | str | None = None,
|
|
32
30
|
style: Sequence[Mapping[str, Any]]
|
|
33
31
|
| Mapping[str, Any]
|
|
34
32
|
| Var[Mapping[str, Any]]
|
|
@@ -83,8 +81,6 @@ class Video(ReactPlayer):
|
|
|
83
81
|
light: Set to true to show just the video thumbnail, which loads the full player on click
|
|
84
82
|
volume: Set the volume of the player, between 0 and 1
|
|
85
83
|
muted: Mutes the player
|
|
86
|
-
width: Set the width of the player: ex:640px
|
|
87
|
-
height: Set the height of the player: ex:640px
|
|
88
84
|
on_ready: Called when media is loaded and ready to play. If playing is set to true, media will play immediately.
|
|
89
85
|
on_start: Called when media starts playing.
|
|
90
86
|
on_play: Called when media starts or resumes playing after pausing or buffering.
|
|
@@ -55,7 +55,7 @@ def _load_dotenv_from_str(env_files: str) -> None:
|
|
|
55
55
|
|
|
56
56
|
if load_dotenv is None:
|
|
57
57
|
console.error(
|
|
58
|
-
"""The `python-dotenv` package is required to load environment variables from a file. Run `pip install "python-dotenv>=1.0
|
|
58
|
+
"""The `python-dotenv` package is required to load environment variables from a file. Run `pip install "python-dotenv>=1.1.0"`."""
|
|
59
59
|
)
|
|
60
60
|
return
|
|
61
61
|
|
|
@@ -68,7 +68,7 @@ def _load_dotenv_from_str(env_files: str) -> None:
|
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
# Load the env files at import time if they are set in the ENV_FILE environment variable.
|
|
71
|
-
if
|
|
71
|
+
if env_files := os.getenv("ENV_FILE"):
|
|
72
72
|
_load_dotenv_from_str(env_files)
|
|
73
73
|
|
|
74
74
|
|
|
@@ -41,6 +41,7 @@ from .config import (
|
|
|
41
41
|
DefaultPorts,
|
|
42
42
|
Expiration,
|
|
43
43
|
GitIgnore,
|
|
44
|
+
PyprojectToml,
|
|
44
45
|
RequirementsTxt,
|
|
45
46
|
)
|
|
46
47
|
from .custom_components import CustomComponents
|
|
@@ -106,6 +107,7 @@ __all__ = [
|
|
|
106
107
|
"Page404",
|
|
107
108
|
"PageNames",
|
|
108
109
|
"Ping",
|
|
110
|
+
"PyprojectToml",
|
|
109
111
|
"Reflex",
|
|
110
112
|
"RequirementsTxt",
|
|
111
113
|
"RouteArgType",
|
|
@@ -134,7 +134,7 @@ class Templates(SimpleNamespace):
|
|
|
134
134
|
DEFAULT_TEMPLATE_URL = "https://blank-template.reflex.run"
|
|
135
135
|
|
|
136
136
|
# The reflex.build frontend host
|
|
137
|
-
REFLEX_BUILD_FRONTEND = "https://
|
|
137
|
+
REFLEX_BUILD_FRONTEND = "https://reflex.build"
|
|
138
138
|
|
|
139
139
|
# The reflex.build backend host
|
|
140
140
|
REFLEX_BUILD_BACKEND = "https://flexgen-prod-flexgen.fly.dev"
|
|
@@ -49,6 +49,13 @@ class GitIgnore(SimpleNamespace):
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
|
|
52
|
+
class PyprojectToml(SimpleNamespace):
|
|
53
|
+
"""Pyproject.toml constants."""
|
|
54
|
+
|
|
55
|
+
# The pyproject.toml file.
|
|
56
|
+
FILE = "pyproject.toml"
|
|
57
|
+
|
|
58
|
+
|
|
52
59
|
class RequirementsTxt(SimpleNamespace):
|
|
53
60
|
"""Requirements.txt constants."""
|
|
54
61
|
|