reflex 0.8.9a1__tar.gz → 0.8.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.8.9a1 → reflex-0.8.10a1}/PKG-INFO +4 -3
- {reflex-0.8.9a1 → reflex-0.8.10a1}/pyproject.toml +13 -15
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +11 -1
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/utils/state.js +5 -1
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/compiler/compiler.py +3 -5
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/compiler/templates.py +1 -6
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/compiler/utils.py +16 -2
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/bare.py +2 -2
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/component.py +33 -74
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/debounce.py +1 -1
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/foreach.py +7 -19
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/sticky.pyi +3 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/upload.py +1 -1
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/dynamic.py +1 -3
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/forms.py +3 -3
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/media.pyi +5869 -5
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/lucide/icon.py +2 -1
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/lucide/icon.pyi +5 -1
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/config.py +33 -6
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/environment.py +12 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/event.py +23 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/model.py +4 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/types.py +4 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/vars/base.py +9 -2
- {reflex-0.8.9a1 → reflex-0.8.10a1}/.gitignore +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/LICENSE +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/README.md +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/apps/blank/code/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/apps/blank/code/blank.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/.gitignore +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/app/entry.client.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/app/routes.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/components/shiki/code.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/jsconfig.json +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/postcss.config.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/react-router.config.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/styles/__reflex_style_reset.css +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/utils/helpers/paste.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/utils/helpers/range.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/utils/react-theme.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/.templates/web/vite-plugin-safari-cachebust.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/__main__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/admin.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/app.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/app_mixins/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/app_mixins/lifespan.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/app_mixins/middleware.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/app_mixins/mixin.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/assets.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/compiler/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/app_wrap.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/app_wrap.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/body.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/body.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/document.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/document.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/error_boundary.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/error_boundary.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/fragment.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/fragment.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/link.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/link.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/meta.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/meta.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/script.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/script.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/strict_mode.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/base/strict_mode.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/auto_scroll.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/auto_scroll.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/banner.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/banner.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/breakpoints.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/clipboard.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/clipboard.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/colors.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/cond.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/debounce.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/helmet.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/helmet.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/html.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/html.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/layout/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/match.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/responsive.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/sticky.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/upload.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/window_events.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/core/window_events.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/datadisplay/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/datadisplay/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/datadisplay/code.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/datadisplay/code.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/datadisplay/dataeditor.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/datadisplay/dataeditor.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/datadisplay/logo.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/datadisplay/shiki_code_block.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/element.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/element.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/base.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/forms.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/inline.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/inline.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/media.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/metadata.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/metadata.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/other.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/other.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/scripts.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/scripts.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/sectioning.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/sectioning.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/tables.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/tables.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/typography.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/el/elements/typography.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/field.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/gridjs/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/gridjs/datatable.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/gridjs/datatable.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/literals.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/lucide/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/markdown/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/markdown/markdown.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/markdown/markdown.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/moment/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/moment/moment.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/moment/moment.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/plotly/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/plotly/plotly.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/plotly/plotly.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/props.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/primitives/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/primitives/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/primitives/accordion.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/primitives/accordion.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/primitives/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/primitives/base.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/primitives/drawer.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/primitives/drawer.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/primitives/form.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/primitives/form.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/primitives/progress.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/primitives/progress.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/primitives/slider.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/primitives/slider.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/base.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/color_mode.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/color_mode.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/avatar.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/avatar.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/badge.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/badge.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/button.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/button.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/callout.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/callout.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/card.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/card.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/checkbox.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/context_menu.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/data_list.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/data_list.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/dialog.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/dialog.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/hover_card.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/icon_button.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/inset.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/inset.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/popover.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/popover.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/progress.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/progress.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/radio.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/radio.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/radio_cards.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/radio_group.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/scroll_area.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/segmented_control.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/select.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/select.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/separator.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/separator.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/skeleton.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/slider.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/slider.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/spinner.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/spinner.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/switch.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/switch.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/table.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/table.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/tabs.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/tabs.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/text_area.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/text_area.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/text_field.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/text_field.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/tooltip.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/base.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/box.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/box.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/center.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/center.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/container.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/container.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/flex.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/flex.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/grid.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/grid.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/list.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/list.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/section.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/section.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/spacer.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/stack.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/layout/stack.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/typography/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/typography/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/typography/blockquote.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/typography/code.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/typography/code.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/typography/heading.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/typography/heading.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/typography/link.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/typography/link.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/typography/text.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/radix/themes/typography/text.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/react_player/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/react_player/audio.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/react_player/audio.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/react_player/react_player.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/react_player/react_player.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/react_player/video.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/react_player/video.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/react_router/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/react_router/dom.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/react_router/dom.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/recharts/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/recharts/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/recharts/cartesian.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/recharts/cartesian.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/recharts/charts.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/recharts/charts.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/recharts/general.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/recharts/general.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/recharts/polar.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/recharts/polar.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/recharts/recharts.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/recharts/recharts.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/sonner/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/sonner/toast.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/sonner/toast.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/tags/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/tags/cond_tag.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/tags/iter_tag.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/tags/match_tag.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/tags/tag.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/components/tags/tagless.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/constants/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/constants/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/constants/colors.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/constants/compiler.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/constants/config.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/constants/custom_components.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/constants/event.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/constants/installer.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/constants/route.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/constants/state.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/constants/utils.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/custom_components/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/custom_components/custom_components.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/experimental/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/experimental/client_state.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/experimental/hooks.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/istate/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/istate/data.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/istate/dynamic.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/istate/manager.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/istate/proxy.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/istate/storage.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/istate/wrappers.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/middleware/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/middleware/hydrate_middleware.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/middleware/middleware.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/page.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/plugins/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/plugins/_screenshot.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/plugins/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/plugins/shared_tailwind.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/plugins/sitemap.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/plugins/tailwind_v3.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/plugins/tailwind_v4.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/py.typed +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/reflex.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/route.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/state.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/style.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/testing.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/build.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/codespaces.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/compat.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/console.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/decorator.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/exceptions.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/exec.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/export.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/format.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/frontend_skeleton.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/imports.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/js_runtimes.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/lazy_loader.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/misc.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/monitoring.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/net.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/path_ops.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/prerequisites.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/processes.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/pyi_generator.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/redir.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/registry.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/rename.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/serializers.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/telemetry.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/templates.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/utils/token_manager.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/vars/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/vars/datetime.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/vars/dep_tracking.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/vars/function.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/vars/number.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/vars/object.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/reflex/vars/sequence.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10a1}/scripts/hatch_build.py +0 -0
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: reflex
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.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
|
|
7
7
|
Project-URL: documentation, https://reflex.dev/docs/getting-started/introduction
|
|
8
|
-
Author
|
|
9
|
-
Maintainer
|
|
8
|
+
Author: Nikhil Rao, Alek Petuskey, Masen Furer, Elijah Ahianyo, Thomas Brandeho, Khaleel Al-Adhami
|
|
9
|
+
Maintainer: Masen Furer, Khaleel Al-Adhami
|
|
10
|
+
Maintainer-email: maintainers@reflex.dev
|
|
10
11
|
License: Apache-2.0
|
|
11
12
|
License-File: LICENSE
|
|
12
13
|
Keywords: framework,web
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "reflex"
|
|
3
|
-
version = "0.8.
|
|
3
|
+
version = "0.8.10a1"
|
|
4
4
|
description = "Web apps in pure Python."
|
|
5
5
|
license.text = "Apache-2.0"
|
|
6
6
|
authors = [
|
|
7
|
-
{ name = "Nikhil Rao"
|
|
8
|
-
{ name = "Alek Petuskey"
|
|
9
|
-
{ name = "Masen Furer"
|
|
10
|
-
{ name = "Elijah Ahianyo"
|
|
11
|
-
{ name = "Thomas Brandeho"
|
|
12
|
-
{ name = "Khaleel Al-Adhami"
|
|
7
|
+
{ name = "Nikhil Rao" },
|
|
8
|
+
{ name = "Alek Petuskey" },
|
|
9
|
+
{ name = "Masen Furer" },
|
|
10
|
+
{ name = "Elijah Ahianyo" },
|
|
11
|
+
{ name = "Thomas Brandeho" },
|
|
12
|
+
{ name = "Khaleel Al-Adhami" },
|
|
13
13
|
]
|
|
14
14
|
maintainers = [
|
|
15
|
-
{ name = "Masen Furer"
|
|
16
|
-
{ name = "
|
|
17
|
-
{
|
|
15
|
+
{ name = "Masen Furer" },
|
|
16
|
+
{ name = "Khaleel Al-Adhami" },
|
|
17
|
+
{ email = "maintainers@reflex.dev" },
|
|
18
18
|
]
|
|
19
19
|
readme = "README.md"
|
|
20
20
|
keywords = ["web", "framework"]
|
|
@@ -50,9 +50,7 @@ classifiers = [
|
|
|
50
50
|
]
|
|
51
51
|
|
|
52
52
|
[project.optional-dependencies]
|
|
53
|
-
monitoring = [
|
|
54
|
-
"pyleak >=0.1.14,<1.0",
|
|
55
|
-
]
|
|
53
|
+
monitoring = ["pyleak >=0.1.14,<1.0"]
|
|
56
54
|
|
|
57
55
|
[project.urls]
|
|
58
56
|
homepage = "https://reflex.dev"
|
|
@@ -232,7 +230,7 @@ fail_fast = true
|
|
|
232
230
|
|
|
233
231
|
[[tool.pre-commit.repos]]
|
|
234
232
|
repo = "https://github.com/astral-sh/ruff-pre-commit"
|
|
235
|
-
rev = "v0.12.
|
|
233
|
+
rev = "v0.12.11"
|
|
236
234
|
hooks = [
|
|
237
235
|
{ id = "ruff-format", args = [
|
|
238
236
|
"reflex",
|
|
@@ -264,7 +262,7 @@ hooks = [
|
|
|
264
262
|
|
|
265
263
|
[[tool.pre-commit.repos]]
|
|
266
264
|
repo = "https://github.com/RobertCraigie/pyright-python"
|
|
267
|
-
rev = "v1.1.
|
|
265
|
+
rev = "v1.1.404"
|
|
268
266
|
hooks = [{ id = "pyright", args = ["reflex", "tests"], language = "system" }]
|
|
269
267
|
|
|
270
268
|
[[tool.pre-commit.repos]]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useTheme } from "$/utils/react-theme";
|
|
2
|
-
import { createElement } from "react";
|
|
2
|
+
import { createElement, useEffect } from "react";
|
|
3
3
|
import { ColorModeContext, defaultColorMode } from "$/utils/context";
|
|
4
4
|
|
|
5
5
|
export default function RadixThemesColorModeProvider({ children }) {
|
|
@@ -20,6 +20,16 @@ export default function RadixThemesColorModeProvider({ children }) {
|
|
|
20
20
|
setTheme(mode);
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
const radixRoot = document.querySelector(
|
|
25
|
+
'.radix-themes[data-is-root-theme="true"]',
|
|
26
|
+
);
|
|
27
|
+
if (radixRoot) {
|
|
28
|
+
radixRoot.classList.remove("light", "dark");
|
|
29
|
+
radixRoot.classList.add(resolvedTheme);
|
|
30
|
+
}
|
|
31
|
+
}, [resolvedTheme]);
|
|
32
|
+
|
|
23
33
|
return createElement(
|
|
24
34
|
ColorModeContext.Provider,
|
|
25
35
|
{
|
|
@@ -210,7 +210,11 @@ export const applyEvent = async (event, socket, navigate, params) => {
|
|
|
210
210
|
return false;
|
|
211
211
|
}
|
|
212
212
|
if (event.payload.external) {
|
|
213
|
-
window.open(
|
|
213
|
+
window.open(
|
|
214
|
+
event.payload.path,
|
|
215
|
+
"_blank",
|
|
216
|
+
"noopener" + (event.payload.popup ? ",popup" : ""),
|
|
217
|
+
);
|
|
214
218
|
return false;
|
|
215
219
|
}
|
|
216
220
|
const url = urlFrom(event.payload.path);
|
|
@@ -161,7 +161,7 @@ def _compile_page(component: BaseComponent) -> str:
|
|
|
161
161
|
# Compile the code to render the component.
|
|
162
162
|
return templates.page_template(
|
|
163
163
|
imports=imports,
|
|
164
|
-
dynamic_imports=component._get_all_dynamic_imports(),
|
|
164
|
+
dynamic_imports=sorted(component._get_all_dynamic_imports()),
|
|
165
165
|
custom_codes=component._get_all_custom_code(),
|
|
166
166
|
hooks=component._get_all_hooks(),
|
|
167
167
|
render=component.render(),
|
|
@@ -379,7 +379,7 @@ def _compile_components(
|
|
|
379
379
|
templates.custom_component_template(
|
|
380
380
|
imports=utils.compile_imports(imports),
|
|
381
381
|
components=component_renders,
|
|
382
|
-
dynamic_imports=dynamic_imports,
|
|
382
|
+
dynamic_imports=sorted(dynamic_imports),
|
|
383
383
|
custom_codes=custom_codes,
|
|
384
384
|
),
|
|
385
385
|
imports,
|
|
@@ -435,9 +435,7 @@ def _compile_stateful_components(
|
|
|
435
435
|
rendered_components.update(dict.fromkeys(dynamic_imports))
|
|
436
436
|
|
|
437
437
|
# Include custom code in the shared component.
|
|
438
|
-
rendered_components.update(
|
|
439
|
-
dict.fromkeys(component._get_all_custom_code(export=True)),
|
|
440
|
-
)
|
|
438
|
+
rendered_components.update(component._get_all_custom_code(export=True))
|
|
441
439
|
|
|
442
440
|
# Include all imports in the shared component.
|
|
443
441
|
all_import_dicts.append(component._get_all_imports())
|
|
@@ -164,7 +164,7 @@ export function Layout({{children}}) {{
|
|
|
164
164
|
def app_root_template(
|
|
165
165
|
*,
|
|
166
166
|
imports: list[_ImportDict],
|
|
167
|
-
custom_codes:
|
|
167
|
+
custom_codes: Iterable[str],
|
|
168
168
|
hooks: dict[str, VarData | None],
|
|
169
169
|
window_libraries: list[tuple[str, str]],
|
|
170
170
|
render: dict[str, Any],
|
|
@@ -200,7 +200,6 @@ def app_root_template(
|
|
|
200
200
|
)
|
|
201
201
|
|
|
202
202
|
return f"""
|
|
203
|
-
import reflexGlobalStyles from '$/styles/__reflex_global_styles.css?url';
|
|
204
203
|
{imports_str}
|
|
205
204
|
{dynamic_imports_str}
|
|
206
205
|
import {{ EventLoopProvider, StateProvider, defaultColorMode }} from "$/utils/context";
|
|
@@ -211,10 +210,6 @@ import {{ Outlet }} from 'react-router';
|
|
|
211
210
|
|
|
212
211
|
{custom_code_str}
|
|
213
212
|
|
|
214
|
-
export const links = () => [
|
|
215
|
-
{{ rel: 'stylesheet', href: reflexGlobalStyles, type: 'text/css' }}
|
|
216
|
-
];
|
|
217
|
-
|
|
218
213
|
function AppWrap({{children}}) {{
|
|
219
214
|
{_render_hooks(hooks)}
|
|
220
215
|
return ({_RenderUtils.render(render)})
|
|
@@ -16,7 +16,7 @@ from reflex.components.base import Description, Image, Scripts
|
|
|
16
16
|
from reflex.components.base.document import Links, ScrollRestoration
|
|
17
17
|
from reflex.components.base.document import Meta as ReactMeta
|
|
18
18
|
from reflex.components.component import Component, ComponentStyle, CustomComponent
|
|
19
|
-
from reflex.components.el.elements.metadata import Head, Meta, Title
|
|
19
|
+
from reflex.components.el.elements.metadata import Head, Link, Meta, Title
|
|
20
20
|
from reflex.components.el.elements.other import Html
|
|
21
21
|
from reflex.components.el.elements.sectioning import Body
|
|
22
22
|
from reflex.constants.state import FIELD_MARKER
|
|
@@ -26,7 +26,7 @@ from reflex.style import Style
|
|
|
26
26
|
from reflex.utils import format, imports, path_ops
|
|
27
27
|
from reflex.utils.imports import ImportVar, ParsedImportDict
|
|
28
28
|
from reflex.utils.prerequisites import get_web_dir
|
|
29
|
-
from reflex.vars.base import Field, Var
|
|
29
|
+
from reflex.vars.base import Field, Var, VarData
|
|
30
30
|
|
|
31
31
|
# To re-export this function.
|
|
32
32
|
merge_imports = imports.merge_imports
|
|
@@ -382,6 +382,20 @@ def create_document_root(
|
|
|
382
382
|
# Always include the framework meta and link tags.
|
|
383
383
|
always_head_components = [
|
|
384
384
|
ReactMeta.create(),
|
|
385
|
+
Link.create(
|
|
386
|
+
rel="stylesheet",
|
|
387
|
+
type="text/css",
|
|
388
|
+
href=Var(
|
|
389
|
+
"reflexGlobalStyles",
|
|
390
|
+
_var_data=VarData(
|
|
391
|
+
imports={
|
|
392
|
+
"$/styles/__reflex_global_styles.css?url": [
|
|
393
|
+
ImportVar(tag="reflexGlobalStyles", is_default=True)
|
|
394
|
+
]
|
|
395
|
+
}
|
|
396
|
+
),
|
|
397
|
+
),
|
|
398
|
+
),
|
|
385
399
|
Links.create(),
|
|
386
400
|
]
|
|
387
401
|
maybe_head_components = []
|
|
@@ -129,7 +129,7 @@ class Bare(Component):
|
|
|
129
129
|
dynamic_imports |= component._get_all_dynamic_imports()
|
|
130
130
|
return dynamic_imports
|
|
131
131
|
|
|
132
|
-
def _get_all_custom_code(self) ->
|
|
132
|
+
def _get_all_custom_code(self) -> dict[str, None]:
|
|
133
133
|
"""Get custom code for the component.
|
|
134
134
|
|
|
135
135
|
Returns:
|
|
@@ -166,7 +166,7 @@ class Bare(Component):
|
|
|
166
166
|
)
|
|
167
167
|
return app_wrap_components
|
|
168
168
|
|
|
169
|
-
def _get_all_refs(self) ->
|
|
169
|
+
def _get_all_refs(self) -> dict[str, None]:
|
|
170
170
|
"""Get the refs for the children of the component.
|
|
171
171
|
|
|
172
172
|
Returns:
|
|
@@ -10,7 +10,7 @@ import functools
|
|
|
10
10
|
import inspect
|
|
11
11
|
import typing
|
|
12
12
|
from abc import ABC, ABCMeta, abstractmethod
|
|
13
|
-
from collections.abc import Callable, Iterator, Mapping, Sequence
|
|
13
|
+
from collections.abc import Callable, Iterable, Iterator, Mapping, Sequence
|
|
14
14
|
from dataclasses import _MISSING_TYPE, MISSING
|
|
15
15
|
from functools import wraps
|
|
16
16
|
from hashlib import md5
|
|
@@ -374,7 +374,7 @@ class BaseComponent(metaclass=BaseComponentMeta):
|
|
|
374
374
|
"""
|
|
375
375
|
|
|
376
376
|
@abstractmethod
|
|
377
|
-
def _get_all_custom_code(self) ->
|
|
377
|
+
def _get_all_custom_code(self) -> dict[str, None]:
|
|
378
378
|
"""Get custom code for the component.
|
|
379
379
|
|
|
380
380
|
Returns:
|
|
@@ -382,7 +382,7 @@ class BaseComponent(metaclass=BaseComponentMeta):
|
|
|
382
382
|
"""
|
|
383
383
|
|
|
384
384
|
@abstractmethod
|
|
385
|
-
def _get_all_refs(self) ->
|
|
385
|
+
def _get_all_refs(self) -> dict[str, None]:
|
|
386
386
|
"""Get the refs for the children of the component.
|
|
387
387
|
|
|
388
388
|
Returns:
|
|
@@ -1003,13 +1003,13 @@ class Component(BaseComponent, ABC):
|
|
|
1003
1003
|
|
|
1004
1004
|
@classmethod
|
|
1005
1005
|
@functools.cache
|
|
1006
|
-
def get_props(cls) ->
|
|
1006
|
+
def get_props(cls) -> Iterable[str]:
|
|
1007
1007
|
"""Get the unique fields for the component.
|
|
1008
1008
|
|
|
1009
1009
|
Returns:
|
|
1010
1010
|
The unique fields.
|
|
1011
1011
|
"""
|
|
1012
|
-
return
|
|
1012
|
+
return cls.get_js_fields()
|
|
1013
1013
|
|
|
1014
1014
|
@classmethod
|
|
1015
1015
|
@functools.cache
|
|
@@ -1021,48 +1021,8 @@ class Component(BaseComponent, ABC):
|
|
|
1021
1021
|
"""
|
|
1022
1022
|
return set()
|
|
1023
1023
|
|
|
1024
|
-
@
|
|
1025
|
-
def
|
|
1026
|
-
"""Check if all fields are known at compile time. True for most components.
|
|
1027
|
-
|
|
1028
|
-
Returns:
|
|
1029
|
-
Whether all fields are known at compile time.
|
|
1030
|
-
"""
|
|
1031
|
-
return True
|
|
1032
|
-
|
|
1033
|
-
@classmethod
|
|
1034
|
-
@functools.cache
|
|
1035
|
-
def _get_component_prop_names(cls) -> set[str]:
|
|
1036
|
-
"""Get the names of the component props. NOTE: This assumes all fields are known.
|
|
1037
|
-
|
|
1038
|
-
Returns:
|
|
1039
|
-
The names of the component props.
|
|
1040
|
-
"""
|
|
1041
|
-
return {
|
|
1042
|
-
name
|
|
1043
|
-
for name in cls.get_fields()
|
|
1044
|
-
if name in cls.get_props()
|
|
1045
|
-
and isinstance(
|
|
1046
|
-
field_type := types.value_inside_optional(
|
|
1047
|
-
types.get_field_type(cls, name)
|
|
1048
|
-
),
|
|
1049
|
-
type,
|
|
1050
|
-
)
|
|
1051
|
-
and issubclass(field_type, Component)
|
|
1052
|
-
}
|
|
1053
|
-
|
|
1054
|
-
def _get_components_in_props(self) -> Sequence[BaseComponent]:
|
|
1055
|
-
"""Get the components in the props.
|
|
1056
|
-
|
|
1057
|
-
Returns:
|
|
1058
|
-
The components in the props
|
|
1059
|
-
"""
|
|
1060
|
-
if self._are_fields_known():
|
|
1061
|
-
return [
|
|
1062
|
-
component
|
|
1063
|
-
for name in self._get_component_prop_names()
|
|
1064
|
-
for component in _components_from(getattr(self, name))
|
|
1065
|
-
]
|
|
1024
|
+
@functools.cached_property
|
|
1025
|
+
def _get_component_prop_property(self) -> Sequence[BaseComponent]:
|
|
1066
1026
|
return [
|
|
1067
1027
|
component
|
|
1068
1028
|
for prop in self.get_props()
|
|
@@ -1071,6 +1031,14 @@ class Component(BaseComponent, ABC):
|
|
|
1071
1031
|
for component in _components_from(value)
|
|
1072
1032
|
]
|
|
1073
1033
|
|
|
1034
|
+
def _get_components_in_props(self) -> Sequence[BaseComponent]:
|
|
1035
|
+
"""Get the components in the props.
|
|
1036
|
+
|
|
1037
|
+
Returns:
|
|
1038
|
+
The components in the props
|
|
1039
|
+
"""
|
|
1040
|
+
return self._get_component_prop_property
|
|
1041
|
+
|
|
1074
1042
|
@classmethod
|
|
1075
1043
|
def _validate_children(cls, children: tuple | list):
|
|
1076
1044
|
from reflex.utils.exceptions import ChildrenTypeError
|
|
@@ -1541,19 +1509,19 @@ class Component(BaseComponent, ABC):
|
|
|
1541
1509
|
"""
|
|
1542
1510
|
return None
|
|
1543
1511
|
|
|
1544
|
-
def _get_all_custom_code(self) ->
|
|
1512
|
+
def _get_all_custom_code(self) -> dict[str, None]:
|
|
1545
1513
|
"""Get custom code for the component and its children.
|
|
1546
1514
|
|
|
1547
1515
|
Returns:
|
|
1548
1516
|
The custom code.
|
|
1549
1517
|
"""
|
|
1550
1518
|
# Store the code in a set to avoid duplicates.
|
|
1551
|
-
code =
|
|
1519
|
+
code: dict[str, None] = {}
|
|
1552
1520
|
|
|
1553
1521
|
# Add the custom code for this component.
|
|
1554
1522
|
custom_code = self._get_custom_code()
|
|
1555
1523
|
if custom_code is not None:
|
|
1556
|
-
code
|
|
1524
|
+
code[custom_code] = None
|
|
1557
1525
|
|
|
1558
1526
|
for component in self._get_components_in_props():
|
|
1559
1527
|
code |= component._get_all_custom_code()
|
|
@@ -1561,7 +1529,7 @@ class Component(BaseComponent, ABC):
|
|
|
1561
1529
|
# Add the custom code from add_custom_code method.
|
|
1562
1530
|
for clz in self._iter_parent_classes_with_method("add_custom_code"):
|
|
1563
1531
|
for item in clz.add_custom_code(self):
|
|
1564
|
-
code
|
|
1532
|
+
code[item] = None
|
|
1565
1533
|
|
|
1566
1534
|
# Add the custom code for the children.
|
|
1567
1535
|
for child in self.children:
|
|
@@ -1846,7 +1814,7 @@ class Component(BaseComponent, ABC):
|
|
|
1846
1814
|
|
|
1847
1815
|
# Add the hook code for the children.
|
|
1848
1816
|
for child in self.children:
|
|
1849
|
-
code
|
|
1817
|
+
code.update(child._get_all_hooks_internal())
|
|
1850
1818
|
|
|
1851
1819
|
return code
|
|
1852
1820
|
|
|
@@ -1870,7 +1838,7 @@ class Component(BaseComponent, ABC):
|
|
|
1870
1838
|
|
|
1871
1839
|
# Add the hook code for the children.
|
|
1872
1840
|
for child in self.children:
|
|
1873
|
-
code
|
|
1841
|
+
code.update(child._get_all_hooks())
|
|
1874
1842
|
|
|
1875
1843
|
return code
|
|
1876
1844
|
|
|
@@ -1885,16 +1853,16 @@ class Component(BaseComponent, ABC):
|
|
|
1885
1853
|
return None
|
|
1886
1854
|
return format.format_ref(self.id)
|
|
1887
1855
|
|
|
1888
|
-
def _get_all_refs(self) ->
|
|
1856
|
+
def _get_all_refs(self) -> dict[str, None]:
|
|
1889
1857
|
"""Get the refs for the children of the component.
|
|
1890
1858
|
|
|
1891
1859
|
Returns:
|
|
1892
1860
|
The refs for the children.
|
|
1893
1861
|
"""
|
|
1894
|
-
refs =
|
|
1862
|
+
refs = {}
|
|
1895
1863
|
ref = self.get_ref()
|
|
1896
1864
|
if ref is not None:
|
|
1897
|
-
refs
|
|
1865
|
+
refs[ref] = None
|
|
1898
1866
|
for child in self.children:
|
|
1899
1867
|
refs |= child._get_all_refs()
|
|
1900
1868
|
for component in self._get_components_in_props():
|
|
@@ -2026,7 +1994,7 @@ class CustomComponent(Component):
|
|
|
2026
1994
|
)
|
|
2027
1995
|
|
|
2028
1996
|
to_camel_cased_props = {
|
|
2029
|
-
format.to_camel_case(key + MEMO_MARKER)
|
|
1997
|
+
format.to_camel_case(key + MEMO_MARKER): None
|
|
2030
1998
|
for key in props
|
|
2031
1999
|
if key not in event_types
|
|
2032
2000
|
}
|
|
@@ -2060,15 +2028,6 @@ class CustomComponent(Component):
|
|
|
2060
2028
|
self.props[camel_cased_key] = value
|
|
2061
2029
|
setattr(self, camel_cased_key, value)
|
|
2062
2030
|
|
|
2063
|
-
@classmethod
|
|
2064
|
-
def _are_fields_known(cls) -> bool:
|
|
2065
|
-
"""Check if the fields are known.
|
|
2066
|
-
|
|
2067
|
-
Returns:
|
|
2068
|
-
Whether the fields are known.
|
|
2069
|
-
"""
|
|
2070
|
-
return False
|
|
2071
|
-
|
|
2072
2031
|
def __eq__(self, other: Any) -> bool:
|
|
2073
2032
|
"""Check if the component is equal to another.
|
|
2074
2033
|
|
|
@@ -2089,13 +2048,13 @@ class CustomComponent(Component):
|
|
|
2089
2048
|
return hash(self.tag)
|
|
2090
2049
|
|
|
2091
2050
|
@classmethod
|
|
2092
|
-
def get_props(cls) ->
|
|
2051
|
+
def get_props(cls) -> Iterable[str]:
|
|
2093
2052
|
"""Get the props for the component.
|
|
2094
2053
|
|
|
2095
2054
|
Returns:
|
|
2096
2055
|
The set of component props.
|
|
2097
2056
|
"""
|
|
2098
|
-
return
|
|
2057
|
+
return ()
|
|
2099
2058
|
|
|
2100
2059
|
@staticmethod
|
|
2101
2060
|
def _get_event_spec_from_args_spec(name: str, event: EventChain) -> Callable:
|
|
@@ -2697,7 +2656,7 @@ class StatefulComponent(BaseComponent):
|
|
|
2697
2656
|
return set()
|
|
2698
2657
|
return self.component._get_all_dynamic_imports()
|
|
2699
2658
|
|
|
2700
|
-
def _get_all_custom_code(self, export: bool = False) ->
|
|
2659
|
+
def _get_all_custom_code(self, export: bool = False) -> dict[str, None]:
|
|
2701
2660
|
"""Get custom code for the component.
|
|
2702
2661
|
|
|
2703
2662
|
Args:
|
|
@@ -2707,19 +2666,19 @@ class StatefulComponent(BaseComponent):
|
|
|
2707
2666
|
The custom code.
|
|
2708
2667
|
"""
|
|
2709
2668
|
if self.rendered_as_shared:
|
|
2710
|
-
return
|
|
2711
|
-
return self.component._get_all_custom_code()
|
|
2712
|
-
{self._render_stateful_code(export=export)}
|
|
2669
|
+
return {}
|
|
2670
|
+
return self.component._get_all_custom_code() | (
|
|
2671
|
+
{self._render_stateful_code(export=export): None}
|
|
2713
2672
|
)
|
|
2714
2673
|
|
|
2715
|
-
def _get_all_refs(self) ->
|
|
2674
|
+
def _get_all_refs(self) -> dict[str, None]:
|
|
2716
2675
|
"""Get the refs for the children of the component.
|
|
2717
2676
|
|
|
2718
2677
|
Returns:
|
|
2719
2678
|
The refs for the children.
|
|
2720
2679
|
"""
|
|
2721
2680
|
if self.rendered_as_shared:
|
|
2722
|
-
return
|
|
2681
|
+
return {}
|
|
2723
2682
|
return self.component._get_all_refs()
|
|
2724
2683
|
|
|
2725
2684
|
def render(self) -> dict:
|
|
@@ -132,7 +132,7 @@ class DebounceInput(Component):
|
|
|
132
132
|
component.children = child.children
|
|
133
133
|
component._rename_props = child._rename_props # pyright: ignore[reportAttributeAccessIssue]
|
|
134
134
|
outer_get_all_custom_code = component._get_all_custom_code
|
|
135
|
-
component._get_all_custom_code = lambda: outer_get_all_custom_code()
|
|
135
|
+
component._get_all_custom_code = lambda: outer_get_all_custom_code() | (
|
|
136
136
|
child._get_all_custom_code()
|
|
137
137
|
)
|
|
138
138
|
return component
|
|
@@ -5,6 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
import functools
|
|
6
6
|
import inspect
|
|
7
7
|
from collections.abc import Callable, Iterable
|
|
8
|
+
from hashlib import md5
|
|
8
9
|
from typing import Any
|
|
9
10
|
|
|
10
11
|
from reflex.components.base.fragment import Fragment
|
|
@@ -141,25 +142,12 @@ class Foreach(Component):
|
|
|
141
142
|
else:
|
|
142
143
|
render_fn = self.render_fn
|
|
143
144
|
# Otherwise, use a deterministic index, based on the render function bytecode.
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
repr(self.render_fn)
|
|
151
|
-
if not isinstance(render_fn, functools.partial)
|
|
152
|
-
else render_fn.func.__code__
|
|
153
|
-
),
|
|
154
|
-
)
|
|
155
|
-
)
|
|
156
|
-
.to_bytes(
|
|
157
|
-
length=8,
|
|
158
|
-
byteorder="big",
|
|
159
|
-
signed=True,
|
|
160
|
-
)
|
|
161
|
-
.hex()
|
|
162
|
-
)
|
|
145
|
+
if (render_fn_code := getattr(render_fn, "__code__", None)) is not None:
|
|
146
|
+
code_hash = md5(render_fn_code.co_code).hexdigest()
|
|
147
|
+
elif isinstance(render_fn, functools.partial):
|
|
148
|
+
code_hash = md5(render_fn.func.__code__.co_code).hexdigest()
|
|
149
|
+
else:
|
|
150
|
+
code_hash = md5(repr(render_fn).encode()).hexdigest()
|
|
163
151
|
props["index_var_name"] = f"index_{code_hash}"
|
|
164
152
|
|
|
165
153
|
return IterTag(
|
|
@@ -22,6 +22,9 @@ class StickyLogo(Svg):
|
|
|
22
22
|
width: Var[int | str] | int | str | None = None,
|
|
23
23
|
height: Var[int | str] | int | str | None = None,
|
|
24
24
|
xmlns: Var[str] | str | None = None,
|
|
25
|
+
view_box: Var[str] | str | None = None,
|
|
26
|
+
preserve_aspect_ratio: Var[str] | str | None = None,
|
|
27
|
+
transform: Var[str] | str | None = None,
|
|
25
28
|
access_key: Var[str] | str | None = None,
|
|
26
29
|
auto_capitalize: Literal[
|
|
27
30
|
"characters", "none", "off", "on", "sentences", "words"
|
|
@@ -260,7 +260,7 @@ class Upload(MemoizationLeaf):
|
|
|
260
260
|
props["class_name"] = ["rx-Upload", *given_class_name]
|
|
261
261
|
|
|
262
262
|
# get only upload component props
|
|
263
|
-
supported_props = cls.get_props()
|
|
263
|
+
supported_props = set(cls.get_props()) | {"on_drop"}
|
|
264
264
|
upload_props = {
|
|
265
265
|
key: value for key, value in props.items() if key in supported_props
|
|
266
266
|
}
|
|
@@ -81,9 +81,7 @@ def load_dynamic_serializer():
|
|
|
81
81
|
rendered_components.update(dict.fromkeys(dynamic_imports))
|
|
82
82
|
|
|
83
83
|
# Include custom code in the shared component.
|
|
84
|
-
rendered_components.update(
|
|
85
|
-
dict.fromkeys(component._get_all_custom_code()),
|
|
86
|
-
)
|
|
84
|
+
rendered_components.update(component._get_all_custom_code())
|
|
87
85
|
|
|
88
86
|
rendered_components[
|
|
89
87
|
templates.stateful_component_template(
|
|
@@ -770,7 +770,7 @@ class Textarea(BaseHTML):
|
|
|
770
770
|
"enter_key_submit",
|
|
771
771
|
]
|
|
772
772
|
|
|
773
|
-
def _get_all_custom_code(self) ->
|
|
773
|
+
def _get_all_custom_code(self) -> dict[str, None]:
|
|
774
774
|
"""Include the custom code for auto_height and enter_key_submit functionality.
|
|
775
775
|
|
|
776
776
|
Returns:
|
|
@@ -778,9 +778,9 @@ class Textarea(BaseHTML):
|
|
|
778
778
|
"""
|
|
779
779
|
custom_code = super()._get_all_custom_code()
|
|
780
780
|
if self.auto_height is not None:
|
|
781
|
-
custom_code
|
|
781
|
+
custom_code[AUTO_HEIGHT_JS] = None
|
|
782
782
|
if self.enter_key_submit is not None:
|
|
783
|
-
custom_code
|
|
783
|
+
custom_code[ENTER_KEY_SUBMIT_JS] = None
|
|
784
784
|
return custom_code
|
|
785
785
|
|
|
786
786
|
|