reflex 0.7.2.dev1__tar.gz → 0.7.3a1__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.2.dev1 → reflex-0.7.3a1}/PKG-INFO +14 -21
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/README.md +13 -20
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/pyproject.toml +19 -14
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +6 -3
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +1 -1
- reflex-0.7.3a1/reflex/.templates/web/components/shiki/code.js +39 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/web/postcss.config.js +1 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/web/utils/client_side_routing.js +18 -16
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/web/utils/helpers/dataeditor.js +1 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/web/utils/helpers/range.js +30 -30
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/web/utils/state.js +44 -22
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/app_mixins/middleware.py +7 -7
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/compiler/compiler.py +7 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/banner.py +1 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/foreach.py +3 -2
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/datadisplay/logo.py +1 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/__init__.pyi +22 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/__init__.py +20 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/__init__.pyi +42 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/media.py +11 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/media.pyi +11 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/lucide/icon.py +8 -6
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/lucide/icon.pyi +0 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/slider.py +2 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/config.py +13 -7
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/custom_components/custom_components.py +23 -25
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/event.py +7 -2
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/istate/data.py +59 -7
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/reflex.py +69 -30
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/state.py +3 -3
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/testing.py +4 -10
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/exceptions.py +31 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/exec.py +4 -8
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/export.py +2 -2
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/vars/base.py +23 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/vars/number.py +22 -21
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/vars/object.py +29 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/vars/sequence.py +37 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/conftest.py +0 -28
- reflex-0.7.3a1/tests/integration/test_memo.py +67 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_var_operations.py +90 -0
- reflex-0.7.3a1/tests/units/assets/custom_script.js +1 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/lucide/test_icon.py +2 -2
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_app.py +1 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_state.py +5 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/utils/test_format.py +1 -0
- reflex-0.7.2.dev1/reflex/.templates/web/components/shiki/code.js +0 -34
- reflex-0.7.2.dev1/tests/units/assets/custom_script.js +0 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/LICENSE +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/benchmarks/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/benchmarks/benchmark_compile_times.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/benchmarks/benchmark_imports.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/benchmarks/benchmark_lighthouse.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/benchmarks/benchmark_package_size.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/benchmarks/benchmark_web_size.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/benchmarks/conftest.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/benchmarks/lighthouse.sh +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/benchmarks/utils.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/apps/blank/code/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/apps/blank/code/blank.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/web/.gitignore +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/web/jsconfig.json +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/web/next.config.js +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/web/styles/tailwind.css +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/web/utils/helpers/paste.js +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/__main__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/admin.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/app.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/app_mixins/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/app_mixins/lifespan.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/app_mixins/mixin.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/app_module_for_backend.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/assets.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/compiler/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/compiler/templates.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/compiler/utils.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/app_wrap.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/app_wrap.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/bare.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/body.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/body.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/document.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/document.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/error_boundary.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/error_boundary.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/fragment.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/fragment.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/head.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/head.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/link.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/link.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/meta.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/meta.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/script.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/script.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/strict_mode.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/base/strict_mode.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/component.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/auto_scroll.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/auto_scroll.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/banner.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/breakpoints.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/client_side_routing.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/client_side_routing.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/clipboard.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/clipboard.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/colors.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/cond.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/debounce.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/debounce.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/html.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/html.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/layout/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/match.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/responsive.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/sticky.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/sticky.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/upload.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/core/upload.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/datadisplay/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/datadisplay/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/datadisplay/code.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/datadisplay/code.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/datadisplay/dataeditor.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/datadisplay/dataeditor.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/datadisplay/shiki_code_block.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/dynamic.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/constants/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/constants/html.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/constants/react.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/constants/reflex.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/element.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/element.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/base.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/forms.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/forms.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/inline.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/inline.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/metadata.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/metadata.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/other.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/other.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/scripts.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/scripts.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/sectioning.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/sectioning.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/tables.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/tables.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/typography.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/el/elements/typography.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/gridjs/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/gridjs/datatable.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/gridjs/datatable.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/literals.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/lucide/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/markdown/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/markdown/markdown.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/markdown/markdown.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/moment/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/moment/moment.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/moment/moment.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/next/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/next/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/next/base.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/next/image.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/next/image.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/next/link.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/next/link.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/next/video.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/next/video.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/plotly/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/plotly/plotly.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/plotly/plotly.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/props.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/primitives/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/primitives/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/primitives/accordion.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/primitives/accordion.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/primitives/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/primitives/base.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/primitives/drawer.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/primitives/drawer.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/primitives/form.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/primitives/form.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/primitives/progress.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/primitives/progress.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/primitives/slider.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/primitives/slider.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/base.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/color_mode.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/color_mode.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/avatar.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/avatar.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/badge.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/badge.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/button.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/button.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/callout.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/callout.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/card.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/card.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/checkbox.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/context_menu.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/data_list.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/data_list.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/dialog.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/dialog.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/hover_card.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/icon_button.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/inset.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/inset.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/popover.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/popover.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/progress.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/progress.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/radio.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/radio.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/radio_cards.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/radio_group.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/scroll_area.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/segmented_control.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/select.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/select.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/separator.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/separator.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/skeleton.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/slider.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/spinner.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/spinner.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/switch.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/switch.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/table.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/table.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/tabs.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/tabs.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/text_area.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/text_area.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/text_field.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/text_field.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/tooltip.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/base.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/box.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/box.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/center.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/center.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/container.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/container.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/flex.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/flex.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/grid.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/grid.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/list.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/list.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/section.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/section.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/spacer.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/stack.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/layout/stack.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/typography/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/typography/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/typography/blockquote.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/typography/code.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/typography/code.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/typography/heading.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/typography/heading.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/typography/link.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/typography/link.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/typography/text.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/radix/themes/typography/text.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/react_player/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/react_player/audio.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/react_player/audio.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/react_player/react_player.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/react_player/react_player.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/react_player/video.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/react_player/video.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/recharts/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/recharts/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/recharts/cartesian.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/recharts/cartesian.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/recharts/charts.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/recharts/charts.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/recharts/general.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/recharts/general.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/recharts/polar.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/recharts/polar.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/recharts/recharts.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/recharts/recharts.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/sonner/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/sonner/toast.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/sonner/toast.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/suneditor/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/suneditor/editor.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/suneditor/editor.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/tags/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/tags/cond_tag.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/tags/iter_tag.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/tags/match_tag.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/tags/tag.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/components/tags/tagless.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/constants/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/constants/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/constants/colors.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/constants/compiler.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/constants/config.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/constants/custom_components.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/constants/event.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/constants/installer.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/constants/route.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/constants/state.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/constants/style.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/constants/utils.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/custom_components/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/experimental/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/experimental/client_state.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/experimental/hooks.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/experimental/layout.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/experimental/layout.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/experimental/misc.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/istate/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/istate/dynamic.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/istate/proxy.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/istate/storage.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/istate/wrappers.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/middleware/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/middleware/hydrate_middleware.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/middleware/middleware.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/model.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/page.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/py.typed +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/route.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/style.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/build.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/codespaces.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/compat.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/console.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/decorator.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/format.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/imports.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/lazy_loader.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/net.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/path_ops.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/prerequisites.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/processes.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/pyi_generator.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/redir.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/registry.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/serializers.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/telemetry.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/utils/types.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/vars/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/vars/datetime.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/vars/dep_tracking.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/vars/function.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/benchmarks/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/benchmarks/conftest.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/benchmarks/fixtures.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/benchmarks/test_compilation.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/benchmarks/test_evaluate.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/init-test/Dockerfile +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/init-test/in_docker_test_script.sh +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/shared/state.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_background_task.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_call_script.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_client_storage.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_component_state.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_computed_vars.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_connection_banner.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_deploy_url.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_dynamic_components.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_dynamic_routes.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_event_actions.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_event_chain.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_exception_handlers.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_extra_overlay_function.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_form_submit.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_input.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_large_state.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_lifespan.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_login_flow.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_media.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_navigation.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_server_side_event.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_shared_state.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_state_inheritance.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_tailwind.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_upload.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/test_urls.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/tests_playwright/test_appearance.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/tests_playwright/test_datetime_operations.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/tests_playwright/test_link_hover.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/tests_playwright/test_stateless_app.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/tests_playwright/test_table.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/integration/utils.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/test_node_version.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/assets/test_assets.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/compiler/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/compiler/test_compiler.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/compiler/test_compiler_utils.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/base/test_bare.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/base/test_link.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/base/test_script.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/core/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/core/test_banner.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/core/test_colors.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/core/test_cond.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/core/test_debounce.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/core/test_foreach.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/core/test_html.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/core/test_match.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/core/test_responsive.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/core/test_upload.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/datadisplay/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/datadisplay/conftest.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/datadisplay/test_code.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/datadisplay/test_dataeditor.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/datadisplay/test_datatable.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/datadisplay/test_shiki_code.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/el/test_html.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/el/test_svg.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/forms/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/forms/test_form.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/graphing/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/graphing/test_plotly.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/graphing/test_recharts.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/layout/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/markdown/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/markdown/test_markdown.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/media/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/media/test_image.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/radix/test_icon_button.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/radix/test_layout.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/recharts/test_cartesian.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/recharts/test_polar.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/test_component.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/test_component_future_annotations.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/test_component_state.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/test_props.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/test_tag.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/typography/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/components/typography/test_markdown.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/conftest.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/middleware/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/middleware/conftest.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/middleware/test_hydrate_middleware.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/states/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/states/mutation.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/states/upload.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_attribute_access_type.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_config.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_db_config.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_event.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_health_endpoint.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_model.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_page.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_prerequisites.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_route.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_sqlalchemy.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_state_tree.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_style.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_telemetry.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_testing.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/test_var.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/utils/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/utils/test_imports.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/utils/test_serializers.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/utils/test_types.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/utils/test_utils.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/vars/test_base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3a1}/tests/units/vars/test_object.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: reflex
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.3a1
|
|
4
4
|
Summary: Web apps in pure Python.
|
|
5
5
|
Keywords: web,framework
|
|
6
6
|
Author: Elijah Ahianyo
|
|
@@ -42,7 +42,6 @@ Requires-Dist: lazy_loader>=0.4
|
|
|
42
42
|
Requires-Dist: typing_extensions>=4.6.0
|
|
43
43
|
Description-Content-Type: text/markdown
|
|
44
44
|
|
|
45
|
-
|
|
46
45
|
<div align="center">
|
|
47
46
|
<img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/reflex_dark.svg#gh-light-mode-only" alt="Reflex Logo" width="300px">
|
|
48
47
|
<img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/reflex_light.svg#gh-dark-mode-only" alt="Reflex Logo" width="300px">
|
|
@@ -50,10 +49,12 @@ Description-Content-Type: text/markdown
|
|
|
50
49
|
<hr>
|
|
51
50
|
|
|
52
51
|
### **✨ Performant, customizable web apps in pure Python. Deploy in seconds. ✨**
|
|
52
|
+
|
|
53
53
|
[](https://badge.fury.io/py/reflex)
|
|
54
54
|

|
|
55
55
|
[](https://reflex.dev/docs/getting-started/introduction)
|
|
56
56
|
[](https://discord.gg/T5WSbC2YtQ)
|
|
57
|
+
|
|
57
58
|
</div>
|
|
58
59
|
|
|
59
60
|
---
|
|
@@ -67,9 +68,10 @@ Description-Content-Type: text/markdown
|
|
|
67
68
|
Reflex is a library to build full-stack web apps in pure Python.
|
|
68
69
|
|
|
69
70
|
Key features:
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
|
|
72
|
+
- **Pure Python** - Write your app's frontend and backend all in Python, no need to learn Javascript.
|
|
73
|
+
- **Full Flexibility** - Reflex is easy to get started with, but can also scale to complex apps.
|
|
74
|
+
- **Deploy Instantly** - After building, deploy your app with a [single command](https://reflex.dev/docs/hosting/deploy-quick-start/) or host it on your own server.
|
|
73
75
|
|
|
74
76
|
See our [architecture page](https://reflex.dev/blog/2024-03-21-reflex-architecture/#the-reflex-architecture) to learn how Reflex works under the hood.
|
|
75
77
|
|
|
@@ -93,7 +95,7 @@ cd my_app_name
|
|
|
93
95
|
reflex init
|
|
94
96
|
```
|
|
95
97
|
|
|
96
|
-
This command initializes a template app in your new directory.
|
|
98
|
+
This command initializes a template app in your new directory.
|
|
97
99
|
|
|
98
100
|
You can run this app in development mode:
|
|
99
101
|
|
|
@@ -105,7 +107,6 @@ You should see your app running at http://localhost:3000.
|
|
|
105
107
|
|
|
106
108
|
Now you can modify the source code in `my_app_name/my_app_name.py`. Reflex has fast refreshes so you can see your changes instantly when you save your code.
|
|
107
109
|
|
|
108
|
-
|
|
109
110
|
## 🫧 Example App
|
|
110
111
|
|
|
111
112
|
Let's go over an example: creating an image generation UI around [DALL·E](https://platform.openai.com/docs/guides/images/image-generation?context=node). For simplicity, we just call the [OpenAI API](https://platform.openai.com/docs/api-reference/authentication), but you could replace this with an ML model run locally.
|
|
@@ -120,8 +121,6 @@ Let's go over an example: creating an image generation UI around [DALL·E](https
|
|
|
120
121
|
|
|
121
122
|
Here is the complete code to create this. This is all done in one Python file!
|
|
122
123
|
|
|
123
|
-
|
|
124
|
-
|
|
125
124
|
```python
|
|
126
125
|
import reflex as rx
|
|
127
126
|
import openai
|
|
@@ -161,7 +160,7 @@ def index():
|
|
|
161
160
|
width="25em",
|
|
162
161
|
),
|
|
163
162
|
rx.button(
|
|
164
|
-
"Generate Image",
|
|
163
|
+
"Generate Image",
|
|
165
164
|
on_click=State.get_image,
|
|
166
165
|
width="25em",
|
|
167
166
|
loading=State.processing
|
|
@@ -181,17 +180,12 @@ app = rx.App()
|
|
|
181
180
|
app.add_page(index, title="Reflex:DALL-E")
|
|
182
181
|
```
|
|
183
182
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
183
|
## Let's break this down.
|
|
189
184
|
|
|
190
185
|
<div align="center">
|
|
191
186
|
<img src="docs/images/dalle_colored_code_example.png" alt="Explaining the differences between backend and frontend parts of the DALL-E app." width="900" />
|
|
192
187
|
</div>
|
|
193
188
|
|
|
194
|
-
|
|
195
189
|
### **Reflex UI**
|
|
196
190
|
|
|
197
191
|
Let's start with the UI.
|
|
@@ -269,11 +263,10 @@ You can create a multi-page app by adding more pages.
|
|
|
269
263
|
|
|
270
264
|
<div align="center">
|
|
271
265
|
|
|
272
|
-
📑 [Docs](https://reflex.dev/docs/getting-started/introduction) |
|
|
266
|
+
📑 [Docs](https://reflex.dev/docs/getting-started/introduction) | 🗞️ [Blog](https://reflex.dev/blog) | 📱 [Component Library](https://reflex.dev/docs/library) | 🖼️ [Templates](https://reflex.dev/templates/) | 🛸 [Deployment](https://reflex.dev/docs/hosting/deploy-quick-start)
|
|
273
267
|
|
|
274
268
|
</div>
|
|
275
269
|
|
|
276
|
-
|
|
277
270
|
## ✅ Status
|
|
278
271
|
|
|
279
272
|
Reflex launched in December 2022 with the name Pynecone.
|
|
@@ -286,14 +279,14 @@ Reflex has new releases and features coming every other week! Make sure to :star
|
|
|
286
279
|
|
|
287
280
|
We welcome contributions of any size! Below are some good ways to get started in the Reflex community.
|
|
288
281
|
|
|
289
|
-
-
|
|
290
|
-
-
|
|
291
|
-
-
|
|
282
|
+
- **Join Our Discord**: Our [Discord](https://discord.gg/T5WSbC2YtQ) is the best place to get help on your Reflex project and to discuss how you can contribute.
|
|
283
|
+
- **GitHub Discussions**: A great way to talk about features you want added or things that are confusing/need clarification.
|
|
284
|
+
- **GitHub Issues**: [Issues](https://github.com/reflex-dev/reflex/issues) are an excellent way to report bugs. Additionally, you can try and solve an existing issue and submit a PR.
|
|
292
285
|
|
|
293
286
|
We are actively looking for contributors, no matter your skill level or experience. To contribute check out [CONTRIBUTING.md](https://github.com/reflex-dev/reflex/blob/main/CONTRIBUTING.md)
|
|
294
287
|
|
|
295
|
-
|
|
296
288
|
## All Thanks To Our Contributors:
|
|
289
|
+
|
|
297
290
|
<a href="https://github.com/reflex-dev/reflex/graphs/contributors">
|
|
298
291
|
<img src="https://contrib.rocks/image?repo=reflex-dev/reflex" />
|
|
299
292
|
</a>
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
<div align="center">
|
|
3
2
|
<img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/reflex_dark.svg#gh-light-mode-only" alt="Reflex Logo" width="300px">
|
|
4
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">
|
|
@@ -6,10 +5,12 @@
|
|
|
6
5
|
<hr>
|
|
7
6
|
|
|
8
7
|
### **✨ Performant, customizable web apps in pure Python. Deploy in seconds. ✨**
|
|
8
|
+
|
|
9
9
|
[](https://badge.fury.io/py/reflex)
|
|
10
10
|

|
|
11
11
|
[](https://reflex.dev/docs/getting-started/introduction)
|
|
12
12
|
[](https://discord.gg/T5WSbC2YtQ)
|
|
13
|
+
|
|
13
14
|
</div>
|
|
14
15
|
|
|
15
16
|
---
|
|
@@ -23,9 +24,10 @@
|
|
|
23
24
|
Reflex is a library to build full-stack web apps in pure Python.
|
|
24
25
|
|
|
25
26
|
Key features:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
|
|
28
|
+
- **Pure Python** - Write your app's frontend and backend all in Python, no need to learn Javascript.
|
|
29
|
+
- **Full Flexibility** - Reflex is easy to get started with, but can also scale to complex apps.
|
|
30
|
+
- **Deploy Instantly** - After building, deploy your app with a [single command](https://reflex.dev/docs/hosting/deploy-quick-start/) or host it on your own server.
|
|
29
31
|
|
|
30
32
|
See our [architecture page](https://reflex.dev/blog/2024-03-21-reflex-architecture/#the-reflex-architecture) to learn how Reflex works under the hood.
|
|
31
33
|
|
|
@@ -49,7 +51,7 @@ cd my_app_name
|
|
|
49
51
|
reflex init
|
|
50
52
|
```
|
|
51
53
|
|
|
52
|
-
This command initializes a template app in your new directory.
|
|
54
|
+
This command initializes a template app in your new directory.
|
|
53
55
|
|
|
54
56
|
You can run this app in development mode:
|
|
55
57
|
|
|
@@ -61,7 +63,6 @@ You should see your app running at http://localhost:3000.
|
|
|
61
63
|
|
|
62
64
|
Now you can modify the source code in `my_app_name/my_app_name.py`. Reflex has fast refreshes so you can see your changes instantly when you save your code.
|
|
63
65
|
|
|
64
|
-
|
|
65
66
|
## 🫧 Example App
|
|
66
67
|
|
|
67
68
|
Let's go over an example: creating an image generation UI around [DALL·E](https://platform.openai.com/docs/guides/images/image-generation?context=node). For simplicity, we just call the [OpenAI API](https://platform.openai.com/docs/api-reference/authentication), but you could replace this with an ML model run locally.
|
|
@@ -76,8 +77,6 @@ Let's go over an example: creating an image generation UI around [DALL·E](https
|
|
|
76
77
|
|
|
77
78
|
Here is the complete code to create this. This is all done in one Python file!
|
|
78
79
|
|
|
79
|
-
|
|
80
|
-
|
|
81
80
|
```python
|
|
82
81
|
import reflex as rx
|
|
83
82
|
import openai
|
|
@@ -117,7 +116,7 @@ def index():
|
|
|
117
116
|
width="25em",
|
|
118
117
|
),
|
|
119
118
|
rx.button(
|
|
120
|
-
"Generate Image",
|
|
119
|
+
"Generate Image",
|
|
121
120
|
on_click=State.get_image,
|
|
122
121
|
width="25em",
|
|
123
122
|
loading=State.processing
|
|
@@ -137,17 +136,12 @@ app = rx.App()
|
|
|
137
136
|
app.add_page(index, title="Reflex:DALL-E")
|
|
138
137
|
```
|
|
139
138
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
139
|
## Let's break this down.
|
|
145
140
|
|
|
146
141
|
<div align="center">
|
|
147
142
|
<img src="docs/images/dalle_colored_code_example.png" alt="Explaining the differences between backend and frontend parts of the DALL-E app." width="900" />
|
|
148
143
|
</div>
|
|
149
144
|
|
|
150
|
-
|
|
151
145
|
### **Reflex UI**
|
|
152
146
|
|
|
153
147
|
Let's start with the UI.
|
|
@@ -225,11 +219,10 @@ You can create a multi-page app by adding more pages.
|
|
|
225
219
|
|
|
226
220
|
<div align="center">
|
|
227
221
|
|
|
228
|
-
📑 [Docs](https://reflex.dev/docs/getting-started/introduction) |
|
|
222
|
+
📑 [Docs](https://reflex.dev/docs/getting-started/introduction) | 🗞️ [Blog](https://reflex.dev/blog) | 📱 [Component Library](https://reflex.dev/docs/library) | 🖼️ [Templates](https://reflex.dev/templates/) | 🛸 [Deployment](https://reflex.dev/docs/hosting/deploy-quick-start)
|
|
229
223
|
|
|
230
224
|
</div>
|
|
231
225
|
|
|
232
|
-
|
|
233
226
|
## ✅ Status
|
|
234
227
|
|
|
235
228
|
Reflex launched in December 2022 with the name Pynecone.
|
|
@@ -242,14 +235,14 @@ Reflex has new releases and features coming every other week! Make sure to :star
|
|
|
242
235
|
|
|
243
236
|
We welcome contributions of any size! Below are some good ways to get started in the Reflex community.
|
|
244
237
|
|
|
245
|
-
-
|
|
246
|
-
-
|
|
247
|
-
-
|
|
238
|
+
- **Join Our Discord**: Our [Discord](https://discord.gg/T5WSbC2YtQ) is the best place to get help on your Reflex project and to discuss how you can contribute.
|
|
239
|
+
- **GitHub Discussions**: A great way to talk about features you want added or things that are confusing/need clarification.
|
|
240
|
+
- **GitHub Issues**: [Issues](https://github.com/reflex-dev/reflex/issues) are an excellent way to report bugs. Additionally, you can try and solve an existing issue and submit a PR.
|
|
248
241
|
|
|
249
242
|
We are actively looking for contributors, no matter your skill level or experience. To contribute check out [CONTRIBUTING.md](https://github.com/reflex-dev/reflex/blob/main/CONTRIBUTING.md)
|
|
250
243
|
|
|
251
|
-
|
|
252
244
|
## All Thanks To Our Contributors:
|
|
245
|
+
|
|
253
246
|
<a href="https://github.com/reflex-dev/reflex/graphs/contributors">
|
|
254
247
|
<img src="https://contrib.rocks/image?repo=reflex-dev/reflex" />
|
|
255
248
|
</a>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "reflex"
|
|
3
|
-
version = "0.7.
|
|
3
|
+
version = "0.7.3a1"
|
|
4
4
|
description = "Web apps in pure Python."
|
|
5
5
|
license = "Apache-2.0"
|
|
6
6
|
authors = [
|
|
@@ -176,23 +176,28 @@ build-backend = "pdm.backend"
|
|
|
176
176
|
|
|
177
177
|
[dependency-groups]
|
|
178
178
|
dev = [
|
|
179
|
-
"asynctest
|
|
180
|
-
"darglint
|
|
179
|
+
"asynctest >=0.13.0,<1.0",
|
|
180
|
+
"darglint >=1.8.1,<2.0",
|
|
181
181
|
"dill >=0.3.8",
|
|
182
|
-
"pandas
|
|
183
|
-
"pillow
|
|
182
|
+
"pandas >=2.1.1,<3.0",
|
|
183
|
+
"pillow >=10.0.0,<12.0",
|
|
184
184
|
"playwright >=1.46.0",
|
|
185
|
-
"plotly
|
|
185
|
+
"plotly >=5.13.0,<6.0",
|
|
186
186
|
"pre-commit >=3.2.1",
|
|
187
|
-
"pyright
|
|
188
|
-
"pytest
|
|
187
|
+
"pyright >=1.1.394,<1.2",
|
|
188
|
+
"pytest >=7.1.2,<9.0",
|
|
189
189
|
"pytest-asyncio >=0.24.0",
|
|
190
|
-
"pytest-mock
|
|
191
|
-
"pytest-cov
|
|
192
|
-
"pytest-benchmark
|
|
190
|
+
"pytest-mock >=3.10.0,<4.0",
|
|
191
|
+
"pytest-cov >=4.0.0,<7.0",
|
|
192
|
+
"pytest-benchmark >=4.0.0,<6.0",
|
|
193
193
|
"pytest-playwright >=0.5.1",
|
|
194
|
-
"pytest-codspeed
|
|
194
|
+
"pytest-codspeed >=3.1.2,<4.0.0",
|
|
195
195
|
"ruff ==0.9.10",
|
|
196
|
-
"selenium
|
|
197
|
-
"toml
|
|
196
|
+
"selenium >=4.11.0,<5.0",
|
|
197
|
+
"toml >=0.10.2,<1.0",
|
|
198
|
+
"granian[reload] >= 2.0.0",
|
|
199
|
+
"psycopg[binary] >=3.2.6,<4.0",
|
|
200
|
+
"pytest-split >=0.10.0,<1.0",
|
|
201
|
+
"pytest-retry >=1.7.0,<2.0",
|
|
202
|
+
"pre-commit >=4.1.0,<5.0",
|
|
198
203
|
]
|
{reflex-0.7.2.dev1 → reflex-0.7.3a1}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2
RENAMED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
{% extends "web/pages/base_page.js.jinja2" %}
|
|
2
2
|
{% from "web/pages/macros.js.jinja2" import renderHooks %}
|
|
3
|
-
{% block export %}
|
|
4
|
-
{% for component in components %}
|
|
5
3
|
|
|
6
|
-
{%
|
|
4
|
+
{% block declaration %}
|
|
5
|
+
{% for custom_code in custom_codes %}
|
|
7
6
|
{{custom_code}}
|
|
8
7
|
{% endfor %}
|
|
8
|
+
{% endblock %}
|
|
9
|
+
|
|
10
|
+
{% block export %}
|
|
11
|
+
{% for component in components %}
|
|
9
12
|
|
|
10
13
|
export const {{component.name}} = memo(({ {{-component.props|join(", ")-}} }) => {
|
|
11
14
|
{{ renderHooks(component.hooks) }}
|
|
@@ -11,7 +11,7 @@ export default function RadixThemesColorModeProvider({ children }) {
|
|
|
11
11
|
const { theme, resolvedTheme, setTheme } = useTheme();
|
|
12
12
|
const [rawColorMode, setRawColorMode] = useState(defaultColorMode);
|
|
13
13
|
const [resolvedColorMode, setResolvedColorMode] = useState(
|
|
14
|
-
defaultColorMode === "dark" ? "dark" : "light"
|
|
14
|
+
defaultColorMode === "dark" ? "dark" : "light",
|
|
15
15
|
);
|
|
16
16
|
|
|
17
17
|
useEffect(() => {
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
import { codeToHtml } from "shiki";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Code component that uses Shiki to convert code to HTML and render it.
|
|
6
|
+
*
|
|
7
|
+
* @param code - The code to be highlighted.
|
|
8
|
+
* @param theme - The theme to be used for highlighting.
|
|
9
|
+
* @param language - The language of the code.
|
|
10
|
+
* @param transformers - The transformers to be applied to the code.
|
|
11
|
+
* @param decorations - The decorations to be applied to the code.
|
|
12
|
+
* @param divProps - Additional properties to be passed to the div element.
|
|
13
|
+
* @returns The rendered code block.
|
|
14
|
+
*/
|
|
15
|
+
export function Code({
|
|
16
|
+
code,
|
|
17
|
+
theme,
|
|
18
|
+
language,
|
|
19
|
+
transformers,
|
|
20
|
+
decorations,
|
|
21
|
+
...divProps
|
|
22
|
+
}) {
|
|
23
|
+
const [codeResult, setCodeResult] = useState("");
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
async function fetchCode() {
|
|
26
|
+
const result = await codeToHtml(code, {
|
|
27
|
+
lang: language,
|
|
28
|
+
theme,
|
|
29
|
+
transformers,
|
|
30
|
+
decorations,
|
|
31
|
+
});
|
|
32
|
+
setCodeResult(result);
|
|
33
|
+
}
|
|
34
|
+
fetchCode();
|
|
35
|
+
}, [code, language, theme, transformers, decorations]);
|
|
36
|
+
return (
|
|
37
|
+
<div dangerouslySetInnerHTML={{ __html: codeResult }} {...divProps}></div>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
@@ -10,32 +10,34 @@ import { useRouter } from "next/router";
|
|
|
10
10
|
* @returns {boolean} routeNotFound - true if the current route is an actual 404
|
|
11
11
|
*/
|
|
12
12
|
export const useClientSideRouting = () => {
|
|
13
|
-
const [routeNotFound, setRouteNotFound] = useState(false)
|
|
14
|
-
const didRedirect = useRef(false)
|
|
15
|
-
const router = useRouter()
|
|
13
|
+
const [routeNotFound, setRouteNotFound] = useState(false);
|
|
14
|
+
const didRedirect = useRef(false);
|
|
15
|
+
const router = useRouter();
|
|
16
16
|
useEffect(() => {
|
|
17
17
|
if (
|
|
18
18
|
router.isReady &&
|
|
19
|
-
!didRedirect.current
|
|
19
|
+
!didRedirect.current // have not tried redirecting yet
|
|
20
20
|
) {
|
|
21
|
-
didRedirect.current = true
|
|
21
|
+
didRedirect.current = true; // never redirect twice to avoid "Hard Navigate" error
|
|
22
22
|
// attempt to redirect to the route in the browser address bar once
|
|
23
|
-
router
|
|
23
|
+
router
|
|
24
|
+
.replace({
|
|
24
25
|
pathname: window.location.pathname,
|
|
25
26
|
query: window.location.search.slice(1),
|
|
26
|
-
|
|
27
|
+
})
|
|
28
|
+
.then(() => {
|
|
27
29
|
// Check if the current route is /404
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
if (router.pathname === "/404") {
|
|
31
|
+
setRouteNotFound(true); // Mark as an actual 404
|
|
32
|
+
}
|
|
33
|
+
})
|
|
34
|
+
.catch((e) => {
|
|
35
|
+
setRouteNotFound(true); // navigation failed, so this is a real 404
|
|
36
|
+
});
|
|
35
37
|
}
|
|
36
38
|
}, [router.isReady]);
|
|
37
39
|
|
|
38
40
|
// Return the reactive bool, to avoid flashing 404 page until we know for sure
|
|
39
41
|
// the route is not found.
|
|
40
|
-
return routeNotFound
|
|
41
|
-
}
|
|
42
|
+
return routeNotFound;
|
|
43
|
+
};
|
|
@@ -48,7 +48,7 @@ export function formatCell(value, column) {
|
|
|
48
48
|
};
|
|
49
49
|
default:
|
|
50
50
|
console.log(
|
|
51
|
-
"Warning: column.type is undefined for column.title=" + column.title
|
|
51
|
+
"Warning: column.type is undefined for column.title=" + column.title,
|
|
52
52
|
);
|
|
53
53
|
return {
|
|
54
54
|
kind: GridCellKind.Text,
|
|
@@ -1,43 +1,43 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Simulate the python range() builtin function.
|
|
3
3
|
* inspired by https://dev.to/guyariely/using-python-range-in-javascript-337p
|
|
4
|
-
*
|
|
4
|
+
*
|
|
5
5
|
* If needed outside of an iterator context, use `Array.from(range(10))` or
|
|
6
6
|
* spread syntax `[...range(10)]` to get an array.
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
8
|
* @param {number} start: the start or end of the range.
|
|
9
9
|
* @param {number} stop: the end of the range.
|
|
10
10
|
* @param {number} step: the step of the range.
|
|
11
11
|
* @returns {object} an object with a Symbol.iterator method over the range
|
|
12
12
|
*/
|
|
13
13
|
export default function range(start, stop, step) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return {
|
|
31
|
-
value: i,
|
|
32
|
-
done: false,
|
|
33
|
-
};
|
|
34
|
-
}
|
|
14
|
+
return {
|
|
15
|
+
[Symbol.iterator]() {
|
|
16
|
+
if (stop === undefined) {
|
|
17
|
+
stop = start;
|
|
18
|
+
start = 0;
|
|
19
|
+
}
|
|
20
|
+
if (step === undefined) {
|
|
21
|
+
step = 1;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
let i = start - step;
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
next() {
|
|
28
|
+
i += step;
|
|
29
|
+
if ((step > 0 && i < stop) || (step < 0 && i > stop)) {
|
|
35
30
|
return {
|
|
36
|
-
value:
|
|
37
|
-
done:
|
|
31
|
+
value: i,
|
|
32
|
+
done: false,
|
|
38
33
|
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
value: undefined,
|
|
37
|
+
done: true,
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|