reflex 0.8.9a1__tar.gz → 0.8.10__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.10}/PKG-INFO +4 -3
- {reflex-0.8.9a1 → reflex-0.8.10}/pyproject.toml +13 -15
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +11 -1
- reflex-0.8.10/reflex/.templates/web/utils/helpers/upload.js +170 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/utils/state.js +10 -159
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/app.py +9 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/compiler/compiler.py +3 -5
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/compiler/templates.py +1 -6
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/compiler/utils.py +16 -2
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/bare.py +2 -2
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/component.py +33 -74
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/debounce.py +1 -1
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/foreach.py +7 -19
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/sticky.pyi +3 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/upload.py +1 -1
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/dynamic.py +1 -3
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/forms.py +3 -3
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/media.pyi +5869 -5
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/lucide/icon.py +2 -1
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/lucide/icon.pyi +5 -1
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/config.py +33 -6
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/environment.py +13 -1
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/event.py +30 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/model.py +4 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/types.py +4 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/vars/base.py +9 -2
- {reflex-0.8.9a1 → reflex-0.8.10}/.gitignore +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/LICENSE +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/README.md +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/apps/blank/code/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/apps/blank/code/blank.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/.gitignore +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/app/entry.client.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/app/routes.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/components/shiki/code.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/jsconfig.json +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/postcss.config.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/react-router.config.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/styles/__reflex_style_reset.css +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/utils/helpers/paste.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/utils/helpers/range.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/utils/react-theme.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/.templates/web/vite-plugin-safari-cachebust.js +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/__main__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/admin.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/app_mixins/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/app_mixins/lifespan.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/app_mixins/middleware.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/app_mixins/mixin.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/assets.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/compiler/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/app_wrap.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/app_wrap.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/body.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/body.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/document.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/document.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/error_boundary.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/error_boundary.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/fragment.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/fragment.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/link.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/link.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/meta.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/meta.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/script.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/script.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/strict_mode.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/base/strict_mode.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/auto_scroll.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/auto_scroll.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/banner.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/banner.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/breakpoints.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/clipboard.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/clipboard.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/colors.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/cond.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/debounce.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/helmet.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/helmet.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/html.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/html.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/layout/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/match.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/responsive.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/sticky.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/upload.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/window_events.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/core/window_events.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/datadisplay/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/datadisplay/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/datadisplay/code.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/datadisplay/code.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/datadisplay/dataeditor.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/datadisplay/dataeditor.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/datadisplay/logo.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/datadisplay/shiki_code_block.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/element.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/element.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/base.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/forms.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/inline.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/inline.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/media.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/metadata.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/metadata.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/other.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/other.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/scripts.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/scripts.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/sectioning.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/sectioning.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/tables.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/tables.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/typography.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/el/elements/typography.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/field.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/gridjs/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/gridjs/datatable.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/gridjs/datatable.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/literals.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/lucide/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/markdown/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/markdown/markdown.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/markdown/markdown.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/moment/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/moment/moment.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/moment/moment.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/plotly/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/plotly/plotly.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/plotly/plotly.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/props.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/primitives/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/primitives/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/primitives/accordion.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/primitives/accordion.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/primitives/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/primitives/base.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/primitives/drawer.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/primitives/drawer.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/primitives/form.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/primitives/form.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/primitives/progress.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/primitives/progress.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/primitives/slider.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/primitives/slider.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/base.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/color_mode.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/color_mode.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/avatar.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/avatar.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/badge.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/badge.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/button.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/button.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/callout.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/callout.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/card.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/card.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/checkbox.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/context_menu.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/data_list.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/data_list.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/dialog.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/dialog.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/hover_card.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/icon_button.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/inset.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/inset.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/popover.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/popover.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/progress.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/progress.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/radio.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/radio.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/radio_cards.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/radio_group.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/scroll_area.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/segmented_control.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/select.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/select.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/separator.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/separator.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/skeleton.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/slider.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/slider.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/spinner.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/spinner.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/switch.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/switch.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/table.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/table.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/tabs.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/tabs.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/text_area.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/text_area.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/text_field.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/text_field.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/tooltip.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/base.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/box.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/box.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/center.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/center.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/container.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/container.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/flex.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/flex.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/grid.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/grid.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/list.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/list.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/section.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/section.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/spacer.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/stack.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/layout/stack.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/typography/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/typography/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/typography/blockquote.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/typography/code.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/typography/code.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/typography/heading.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/typography/heading.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/typography/link.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/typography/link.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/typography/text.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/radix/themes/typography/text.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/react_player/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/react_player/audio.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/react_player/audio.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/react_player/react_player.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/react_player/react_player.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/react_player/video.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/react_player/video.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/react_router/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/react_router/dom.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/react_router/dom.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/recharts/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/recharts/__init__.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/recharts/cartesian.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/recharts/cartesian.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/recharts/charts.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/recharts/charts.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/recharts/general.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/recharts/general.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/recharts/polar.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/recharts/polar.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/recharts/recharts.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/recharts/recharts.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/sonner/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/sonner/toast.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/sonner/toast.pyi +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/tags/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/tags/cond_tag.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/tags/iter_tag.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/tags/match_tag.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/tags/tag.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/components/tags/tagless.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/constants/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/constants/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/constants/colors.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/constants/compiler.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/constants/config.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/constants/custom_components.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/constants/event.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/constants/installer.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/constants/route.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/constants/state.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/constants/utils.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/custom_components/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/custom_components/custom_components.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/experimental/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/experimental/client_state.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/experimental/hooks.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/istate/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/istate/data.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/istate/dynamic.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/istate/manager.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/istate/proxy.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/istate/storage.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/istate/wrappers.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/middleware/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/middleware/hydrate_middleware.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/middleware/middleware.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/page.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/plugins/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/plugins/_screenshot.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/plugins/base.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/plugins/shared_tailwind.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/plugins/sitemap.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/plugins/tailwind_v3.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/plugins/tailwind_v4.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/py.typed +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/reflex.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/route.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/state.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/style.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/testing.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/build.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/codespaces.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/compat.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/console.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/decorator.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/exceptions.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/exec.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/export.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/format.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/frontend_skeleton.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/imports.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/js_runtimes.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/lazy_loader.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/misc.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/monitoring.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/net.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/path_ops.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/prerequisites.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/processes.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/pyi_generator.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/redir.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/registry.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/rename.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/serializers.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/telemetry.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/templates.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/utils/token_manager.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/vars/__init__.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/vars/datetime.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/vars/dep_tracking.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/vars/function.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/vars/number.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/vars/object.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/reflex/vars/sequence.py +0 -0
- {reflex-0.8.9a1 → reflex-0.8.10}/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.10
|
|
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.10"
|
|
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
|
{
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import JSON5 from "json5";
|
|
2
|
+
import env from "$/env.json";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Upload files to the server.
|
|
6
|
+
*
|
|
7
|
+
* @param state The state to apply the delta to.
|
|
8
|
+
* @param handler The handler to use.
|
|
9
|
+
* @param upload_id The upload id to use.
|
|
10
|
+
* @param on_upload_progress The function to call on upload progress.
|
|
11
|
+
* @param socket the websocket connection
|
|
12
|
+
* @param extra_headers Extra headers to send with the request.
|
|
13
|
+
* @param refs The refs object to store the abort controller in.
|
|
14
|
+
* @param getBackendURL Function to get the backend URL.
|
|
15
|
+
* @param getToken Function to get the Reflex token.
|
|
16
|
+
*
|
|
17
|
+
* @returns The response from posting to the UPLOADURL endpoint.
|
|
18
|
+
*/
|
|
19
|
+
export const uploadFiles = async (
|
|
20
|
+
handler,
|
|
21
|
+
files,
|
|
22
|
+
upload_id,
|
|
23
|
+
on_upload_progress,
|
|
24
|
+
extra_headers,
|
|
25
|
+
socket,
|
|
26
|
+
refs,
|
|
27
|
+
getBackendURL,
|
|
28
|
+
getToken,
|
|
29
|
+
) => {
|
|
30
|
+
// return if there's no file to upload
|
|
31
|
+
if (files === undefined || files.length === 0) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const upload_ref_name = `__upload_controllers_${upload_id}`;
|
|
36
|
+
|
|
37
|
+
if (refs[upload_ref_name]) {
|
|
38
|
+
console.log("Upload already in progress for ", upload_id);
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Track how many partial updates have been processed for this upload.
|
|
43
|
+
let resp_idx = 0;
|
|
44
|
+
const eventHandler = (progressEvent) => {
|
|
45
|
+
const event_callbacks = socket._callbacks.$event;
|
|
46
|
+
// Whenever called, responseText will contain the entire response so far.
|
|
47
|
+
const chunks = progressEvent.event.target.responseText.trim().split("\n");
|
|
48
|
+
// So only process _new_ chunks beyond resp_idx.
|
|
49
|
+
chunks.slice(resp_idx).map((chunk_json) => {
|
|
50
|
+
try {
|
|
51
|
+
const chunk = JSON5.parse(chunk_json);
|
|
52
|
+
event_callbacks.map((f, ix) => {
|
|
53
|
+
f(chunk)
|
|
54
|
+
.then(() => {
|
|
55
|
+
if (ix === event_callbacks.length - 1) {
|
|
56
|
+
// Mark this chunk as processed.
|
|
57
|
+
resp_idx += 1;
|
|
58
|
+
}
|
|
59
|
+
})
|
|
60
|
+
.catch((e) => {
|
|
61
|
+
if (progressEvent.progress === 1) {
|
|
62
|
+
// Chunk may be incomplete, so only report errors when full response is available.
|
|
63
|
+
console.log("Error processing chunk", chunk, e);
|
|
64
|
+
}
|
|
65
|
+
return;
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
} catch (e) {
|
|
69
|
+
if (progressEvent.progress === 1) {
|
|
70
|
+
console.log("Error parsing chunk", chunk_json, e);
|
|
71
|
+
}
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const controller = new AbortController();
|
|
78
|
+
const formdata = new FormData();
|
|
79
|
+
|
|
80
|
+
// Add the token and handler to the file name.
|
|
81
|
+
files.forEach((file) => {
|
|
82
|
+
formdata.append("files", file, file.path || file.name);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
// Send the file to the server.
|
|
86
|
+
refs[upload_ref_name] = controller;
|
|
87
|
+
|
|
88
|
+
return new Promise((resolve, reject) => {
|
|
89
|
+
const xhr = new XMLHttpRequest();
|
|
90
|
+
|
|
91
|
+
// Set up event handlers
|
|
92
|
+
xhr.onload = function () {
|
|
93
|
+
if (xhr.status >= 200 && xhr.status < 300) {
|
|
94
|
+
resolve({
|
|
95
|
+
data: xhr.responseText,
|
|
96
|
+
status: xhr.status,
|
|
97
|
+
statusText: xhr.statusText,
|
|
98
|
+
headers: {
|
|
99
|
+
get: (name) => xhr.getResponseHeader(name),
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
} else {
|
|
103
|
+
reject(new Error(`HTTP error! status: ${xhr.status}`));
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
xhr.onerror = function () {
|
|
108
|
+
reject(new Error("Network error"));
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
xhr.onabort = function () {
|
|
112
|
+
reject(new Error("Upload aborted"));
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
// Handle upload progress
|
|
116
|
+
if (on_upload_progress) {
|
|
117
|
+
xhr.upload.onprogress = function (event) {
|
|
118
|
+
if (event.lengthComputable) {
|
|
119
|
+
const progressEvent = {
|
|
120
|
+
loaded: event.loaded,
|
|
121
|
+
total: event.total,
|
|
122
|
+
progress: event.loaded / event.total,
|
|
123
|
+
};
|
|
124
|
+
on_upload_progress(progressEvent);
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Handle download progress with streaming response parsing
|
|
130
|
+
xhr.onprogress = function (event) {
|
|
131
|
+
if (eventHandler) {
|
|
132
|
+
const progressEvent = {
|
|
133
|
+
event: {
|
|
134
|
+
target: {
|
|
135
|
+
responseText: xhr.responseText,
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
progress: event.lengthComputable ? event.loaded / event.total : 0,
|
|
139
|
+
};
|
|
140
|
+
eventHandler(progressEvent);
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
// Handle abort controller
|
|
145
|
+
controller.signal.addEventListener("abort", () => {
|
|
146
|
+
xhr.abort();
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
// Configure and send request
|
|
150
|
+
xhr.open("POST", getBackendURL(env.UPLOAD));
|
|
151
|
+
xhr.setRequestHeader("Reflex-Client-Token", getToken());
|
|
152
|
+
xhr.setRequestHeader("Reflex-Event-Handler", handler);
|
|
153
|
+
for (const [key, value] of Object.entries(extra_headers || {})) {
|
|
154
|
+
xhr.setRequestHeader(key, value);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
try {
|
|
158
|
+
xhr.send(formdata);
|
|
159
|
+
} catch (error) {
|
|
160
|
+
reject(error);
|
|
161
|
+
}
|
|
162
|
+
})
|
|
163
|
+
.catch((error) => {
|
|
164
|
+
console.log("Upload error:", error.message);
|
|
165
|
+
return false;
|
|
166
|
+
})
|
|
167
|
+
.finally(() => {
|
|
168
|
+
delete refs[upload_ref_name];
|
|
169
|
+
});
|
|
170
|
+
};
|
|
@@ -20,10 +20,10 @@ import {
|
|
|
20
20
|
} from "$/utils/context";
|
|
21
21
|
import debounce from "$/utils/helpers/debounce";
|
|
22
22
|
import throttle from "$/utils/helpers/throttle";
|
|
23
|
+
import { uploadFiles } from "$/utils/helpers/upload";
|
|
23
24
|
|
|
24
25
|
// Endpoint URLs.
|
|
25
26
|
const EVENTURL = env.EVENT;
|
|
26
|
-
const UPLOADURL = env.UPLOAD;
|
|
27
27
|
|
|
28
28
|
// These hostnames indicate that the backend and frontend are reachable via the same domain.
|
|
29
29
|
const SAME_DOMAIN_HOSTNAMES = ["localhost", "0.0.0.0", "::", "0:0:0:0:0:0:0:0"];
|
|
@@ -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);
|
|
@@ -428,7 +432,11 @@ export const applyRestEvent = async (event, socket, navigate, params) => {
|
|
|
428
432
|
event.payload.files,
|
|
429
433
|
event.payload.upload_id,
|
|
430
434
|
event.payload.on_upload_progress,
|
|
435
|
+
event.payload.extra_headers,
|
|
431
436
|
socket,
|
|
437
|
+
refs,
|
|
438
|
+
getBackendURL,
|
|
439
|
+
getToken,
|
|
432
440
|
);
|
|
433
441
|
return false;
|
|
434
442
|
}
|
|
@@ -610,163 +618,6 @@ export const connect = async (
|
|
|
610
618
|
document.addEventListener("visibilitychange", checkVisibility);
|
|
611
619
|
};
|
|
612
620
|
|
|
613
|
-
/**
|
|
614
|
-
* Upload files to the server.
|
|
615
|
-
*
|
|
616
|
-
* @param state The state to apply the delta to.
|
|
617
|
-
* @param handler The handler to use.
|
|
618
|
-
* @param upload_id The upload id to use.
|
|
619
|
-
* @param on_upload_progress The function to call on upload progress.
|
|
620
|
-
* @param socket the websocket connection
|
|
621
|
-
*
|
|
622
|
-
* @returns The response from posting to the UPLOADURL endpoint.
|
|
623
|
-
*/
|
|
624
|
-
export const uploadFiles = async (
|
|
625
|
-
handler,
|
|
626
|
-
files,
|
|
627
|
-
upload_id,
|
|
628
|
-
on_upload_progress,
|
|
629
|
-
socket,
|
|
630
|
-
) => {
|
|
631
|
-
// return if there's no file to upload
|
|
632
|
-
if (files === undefined || files.length === 0) {
|
|
633
|
-
return false;
|
|
634
|
-
}
|
|
635
|
-
|
|
636
|
-
const upload_ref_name = `__upload_controllers_${upload_id}`;
|
|
637
|
-
|
|
638
|
-
if (refs[upload_ref_name]) {
|
|
639
|
-
console.log("Upload already in progress for ", upload_id);
|
|
640
|
-
return false;
|
|
641
|
-
}
|
|
642
|
-
|
|
643
|
-
// Track how many partial updates have been processed for this upload.
|
|
644
|
-
let resp_idx = 0;
|
|
645
|
-
const eventHandler = (progressEvent) => {
|
|
646
|
-
const event_callbacks = socket._callbacks.$event;
|
|
647
|
-
// Whenever called, responseText will contain the entire response so far.
|
|
648
|
-
const chunks = progressEvent.event.target.responseText.trim().split("\n");
|
|
649
|
-
// So only process _new_ chunks beyond resp_idx.
|
|
650
|
-
chunks.slice(resp_idx).map((chunk_json) => {
|
|
651
|
-
try {
|
|
652
|
-
const chunk = JSON5.parse(chunk_json);
|
|
653
|
-
event_callbacks.map((f, ix) => {
|
|
654
|
-
f(chunk)
|
|
655
|
-
.then(() => {
|
|
656
|
-
if (ix === event_callbacks.length - 1) {
|
|
657
|
-
// Mark this chunk as processed.
|
|
658
|
-
resp_idx += 1;
|
|
659
|
-
}
|
|
660
|
-
})
|
|
661
|
-
.catch((e) => {
|
|
662
|
-
if (progressEvent.progress === 1) {
|
|
663
|
-
// Chunk may be incomplete, so only report errors when full response is available.
|
|
664
|
-
console.log("Error processing chunk", chunk, e);
|
|
665
|
-
}
|
|
666
|
-
return;
|
|
667
|
-
});
|
|
668
|
-
});
|
|
669
|
-
} catch (e) {
|
|
670
|
-
if (progressEvent.progress === 1) {
|
|
671
|
-
console.log("Error parsing chunk", chunk_json, e);
|
|
672
|
-
}
|
|
673
|
-
return;
|
|
674
|
-
}
|
|
675
|
-
});
|
|
676
|
-
};
|
|
677
|
-
|
|
678
|
-
const controller = new AbortController();
|
|
679
|
-
const formdata = new FormData();
|
|
680
|
-
|
|
681
|
-
// Add the token and handler to the file name.
|
|
682
|
-
files.forEach((file) => {
|
|
683
|
-
formdata.append("files", file, file.path || file.name);
|
|
684
|
-
});
|
|
685
|
-
|
|
686
|
-
// Send the file to the server.
|
|
687
|
-
refs[upload_ref_name] = controller;
|
|
688
|
-
|
|
689
|
-
return new Promise((resolve, reject) => {
|
|
690
|
-
const xhr = new XMLHttpRequest();
|
|
691
|
-
|
|
692
|
-
// Set up event handlers
|
|
693
|
-
xhr.onload = function () {
|
|
694
|
-
if (xhr.status >= 200 && xhr.status < 300) {
|
|
695
|
-
resolve({
|
|
696
|
-
data: xhr.responseText,
|
|
697
|
-
status: xhr.status,
|
|
698
|
-
statusText: xhr.statusText,
|
|
699
|
-
headers: {
|
|
700
|
-
get: (name) => xhr.getResponseHeader(name),
|
|
701
|
-
},
|
|
702
|
-
});
|
|
703
|
-
} else {
|
|
704
|
-
reject(new Error(`HTTP error! status: ${xhr.status}`));
|
|
705
|
-
}
|
|
706
|
-
};
|
|
707
|
-
|
|
708
|
-
xhr.onerror = function () {
|
|
709
|
-
reject(new Error("Network error"));
|
|
710
|
-
};
|
|
711
|
-
|
|
712
|
-
xhr.onabort = function () {
|
|
713
|
-
reject(new Error("Upload aborted"));
|
|
714
|
-
};
|
|
715
|
-
|
|
716
|
-
// Handle upload progress
|
|
717
|
-
if (on_upload_progress) {
|
|
718
|
-
xhr.upload.onprogress = function (event) {
|
|
719
|
-
if (event.lengthComputable) {
|
|
720
|
-
const progressEvent = {
|
|
721
|
-
loaded: event.loaded,
|
|
722
|
-
total: event.total,
|
|
723
|
-
progress: event.loaded / event.total,
|
|
724
|
-
};
|
|
725
|
-
on_upload_progress(progressEvent);
|
|
726
|
-
}
|
|
727
|
-
};
|
|
728
|
-
}
|
|
729
|
-
|
|
730
|
-
// Handle download progress with streaming response parsing
|
|
731
|
-
xhr.onprogress = function (event) {
|
|
732
|
-
if (eventHandler) {
|
|
733
|
-
const progressEvent = {
|
|
734
|
-
event: {
|
|
735
|
-
target: {
|
|
736
|
-
responseText: xhr.responseText,
|
|
737
|
-
},
|
|
738
|
-
},
|
|
739
|
-
progress: event.lengthComputable ? event.loaded / event.total : 0,
|
|
740
|
-
};
|
|
741
|
-
eventHandler(progressEvent);
|
|
742
|
-
}
|
|
743
|
-
};
|
|
744
|
-
|
|
745
|
-
// Handle abort controller
|
|
746
|
-
controller.signal.addEventListener("abort", () => {
|
|
747
|
-
xhr.abort();
|
|
748
|
-
});
|
|
749
|
-
|
|
750
|
-
// Configure and send request
|
|
751
|
-
xhr.open("POST", getBackendURL(UPLOADURL));
|
|
752
|
-
xhr.setRequestHeader("Reflex-Client-Token", getToken());
|
|
753
|
-
xhr.setRequestHeader("Reflex-Event-Handler", handler);
|
|
754
|
-
|
|
755
|
-
try {
|
|
756
|
-
xhr.send(formdata);
|
|
757
|
-
} catch (error) {
|
|
758
|
-
reject(error);
|
|
759
|
-
}
|
|
760
|
-
})
|
|
761
|
-
.catch((error) => {
|
|
762
|
-
console.log("Upload error:", error.message);
|
|
763
|
-
return false;
|
|
764
|
-
})
|
|
765
|
-
.finally(() => {
|
|
766
|
-
delete refs[upload_ref_name];
|
|
767
|
-
});
|
|
768
|
-
};
|
|
769
|
-
|
|
770
621
|
/**
|
|
771
622
|
* Create an event object.
|
|
772
623
|
* @param {string} name The name of the event.
|
|
@@ -258,6 +258,15 @@ class UploadFile(StarletteUploadFile):
|
|
|
258
258
|
|
|
259
259
|
headers: Headers = dataclasses.field(default_factory=Headers)
|
|
260
260
|
|
|
261
|
+
@property
|
|
262
|
+
def filename(self) -> str | None:
|
|
263
|
+
"""Get the name of the uploaded file.
|
|
264
|
+
|
|
265
|
+
Returns:
|
|
266
|
+
The name of the uploaded file.
|
|
267
|
+
"""
|
|
268
|
+
return self.name
|
|
269
|
+
|
|
261
270
|
@property
|
|
262
271
|
def name(self) -> str | None:
|
|
263
272
|
"""Get the name of the uploaded file.
|
|
@@ -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:
|