reflex 0.7.14a6__tar.gz → 0.8.0a2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of reflex might be problematic. Click here for more details.
- {reflex-0.7.14a6 → reflex-0.8.0a2}/PKG-INFO +12 -5
- {reflex-0.7.14a6 → reflex-0.8.0a2}/README.md +11 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/pyproject.toml +3 -3
- reflex-0.8.0a2/reflex/.templates/jinja/app/rxconfig.py.jinja2 +9 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/package.json.jinja2 +1 -1
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +16 -10
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +1 -1
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -1
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +4 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/utils/context.js.jinja2 +25 -8
- reflex-0.8.0a2/reflex/.templates/web/app/entry.client.js +8 -0
- reflex-0.8.0a2/reflex/.templates/web/app/routes.js +10 -0
- reflex-0.8.0a2/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +35 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/postcss.config.js +1 -1
- reflex-0.8.0a2/reflex/.templates/web/react-router.config.js +6 -0
- reflex-0.8.0a2/reflex/.templates/web/utils/client_side_routing.js +45 -0
- reflex-0.8.0a2/reflex/.templates/web/utils/react-theme.js +92 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/utils/state.js +160 -67
- reflex-0.8.0a2/reflex/.templates/web/vite.config.js +32 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/__init__.py +1 -6
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/__init__.pyi +0 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/app.py +53 -116
- reflex-0.8.0a2/reflex/base.py +47 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/compiler/compiler.py +41 -8
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/compiler/templates.py +3 -3
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/compiler/utils.py +73 -33
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/__init__.py +0 -2
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/__init__.pyi +0 -3
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/__init__.py +1 -5
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/__init__.pyi +4 -6
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/app_wrap.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/body.pyi +5 -4
- reflex-0.8.0a2/reflex/components/base/document.py +39 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/document.pyi +83 -27
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/error_boundary.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/fragment.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/link.pyi +9 -7
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/meta.pyi +17 -13
- reflex-0.8.0a2/reflex/components/base/script.py +78 -0
- reflex-0.8.0a2/reflex/components/base/script.pyi +305 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/strict_mode.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/component.py +146 -217
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/__init__.py +1 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/__init__.pyi +1 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/auto_scroll.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/banner.pyi +25 -19
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/client_side_routing.py +7 -6
- reflex-0.8.0a2/reflex/components/core/client_side_routing.pyi +71 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/clipboard.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/debounce.py +1 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/debounce.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/foreach.py +3 -2
- reflex-0.8.0a2/reflex/components/core/helmet.py +14 -0
- reflex-0.7.14a6/reflex/components/next/base.pyi → reflex-0.8.0a2/reflex/components/core/helmet.pyi +10 -7
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/html.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/sticky.pyi +17 -13
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/upload.py +2 -1
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/upload.pyi +21 -16
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/code.py +2 -72
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/code.pyi +9 -10
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/dataeditor.pyi +11 -6
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/shiki_code_block.pyi +13 -10
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/dynamic.py +5 -5
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/element.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/base.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/forms.pyi +69 -52
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/inline.pyi +113 -85
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/media.pyi +105 -79
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/metadata.pyi +25 -19
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/other.pyi +29 -22
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/scripts.pyi +13 -10
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/sectioning.pyi +61 -46
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/tables.pyi +41 -31
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/typography.pyi +61 -46
- reflex-0.8.0a2/reflex/components/field.py +175 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/gridjs/datatable.py +2 -2
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/gridjs/datatable.pyi +11 -9
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/lucide/icon.py +6 -2
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/lucide/icon.pyi +15 -10
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/markdown/markdown.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/moment/moment.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/plotly/plotly.pyi +19 -10
- reflex-0.8.0a2/reflex/components/props.py +426 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/accordion.py +8 -1
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/accordion.pyi +29 -22
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/base.pyi +9 -7
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/drawer.pyi +45 -34
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/form.pyi +41 -31
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/progress.pyi +21 -16
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/slider.pyi +21 -16
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/base.py +3 -3
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/base.pyi +33 -25
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/color_mode.pyi +13 -10
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/alert_dialog.pyi +29 -22
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/aspect_ratio.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/avatar.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/badge.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/button.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/callout.pyi +21 -16
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/card.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox.pyi +13 -10
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox_cards.pyi +9 -7
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox_group.pyi +9 -7
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/context_menu.pyi +53 -40
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/data_list.pyi +17 -13
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/dialog.pyi +29 -22
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/dropdown_menu.pyi +33 -25
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/hover_card.pyi +17 -13
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/icon_button.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/inset.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/popover.pyi +17 -13
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/progress.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio_cards.pyi +9 -7
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio_group.pyi +17 -13
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/scroll_area.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/segmented_control.pyi +9 -7
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/select.pyi +37 -28
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/separator.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/skeleton.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/slider.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/spinner.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/switch.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/table.pyi +29 -22
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/tabs.pyi +21 -16
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/text_area.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/text_field.pyi +13 -10
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/tooltip.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/base.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/box.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/center.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/container.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/flex.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/grid.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/list.pyi +21 -16
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/section.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/spacer.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/stack.pyi +13 -10
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/blockquote.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/code.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/heading.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/link.py +46 -11
- reflex-0.8.0a2/reflex/components/radix/themes/typography/link.pyi +713 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/text.pyi +29 -22
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/react_player/audio.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/react_player/react_player.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/react_player/video.pyi +5 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/cartesian.py +2 -1
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/cartesian.pyi +65 -46
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/charts.py +4 -2
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/charts.pyi +36 -24
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/general.pyi +24 -18
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/polar.py +8 -4
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/polar.pyi +16 -10
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/recharts.pyi +9 -7
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/sonner/toast.py +2 -2
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/sonner/toast.pyi +10 -8
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/config.py +3 -77
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/__init__.py +2 -2
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/base.py +28 -11
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/compiler.py +5 -3
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/event.py +1 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/installer.py +22 -16
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/route.py +19 -7
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/state.py +2 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/custom_components/custom_components.py +0 -14
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/environment.py +1 -1
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/event.py +178 -81
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/experimental/__init__.py +0 -30
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/istate/proxy.py +5 -3
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/page.py +0 -27
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/plugins/__init__.py +3 -2
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/plugins/base.py +5 -1
- reflex-0.8.0a2/reflex/plugins/shared_tailwind.py +158 -0
- reflex-0.8.0a2/reflex/plugins/sitemap.py +206 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/plugins/tailwind_v3.py +13 -106
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/plugins/tailwind_v4.py +15 -108
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/reflex.py +1 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/route.py +15 -21
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/state.py +134 -140
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/testing.py +58 -10
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/build.py +38 -82
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/exec.py +59 -161
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/export.py +2 -2
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/imports.py +0 -4
- reflex-0.8.0a2/reflex/utils/misc.py +53 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/prerequisites.py +65 -62
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/processes.py +8 -7
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/pyi_generator.py +21 -9
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/serializers.py +14 -1
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/types.py +196 -61
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/__init__.py +2 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/base.py +367 -134
- reflex-0.7.14a6/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -6
- reflex-0.7.14a6/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -60
- reflex-0.7.14a6/reflex/.templates/web/next.config.js +0 -7
- reflex-0.7.14a6/reflex/.templates/web/utils/client_side_routing.js +0 -43
- reflex-0.7.14a6/reflex/base.py +0 -133
- reflex-0.7.14a6/reflex/components/base/document.py +0 -35
- reflex-0.7.14a6/reflex/components/base/head.py +0 -20
- reflex-0.7.14a6/reflex/components/base/head.pyi +0 -116
- reflex-0.7.14a6/reflex/components/base/script.py +0 -76
- reflex-0.7.14a6/reflex/components/base/script.pyi +0 -90
- reflex-0.7.14a6/reflex/components/core/client_side_routing.pyi +0 -121
- reflex-0.7.14a6/reflex/components/next/__init__.py +0 -10
- reflex-0.7.14a6/reflex/components/next/base.py +0 -7
- reflex-0.7.14a6/reflex/components/next/image.py +0 -117
- reflex-0.7.14a6/reflex/components/next/image.pyi +0 -94
- reflex-0.7.14a6/reflex/components/next/link.py +0 -20
- reflex-0.7.14a6/reflex/components/next/link.pyi +0 -67
- reflex-0.7.14a6/reflex/components/next/video.py +0 -38
- reflex-0.7.14a6/reflex/components/next/video.pyi +0 -68
- reflex-0.7.14a6/reflex/components/props.py +0 -77
- reflex-0.7.14a6/reflex/components/radix/themes/typography/link.pyi +0 -408
- reflex-0.7.14a6/reflex/components/suneditor/__init__.py +0 -5
- reflex-0.7.14a6/reflex/components/suneditor/editor.py +0 -269
- reflex-0.7.14a6/reflex/components/suneditor/editor.pyi +0 -199
- reflex-0.7.14a6/reflex/experimental/layout.py +0 -254
- reflex-0.7.14a6/reflex/experimental/layout.pyi +0 -814
- reflex-0.7.14a6/reflex/utils/misc.py +0 -25
- {reflex-0.7.14a6 → reflex-0.8.0a2}/.gitignore +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/LICENSE +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/apps/blank/code/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/apps/blank/code/blank.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/.gitignore +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/components/shiki/code.js +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/jsconfig.json +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/utils/helpers/paste.js +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/utils/helpers/range.js +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/__main__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/admin.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/app_mixins/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/app_mixins/lifespan.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/app_mixins/middleware.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/app_mixins/mixin.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/assets.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/compiler/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/app_wrap.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/bare.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/body.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/error_boundary.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/fragment.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/link.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/meta.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/strict_mode.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/auto_scroll.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/banner.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/breakpoints.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/clipboard.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/colors.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/cond.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/html.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/layout/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/match.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/responsive.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/sticky.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/__init__.pyi +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/dataeditor.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/logo.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/shiki_code_block.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/__init__.pyi +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/constants/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/constants/html.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/constants/react.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/constants/reflex.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/element.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/__init__.pyi +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/base.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/forms.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/inline.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/media.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/metadata.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/other.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/scripts.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/sectioning.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/tables.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/typography.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/gridjs/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/literals.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/lucide/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/markdown/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/markdown/markdown.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/moment/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/moment/moment.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/plotly/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/plotly/plotly.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/__init__.pyi +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/__init__.pyi +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/base.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/drawer.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/form.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/progress.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/slider.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/__init__.pyi +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/color_mode.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/__init__.pyi +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/avatar.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/badge.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/button.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/callout.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/card.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/context_menu.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/data_list.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/dialog.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/hover_card.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/icon_button.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/inset.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/popover.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/progress.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio_cards.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio_group.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/scroll_area.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/segmented_control.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/select.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/separator.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/skeleton.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/slider.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/spinner.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/switch.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/table.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/tabs.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/text_area.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/text_field.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/tooltip.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/base.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/box.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/center.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/container.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/flex.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/grid.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/list.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/section.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/spacer.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/stack.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/base.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/blockquote.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/code.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/heading.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/text.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/react_player/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/react_player/audio.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/react_player/react_player.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/react_player/video.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/__init__.pyi +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/general.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/recharts.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/sonner/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/tags/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/tags/cond_tag.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/tags/iter_tag.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/tags/match_tag.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/tags/tag.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/tags/tagless.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/colors.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/config.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/custom_components.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/utils.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/custom_components/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/experimental/client_state.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/experimental/hooks.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/istate/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/istate/data.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/istate/dynamic.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/istate/manager.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/istate/storage.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/istate/wrappers.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/middleware/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/middleware/hydrate_middleware.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/middleware/middleware.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/model.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/py.typed +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/style.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/__init__.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/codespaces.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/compat.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/console.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/decorator.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/exceptions.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/format.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/lazy_loader.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/net.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/path_ops.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/redir.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/registry.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/telemetry.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/datetime.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/dep_tracking.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/function.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/number.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/object.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/sequence.py +0 -0
- {reflex-0.7.14a6 → reflex-0.8.0a2}/scripts/hatch_build.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: reflex
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.0a2
|
|
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
|
|
@@ -39,8 +39,7 @@ Requires-Dist: wrapt<2.0,>=1.17.0
|
|
|
39
39
|
Description-Content-Type: text/markdown
|
|
40
40
|
|
|
41
41
|
<div align="center">
|
|
42
|
-
<img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/
|
|
43
|
-
<img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/reflex_light.svg#gh-dark-mode-only" alt="Reflex Logo" width="300px">
|
|
42
|
+
<img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/reflex.svg" alt="Reflex Logo" width="300px">
|
|
44
43
|
|
|
45
44
|
<hr>
|
|
46
45
|
|
|
@@ -60,7 +59,12 @@ Description-Content-Type: text/markdown
|
|
|
60
59
|
|
|
61
60
|
---
|
|
62
61
|
|
|
63
|
-
|
|
62
|
+
> [!NOTE]
|
|
63
|
+
> 🚀 **Try [Reflex Build](https://build.reflex.dev/)** – our AI-powered app builder that generates full-stack Reflex applications in seconds.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
# Introduction
|
|
64
68
|
|
|
65
69
|
Reflex is a library to build full-stack web apps in pure Python.
|
|
66
70
|
|
|
@@ -268,7 +272,10 @@ You can create a multi-page app by adding more pages.
|
|
|
268
272
|
|
|
269
273
|
Reflex launched in December 2022 with the name Pynecone.
|
|
270
274
|
|
|
271
|
-
|
|
275
|
+
🚀 Introducing [Reflex Build](https://build.reflex.dev/) — Our AI-Powered Builder
|
|
276
|
+
Reflex Build uses AI to generate complete full-stack Python applications. It helps you quickly create, customize, and refine your Reflex apps — from frontend components to backend logic — so you can focus on your ideas instead of boilerplate code. Whether you’re prototyping or scaling, Reflex Build accelerates development by intelligently scaffolding and optimizing your app’s entire stack.
|
|
277
|
+
|
|
278
|
+
Alongside this, [Reflex Cloud](https://cloud.reflex.dev) launched in 2025 to offer the best hosting experience for your Reflex apps. We’re continuously improving the platform with new features and capabilities.
|
|
272
279
|
|
|
273
280
|
Reflex has new releases and features coming every week! Make sure to :star: star and :eyes: watch this repository to stay up to date.
|
|
274
281
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<div align="center">
|
|
2
|
-
<img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/
|
|
3
|
-
<img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/reflex_light.svg#gh-dark-mode-only" alt="Reflex Logo" width="300px">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/reflex.svg" alt="Reflex Logo" width="300px">
|
|
4
3
|
|
|
5
4
|
<hr>
|
|
6
5
|
|
|
@@ -20,7 +19,12 @@
|
|
|
20
19
|
|
|
21
20
|
---
|
|
22
21
|
|
|
23
|
-
|
|
22
|
+
> [!NOTE]
|
|
23
|
+
> 🚀 **Try [Reflex Build](https://build.reflex.dev/)** – our AI-powered app builder that generates full-stack Reflex applications in seconds.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Introduction
|
|
24
28
|
|
|
25
29
|
Reflex is a library to build full-stack web apps in pure Python.
|
|
26
30
|
|
|
@@ -228,7 +232,10 @@ You can create a multi-page app by adding more pages.
|
|
|
228
232
|
|
|
229
233
|
Reflex launched in December 2022 with the name Pynecone.
|
|
230
234
|
|
|
231
|
-
|
|
235
|
+
🚀 Introducing [Reflex Build](https://build.reflex.dev/) — Our AI-Powered Builder
|
|
236
|
+
Reflex Build uses AI to generate complete full-stack Python applications. It helps you quickly create, customize, and refine your Reflex apps — from frontend components to backend logic — so you can focus on your ideas instead of boilerplate code. Whether you’re prototyping or scaling, Reflex Build accelerates development by intelligently scaffolding and optimizing your app’s entire stack.
|
|
237
|
+
|
|
238
|
+
Alongside this, [Reflex Cloud](https://cloud.reflex.dev) launched in 2025 to offer the best hosting experience for your Reflex apps. We’re continuously improving the platform with new features and capabilities.
|
|
232
239
|
|
|
233
240
|
Reflex has new releases and features coming every week! Make sure to :star: star and :eyes: watch this repository to stay up to date.
|
|
234
241
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "reflex"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.8.0a2"
|
|
4
4
|
description = "Web apps in pure Python."
|
|
5
5
|
license.text = "Apache-2.0"
|
|
6
6
|
authors = [
|
|
@@ -228,7 +228,7 @@ fail_fast = true
|
|
|
228
228
|
|
|
229
229
|
[[tool.pre-commit.repos]]
|
|
230
230
|
repo = "https://github.com/astral-sh/ruff-pre-commit"
|
|
231
|
-
rev = "v0.11.
|
|
231
|
+
rev = "v0.11.13"
|
|
232
232
|
hooks = [
|
|
233
233
|
{ id = "ruff-format", args = [
|
|
234
234
|
"reflex",
|
|
@@ -260,7 +260,7 @@ hooks = [
|
|
|
260
260
|
|
|
261
261
|
[[tool.pre-commit.repos]]
|
|
262
262
|
repo = "https://github.com/RobertCraigie/pyright-python"
|
|
263
|
-
rev = "v1.1.
|
|
263
|
+
rev = "v1.1.402"
|
|
264
264
|
hooks = [{ id = "pyright", args = ["reflex", "tests"], language = "system" }]
|
|
265
265
|
|
|
266
266
|
[[tool.pre-commit.repos]]
|
|
@@ -6,8 +6,10 @@ import '$/styles/__reflex_global_styles.css'
|
|
|
6
6
|
{% endblock %}
|
|
7
7
|
|
|
8
8
|
{% block declaration %}
|
|
9
|
-
import { EventLoopProvider, StateProvider, defaultColorMode } from "$/utils/context
|
|
10
|
-
import { ThemeProvider } from '
|
|
9
|
+
import { EventLoopProvider, StateProvider, defaultColorMode } from "$/utils/context";
|
|
10
|
+
import { ThemeProvider } from '$/utils/react-theme';
|
|
11
|
+
import { Layout as AppLayout } from './_document';
|
|
12
|
+
import { Outlet } from 'react-router';
|
|
11
13
|
{% for library_alias, library_path in window_libraries %}
|
|
12
14
|
import * as {{library_alias}} from "{{library_path}}";
|
|
13
15
|
{% endfor %}
|
|
@@ -26,8 +28,9 @@ function AppWrap({children}) {
|
|
|
26
28
|
)
|
|
27
29
|
}
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
|
|
32
|
+
export function Layout({children}) {
|
|
33
|
+
React.useEffect(() => {
|
|
31
34
|
// Make contexts and state objects available globally for dynamic eval'd components
|
|
32
35
|
let windowImports = {
|
|
33
36
|
{% for library_alias, library_path in window_libraries %}
|
|
@@ -36,17 +39,20 @@ export default function MyApp({ Component, pageProps }) {
|
|
|
36
39
|
};
|
|
37
40
|
window["__reflex"] = windowImports;
|
|
38
41
|
}, []);
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
|
|
43
|
+
return jsx(AppLayout, {},
|
|
44
|
+
jsx(ThemeProvider, {defaultTheme: defaultColorMode, attribute: "class"},
|
|
41
45
|
jsx(StateProvider, {},
|
|
42
|
-
jsx(EventLoopProvider, {},
|
|
43
|
-
jsx(AppWrap, {},
|
|
44
|
-
jsx(Component, pageProps)
|
|
45
|
-
)
|
|
46
|
+
jsx(EventLoopProvider, {},
|
|
47
|
+
jsx(AppWrap, {}, children)
|
|
46
48
|
)
|
|
47
49
|
)
|
|
48
50
|
)
|
|
49
51
|
);
|
|
50
52
|
}
|
|
51
53
|
|
|
54
|
+
export default function App() {
|
|
55
|
+
return jsx(Outlet, {});
|
|
56
|
+
}
|
|
57
|
+
|
|
52
58
|
{% endblock %}
|
{reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2
RENAMED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
{% from 'web/pages/macros.js.jinja2' import renderHooksWithMemo %}
|
|
3
3
|
{% set all_hooks = component._get_all_hooks() %}
|
|
4
4
|
|
|
5
|
+
{% if export %}
|
|
5
6
|
export function {{tag_name}} () {
|
|
7
|
+
{% else %}
|
|
8
|
+
function {{tag_name}} () {
|
|
9
|
+
{% endif %}
|
|
6
10
|
{{ renderHooksWithMemo(all_hooks, memo_trigger_hooks) }}
|
|
7
11
|
|
|
8
12
|
return (
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { createContext, useContext, useMemo, useReducer, useState, createElement } from "react"
|
|
2
|
-
import { applyDelta, Event, hydrateClientStorage, useEventLoop, refs } from "$/utils/state
|
|
1
|
+
import { createContext, useContext, useMemo, useReducer, useState, createElement, useEffect } from "react"
|
|
2
|
+
import { applyDelta, Event, hydrateClientStorage, useEventLoop, refs } from "$/utils/state"
|
|
3
|
+
import { jsx } from "@emotion/react";
|
|
3
4
|
|
|
4
5
|
{% if initial_state %}
|
|
5
6
|
export const initialState = {{ initial_state|json_dumps }}
|
|
@@ -68,8 +69,6 @@ export const initialEvents = () => []
|
|
|
68
69
|
|
|
69
70
|
export const isDevMode = {{ is_dev_mode|json_dumps }}
|
|
70
71
|
|
|
71
|
-
export const lastCompiledTimeStamp = {{ last_compiled_time|json_dumps }}
|
|
72
|
-
|
|
73
72
|
export function UploadFilesProvider({ children }) {
|
|
74
73
|
const [filesById, setFilesById] = useState({})
|
|
75
74
|
refs["__clear_selected_files"] = (id) => setFilesById(filesById => {
|
|
@@ -77,7 +76,21 @@ export function UploadFilesProvider({ children }) {
|
|
|
77
76
|
delete newFilesById[id]
|
|
78
77
|
return newFilesById
|
|
79
78
|
})
|
|
80
|
-
return createElement(
|
|
79
|
+
return createElement(
|
|
80
|
+
UploadFilesContext.Provider,
|
|
81
|
+
{ value: [filesById, setFilesById] },
|
|
82
|
+
children
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export function ClientSide(component) {
|
|
87
|
+
return ({ children, ...props }) => {
|
|
88
|
+
const [Component, setComponent] = useState(null);
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
setComponent(component);
|
|
91
|
+
}, []);
|
|
92
|
+
return Component ? jsx(Component, props, children) : null;
|
|
93
|
+
};
|
|
81
94
|
}
|
|
82
95
|
|
|
83
96
|
export function EventLoopProvider({ children }) {
|
|
@@ -87,7 +100,11 @@ export function EventLoopProvider({ children }) {
|
|
|
87
100
|
initialEvents,
|
|
88
101
|
clientStorage,
|
|
89
102
|
)
|
|
90
|
-
return createElement(
|
|
103
|
+
return createElement(
|
|
104
|
+
EventLoopContext.Provider,
|
|
105
|
+
{ value: [addEvents, connectErrors] },
|
|
106
|
+
children
|
|
107
|
+
);
|
|
91
108
|
}
|
|
92
109
|
|
|
93
110
|
export function StateProvider({ children }) {
|
|
@@ -106,7 +123,7 @@ export function StateProvider({ children }) {
|
|
|
106
123
|
{% for state_name in initial_state %}
|
|
107
124
|
createElement(StateContexts.{{state_name|var_name}},{value: {{state_name|var_name}}},
|
|
108
125
|
{% endfor %}
|
|
109
|
-
createElement(DispatchContext
|
|
110
|
-
{% for state_name in initial_state
|
|
126
|
+
createElement(DispatchContext, {value: dispatchers}, children)
|
|
127
|
+
{% for state_name in initial_state %}){% endfor %}
|
|
111
128
|
)
|
|
112
129
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { startTransition } from "react";
|
|
2
|
+
import { hydrateRoot } from "react-dom/client";
|
|
3
|
+
import { HydratedRouter } from "react-router/dom";
|
|
4
|
+
import { createElement } from "react";
|
|
5
|
+
|
|
6
|
+
startTransition(() => {
|
|
7
|
+
hydrateRoot(document, createElement(HydratedRouter));
|
|
8
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { route } from "@react-router/dev/routes";
|
|
2
|
+
import { flatRoutes } from "@react-router/fs-routes";
|
|
3
|
+
|
|
4
|
+
export default [
|
|
5
|
+
route("404", "routes/[404]_._index.jsx", { id: "404" }),
|
|
6
|
+
...(await flatRoutes({
|
|
7
|
+
ignoredRouteFiles: ["routes/\\[404\\]_._index.jsx"],
|
|
8
|
+
})),
|
|
9
|
+
route("*", "routes/[404]_._index.jsx"),
|
|
10
|
+
];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { useTheme } from "$/utils/react-theme";
|
|
2
|
+
import { createElement } from "react";
|
|
3
|
+
import { ColorModeContext, defaultColorMode } from "$/utils/context";
|
|
4
|
+
|
|
5
|
+
export default function RadixThemesColorModeProvider({ children }) {
|
|
6
|
+
const { theme, resolvedTheme, setTheme } = useTheme();
|
|
7
|
+
|
|
8
|
+
const toggleColorMode = () => {
|
|
9
|
+
setTheme(resolvedTheme === "light" ? "dark" : "light");
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const setColorMode = (mode) => {
|
|
13
|
+
const allowedModes = ["light", "dark", "system"];
|
|
14
|
+
if (!allowedModes.includes(mode)) {
|
|
15
|
+
console.error(
|
|
16
|
+
`Invalid color mode "${mode}". Defaulting to "${defaultColorMode}".`,
|
|
17
|
+
);
|
|
18
|
+
mode = defaultColorMode;
|
|
19
|
+
}
|
|
20
|
+
setTheme(mode);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
return createElement(
|
|
24
|
+
ColorModeContext.Provider,
|
|
25
|
+
{
|
|
26
|
+
value: {
|
|
27
|
+
rawColorMode: theme,
|
|
28
|
+
resolvedColorMode: resolvedTheme,
|
|
29
|
+
toggleColorMode,
|
|
30
|
+
setColorMode,
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
children,
|
|
34
|
+
);
|
|
35
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { useEffect, useRef, useState } from "react";
|
|
2
|
+
import { useLocation, useNavigate } from "react-router-dom";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* React hook for use in NotFound page to enable client-side routing.
|
|
6
|
+
*
|
|
7
|
+
* Uses React Router to redirect to the provided URL when loading
|
|
8
|
+
* the NotFound page (for example as a fallback in static hosting situations).
|
|
9
|
+
*
|
|
10
|
+
* @returns {boolean} routeNotFound - true if the current route is an actual 404
|
|
11
|
+
*/
|
|
12
|
+
export const useClientSideRouting = () => {
|
|
13
|
+
const [routeNotFound, setRouteNotFound] = useState(false);
|
|
14
|
+
const didRedirect = useRef(false);
|
|
15
|
+
const location = useLocation();
|
|
16
|
+
const navigate = useNavigate();
|
|
17
|
+
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (!didRedirect.current) {
|
|
20
|
+
// have not tried redirecting yet
|
|
21
|
+
didRedirect.current = true; // never redirect twice to avoid navigation loops
|
|
22
|
+
|
|
23
|
+
// attempt to redirect to the route in the browser address bar once
|
|
24
|
+
const path = window.location.pathname;
|
|
25
|
+
const search = window.location.search;
|
|
26
|
+
|
|
27
|
+
// Use navigate instead of replace
|
|
28
|
+
navigate(path + search, { replace: true })
|
|
29
|
+
.then(() => {
|
|
30
|
+
// Check if we're still on a NotFound route
|
|
31
|
+
// Note: This depends on how your routes are set up
|
|
32
|
+
if (location.pathname === path) {
|
|
33
|
+
setRouteNotFound(true); // Mark as an actual 404
|
|
34
|
+
}
|
|
35
|
+
})
|
|
36
|
+
.catch(() => {
|
|
37
|
+
setRouteNotFound(true); // navigation failed, so this is a real 404
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}, [location, navigate]);
|
|
41
|
+
|
|
42
|
+
// Return the reactive bool, to avoid flashing 404 page until we know for sure
|
|
43
|
+
// the route is not found.
|
|
44
|
+
return routeNotFound;
|
|
45
|
+
};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createContext,
|
|
3
|
+
useContext,
|
|
4
|
+
useState,
|
|
5
|
+
useEffect,
|
|
6
|
+
createElement,
|
|
7
|
+
useRef,
|
|
8
|
+
useMemo,
|
|
9
|
+
} from "react";
|
|
10
|
+
|
|
11
|
+
import { isDevMode, defaultColorMode } from "$/utils/context";
|
|
12
|
+
|
|
13
|
+
const ThemeContext = createContext({
|
|
14
|
+
theme: defaultColorMode,
|
|
15
|
+
resolvedTheme: defaultColorMode !== "system" ? defaultColorMode : "light",
|
|
16
|
+
setTheme: () => {},
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
export function ThemeProvider({ children, defaultTheme = "system" }) {
|
|
20
|
+
const [theme, setTheme] = useState(defaultTheme);
|
|
21
|
+
const [systemTheme, setSystemTheme] = useState(
|
|
22
|
+
defaultTheme !== "system" ? defaultTheme : "light",
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
const firstRender = useRef(true);
|
|
26
|
+
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (!firstRender.current) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
firstRender.current = false;
|
|
33
|
+
|
|
34
|
+
if (isDevMode) {
|
|
35
|
+
const lastCompiledTheme = localStorage.getItem("last_compiled_theme");
|
|
36
|
+
if (lastCompiledTheme !== defaultColorMode) {
|
|
37
|
+
// on app startup, make sure the application color mode is persisted correctly.
|
|
38
|
+
localStorage.setItem("last_compiled_theme", defaultColorMode);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Load saved theme from localStorage
|
|
44
|
+
const savedTheme = localStorage.getItem("theme") || defaultTheme;
|
|
45
|
+
setTheme(savedTheme);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
const resolvedTheme = useMemo(
|
|
49
|
+
() => (theme === "system" ? systemTheme : theme),
|
|
50
|
+
[theme, systemTheme],
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
// Set up media query for system preference detection
|
|
55
|
+
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
|
|
56
|
+
|
|
57
|
+
// Listen for system preference changes
|
|
58
|
+
const handleChange = () => {
|
|
59
|
+
setSystemTheme(mediaQuery.matches ? "dark" : "light");
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
handleChange();
|
|
63
|
+
|
|
64
|
+
mediaQuery.addEventListener("change", handleChange);
|
|
65
|
+
|
|
66
|
+
return () => {
|
|
67
|
+
mediaQuery.removeEventListener("change", handleChange);
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// Save theme to localStorage whenever it changes
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
localStorage.setItem("theme", theme);
|
|
74
|
+
}, [theme]);
|
|
75
|
+
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
const root = window.document.documentElement;
|
|
78
|
+
root.classList.remove("light", "dark");
|
|
79
|
+
root.classList.add(resolvedTheme);
|
|
80
|
+
root.style.colorScheme = resolvedTheme;
|
|
81
|
+
}, [resolvedTheme]);
|
|
82
|
+
|
|
83
|
+
return createElement(
|
|
84
|
+
ThemeContext.Provider,
|
|
85
|
+
{ value: { theme, resolvedTheme, setTheme } },
|
|
86
|
+
children,
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export function useTheme() {
|
|
91
|
+
return useContext(ThemeContext);
|
|
92
|
+
}
|