reflex 0.7.2.dev1__tar.gz → 0.7.3__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.3/.gitignore +21 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/PKG-INFO +42 -42
- {reflex-0.7.2.dev1 → reflex-0.7.3}/README.md +13 -20
- reflex-0.7.3/pyproject.toml +164 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +6 -3
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +1 -1
- reflex-0.7.3/reflex/.templates/web/components/shiki/code.js +39 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/web/postcss.config.js +1 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/web/utils/client_side_routing.js +18 -16
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/web/utils/helpers/dataeditor.js +1 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/web/utils/helpers/range.js +30 -30
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/web/utils/state.js +44 -22
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/app_mixins/middleware.py +9 -10
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/compiler/compiler.py +7 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/banner.py +1 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/foreach.py +3 -2
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/datadisplay/logo.py +1 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/__init__.pyi +22 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/__init__.py +20 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/__init__.pyi +42 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/media.py +11 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/media.pyi +11 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/lucide/icon.py +8 -6
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/lucide/icon.pyi +0 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/slider.py +2 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/config.py +13 -7
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/custom_components/custom_components.py +23 -25
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/event.py +7 -2
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/istate/data.py +59 -7
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/reflex.py +69 -30
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/state.py +3 -3
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/testing.py +4 -10
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/exceptions.py +31 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/exec.py +4 -8
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/export.py +2 -2
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/vars/base.py +23 -1
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/vars/number.py +22 -21
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/vars/object.py +29 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/vars/sequence.py +37 -0
- reflex-0.7.2.dev1/benchmarks/__init__.py +0 -3
- reflex-0.7.2.dev1/benchmarks/benchmark_compile_times.py +0 -147
- reflex-0.7.2.dev1/benchmarks/benchmark_imports.py +0 -128
- reflex-0.7.2.dev1/benchmarks/benchmark_lighthouse.py +0 -75
- reflex-0.7.2.dev1/benchmarks/benchmark_package_size.py +0 -135
- reflex-0.7.2.dev1/benchmarks/benchmark_web_size.py +0 -106
- reflex-0.7.2.dev1/benchmarks/conftest.py +0 -20
- reflex-0.7.2.dev1/benchmarks/lighthouse.sh +0 -77
- reflex-0.7.2.dev1/benchmarks/utils.py +0 -74
- reflex-0.7.2.dev1/pyproject.toml +0 -198
- reflex-0.7.2.dev1/reflex/.templates/web/components/shiki/code.js +0 -34
- reflex-0.7.2.dev1/tests/__init__.py +0 -5
- reflex-0.7.2.dev1/tests/benchmarks/__init__.py +0 -0
- reflex-0.7.2.dev1/tests/benchmarks/conftest.py +0 -3
- reflex-0.7.2.dev1/tests/benchmarks/fixtures.py +0 -383
- reflex-0.7.2.dev1/tests/benchmarks/test_compilation.py +0 -25
- reflex-0.7.2.dev1/tests/benchmarks/test_evaluate.py +0 -11
- reflex-0.7.2.dev1/tests/integration/__init__.py +0 -1
- reflex-0.7.2.dev1/tests/integration/conftest.py +0 -71
- reflex-0.7.2.dev1/tests/integration/init-test/Dockerfile +0 -8
- reflex-0.7.2.dev1/tests/integration/init-test/in_docker_test_script.sh +0 -37
- reflex-0.7.2.dev1/tests/integration/shared/state.py +0 -9
- reflex-0.7.2.dev1/tests/integration/test_background_task.py +0 -381
- reflex-0.7.2.dev1/tests/integration/test_call_script.py +0 -542
- reflex-0.7.2.dev1/tests/integration/test_client_storage.py +0 -760
- reflex-0.7.2.dev1/tests/integration/test_component_state.py +0 -204
- reflex-0.7.2.dev1/tests/integration/test_computed_vars.py +0 -275
- reflex-0.7.2.dev1/tests/integration/test_connection_banner.py +0 -223
- reflex-0.7.2.dev1/tests/integration/test_deploy_url.py +0 -99
- reflex-0.7.2.dev1/tests/integration/test_dynamic_components.py +0 -170
- reflex-0.7.2.dev1/tests/integration/test_dynamic_routes.py +0 -430
- reflex-0.7.2.dev1/tests/integration/test_event_actions.py +0 -385
- reflex-0.7.2.dev1/tests/integration/test_event_chain.py +0 -579
- reflex-0.7.2.dev1/tests/integration/test_exception_handlers.py +0 -204
- reflex-0.7.2.dev1/tests/integration/test_extra_overlay_function.py +0 -87
- reflex-0.7.2.dev1/tests/integration/test_form_submit.py +0 -262
- reflex-0.7.2.dev1/tests/integration/test_input.py +0 -188
- reflex-0.7.2.dev1/tests/integration/test_large_state.py +0 -91
- reflex-0.7.2.dev1/tests/integration/test_lifespan.py +0 -133
- reflex-0.7.2.dev1/tests/integration/test_login_flow.py +0 -147
- reflex-0.7.2.dev1/tests/integration/test_media.py +0 -163
- reflex-0.7.2.dev1/tests/integration/test_navigation.py +0 -93
- reflex-0.7.2.dev1/tests/integration/test_server_side_event.py +0 -184
- reflex-0.7.2.dev1/tests/integration/test_shared_state.py +0 -77
- reflex-0.7.2.dev1/tests/integration/test_state_inheritance.py +0 -452
- reflex-0.7.2.dev1/tests/integration/test_tailwind.py +0 -122
- reflex-0.7.2.dev1/tests/integration/test_upload.py +0 -503
- reflex-0.7.2.dev1/tests/integration/test_urls.py +0 -68
- reflex-0.7.2.dev1/tests/integration/test_var_operations.py +0 -885
- reflex-0.7.2.dev1/tests/integration/tests_playwright/test_appearance.py +0 -218
- reflex-0.7.2.dev1/tests/integration/tests_playwright/test_datetime_operations.py +0 -87
- reflex-0.7.2.dev1/tests/integration/tests_playwright/test_link_hover.py +0 -46
- reflex-0.7.2.dev1/tests/integration/tests_playwright/test_stateless_app.py +0 -59
- reflex-0.7.2.dev1/tests/integration/tests_playwright/test_table.py +0 -103
- reflex-0.7.2.dev1/tests/integration/utils.py +0 -191
- reflex-0.7.2.dev1/tests/test_node_version.py +0 -73
- reflex-0.7.2.dev1/tests/units/__init__.py +0 -5
- reflex-0.7.2.dev1/tests/units/assets/custom_script.js +0 -1
- reflex-0.7.2.dev1/tests/units/assets/test_assets.py +0 -81
- reflex-0.7.2.dev1/tests/units/compiler/__init__.py +0 -1
- reflex-0.7.2.dev1/tests/units/compiler/test_compiler.py +0 -219
- reflex-0.7.2.dev1/tests/units/compiler/test_compiler_utils.py +0 -7
- reflex-0.7.2.dev1/tests/units/components/__init__.py +0 -1
- reflex-0.7.2.dev1/tests/units/components/base/test_bare.py +0 -26
- reflex-0.7.2.dev1/tests/units/components/base/test_link.py +0 -15
- reflex-0.7.2.dev1/tests/units/components/base/test_script.py +0 -75
- reflex-0.7.2.dev1/tests/units/components/core/__init__.py +0 -0
- reflex-0.7.2.dev1/tests/units/components/core/test_banner.py +0 -59
- reflex-0.7.2.dev1/tests/units/components/core/test_colors.py +0 -136
- reflex-0.7.2.dev1/tests/units/components/core/test_cond.py +0 -146
- reflex-0.7.2.dev1/tests/units/components/core/test_debounce.py +0 -185
- reflex-0.7.2.dev1/tests/units/components/core/test_foreach.py +0 -325
- reflex-0.7.2.dev1/tests/units/components/core/test_html.py +0 -41
- reflex-0.7.2.dev1/tests/units/components/core/test_match.py +0 -317
- reflex-0.7.2.dev1/tests/units/components/core/test_responsive.py +0 -38
- reflex-0.7.2.dev1/tests/units/components/core/test_upload.py +0 -130
- reflex-0.7.2.dev1/tests/units/components/datadisplay/__init__.py +0 -1
- reflex-0.7.2.dev1/tests/units/components/datadisplay/conftest.py +0 -89
- reflex-0.7.2.dev1/tests/units/components/datadisplay/test_code.py +0 -13
- reflex-0.7.2.dev1/tests/units/components/datadisplay/test_dataeditor.py +0 -11
- reflex-0.7.2.dev1/tests/units/components/datadisplay/test_datatable.py +0 -124
- reflex-0.7.2.dev1/tests/units/components/datadisplay/test_shiki_code.py +0 -175
- reflex-0.7.2.dev1/tests/units/components/el/test_html.py +0 -6
- reflex-0.7.2.dev1/tests/units/components/el/test_svg.py +0 -74
- reflex-0.7.2.dev1/tests/units/components/forms/__init__.py +0 -0
- reflex-0.7.2.dev1/tests/units/components/forms/test_form.py +0 -20
- reflex-0.7.2.dev1/tests/units/components/graphing/__init__.py +0 -1
- reflex-0.7.2.dev1/tests/units/components/graphing/test_plotly.py +0 -44
- reflex-0.7.2.dev1/tests/units/components/graphing/test_recharts.py +0 -52
- reflex-0.7.2.dev1/tests/units/components/layout/__init__.py +0 -1
- reflex-0.7.2.dev1/tests/units/components/lucide/test_icon.py +0 -36
- reflex-0.7.2.dev1/tests/units/components/markdown/__init__.py +0 -0
- reflex-0.7.2.dev1/tests/units/components/markdown/test_markdown.py +0 -191
- reflex-0.7.2.dev1/tests/units/components/media/__init__.py +0 -1
- reflex-0.7.2.dev1/tests/units/components/media/test_image.py +0 -65
- reflex-0.7.2.dev1/tests/units/components/radix/test_icon_button.py +0 -30
- reflex-0.7.2.dev1/tests/units/components/radix/test_layout.py +0 -6
- reflex-0.7.2.dev1/tests/units/components/recharts/test_cartesian.py +0 -50
- reflex-0.7.2.dev1/tests/units/components/recharts/test_polar.py +0 -38
- reflex-0.7.2.dev1/tests/units/components/test_component.py +0 -2317
- reflex-0.7.2.dev1/tests/units/components/test_component_future_annotations.py +0 -37
- reflex-0.7.2.dev1/tests/units/components/test_component_state.py +0 -63
- reflex-0.7.2.dev1/tests/units/components/test_props.py +0 -59
- reflex-0.7.2.dev1/tests/units/components/test_tag.py +0 -135
- reflex-0.7.2.dev1/tests/units/components/typography/__init__.py +0 -0
- reflex-0.7.2.dev1/tests/units/components/typography/test_markdown.py +0 -49
- reflex-0.7.2.dev1/tests/units/conftest.py +0 -238
- reflex-0.7.2.dev1/tests/units/middleware/__init__.py +0 -0
- reflex-0.7.2.dev1/tests/units/middleware/conftest.py +0 -25
- reflex-0.7.2.dev1/tests/units/middleware/test_hydrate_middleware.py +0 -50
- reflex-0.7.2.dev1/tests/units/states/__init__.py +0 -34
- reflex-0.7.2.dev1/tests/units/states/mutation.py +0 -219
- reflex-0.7.2.dev1/tests/units/states/upload.py +0 -174
- reflex-0.7.2.dev1/tests/units/test_app.py +0 -1774
- reflex-0.7.2.dev1/tests/units/test_attribute_access_type.py +0 -416
- reflex-0.7.2.dev1/tests/units/test_base.py +0 -100
- reflex-0.7.2.dev1/tests/units/test_config.py +0 -291
- reflex-0.7.2.dev1/tests/units/test_db_config.py +0 -204
- reflex-0.7.2.dev1/tests/units/test_event.py +0 -481
- reflex-0.7.2.dev1/tests/units/test_health_endpoint.py +0 -130
- reflex-0.7.2.dev1/tests/units/test_model.py +0 -193
- reflex-0.7.2.dev1/tests/units/test_page.py +0 -79
- reflex-0.7.2.dev1/tests/units/test_prerequisites.py +0 -387
- reflex-0.7.2.dev1/tests/units/test_route.py +0 -122
- reflex-0.7.2.dev1/tests/units/test_sqlalchemy.py +0 -166
- reflex-0.7.2.dev1/tests/units/test_state.py +0 -3937
- reflex-0.7.2.dev1/tests/units/test_state_tree.py +0 -380
- reflex-0.7.2.dev1/tests/units/test_style.py +0 -554
- reflex-0.7.2.dev1/tests/units/test_telemetry.py +0 -49
- reflex-0.7.2.dev1/tests/units/test_testing.py +0 -40
- reflex-0.7.2.dev1/tests/units/test_var.py +0 -1920
- reflex-0.7.2.dev1/tests/units/utils/__init__.py +0 -0
- reflex-0.7.2.dev1/tests/units/utils/test_format.py +0 -714
- reflex-0.7.2.dev1/tests/units/utils/test_imports.py +0 -117
- reflex-0.7.2.dev1/tests/units/utils/test_serializers.py +0 -240
- reflex-0.7.2.dev1/tests/units/utils/test_types.py +0 -92
- reflex-0.7.2.dev1/tests/units/utils/test_utils.py +0 -698
- reflex-0.7.2.dev1/tests/units/vars/test_base.py +0 -63
- reflex-0.7.2.dev1/tests/units/vars/test_object.py +0 -163
- {reflex-0.7.2.dev1 → reflex-0.7.3}/LICENSE +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/apps/blank/code/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/apps/blank/code/blank.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/web/.gitignore +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/web/jsconfig.json +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/web/next.config.js +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/web/styles/tailwind.css +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/web/utils/helpers/paste.js +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/__main__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/admin.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/app.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/app_mixins/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/app_mixins/lifespan.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/app_mixins/mixin.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/app_module_for_backend.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/assets.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/compiler/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/compiler/templates.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/compiler/utils.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/app_wrap.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/app_wrap.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/bare.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/body.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/body.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/document.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/document.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/error_boundary.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/error_boundary.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/fragment.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/fragment.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/head.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/head.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/link.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/link.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/meta.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/meta.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/script.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/script.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/strict_mode.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/base/strict_mode.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/component.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/auto_scroll.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/auto_scroll.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/banner.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/breakpoints.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/client_side_routing.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/client_side_routing.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/clipboard.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/clipboard.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/colors.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/cond.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/debounce.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/debounce.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/html.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/html.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/layout/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/match.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/responsive.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/sticky.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/sticky.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/upload.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/core/upload.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/datadisplay/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/datadisplay/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/datadisplay/code.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/datadisplay/code.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/datadisplay/dataeditor.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/datadisplay/dataeditor.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/datadisplay/shiki_code_block.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/dynamic.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/constants/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/constants/html.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/constants/react.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/constants/reflex.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/element.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/element.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/base.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/forms.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/forms.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/inline.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/inline.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/metadata.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/metadata.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/other.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/other.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/scripts.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/scripts.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/sectioning.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/sectioning.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/tables.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/tables.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/typography.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/el/elements/typography.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/gridjs/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/gridjs/datatable.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/gridjs/datatable.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/literals.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/lucide/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/markdown/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/markdown/markdown.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/markdown/markdown.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/moment/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/moment/moment.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/moment/moment.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/next/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/next/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/next/base.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/next/image.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/next/image.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/next/link.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/next/link.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/next/video.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/next/video.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/plotly/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/plotly/plotly.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/plotly/plotly.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/props.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/primitives/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/primitives/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/primitives/accordion.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/primitives/accordion.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/primitives/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/primitives/base.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/primitives/drawer.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/primitives/drawer.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/primitives/form.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/primitives/form.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/primitives/progress.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/primitives/progress.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/primitives/slider.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/primitives/slider.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/base.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/color_mode.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/color_mode.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/avatar.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/avatar.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/badge.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/badge.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/button.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/button.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/callout.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/callout.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/card.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/card.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/checkbox.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/context_menu.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/data_list.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/data_list.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/dialog.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/dialog.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/hover_card.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/icon_button.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/inset.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/inset.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/popover.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/popover.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/progress.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/progress.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/radio.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/radio.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/radio_cards.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/radio_group.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/scroll_area.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/segmented_control.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/select.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/select.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/separator.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/separator.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/skeleton.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/slider.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/spinner.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/spinner.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/switch.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/switch.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/table.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/table.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/tabs.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/tabs.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/text_area.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/text_area.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/text_field.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/text_field.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/tooltip.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/base.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/box.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/box.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/center.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/center.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/container.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/container.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/flex.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/flex.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/grid.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/grid.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/list.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/list.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/section.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/section.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/spacer.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/stack.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/layout/stack.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/typography/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/typography/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/typography/blockquote.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/typography/code.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/typography/code.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/typography/heading.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/typography/heading.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/typography/link.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/typography/link.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/typography/text.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/radix/themes/typography/text.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/react_player/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/react_player/audio.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/react_player/audio.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/react_player/react_player.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/react_player/react_player.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/react_player/video.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/react_player/video.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/recharts/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/recharts/__init__.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/recharts/cartesian.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/recharts/cartesian.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/recharts/charts.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/recharts/charts.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/recharts/general.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/recharts/general.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/recharts/polar.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/recharts/polar.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/recharts/recharts.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/recharts/recharts.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/sonner/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/sonner/toast.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/sonner/toast.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/suneditor/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/suneditor/editor.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/suneditor/editor.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/tags/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/tags/cond_tag.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/tags/iter_tag.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/tags/match_tag.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/tags/tag.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/components/tags/tagless.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/constants/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/constants/base.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/constants/colors.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/constants/compiler.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/constants/config.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/constants/custom_components.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/constants/event.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/constants/installer.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/constants/route.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/constants/state.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/constants/style.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/constants/utils.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/custom_components/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/experimental/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/experimental/client_state.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/experimental/hooks.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/experimental/layout.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/experimental/layout.pyi +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/experimental/misc.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/istate/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/istate/dynamic.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/istate/proxy.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/istate/storage.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/istate/wrappers.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/middleware/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/middleware/hydrate_middleware.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/middleware/middleware.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/model.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/page.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/py.typed +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/route.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/style.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/build.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/codespaces.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/compat.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/console.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/decorator.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/format.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/imports.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/lazy_loader.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/net.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/path_ops.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/prerequisites.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/processes.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/pyi_generator.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/redir.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/registry.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/serializers.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/telemetry.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/utils/types.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/vars/__init__.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/vars/datetime.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/vars/dep_tracking.py +0 -0
- {reflex-0.7.2.dev1 → reflex-0.7.3}/reflex/vars/function.py +0 -0
reflex-0.7.3/.gitignore
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
**/.DS_Store
|
|
2
|
+
**/*.pyc
|
|
3
|
+
assets/external/*
|
|
4
|
+
dist/*
|
|
5
|
+
examples/
|
|
6
|
+
.web
|
|
7
|
+
.states
|
|
8
|
+
.idea
|
|
9
|
+
.vscode
|
|
10
|
+
.coverage
|
|
11
|
+
.coverage.*
|
|
12
|
+
.venv
|
|
13
|
+
venv
|
|
14
|
+
requirements.txt
|
|
15
|
+
.pyi_generator_last_run
|
|
16
|
+
.pyi_generator_diff
|
|
17
|
+
reflex.db
|
|
18
|
+
.codspeed
|
|
19
|
+
.env
|
|
20
|
+
.env.*
|
|
21
|
+
node_modules
|
|
@@ -1,48 +1,54 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: reflex
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.3
|
|
4
4
|
Summary: Web apps in pure Python.
|
|
5
|
-
Keywords: web,framework
|
|
6
|
-
Author: Elijah Ahianyo
|
|
7
|
-
Author-Email: Nikhil Rao <nikhil@reflex.dev>, Alek Petuskey <alek@reflex.dev>, Masen Furer <masen@reflex.dev>, =?utf-8?q?Thomas_Brand=C3=A9ho?= <thomas@reflex.dev>, Khaleel Al-Adhami <khaleel@reflex.dev>
|
|
8
|
-
Maintainer-Email: Masen Furer <masen@reflex.dev>, =?utf-8?q?Thomas_Brand=C3=A9ho?= <thomas@reflex.dev>, Khaleel Al-Adhami <khaleel@reflex.dev>
|
|
9
|
-
License-Expression: Apache-2.0
|
|
10
5
|
Project-URL: homepage, https://reflex.dev
|
|
11
6
|
Project-URL: repository, https://github.com/reflex-dev/reflex
|
|
12
7
|
Project-URL: documentation, https://reflex.dev/docs/getting-started/introduction
|
|
8
|
+
Author-email: Nikhil Rao <nikhil@reflex.dev>, Alek Petuskey <alek@reflex.dev>, Masen Furer <masen@reflex.dev>, Elijah Ahianyo <elijahahianyo@gmail.com>, Thomas Brandeho <thomas@reflex.dev>, Khaleel Al-Adhami <khaleel@reflex.dev>
|
|
9
|
+
Maintainer-email: Masen Furer <masen@reflex.dev>, Thomas Brandeho <thomas@reflex.dev>, Khaleel Al-Adhami <khaleel@reflex.dev>
|
|
10
|
+
License: Apache-2.0
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Keywords: framework,web
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
13
20
|
Requires-Python: <4.0,>=3.10
|
|
21
|
+
Requires-Dist: alembic<2.0,>=1.11.1
|
|
22
|
+
Requires-Dist: build<2.0,>=1.0.3
|
|
23
|
+
Requires-Dist: charset-normalizer<4.0,>=3.3.2
|
|
24
|
+
Requires-Dist: distro<2.0,>=1.8.0; platform_system == 'Linux'
|
|
14
25
|
Requires-Dist: fastapi!=0.111.0,!=0.111.1,>=0.96.0
|
|
15
26
|
Requires-Dist: gunicorn<24.0,>=20.1.0
|
|
27
|
+
Requires-Dist: httpx<1.0,>=0.25.1
|
|
16
28
|
Requires-Dist: jinja2<4.0,>=3.1.2
|
|
29
|
+
Requires-Dist: lazy-loader>=0.4
|
|
30
|
+
Requires-Dist: packaging<25.0,>=23.1
|
|
31
|
+
Requires-Dist: platformdirs<5.0,>=3.10.0
|
|
17
32
|
Requires-Dist: psutil<8.0,>=5.9.4
|
|
18
33
|
Requires-Dist: pydantic<3.0,>=1.10.21
|
|
34
|
+
Requires-Dist: python-engineio!=4.6.0
|
|
19
35
|
Requires-Dist: python-multipart<0.1,>=0.0.5
|
|
20
36
|
Requires-Dist: python-socketio<6.0,>=5.7.0
|
|
21
37
|
Requires-Dist: redis<6.0,>=4.3.5
|
|
38
|
+
Requires-Dist: reflex-hosting-cli>=0.1.29
|
|
22
39
|
Requires-Dist: rich<14.0,>=13.0.0
|
|
40
|
+
Requires-Dist: setuptools>=75.0
|
|
23
41
|
Requires-Dist: sqlmodel<0.1,>=0.0.14
|
|
42
|
+
Requires-Dist: starlette-admin<1.0,>=0.11.0
|
|
43
|
+
Requires-Dist: tomlkit<1.0,>=0.12.4
|
|
44
|
+
Requires-Dist: twine<7.0,>=4.0.0
|
|
24
45
|
Requires-Dist: typer<1.0,>=0.15.1
|
|
46
|
+
Requires-Dist: typing-extensions>=4.6.0
|
|
25
47
|
Requires-Dist: uvicorn>=0.20.0
|
|
26
|
-
Requires-Dist: starlette-admin<1.0,>=0.11.0
|
|
27
|
-
Requires-Dist: alembic<2.0,>=1.11.1
|
|
28
|
-
Requires-Dist: platformdirs<5.0,>=3.10.0
|
|
29
|
-
Requires-Dist: distro<2.0,>=1.8.0; platform_system == "Linux"
|
|
30
|
-
Requires-Dist: python-engineio!=4.6.0
|
|
31
|
-
Requires-Dist: wrapt<2.0,>=1.17.0
|
|
32
|
-
Requires-Dist: packaging<25.0,>=23.1
|
|
33
|
-
Requires-Dist: reflex-hosting-cli>=0.1.29
|
|
34
|
-
Requires-Dist: charset-normalizer<4.0,>=3.3.2
|
|
35
48
|
Requires-Dist: wheel<1.0,>=0.42.0
|
|
36
|
-
Requires-Dist:
|
|
37
|
-
Requires-Dist: setuptools>=75.0
|
|
38
|
-
Requires-Dist: httpx<1.0,>=0.25.1
|
|
39
|
-
Requires-Dist: twine<7.0,>=4.0.0
|
|
40
|
-
Requires-Dist: tomlkit<1.0,>=0.12.4
|
|
41
|
-
Requires-Dist: lazy_loader>=0.4
|
|
42
|
-
Requires-Dist: typing_extensions>=4.6.0
|
|
49
|
+
Requires-Dist: wrapt<2.0,>=1.17.0
|
|
43
50
|
Description-Content-Type: text/markdown
|
|
44
51
|
|
|
45
|
-
|
|
46
52
|
<div align="center">
|
|
47
53
|
<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
54
|
<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 +56,12 @@ Description-Content-Type: text/markdown
|
|
|
50
56
|
<hr>
|
|
51
57
|
|
|
52
58
|
### **✨ Performant, customizable web apps in pure Python. Deploy in seconds. ✨**
|
|
59
|
+
|
|
53
60
|
[](https://badge.fury.io/py/reflex)
|
|
54
61
|

|
|
55
62
|
[](https://reflex.dev/docs/getting-started/introduction)
|
|
56
63
|
[](https://discord.gg/T5WSbC2YtQ)
|
|
64
|
+
|
|
57
65
|
</div>
|
|
58
66
|
|
|
59
67
|
---
|
|
@@ -67,9 +75,10 @@ Description-Content-Type: text/markdown
|
|
|
67
75
|
Reflex is a library to build full-stack web apps in pure Python.
|
|
68
76
|
|
|
69
77
|
Key features:
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
78
|
+
|
|
79
|
+
- **Pure Python** - Write your app's frontend and backend all in Python, no need to learn Javascript.
|
|
80
|
+
- **Full Flexibility** - Reflex is easy to get started with, but can also scale to complex apps.
|
|
81
|
+
- **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
82
|
|
|
74
83
|
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
84
|
|
|
@@ -93,7 +102,7 @@ cd my_app_name
|
|
|
93
102
|
reflex init
|
|
94
103
|
```
|
|
95
104
|
|
|
96
|
-
This command initializes a template app in your new directory.
|
|
105
|
+
This command initializes a template app in your new directory.
|
|
97
106
|
|
|
98
107
|
You can run this app in development mode:
|
|
99
108
|
|
|
@@ -105,7 +114,6 @@ You should see your app running at http://localhost:3000.
|
|
|
105
114
|
|
|
106
115
|
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
116
|
|
|
108
|
-
|
|
109
117
|
## 🫧 Example App
|
|
110
118
|
|
|
111
119
|
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 +128,6 @@ Let's go over an example: creating an image generation UI around [DALL·E](https
|
|
|
120
128
|
|
|
121
129
|
Here is the complete code to create this. This is all done in one Python file!
|
|
122
130
|
|
|
123
|
-
|
|
124
|
-
|
|
125
131
|
```python
|
|
126
132
|
import reflex as rx
|
|
127
133
|
import openai
|
|
@@ -161,7 +167,7 @@ def index():
|
|
|
161
167
|
width="25em",
|
|
162
168
|
),
|
|
163
169
|
rx.button(
|
|
164
|
-
"Generate Image",
|
|
170
|
+
"Generate Image",
|
|
165
171
|
on_click=State.get_image,
|
|
166
172
|
width="25em",
|
|
167
173
|
loading=State.processing
|
|
@@ -181,17 +187,12 @@ app = rx.App()
|
|
|
181
187
|
app.add_page(index, title="Reflex:DALL-E")
|
|
182
188
|
```
|
|
183
189
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
190
|
## Let's break this down.
|
|
189
191
|
|
|
190
192
|
<div align="center">
|
|
191
193
|
<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
194
|
</div>
|
|
193
195
|
|
|
194
|
-
|
|
195
196
|
### **Reflex UI**
|
|
196
197
|
|
|
197
198
|
Let's start with the UI.
|
|
@@ -269,11 +270,10 @@ You can create a multi-page app by adding more pages.
|
|
|
269
270
|
|
|
270
271
|
<div align="center">
|
|
271
272
|
|
|
272
|
-
📑 [Docs](https://reflex.dev/docs/getting-started/introduction) |
|
|
273
|
+
📑 [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
274
|
|
|
274
275
|
</div>
|
|
275
276
|
|
|
276
|
-
|
|
277
277
|
## ✅ Status
|
|
278
278
|
|
|
279
279
|
Reflex launched in December 2022 with the name Pynecone.
|
|
@@ -286,14 +286,14 @@ Reflex has new releases and features coming every other week! Make sure to :star
|
|
|
286
286
|
|
|
287
287
|
We welcome contributions of any size! Below are some good ways to get started in the Reflex community.
|
|
288
288
|
|
|
289
|
-
-
|
|
290
|
-
-
|
|
291
|
-
-
|
|
289
|
+
- **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.
|
|
290
|
+
- **GitHub Discussions**: A great way to talk about features you want added or things that are confusing/need clarification.
|
|
291
|
+
- **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
292
|
|
|
293
293
|
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
294
|
|
|
295
|
-
|
|
296
295
|
## All Thanks To Our Contributors:
|
|
296
|
+
|
|
297
297
|
<a href="https://github.com/reflex-dev/reflex/graphs/contributors">
|
|
298
298
|
<img src="https://contrib.rocks/image?repo=reflex-dev/reflex" />
|
|
299
299
|
</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>
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "reflex"
|
|
3
|
+
version = "0.7.3"
|
|
4
|
+
description = "Web apps in pure Python."
|
|
5
|
+
license = { text = "Apache-2.0" }
|
|
6
|
+
authors = [
|
|
7
|
+
{ name = "Nikhil Rao", email = "nikhil@reflex.dev" },
|
|
8
|
+
{ name = "Alek Petuskey", email = "alek@reflex.dev" },
|
|
9
|
+
{ name = "Masen Furer", email = "masen@reflex.dev" },
|
|
10
|
+
{ name = "Elijah Ahianyo", email = "elijahahianyo@gmail.com" },
|
|
11
|
+
{ name = "Thomas Brandeho", email = "thomas@reflex.dev" },
|
|
12
|
+
{ name = "Khaleel Al-Adhami", email = "khaleel@reflex.dev" },
|
|
13
|
+
]
|
|
14
|
+
maintainers = [
|
|
15
|
+
{ name = "Masen Furer", email = "masen@reflex.dev" },
|
|
16
|
+
{ name = "Thomas Brandeho", email = "thomas@reflex.dev" },
|
|
17
|
+
{ name = "Khaleel Al-Adhami", email = "khaleel@reflex.dev" },
|
|
18
|
+
]
|
|
19
|
+
readme = "README.md"
|
|
20
|
+
keywords = ["web", "framework"]
|
|
21
|
+
requires-python = ">=3.10,<4.0"
|
|
22
|
+
dependencies = [
|
|
23
|
+
"alembic >=1.11.1,<2.0",
|
|
24
|
+
"build >=1.0.3,<2.0",
|
|
25
|
+
"charset-normalizer >=3.3.2,<4.0",
|
|
26
|
+
"distro >=1.8.0,<2.0; platform_system == 'Linux'",
|
|
27
|
+
"fastapi >=0.96.0,!=0.111.0,!=0.111.1",
|
|
28
|
+
"gunicorn >=20.1.0,<24.0",
|
|
29
|
+
"httpx >=0.25.1,<1.0",
|
|
30
|
+
"jinja2 >=3.1.2,<4.0",
|
|
31
|
+
"lazy_loader >=0.4",
|
|
32
|
+
"packaging >=23.1,<25.0",
|
|
33
|
+
"platformdirs >=3.10.0,<5.0",
|
|
34
|
+
"psutil >=5.9.4,<8.0",
|
|
35
|
+
"pydantic >=1.10.21,<3.0",
|
|
36
|
+
"python-engineio !=4.6.0",
|
|
37
|
+
"python-multipart >=0.0.5,<0.1",
|
|
38
|
+
"python-socketio >=5.7.0,<6.0",
|
|
39
|
+
"redis >=4.3.5,<6.0",
|
|
40
|
+
"reflex-hosting-cli >=0.1.29",
|
|
41
|
+
"rich >=13.0.0,<14.0",
|
|
42
|
+
"setuptools >=75.0",
|
|
43
|
+
"starlette-admin >=0.11.0,<1.0",
|
|
44
|
+
"sqlmodel >=0.0.14,<0.1",
|
|
45
|
+
"tomlkit >=0.12.4,<1.0",
|
|
46
|
+
"twine >=4.0.0,<7.0",
|
|
47
|
+
"typer >=0.15.1,<1.0",
|
|
48
|
+
"typing_extensions >=4.6.0",
|
|
49
|
+
"uvicorn >=0.20.0",
|
|
50
|
+
"wheel >=0.42.0,<1.0",
|
|
51
|
+
"wrapt >=1.17.0,<2.0",
|
|
52
|
+
]
|
|
53
|
+
classifiers = [
|
|
54
|
+
"Development Status :: 4 - Beta",
|
|
55
|
+
"License :: OSI Approved :: Apache Software License",
|
|
56
|
+
"Programming Language :: Python :: 3",
|
|
57
|
+
"Programming Language :: Python :: 3.10",
|
|
58
|
+
"Programming Language :: Python :: 3.11",
|
|
59
|
+
"Programming Language :: Python :: 3.12",
|
|
60
|
+
"Programming Language :: Python :: 3.13",
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
[project.urls]
|
|
65
|
+
homepage = "https://reflex.dev"
|
|
66
|
+
repository = "https://github.com/reflex-dev/reflex"
|
|
67
|
+
documentation = "https://reflex.dev/docs/getting-started/introduction"
|
|
68
|
+
|
|
69
|
+
[project.scripts]
|
|
70
|
+
reflex = "reflex.reflex:cli"
|
|
71
|
+
|
|
72
|
+
[build-system]
|
|
73
|
+
requires = ["hatchling"]
|
|
74
|
+
build-backend = "hatchling.build"
|
|
75
|
+
|
|
76
|
+
[tool.hatch.build]
|
|
77
|
+
include = ["reflex"]
|
|
78
|
+
|
|
79
|
+
[tool.pyright]
|
|
80
|
+
reportIncompatibleMethodOverride = false
|
|
81
|
+
|
|
82
|
+
[tool.ruff]
|
|
83
|
+
target-version = "py310"
|
|
84
|
+
output-format = "concise"
|
|
85
|
+
lint.isort.split-on-trailing-comma = false
|
|
86
|
+
lint.select = [
|
|
87
|
+
"ANN001",
|
|
88
|
+
"B",
|
|
89
|
+
"C4",
|
|
90
|
+
"D",
|
|
91
|
+
"E",
|
|
92
|
+
"ERA",
|
|
93
|
+
"F",
|
|
94
|
+
"FURB",
|
|
95
|
+
"I",
|
|
96
|
+
"N",
|
|
97
|
+
"PERF",
|
|
98
|
+
"PGH",
|
|
99
|
+
"PTH",
|
|
100
|
+
"RUF",
|
|
101
|
+
"SIM",
|
|
102
|
+
"T",
|
|
103
|
+
"TRY",
|
|
104
|
+
"W",
|
|
105
|
+
]
|
|
106
|
+
lint.ignore = [
|
|
107
|
+
"B008",
|
|
108
|
+
"D205",
|
|
109
|
+
"E501",
|
|
110
|
+
"F403",
|
|
111
|
+
"SIM115",
|
|
112
|
+
"RUF006",
|
|
113
|
+
"RUF008",
|
|
114
|
+
"RUF012",
|
|
115
|
+
"TRY0",
|
|
116
|
+
]
|
|
117
|
+
lint.pydocstyle.convention = "google"
|
|
118
|
+
|
|
119
|
+
[tool.ruff.lint.per-file-ignores]
|
|
120
|
+
"__init__.py" = ["F401"]
|
|
121
|
+
"tests/*.py" = ["ANN001", "D100", "D103", "D104", "B018", "PERF", "T", "N"]
|
|
122
|
+
"benchmarks/*.py" = ["ANN001", "D100", "D103", "D104", "B018", "PERF", "T", "N"]
|
|
123
|
+
"reflex/.templates/*.py" = ["D100", "D103", "D104"]
|
|
124
|
+
"*.pyi" = ["D301", "D415", "D417", "D418", "E742", "N", "PGH"]
|
|
125
|
+
"pyi_generator.py" = ["N802"]
|
|
126
|
+
"reflex/constants/*.py" = ["N"]
|
|
127
|
+
"*/blank.py" = ["I001"]
|
|
128
|
+
|
|
129
|
+
[tool.pytest.ini_options]
|
|
130
|
+
filterwarnings = "ignore:fields may not start with an underscore:RuntimeWarning"
|
|
131
|
+
asyncio_default_fixture_loop_scope = "function"
|
|
132
|
+
asyncio_mode = "auto"
|
|
133
|
+
|
|
134
|
+
[tool.codespell]
|
|
135
|
+
skip = "docs/*,*.html,examples/*, *.pyi, poetry.lock, uv.lock"
|
|
136
|
+
ignore-words-list = "te, TreeE"
|
|
137
|
+
|
|
138
|
+
[dependency-groups]
|
|
139
|
+
dev = [
|
|
140
|
+
"asynctest >=0.13.0,<1.0",
|
|
141
|
+
"darglint >=1.8.1,<2.0",
|
|
142
|
+
"dill >=0.3.8",
|
|
143
|
+
"granian[reload] >= 2.0.0",
|
|
144
|
+
"numpy >=2.2.3,<3.0",
|
|
145
|
+
"pandas >=2.1.1,<3.0",
|
|
146
|
+
"pillow >=10.0.0,<12.0",
|
|
147
|
+
"playwright >=1.46.0",
|
|
148
|
+
"plotly >=5.13.0,<6.0",
|
|
149
|
+
"pre-commit >=4.1.0,<5.0",
|
|
150
|
+
"psycopg[binary] >=3.2.6,<4.0",
|
|
151
|
+
"pyright >=1.1.396,<1.2",
|
|
152
|
+
"pytest >=7.1.2,<9.0",
|
|
153
|
+
"pytest-asyncio >=0.24.0",
|
|
154
|
+
"pytest-benchmark >=4.0.0,<6.0",
|
|
155
|
+
"pytest-codspeed >=3.1.2,<4.0.0",
|
|
156
|
+
"pytest-cov >=4.0.0,<7.0",
|
|
157
|
+
"pytest-mock >=3.10.0,<4.0",
|
|
158
|
+
"pytest-playwright >=0.5.1",
|
|
159
|
+
"pytest-retry >=1.7.0,<2.0",
|
|
160
|
+
"pytest-split >=0.10.0,<1.0",
|
|
161
|
+
"ruff ==0.9.10",
|
|
162
|
+
"selenium >=4.11.0,<5.0",
|
|
163
|
+
"toml >=0.10.2,<1.0",
|
|
164
|
+
]
|
{reflex-0.7.2.dev1 → reflex-0.7.3}/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,
|