reflex 0.7.3a1__tar.gz → 0.7.4__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.4/.gitignore +21 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/PKG-INFO +32 -23
- {reflex-0.7.3a1 → reflex-0.7.4}/README.md +1 -0
- reflex-0.7.4/pyproject.toml +166 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +9 -1
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/web/utils/state.js +1 -1
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/app.py +21 -5
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/app_mixins/middleware.py +2 -3
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/base.py +3 -3
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/compiler/compiler.py +68 -8
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/component.py +6 -3
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/client_side_routing.py +3 -3
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/cond.py +20 -12
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/upload.py +1 -1
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/dynamic.py +2 -4
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/lucide/icon.py +20 -27
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/plotly/plotly.py +9 -9
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/recharts/recharts.py +2 -2
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/sonner/toast.py +1 -1
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/config.py +23 -23
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/constants/__init__.py +1 -2
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/constants/base.py +3 -0
- reflex-0.7.4/reflex/constants/installer.py +104 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/custom_components/custom_components.py +8 -3
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/reflex.py +22 -4
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/state.py +9 -1
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/testing.py +7 -1
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/build.py +3 -4
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/exec.py +156 -75
- reflex-0.7.4/reflex/utils/net.py +130 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/path_ops.py +15 -25
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/prerequisites.py +225 -189
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/processes.py +70 -35
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/redir.py +3 -1
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/registry.py +16 -8
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/vars/base.py +2 -38
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/vars/datetime.py +10 -34
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/vars/number.py +16 -112
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/vars/sequence.py +99 -108
- reflex-0.7.3a1/benchmarks/__init__.py +0 -3
- reflex-0.7.3a1/benchmarks/benchmark_compile_times.py +0 -147
- reflex-0.7.3a1/benchmarks/benchmark_imports.py +0 -128
- reflex-0.7.3a1/benchmarks/benchmark_lighthouse.py +0 -75
- reflex-0.7.3a1/benchmarks/benchmark_package_size.py +0 -135
- reflex-0.7.3a1/benchmarks/benchmark_web_size.py +0 -106
- reflex-0.7.3a1/benchmarks/conftest.py +0 -20
- reflex-0.7.3a1/benchmarks/lighthouse.sh +0 -77
- reflex-0.7.3a1/benchmarks/utils.py +0 -74
- reflex-0.7.3a1/pyproject.toml +0 -203
- reflex-0.7.3a1/reflex/app_module_for_backend.py +0 -33
- reflex-0.7.3a1/reflex/constants/installer.py +0 -201
- reflex-0.7.3a1/reflex/utils/net.py +0 -41
- reflex-0.7.3a1/tests/__init__.py +0 -5
- reflex-0.7.3a1/tests/benchmarks/__init__.py +0 -0
- reflex-0.7.3a1/tests/benchmarks/conftest.py +0 -3
- reflex-0.7.3a1/tests/benchmarks/fixtures.py +0 -383
- reflex-0.7.3a1/tests/benchmarks/test_compilation.py +0 -25
- reflex-0.7.3a1/tests/benchmarks/test_evaluate.py +0 -11
- reflex-0.7.3a1/tests/integration/__init__.py +0 -1
- reflex-0.7.3a1/tests/integration/conftest.py +0 -43
- reflex-0.7.3a1/tests/integration/init-test/Dockerfile +0 -8
- reflex-0.7.3a1/tests/integration/init-test/in_docker_test_script.sh +0 -37
- reflex-0.7.3a1/tests/integration/shared/state.py +0 -9
- reflex-0.7.3a1/tests/integration/test_background_task.py +0 -381
- reflex-0.7.3a1/tests/integration/test_call_script.py +0 -542
- reflex-0.7.3a1/tests/integration/test_client_storage.py +0 -760
- reflex-0.7.3a1/tests/integration/test_component_state.py +0 -204
- reflex-0.7.3a1/tests/integration/test_computed_vars.py +0 -275
- reflex-0.7.3a1/tests/integration/test_connection_banner.py +0 -223
- reflex-0.7.3a1/tests/integration/test_deploy_url.py +0 -99
- reflex-0.7.3a1/tests/integration/test_dynamic_components.py +0 -170
- reflex-0.7.3a1/tests/integration/test_dynamic_routes.py +0 -430
- reflex-0.7.3a1/tests/integration/test_event_actions.py +0 -385
- reflex-0.7.3a1/tests/integration/test_event_chain.py +0 -579
- reflex-0.7.3a1/tests/integration/test_exception_handlers.py +0 -204
- reflex-0.7.3a1/tests/integration/test_extra_overlay_function.py +0 -87
- reflex-0.7.3a1/tests/integration/test_form_submit.py +0 -262
- reflex-0.7.3a1/tests/integration/test_input.py +0 -188
- reflex-0.7.3a1/tests/integration/test_large_state.py +0 -91
- reflex-0.7.3a1/tests/integration/test_lifespan.py +0 -133
- reflex-0.7.3a1/tests/integration/test_login_flow.py +0 -147
- reflex-0.7.3a1/tests/integration/test_media.py +0 -163
- reflex-0.7.3a1/tests/integration/test_memo.py +0 -67
- reflex-0.7.3a1/tests/integration/test_navigation.py +0 -93
- reflex-0.7.3a1/tests/integration/test_server_side_event.py +0 -184
- reflex-0.7.3a1/tests/integration/test_shared_state.py +0 -77
- reflex-0.7.3a1/tests/integration/test_state_inheritance.py +0 -452
- reflex-0.7.3a1/tests/integration/test_tailwind.py +0 -122
- reflex-0.7.3a1/tests/integration/test_upload.py +0 -503
- reflex-0.7.3a1/tests/integration/test_urls.py +0 -68
- reflex-0.7.3a1/tests/integration/test_var_operations.py +0 -975
- reflex-0.7.3a1/tests/integration/tests_playwright/test_appearance.py +0 -218
- reflex-0.7.3a1/tests/integration/tests_playwright/test_datetime_operations.py +0 -87
- reflex-0.7.3a1/tests/integration/tests_playwright/test_link_hover.py +0 -46
- reflex-0.7.3a1/tests/integration/tests_playwright/test_stateless_app.py +0 -59
- reflex-0.7.3a1/tests/integration/tests_playwright/test_table.py +0 -103
- reflex-0.7.3a1/tests/integration/utils.py +0 -191
- reflex-0.7.3a1/tests/test_node_version.py +0 -73
- reflex-0.7.3a1/tests/units/__init__.py +0 -5
- reflex-0.7.3a1/tests/units/assets/custom_script.js +0 -1
- reflex-0.7.3a1/tests/units/assets/test_assets.py +0 -81
- reflex-0.7.3a1/tests/units/compiler/__init__.py +0 -1
- reflex-0.7.3a1/tests/units/compiler/test_compiler.py +0 -219
- reflex-0.7.3a1/tests/units/compiler/test_compiler_utils.py +0 -7
- reflex-0.7.3a1/tests/units/components/__init__.py +0 -1
- reflex-0.7.3a1/tests/units/components/base/test_bare.py +0 -26
- reflex-0.7.3a1/tests/units/components/base/test_link.py +0 -15
- reflex-0.7.3a1/tests/units/components/base/test_script.py +0 -75
- reflex-0.7.3a1/tests/units/components/core/__init__.py +0 -0
- reflex-0.7.3a1/tests/units/components/core/test_banner.py +0 -59
- reflex-0.7.3a1/tests/units/components/core/test_colors.py +0 -136
- reflex-0.7.3a1/tests/units/components/core/test_cond.py +0 -146
- reflex-0.7.3a1/tests/units/components/core/test_debounce.py +0 -185
- reflex-0.7.3a1/tests/units/components/core/test_foreach.py +0 -325
- reflex-0.7.3a1/tests/units/components/core/test_html.py +0 -41
- reflex-0.7.3a1/tests/units/components/core/test_match.py +0 -317
- reflex-0.7.3a1/tests/units/components/core/test_responsive.py +0 -38
- reflex-0.7.3a1/tests/units/components/core/test_upload.py +0 -130
- reflex-0.7.3a1/tests/units/components/datadisplay/__init__.py +0 -1
- reflex-0.7.3a1/tests/units/components/datadisplay/conftest.py +0 -89
- reflex-0.7.3a1/tests/units/components/datadisplay/test_code.py +0 -13
- reflex-0.7.3a1/tests/units/components/datadisplay/test_dataeditor.py +0 -11
- reflex-0.7.3a1/tests/units/components/datadisplay/test_datatable.py +0 -124
- reflex-0.7.3a1/tests/units/components/datadisplay/test_shiki_code.py +0 -175
- reflex-0.7.3a1/tests/units/components/el/test_html.py +0 -6
- reflex-0.7.3a1/tests/units/components/el/test_svg.py +0 -74
- reflex-0.7.3a1/tests/units/components/forms/__init__.py +0 -0
- reflex-0.7.3a1/tests/units/components/forms/test_form.py +0 -20
- reflex-0.7.3a1/tests/units/components/graphing/__init__.py +0 -1
- reflex-0.7.3a1/tests/units/components/graphing/test_plotly.py +0 -44
- reflex-0.7.3a1/tests/units/components/graphing/test_recharts.py +0 -52
- reflex-0.7.3a1/tests/units/components/layout/__init__.py +0 -1
- reflex-0.7.3a1/tests/units/components/lucide/test_icon.py +0 -36
- reflex-0.7.3a1/tests/units/components/markdown/__init__.py +0 -0
- reflex-0.7.3a1/tests/units/components/markdown/test_markdown.py +0 -191
- reflex-0.7.3a1/tests/units/components/media/__init__.py +0 -1
- reflex-0.7.3a1/tests/units/components/media/test_image.py +0 -65
- reflex-0.7.3a1/tests/units/components/radix/test_icon_button.py +0 -30
- reflex-0.7.3a1/tests/units/components/radix/test_layout.py +0 -6
- reflex-0.7.3a1/tests/units/components/recharts/test_cartesian.py +0 -50
- reflex-0.7.3a1/tests/units/components/recharts/test_polar.py +0 -38
- reflex-0.7.3a1/tests/units/components/test_component.py +0 -2317
- reflex-0.7.3a1/tests/units/components/test_component_future_annotations.py +0 -37
- reflex-0.7.3a1/tests/units/components/test_component_state.py +0 -63
- reflex-0.7.3a1/tests/units/components/test_props.py +0 -59
- reflex-0.7.3a1/tests/units/components/test_tag.py +0 -135
- reflex-0.7.3a1/tests/units/components/typography/__init__.py +0 -0
- reflex-0.7.3a1/tests/units/components/typography/test_markdown.py +0 -49
- reflex-0.7.3a1/tests/units/conftest.py +0 -238
- reflex-0.7.3a1/tests/units/middleware/__init__.py +0 -0
- reflex-0.7.3a1/tests/units/middleware/conftest.py +0 -25
- reflex-0.7.3a1/tests/units/middleware/test_hydrate_middleware.py +0 -50
- reflex-0.7.3a1/tests/units/states/__init__.py +0 -34
- reflex-0.7.3a1/tests/units/states/mutation.py +0 -219
- reflex-0.7.3a1/tests/units/states/upload.py +0 -174
- reflex-0.7.3a1/tests/units/test_app.py +0 -1774
- reflex-0.7.3a1/tests/units/test_attribute_access_type.py +0 -416
- reflex-0.7.3a1/tests/units/test_base.py +0 -100
- reflex-0.7.3a1/tests/units/test_config.py +0 -291
- reflex-0.7.3a1/tests/units/test_db_config.py +0 -204
- reflex-0.7.3a1/tests/units/test_event.py +0 -481
- reflex-0.7.3a1/tests/units/test_health_endpoint.py +0 -130
- reflex-0.7.3a1/tests/units/test_model.py +0 -193
- reflex-0.7.3a1/tests/units/test_page.py +0 -79
- reflex-0.7.3a1/tests/units/test_prerequisites.py +0 -387
- reflex-0.7.3a1/tests/units/test_route.py +0 -122
- reflex-0.7.3a1/tests/units/test_sqlalchemy.py +0 -166
- reflex-0.7.3a1/tests/units/test_state.py +0 -3942
- reflex-0.7.3a1/tests/units/test_state_tree.py +0 -380
- reflex-0.7.3a1/tests/units/test_style.py +0 -554
- reflex-0.7.3a1/tests/units/test_telemetry.py +0 -49
- reflex-0.7.3a1/tests/units/test_testing.py +0 -40
- reflex-0.7.3a1/tests/units/test_var.py +0 -1920
- reflex-0.7.3a1/tests/units/utils/__init__.py +0 -0
- reflex-0.7.3a1/tests/units/utils/test_format.py +0 -715
- reflex-0.7.3a1/tests/units/utils/test_imports.py +0 -117
- reflex-0.7.3a1/tests/units/utils/test_serializers.py +0 -240
- reflex-0.7.3a1/tests/units/utils/test_types.py +0 -92
- reflex-0.7.3a1/tests/units/utils/test_utils.py +0 -698
- reflex-0.7.3a1/tests/units/vars/test_base.py +0 -63
- reflex-0.7.3a1/tests/units/vars/test_object.py +0 -163
- {reflex-0.7.3a1 → reflex-0.7.4}/LICENSE +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/apps/blank/code/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/apps/blank/code/blank.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/web/.gitignore +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/web/components/shiki/code.js +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/web/jsconfig.json +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/web/next.config.js +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/web/postcss.config.js +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/web/styles/tailwind.css +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/web/utils/client_side_routing.js +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/web/utils/helpers/paste.js +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/web/utils/helpers/range.js +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/__init__.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/__main__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/admin.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/app_mixins/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/app_mixins/lifespan.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/app_mixins/mixin.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/assets.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/compiler/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/compiler/templates.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/compiler/utils.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/__init__.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/__init__.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/app_wrap.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/app_wrap.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/bare.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/body.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/body.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/document.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/document.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/error_boundary.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/error_boundary.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/fragment.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/fragment.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/head.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/head.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/link.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/link.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/meta.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/meta.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/script.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/script.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/strict_mode.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/base/strict_mode.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/__init__.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/auto_scroll.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/auto_scroll.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/banner.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/banner.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/breakpoints.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/client_side_routing.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/clipboard.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/clipboard.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/colors.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/debounce.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/debounce.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/foreach.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/html.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/html.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/layout/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/match.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/responsive.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/sticky.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/sticky.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/core/upload.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/datadisplay/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/datadisplay/__init__.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/datadisplay/code.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/datadisplay/code.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/datadisplay/dataeditor.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/datadisplay/dataeditor.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/datadisplay/logo.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/datadisplay/shiki_code_block.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/__init__.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/constants/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/constants/html.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/constants/react.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/constants/reflex.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/element.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/element.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/__init__.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/base.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/base.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/forms.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/forms.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/inline.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/inline.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/media.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/media.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/metadata.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/metadata.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/other.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/other.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/scripts.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/scripts.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/sectioning.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/sectioning.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/tables.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/tables.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/typography.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/el/elements/typography.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/gridjs/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/gridjs/datatable.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/gridjs/datatable.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/literals.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/lucide/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/lucide/icon.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/markdown/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/markdown/markdown.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/markdown/markdown.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/moment/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/moment/moment.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/moment/moment.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/next/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/next/base.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/next/base.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/next/image.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/next/image.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/next/link.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/next/link.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/next/video.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/next/video.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/plotly/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/plotly/plotly.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/props.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/__init__.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/primitives/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/primitives/__init__.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/primitives/accordion.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/primitives/accordion.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/primitives/base.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/primitives/base.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/primitives/drawer.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/primitives/drawer.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/primitives/form.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/primitives/form.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/primitives/progress.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/primitives/progress.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/primitives/slider.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/primitives/slider.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/__init__.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/base.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/base.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/color_mode.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/color_mode.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/__init__.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/avatar.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/avatar.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/badge.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/badge.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/button.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/button.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/callout.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/callout.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/card.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/card.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/checkbox.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/context_menu.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/data_list.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/data_list.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/dialog.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/dialog.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/hover_card.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/icon_button.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/inset.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/inset.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/popover.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/popover.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/progress.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/progress.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/radio.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/radio.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/radio_cards.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/radio_group.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/scroll_area.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/segmented_control.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/select.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/select.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/separator.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/separator.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/skeleton.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/slider.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/slider.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/spinner.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/spinner.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/switch.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/switch.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/table.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/table.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/tabs.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/tabs.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/text_area.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/text_area.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/text_field.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/text_field.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/tooltip.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/base.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/base.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/box.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/box.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/center.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/center.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/container.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/container.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/flex.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/flex.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/grid.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/grid.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/list.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/list.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/section.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/section.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/spacer.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/stack.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/layout/stack.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/typography/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/typography/base.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/typography/blockquote.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/typography/code.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/typography/code.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/typography/heading.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/typography/heading.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/typography/link.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/typography/link.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/typography/text.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/radix/themes/typography/text.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/react_player/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/react_player/audio.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/react_player/audio.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/react_player/react_player.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/react_player/react_player.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/react_player/video.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/react_player/video.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/recharts/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/recharts/__init__.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/recharts/cartesian.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/recharts/cartesian.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/recharts/charts.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/recharts/charts.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/recharts/general.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/recharts/general.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/recharts/polar.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/recharts/polar.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/recharts/recharts.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/sonner/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/sonner/toast.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/suneditor/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/suneditor/editor.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/suneditor/editor.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/tags/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/tags/cond_tag.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/tags/iter_tag.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/tags/match_tag.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/tags/tag.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/components/tags/tagless.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/constants/colors.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/constants/compiler.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/constants/config.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/constants/custom_components.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/constants/event.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/constants/route.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/constants/state.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/constants/style.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/constants/utils.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/custom_components/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/event.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/experimental/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/experimental/client_state.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/experimental/hooks.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/experimental/layout.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/experimental/layout.pyi +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/experimental/misc.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/istate/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/istate/data.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/istate/dynamic.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/istate/proxy.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/istate/storage.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/istate/wrappers.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/middleware/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/middleware/hydrate_middleware.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/middleware/middleware.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/model.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/page.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/py.typed +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/route.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/style.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/codespaces.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/compat.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/console.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/decorator.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/exceptions.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/export.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/format.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/imports.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/lazy_loader.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/pyi_generator.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/serializers.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/telemetry.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/utils/types.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/vars/__init__.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/vars/dep_tracking.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/vars/function.py +0 -0
- {reflex-0.7.3a1 → reflex-0.7.4}/reflex/vars/object.py +0 -0
reflex-0.7.4/.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,45 +1,53 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: reflex
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.4
|
|
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
|
-
Requires-Dist:
|
|
26
|
+
Requires-Dist: granian[reload]>=2.0.0
|
|
27
|
+
Requires-Dist: gunicorn<24.0.0,>=23.0.0
|
|
28
|
+
Requires-Dist: httpx<1.0,>=0.25.1
|
|
16
29
|
Requires-Dist: jinja2<4.0,>=3.1.2
|
|
30
|
+
Requires-Dist: lazy-loader>=0.4
|
|
31
|
+
Requires-Dist: packaging<25.0,>=23.1
|
|
32
|
+
Requires-Dist: platformdirs<5.0,>=3.10.0
|
|
17
33
|
Requires-Dist: psutil<8.0,>=5.9.4
|
|
18
34
|
Requires-Dist: pydantic<3.0,>=1.10.21
|
|
35
|
+
Requires-Dist: python-engineio!=4.6.0
|
|
19
36
|
Requires-Dist: python-multipart<0.1,>=0.0.5
|
|
20
37
|
Requires-Dist: python-socketio<6.0,>=5.7.0
|
|
21
38
|
Requires-Dist: redis<6.0,>=4.3.5
|
|
39
|
+
Requires-Dist: reflex-hosting-cli>=0.1.29
|
|
22
40
|
Requires-Dist: rich<14.0,>=13.0.0
|
|
41
|
+
Requires-Dist: setuptools>=75.0
|
|
23
42
|
Requires-Dist: sqlmodel<0.1,>=0.0.14
|
|
43
|
+
Requires-Dist: starlette-admin<1.0,>=0.11.0
|
|
44
|
+
Requires-Dist: tomlkit<1.0,>=0.12.4
|
|
45
|
+
Requires-Dist: twine<7.0,>=4.0.0
|
|
24
46
|
Requires-Dist: typer<1.0,>=0.15.1
|
|
47
|
+
Requires-Dist: typing-extensions>=4.6.0
|
|
25
48
|
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
49
|
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
|
|
50
|
+
Requires-Dist: wrapt<2.0,>=1.17.0
|
|
43
51
|
Description-Content-Type: text/markdown
|
|
44
52
|
|
|
45
53
|
<div align="center">
|
|
@@ -53,6 +61,7 @@ Description-Content-Type: text/markdown
|
|
|
53
61
|
[](https://badge.fury.io/py/reflex)
|
|
54
62
|

|
|
55
63
|
[](https://reflex.dev/docs/getting-started/introduction)
|
|
64
|
+
[](https://pepy.tech/projects/reflex)
|
|
56
65
|
[](https://discord.gg/T5WSbC2YtQ)
|
|
57
66
|
|
|
58
67
|
</div>
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
[](https://badge.fury.io/py/reflex)
|
|
10
10
|

|
|
11
11
|
[](https://reflex.dev/docs/getting-started/introduction)
|
|
12
|
+
[](https://pepy.tech/projects/reflex)
|
|
12
13
|
[](https://discord.gg/T5WSbC2YtQ)
|
|
13
14
|
|
|
14
15
|
</div>
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "reflex"
|
|
3
|
+
version = "0.7.4"
|
|
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
|
+
"granian[reload] >=2.0.0",
|
|
29
|
+
"gunicorn >=23.0.0,<24.0.0",
|
|
30
|
+
"httpx >=0.25.1,<1.0",
|
|
31
|
+
"jinja2 >=3.1.2,<4.0",
|
|
32
|
+
"lazy_loader >=0.4",
|
|
33
|
+
"packaging >=23.1,<25.0",
|
|
34
|
+
"platformdirs >=3.10.0,<5.0",
|
|
35
|
+
"psutil >=5.9.4,<8.0",
|
|
36
|
+
"pydantic >=1.10.21,<3.0",
|
|
37
|
+
"python-engineio !=4.6.0",
|
|
38
|
+
"python-multipart >=0.0.5,<0.1",
|
|
39
|
+
"python-socketio >=5.7.0,<6.0",
|
|
40
|
+
"redis >=4.3.5,<6.0",
|
|
41
|
+
"reflex-hosting-cli >=0.1.29",
|
|
42
|
+
"rich >=13.0.0,<14.0",
|
|
43
|
+
"setuptools >=75.0",
|
|
44
|
+
"starlette-admin >=0.11.0,<1.0",
|
|
45
|
+
"sqlmodel >=0.0.14,<0.1",
|
|
46
|
+
"tomlkit >=0.12.4,<1.0",
|
|
47
|
+
"twine >=4.0.0,<7.0",
|
|
48
|
+
"typer >=0.15.1,<1.0",
|
|
49
|
+
"typing_extensions >=4.6.0",
|
|
50
|
+
"uvicorn >=0.20.0",
|
|
51
|
+
"wheel >=0.42.0,<1.0",
|
|
52
|
+
"wrapt >=1.17.0,<2.0",
|
|
53
|
+
]
|
|
54
|
+
classifiers = [
|
|
55
|
+
"Development Status :: 4 - Beta",
|
|
56
|
+
"License :: OSI Approved :: Apache Software License",
|
|
57
|
+
"Programming Language :: Python :: 3",
|
|
58
|
+
"Programming Language :: Python :: 3.10",
|
|
59
|
+
"Programming Language :: Python :: 3.11",
|
|
60
|
+
"Programming Language :: Python :: 3.12",
|
|
61
|
+
"Programming Language :: Python :: 3.13",
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
[project.urls]
|
|
66
|
+
homepage = "https://reflex.dev"
|
|
67
|
+
repository = "https://github.com/reflex-dev/reflex"
|
|
68
|
+
documentation = "https://reflex.dev/docs/getting-started/introduction"
|
|
69
|
+
|
|
70
|
+
[project.scripts]
|
|
71
|
+
reflex = "reflex.reflex:cli"
|
|
72
|
+
|
|
73
|
+
[build-system]
|
|
74
|
+
requires = ["hatchling"]
|
|
75
|
+
build-backend = "hatchling.build"
|
|
76
|
+
|
|
77
|
+
[tool.hatch.build]
|
|
78
|
+
include = ["reflex"]
|
|
79
|
+
|
|
80
|
+
[tool.pyright]
|
|
81
|
+
reportIncompatibleMethodOverride = false
|
|
82
|
+
|
|
83
|
+
[tool.ruff]
|
|
84
|
+
target-version = "py310"
|
|
85
|
+
output-format = "concise"
|
|
86
|
+
lint.isort.split-on-trailing-comma = false
|
|
87
|
+
lint.select = [
|
|
88
|
+
"ANN001",
|
|
89
|
+
"B",
|
|
90
|
+
"C4",
|
|
91
|
+
"D",
|
|
92
|
+
"E",
|
|
93
|
+
"ERA",
|
|
94
|
+
"F",
|
|
95
|
+
"FURB",
|
|
96
|
+
"I",
|
|
97
|
+
"N",
|
|
98
|
+
"PERF",
|
|
99
|
+
"PGH",
|
|
100
|
+
"PTH",
|
|
101
|
+
"RUF",
|
|
102
|
+
"SIM",
|
|
103
|
+
"T",
|
|
104
|
+
"TRY",
|
|
105
|
+
"W",
|
|
106
|
+
]
|
|
107
|
+
lint.ignore = [
|
|
108
|
+
"B008",
|
|
109
|
+
"D205",
|
|
110
|
+
"E501",
|
|
111
|
+
"F403",
|
|
112
|
+
"SIM115",
|
|
113
|
+
"RUF006",
|
|
114
|
+
"RUF008",
|
|
115
|
+
"RUF012",
|
|
116
|
+
"TRY0",
|
|
117
|
+
]
|
|
118
|
+
lint.pydocstyle.convention = "google"
|
|
119
|
+
|
|
120
|
+
[tool.ruff.lint.per-file-ignores]
|
|
121
|
+
"__init__.py" = ["F401"]
|
|
122
|
+
"tests/*.py" = ["ANN001", "D100", "D103", "D104", "B018", "PERF", "T", "N"]
|
|
123
|
+
"benchmarks/*.py" = ["ANN001", "D100", "D103", "D104", "B018", "PERF", "T", "N"]
|
|
124
|
+
"reflex/.templates/*.py" = ["D100", "D103", "D104"]
|
|
125
|
+
"*.pyi" = ["D301", "D415", "D417", "D418", "E742", "N", "PGH"]
|
|
126
|
+
"pyi_generator.py" = ["N802"]
|
|
127
|
+
"reflex/constants/*.py" = ["N"]
|
|
128
|
+
"*/blank.py" = ["I001"]
|
|
129
|
+
|
|
130
|
+
[tool.pytest.ini_options]
|
|
131
|
+
filterwarnings = "ignore:fields may not start with an underscore:RuntimeWarning"
|
|
132
|
+
asyncio_default_fixture_loop_scope = "function"
|
|
133
|
+
asyncio_mode = "auto"
|
|
134
|
+
|
|
135
|
+
[tool.codespell]
|
|
136
|
+
skip = "docs/*,*.html,examples/*, *.pyi, poetry.lock, uv.lock"
|
|
137
|
+
ignore-words-list = "te, TreeE"
|
|
138
|
+
|
|
139
|
+
[dependency-groups]
|
|
140
|
+
dev = [
|
|
141
|
+
"asynctest >=0.13.0,<1.0",
|
|
142
|
+
"darglint >=1.8.1,<2.0",
|
|
143
|
+
"dill >=0.3.8",
|
|
144
|
+
"libsass >=0.23.0,<1.0",
|
|
145
|
+
"numpy >=2.2.3,<3.0",
|
|
146
|
+
"pandas >=2.1.1,<3.0",
|
|
147
|
+
"pillow >=10.0.0,<12.0",
|
|
148
|
+
"playwright >=1.46.0",
|
|
149
|
+
"plotly >=5.13.0,<7.0",
|
|
150
|
+
"pre-commit >=4.1.0,<5.0",
|
|
151
|
+
"psycopg[binary] >=3.2.6,<4.0",
|
|
152
|
+
"pyright >=1.1.396,<1.2",
|
|
153
|
+
"pytest >=7.1.2,<9.0",
|
|
154
|
+
"pytest-asyncio >=0.24.0",
|
|
155
|
+
"pytest-benchmark >=4.0.0,<6.0",
|
|
156
|
+
"pytest-codspeed >=3.1.2,<4.0.0",
|
|
157
|
+
"pytest-cov >=4.0.0,<7.0",
|
|
158
|
+
"pytest-mock >=3.10.0,<4.0",
|
|
159
|
+
"pytest-playwright >=0.5.1",
|
|
160
|
+
"pytest-retry >=1.7.0,<2.0",
|
|
161
|
+
"pytest-split >=0.10.0,<1.0",
|
|
162
|
+
"python-dotenv >=1,<2",
|
|
163
|
+
"ruff ==0.11.0",
|
|
164
|
+
"selenium >=4.11.0,<5.0",
|
|
165
|
+
"toml >=0.10.2,<1.0",
|
|
166
|
+
]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useTheme } from "next-themes";
|
|
2
|
-
import { useEffect, useState } from "react";
|
|
2
|
+
import { useRef, useEffect, useState } from "react";
|
|
3
3
|
import {
|
|
4
4
|
ColorModeContext,
|
|
5
5
|
defaultColorMode,
|
|
@@ -13,6 +13,14 @@ export default function RadixThemesColorModeProvider({ children }) {
|
|
|
13
13
|
const [resolvedColorMode, setResolvedColorMode] = useState(
|
|
14
14
|
defaultColorMode === "dark" ? "dark" : "light",
|
|
15
15
|
);
|
|
16
|
+
const firstUpdate = useRef(true);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (firstUpdate.current) {
|
|
19
|
+
firstUpdate.current = false;
|
|
20
|
+
setRawColorMode(theme);
|
|
21
|
+
setResolvedColorMode(resolvedTheme);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
16
24
|
|
|
17
25
|
useEffect(() => {
|
|
18
26
|
if (isDevMode) {
|
|
@@ -576,6 +576,22 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
576
576
|
"""
|
|
577
577
|
if not self.api:
|
|
578
578
|
raise ValueError("The app has not been initialized.")
|
|
579
|
+
|
|
580
|
+
# For py3.9 compatibility when redis is used, we MUST add any decorator pages
|
|
581
|
+
# before compiling the app in a thread to avoid event loop error (REF-2172).
|
|
582
|
+
self._apply_decorated_pages()
|
|
583
|
+
|
|
584
|
+
compile_future = concurrent.futures.ThreadPoolExecutor(max_workers=1).submit(
|
|
585
|
+
self._compile
|
|
586
|
+
)
|
|
587
|
+
compile_future.add_done_callback(
|
|
588
|
+
# Force background compile errors to print eagerly
|
|
589
|
+
lambda f: f.result()
|
|
590
|
+
)
|
|
591
|
+
# Wait for the compile to finish in prod mode to ensure all optional endpoints are mounted.
|
|
592
|
+
if is_prod_mode():
|
|
593
|
+
compile_future.result()
|
|
594
|
+
|
|
579
595
|
return self.api
|
|
580
596
|
|
|
581
597
|
def _add_default_endpoints(self):
|
|
@@ -952,7 +968,7 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
952
968
|
# Check the nocompile file.
|
|
953
969
|
if nocompile.exists():
|
|
954
970
|
# Delete the nocompile file
|
|
955
|
-
nocompile.unlink()
|
|
971
|
+
nocompile.unlink(missing_ok=True)
|
|
956
972
|
return False
|
|
957
973
|
|
|
958
974
|
# By default, compile the app.
|
|
@@ -1063,7 +1079,7 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1063
1079
|
with stateful_pages_marker.open("r") as f:
|
|
1064
1080
|
stateful_pages = json.load(f)
|
|
1065
1081
|
for route in stateful_pages:
|
|
1066
|
-
console.
|
|
1082
|
+
console.debug(f"BE Evaluating stateful page: {route}")
|
|
1067
1083
|
self._compile_page(route, save_page=False)
|
|
1068
1084
|
self._enable_state()
|
|
1069
1085
|
self._add_optional_endpoints()
|
|
@@ -1092,8 +1108,6 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1092
1108
|
if config.react_strict_mode:
|
|
1093
1109
|
app_wrappers[(200, "StrictMode")] = StrictMode.create()
|
|
1094
1110
|
|
|
1095
|
-
should_compile = self._should_compile()
|
|
1096
|
-
|
|
1097
1111
|
if not should_compile:
|
|
1098
1112
|
with console.timing("Evaluate Pages (Backend)"):
|
|
1099
1113
|
for route in self._unevaluated_pages:
|
|
@@ -1242,7 +1256,9 @@ class App(MiddlewareMixin, LifespanMixin):
|
|
|
1242
1256
|
compiler.compile_document_root(
|
|
1243
1257
|
self.head_components,
|
|
1244
1258
|
html_lang=self.html_lang,
|
|
1245
|
-
html_custom_attrs=
|
|
1259
|
+
html_custom_attrs=(
|
|
1260
|
+
{**self.html_custom_attrs} if self.html_custom_attrs else {}
|
|
1261
|
+
),
|
|
1246
1262
|
)
|
|
1247
1263
|
)
|
|
1248
1264
|
|
|
@@ -74,6 +74,7 @@ class MiddlewareMixin(AppMixin):
|
|
|
74
74
|
Returns:
|
|
75
75
|
The state update to return.
|
|
76
76
|
"""
|
|
77
|
+
out = update
|
|
77
78
|
for middleware in self._middlewares:
|
|
78
79
|
if asyncio.iscoroutinefunction(middleware.postprocess):
|
|
79
80
|
out = await middleware.postprocess(
|
|
@@ -89,6 +90,4 @@ class MiddlewareMixin(AppMixin):
|
|
|
89
90
|
event=event,
|
|
90
91
|
update=update,
|
|
91
92
|
)
|
|
92
|
-
|
|
93
|
-
return out # pyright: ignore [reportReturnType]
|
|
94
|
-
return update
|
|
93
|
+
return out # pyright: ignore[reportReturnType]
|
|
@@ -38,7 +38,7 @@ def validate_field_name(bases: list[Type["BaseModel"]], field_name: str) -> None
|
|
|
38
38
|
|
|
39
39
|
# monkeypatch pydantic validate_field_name method to skip validating
|
|
40
40
|
# shadowed state vars when reloading app via utils.prerequisites.get_app(reload=True)
|
|
41
|
-
pydantic_main.validate_field_name = validate_field_name # pyright: ignore [
|
|
41
|
+
pydantic_main.validate_field_name = validate_field_name # pyright: ignore [reportPrivateImportUsage]
|
|
42
42
|
|
|
43
43
|
if TYPE_CHECKING:
|
|
44
44
|
from reflex.vars import Var
|
|
@@ -107,7 +107,7 @@ class Base(BaseModel):
|
|
|
107
107
|
default_value: The default value of the field
|
|
108
108
|
"""
|
|
109
109
|
var_name = var._var_field_name
|
|
110
|
-
new_field = ModelField.infer(
|
|
110
|
+
new_field = ModelField.infer(
|
|
111
111
|
name=var_name,
|
|
112
112
|
value=default_value,
|
|
113
113
|
annotation=var._var_type,
|
|
@@ -128,5 +128,5 @@ class Base(BaseModel):
|
|
|
128
128
|
if isinstance(key, str):
|
|
129
129
|
# Seems like this function signature was wrong all along?
|
|
130
130
|
# If the user wants a field that we know of, get it and pass it off to _get_value
|
|
131
|
-
return getattr(self, key
|
|
131
|
+
return getattr(self, key)
|
|
132
132
|
return key
|
|
@@ -19,6 +19,8 @@ from reflex.components.component import (
|
|
|
19
19
|
from reflex.config import environment, get_config
|
|
20
20
|
from reflex.state import BaseState
|
|
21
21
|
from reflex.style import SYSTEM_COLOR_MODE
|
|
22
|
+
from reflex.utils import console, path_ops
|
|
23
|
+
from reflex.utils.exceptions import ReflexError
|
|
22
24
|
from reflex.utils.exec import is_prod_mode
|
|
23
25
|
from reflex.utils.imports import ImportVar
|
|
24
26
|
from reflex.utils.prerequisites import get_web_dir
|
|
@@ -190,18 +192,74 @@ def _compile_root_stylesheet(stylesheets: list[str]) -> str:
|
|
|
190
192
|
if get_config().tailwind is not None
|
|
191
193
|
else []
|
|
192
194
|
)
|
|
195
|
+
|
|
196
|
+
failed_to_import_sass = False
|
|
193
197
|
for stylesheet in stylesheets:
|
|
194
198
|
if not utils.is_valid_url(stylesheet):
|
|
195
199
|
# check if stylesheet provided exists.
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
200
|
+
assets_app_path = Path.cwd() / constants.Dirs.APP_ASSETS
|
|
201
|
+
stylesheet_full_path = assets_app_path / stylesheet.strip("/")
|
|
202
|
+
|
|
199
203
|
if not stylesheet_full_path.exists():
|
|
200
204
|
raise FileNotFoundError(
|
|
201
205
|
f"The stylesheet file {stylesheet_full_path} does not exist."
|
|
202
206
|
)
|
|
203
|
-
|
|
207
|
+
|
|
208
|
+
if stylesheet_full_path.is_dir():
|
|
209
|
+
# NOTE: this can create an infinite loop, for example:
|
|
210
|
+
# assets/
|
|
211
|
+
# | dir_a/
|
|
212
|
+
# | | dir_c/ (symlink to "assets/dir_a")
|
|
213
|
+
# | dir_b/
|
|
214
|
+
# so to avoid the infinite loop, we don't include symbolic links
|
|
215
|
+
stylesheets += [
|
|
216
|
+
str(p.relative_to(assets_app_path))
|
|
217
|
+
for p in stylesheet_full_path.iterdir()
|
|
218
|
+
if not (p.is_symlink() and p.is_dir())
|
|
219
|
+
]
|
|
220
|
+
continue
|
|
221
|
+
|
|
222
|
+
if (
|
|
223
|
+
stylesheet_full_path.suffix[1:].lower()
|
|
224
|
+
in constants.Reflex.STYLESHEETS_SUPPORTED
|
|
225
|
+
):
|
|
226
|
+
target = (
|
|
227
|
+
Path.cwd()
|
|
228
|
+
/ constants.Dirs.WEB
|
|
229
|
+
/ constants.Dirs.STYLES
|
|
230
|
+
/ (stylesheet.rsplit(".", 1)[0].strip("/") + ".css")
|
|
231
|
+
)
|
|
232
|
+
target.parent.mkdir(parents=True, exist_ok=True)
|
|
233
|
+
|
|
234
|
+
if stylesheet_full_path.suffix == ".css":
|
|
235
|
+
path_ops.cp(src=stylesheet_full_path, dest=target, overwrite=True)
|
|
236
|
+
else:
|
|
237
|
+
try:
|
|
238
|
+
from sass import compile as sass_compile
|
|
239
|
+
|
|
240
|
+
target.write_text(
|
|
241
|
+
data=sass_compile(
|
|
242
|
+
filename=str(stylesheet_full_path),
|
|
243
|
+
output_style="compressed",
|
|
244
|
+
),
|
|
245
|
+
encoding="utf8",
|
|
246
|
+
)
|
|
247
|
+
except ImportError:
|
|
248
|
+
failed_to_import_sass = True
|
|
249
|
+
else:
|
|
250
|
+
raise FileNotFoundError(
|
|
251
|
+
f'The stylesheet file "{stylesheet_full_path}" is not a valid file.'
|
|
252
|
+
)
|
|
253
|
+
|
|
254
|
+
stylesheet = f"./{stylesheet.rsplit('.', 1)[0].strip('/')}.css"
|
|
255
|
+
|
|
204
256
|
sheets.append(stylesheet) if stylesheet not in sheets else None
|
|
257
|
+
|
|
258
|
+
if failed_to_import_sass:
|
|
259
|
+
console.error(
|
|
260
|
+
'The `libsass` package is required to compile sass/scss stylesheet files. Run `pip install "libsass>=0.23.0"`.'
|
|
261
|
+
)
|
|
262
|
+
|
|
205
263
|
return templates.STYLE.render(stylesheets=sheets)
|
|
206
264
|
|
|
207
265
|
|
|
@@ -311,13 +369,11 @@ def _compile_stateful_components(
|
|
|
311
369
|
|
|
312
370
|
# Include dynamic imports in the shared component.
|
|
313
371
|
if dynamic_imports := component._get_all_dynamic_imports():
|
|
314
|
-
rendered_components.update(
|
|
315
|
-
{dynamic_import: None for dynamic_import in dynamic_imports}
|
|
316
|
-
)
|
|
372
|
+
rendered_components.update(dict.fromkeys(dynamic_imports))
|
|
317
373
|
|
|
318
374
|
# Include custom code in the shared component.
|
|
319
375
|
rendered_components.update(
|
|
320
|
-
|
|
376
|
+
dict.fromkeys(component._get_all_custom_code()),
|
|
321
377
|
)
|
|
322
378
|
|
|
323
379
|
# Include all imports in the shared component.
|
|
@@ -596,6 +652,8 @@ def into_component(component: Component | ComponentCallable) -> Component:
|
|
|
596
652
|
):
|
|
597
653
|
return converted
|
|
598
654
|
except KeyError as e:
|
|
655
|
+
if isinstance(e, ReflexError):
|
|
656
|
+
raise
|
|
599
657
|
key = e.args[0] if e.args else None
|
|
600
658
|
if key is not None and isinstance(key, Var):
|
|
601
659
|
raise TypeError(
|
|
@@ -603,6 +661,8 @@ def into_component(component: Component | ComponentCallable) -> Component:
|
|
|
603
661
|
).with_traceback(e.__traceback__) from None
|
|
604
662
|
raise
|
|
605
663
|
except TypeError as e:
|
|
664
|
+
if isinstance(e, ReflexError):
|
|
665
|
+
raise
|
|
606
666
|
message = e.args[0] if e.args else None
|
|
607
667
|
if message and isinstance(message, str):
|
|
608
668
|
if message.endswith("has no len()") and (
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
import contextlib
|
|
5
6
|
import copy
|
|
6
7
|
import dataclasses
|
|
7
8
|
import functools
|
|
@@ -1974,13 +1975,15 @@ class NoSSRComponent(Component):
|
|
|
1974
1975
|
# Do NOT import the main library/tag statically.
|
|
1975
1976
|
import_name = self._get_import_name()
|
|
1976
1977
|
if import_name is not None:
|
|
1977
|
-
|
|
1978
|
+
with contextlib.suppress(ValueError):
|
|
1979
|
+
_imports[import_name].remove(self.import_var)
|
|
1980
|
+
_imports[import_name].append(
|
|
1978
1981
|
imports.ImportVar(
|
|
1979
1982
|
tag=None,
|
|
1980
1983
|
render=False,
|
|
1981
1984
|
transpile=self._should_transpile(self.library),
|
|
1982
|
-
)
|
|
1983
|
-
|
|
1985
|
+
)
|
|
1986
|
+
)
|
|
1984
1987
|
|
|
1985
1988
|
return imports.merge_imports(
|
|
1986
1989
|
dynamic_import,
|
|
@@ -53,9 +53,9 @@ def wait_for_client_redirect(component: Component) -> Component:
|
|
|
53
53
|
The conditionally rendered component.
|
|
54
54
|
"""
|
|
55
55
|
return cond(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
route_not_found,
|
|
57
|
+
component,
|
|
58
|
+
ClientSideRouting.create(),
|
|
59
59
|
)
|
|
60
60
|
|
|
61
61
|
|
|
@@ -31,7 +31,7 @@ class Cond(MemoizationLeaf):
|
|
|
31
31
|
cls,
|
|
32
32
|
cond: Var,
|
|
33
33
|
comp1: BaseComponent,
|
|
34
|
-
comp2: BaseComponent |
|
|
34
|
+
comp2: BaseComponent | types.Unset = types.Unset(),
|
|
35
35
|
) -> Component:
|
|
36
36
|
"""Create a conditional component.
|
|
37
37
|
|
|
@@ -44,10 +44,14 @@ class Cond(MemoizationLeaf):
|
|
|
44
44
|
The conditional component.
|
|
45
45
|
"""
|
|
46
46
|
# Wrap everything in fragments.
|
|
47
|
-
if type(comp1)
|
|
47
|
+
if type(comp1) is not Fragment:
|
|
48
48
|
comp1 = Fragment.create(comp1)
|
|
49
|
-
if comp2
|
|
50
|
-
comp2 =
|
|
49
|
+
if isinstance(comp2, types.Unset) or type(comp2) is not Fragment:
|
|
50
|
+
comp2 = (
|
|
51
|
+
Fragment.create(comp2)
|
|
52
|
+
if not isinstance(comp2, types.Unset)
|
|
53
|
+
else Fragment.create()
|
|
54
|
+
)
|
|
51
55
|
return Fragment.create(
|
|
52
56
|
cls._create(
|
|
53
57
|
children=[comp1, comp2],
|
|
@@ -96,18 +100,22 @@ class Cond(MemoizationLeaf):
|
|
|
96
100
|
|
|
97
101
|
|
|
98
102
|
@overload
|
|
99
|
-
def cond(condition: Any, c1: Component, c2: Any) -> Component: ... # pyright: ignore [reportOverlappingOverload]
|
|
103
|
+
def cond(condition: Any, c1: Component, c2: Any, /) -> Component: ... # pyright: ignore [reportOverlappingOverload]
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
@overload
|
|
107
|
+
def cond(condition: Any, c1: Component, /) -> Component: ...
|
|
100
108
|
|
|
101
109
|
|
|
102
110
|
@overload
|
|
103
|
-
def cond(condition: Any, c1: Component) -> Component: ...
|
|
111
|
+
def cond(condition: Any, c1: Any, c2: Component, /) -> Component: ... # pyright: ignore [reportOverlappingOverload]
|
|
104
112
|
|
|
105
113
|
|
|
106
114
|
@overload
|
|
107
|
-
def cond(condition: Any, c1: Any, c2: Any) -> Var: ...
|
|
115
|
+
def cond(condition: Any, c1: Any, c2: Any, /) -> Var: ...
|
|
108
116
|
|
|
109
117
|
|
|
110
|
-
def cond(condition: Any, c1: Any, c2: Any =
|
|
118
|
+
def cond(condition: Any, c1: Any, c2: Any = types.Unset(), /) -> Component | Var:
|
|
111
119
|
"""Create a conditional component or Prop.
|
|
112
120
|
|
|
113
121
|
Args:
|
|
@@ -128,15 +136,15 @@ def cond(condition: Any, c1: Any, c2: Any = None) -> Component | Var:
|
|
|
128
136
|
|
|
129
137
|
# If the first component is a component, create a Cond component.
|
|
130
138
|
if isinstance(c1, BaseComponent):
|
|
131
|
-
if c2
|
|
132
|
-
|
|
139
|
+
if not isinstance(c2, types.Unset) and not isinstance(c2, BaseComponent):
|
|
140
|
+
return Cond.create(cond_var.bool(), c1, Fragment.create(c2))
|
|
133
141
|
return Cond.create(cond_var.bool(), c1, c2)
|
|
134
142
|
|
|
135
143
|
# Otherwise, create a conditional Var.
|
|
136
144
|
# Check that the second argument is valid.
|
|
137
145
|
if isinstance(c2, BaseComponent):
|
|
138
|
-
|
|
139
|
-
if c2
|
|
146
|
+
return Cond.create(cond_var.bool(), Fragment.create(c1), c2)
|
|
147
|
+
if isinstance(c2, types.Unset):
|
|
140
148
|
raise ValueError("For conditional vars, the second argument must be set.")
|
|
141
149
|
|
|
142
150
|
# convert the truth and false cond parts into vars so the _var_data can be obtained.
|