reflex 0.7.3a1__tar.gz → 0.7.4a0__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.

Files changed (545) hide show
  1. reflex-0.7.4a0/.gitignore +21 -0
  2. {reflex-0.7.3a1 → reflex-0.7.4a0}/PKG-INFO +29 -22
  3. reflex-0.7.4a0/pyproject.toml +164 -0
  4. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/web/utils/state.js +1 -1
  5. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/app.py +1 -1
  6. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/app_mixins/middleware.py +2 -3
  7. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/compiler/compiler.py +61 -4
  8. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/upload.py +1 -1
  9. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/plotly/plotly.py +9 -9
  10. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/recharts/recharts.py +2 -2
  11. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/sonner/toast.py +1 -1
  12. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/config.py +2 -5
  13. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/constants/__init__.py +1 -2
  14. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/constants/base.py +3 -0
  15. reflex-0.7.4a0/reflex/constants/installer.py +104 -0
  16. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/state.py +8 -1
  17. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/testing.py +7 -1
  18. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/build.py +3 -4
  19. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/exec.py +10 -11
  20. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/path_ops.py +15 -25
  21. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/prerequisites.py +113 -181
  22. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/processes.py +21 -18
  23. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/registry.py +5 -5
  24. reflex-0.7.3a1/benchmarks/__init__.py +0 -3
  25. reflex-0.7.3a1/benchmarks/benchmark_compile_times.py +0 -147
  26. reflex-0.7.3a1/benchmarks/benchmark_imports.py +0 -128
  27. reflex-0.7.3a1/benchmarks/benchmark_lighthouse.py +0 -75
  28. reflex-0.7.3a1/benchmarks/benchmark_package_size.py +0 -135
  29. reflex-0.7.3a1/benchmarks/benchmark_web_size.py +0 -106
  30. reflex-0.7.3a1/benchmarks/conftest.py +0 -20
  31. reflex-0.7.3a1/benchmarks/lighthouse.sh +0 -77
  32. reflex-0.7.3a1/benchmarks/utils.py +0 -74
  33. reflex-0.7.3a1/pyproject.toml +0 -203
  34. reflex-0.7.3a1/reflex/constants/installer.py +0 -201
  35. reflex-0.7.3a1/tests/__init__.py +0 -5
  36. reflex-0.7.3a1/tests/benchmarks/__init__.py +0 -0
  37. reflex-0.7.3a1/tests/benchmarks/conftest.py +0 -3
  38. reflex-0.7.3a1/tests/benchmarks/fixtures.py +0 -383
  39. reflex-0.7.3a1/tests/benchmarks/test_compilation.py +0 -25
  40. reflex-0.7.3a1/tests/benchmarks/test_evaluate.py +0 -11
  41. reflex-0.7.3a1/tests/integration/__init__.py +0 -1
  42. reflex-0.7.3a1/tests/integration/conftest.py +0 -43
  43. reflex-0.7.3a1/tests/integration/init-test/Dockerfile +0 -8
  44. reflex-0.7.3a1/tests/integration/init-test/in_docker_test_script.sh +0 -37
  45. reflex-0.7.3a1/tests/integration/shared/state.py +0 -9
  46. reflex-0.7.3a1/tests/integration/test_background_task.py +0 -381
  47. reflex-0.7.3a1/tests/integration/test_call_script.py +0 -542
  48. reflex-0.7.3a1/tests/integration/test_client_storage.py +0 -760
  49. reflex-0.7.3a1/tests/integration/test_component_state.py +0 -204
  50. reflex-0.7.3a1/tests/integration/test_computed_vars.py +0 -275
  51. reflex-0.7.3a1/tests/integration/test_connection_banner.py +0 -223
  52. reflex-0.7.3a1/tests/integration/test_deploy_url.py +0 -99
  53. reflex-0.7.3a1/tests/integration/test_dynamic_components.py +0 -170
  54. reflex-0.7.3a1/tests/integration/test_dynamic_routes.py +0 -430
  55. reflex-0.7.3a1/tests/integration/test_event_actions.py +0 -385
  56. reflex-0.7.3a1/tests/integration/test_event_chain.py +0 -579
  57. reflex-0.7.3a1/tests/integration/test_exception_handlers.py +0 -204
  58. reflex-0.7.3a1/tests/integration/test_extra_overlay_function.py +0 -87
  59. reflex-0.7.3a1/tests/integration/test_form_submit.py +0 -262
  60. reflex-0.7.3a1/tests/integration/test_input.py +0 -188
  61. reflex-0.7.3a1/tests/integration/test_large_state.py +0 -91
  62. reflex-0.7.3a1/tests/integration/test_lifespan.py +0 -133
  63. reflex-0.7.3a1/tests/integration/test_login_flow.py +0 -147
  64. reflex-0.7.3a1/tests/integration/test_media.py +0 -163
  65. reflex-0.7.3a1/tests/integration/test_memo.py +0 -67
  66. reflex-0.7.3a1/tests/integration/test_navigation.py +0 -93
  67. reflex-0.7.3a1/tests/integration/test_server_side_event.py +0 -184
  68. reflex-0.7.3a1/tests/integration/test_shared_state.py +0 -77
  69. reflex-0.7.3a1/tests/integration/test_state_inheritance.py +0 -452
  70. reflex-0.7.3a1/tests/integration/test_tailwind.py +0 -122
  71. reflex-0.7.3a1/tests/integration/test_upload.py +0 -503
  72. reflex-0.7.3a1/tests/integration/test_urls.py +0 -68
  73. reflex-0.7.3a1/tests/integration/test_var_operations.py +0 -975
  74. reflex-0.7.3a1/tests/integration/tests_playwright/test_appearance.py +0 -218
  75. reflex-0.7.3a1/tests/integration/tests_playwright/test_datetime_operations.py +0 -87
  76. reflex-0.7.3a1/tests/integration/tests_playwright/test_link_hover.py +0 -46
  77. reflex-0.7.3a1/tests/integration/tests_playwright/test_stateless_app.py +0 -59
  78. reflex-0.7.3a1/tests/integration/tests_playwright/test_table.py +0 -103
  79. reflex-0.7.3a1/tests/integration/utils.py +0 -191
  80. reflex-0.7.3a1/tests/test_node_version.py +0 -73
  81. reflex-0.7.3a1/tests/units/__init__.py +0 -5
  82. reflex-0.7.3a1/tests/units/assets/custom_script.js +0 -1
  83. reflex-0.7.3a1/tests/units/assets/test_assets.py +0 -81
  84. reflex-0.7.3a1/tests/units/compiler/__init__.py +0 -1
  85. reflex-0.7.3a1/tests/units/compiler/test_compiler.py +0 -219
  86. reflex-0.7.3a1/tests/units/compiler/test_compiler_utils.py +0 -7
  87. reflex-0.7.3a1/tests/units/components/__init__.py +0 -1
  88. reflex-0.7.3a1/tests/units/components/base/test_bare.py +0 -26
  89. reflex-0.7.3a1/tests/units/components/base/test_link.py +0 -15
  90. reflex-0.7.3a1/tests/units/components/base/test_script.py +0 -75
  91. reflex-0.7.3a1/tests/units/components/core/__init__.py +0 -0
  92. reflex-0.7.3a1/tests/units/components/core/test_banner.py +0 -59
  93. reflex-0.7.3a1/tests/units/components/core/test_colors.py +0 -136
  94. reflex-0.7.3a1/tests/units/components/core/test_cond.py +0 -146
  95. reflex-0.7.3a1/tests/units/components/core/test_debounce.py +0 -185
  96. reflex-0.7.3a1/tests/units/components/core/test_foreach.py +0 -325
  97. reflex-0.7.3a1/tests/units/components/core/test_html.py +0 -41
  98. reflex-0.7.3a1/tests/units/components/core/test_match.py +0 -317
  99. reflex-0.7.3a1/tests/units/components/core/test_responsive.py +0 -38
  100. reflex-0.7.3a1/tests/units/components/core/test_upload.py +0 -130
  101. reflex-0.7.3a1/tests/units/components/datadisplay/__init__.py +0 -1
  102. reflex-0.7.3a1/tests/units/components/datadisplay/conftest.py +0 -89
  103. reflex-0.7.3a1/tests/units/components/datadisplay/test_code.py +0 -13
  104. reflex-0.7.3a1/tests/units/components/datadisplay/test_dataeditor.py +0 -11
  105. reflex-0.7.3a1/tests/units/components/datadisplay/test_datatable.py +0 -124
  106. reflex-0.7.3a1/tests/units/components/datadisplay/test_shiki_code.py +0 -175
  107. reflex-0.7.3a1/tests/units/components/el/test_html.py +0 -6
  108. reflex-0.7.3a1/tests/units/components/el/test_svg.py +0 -74
  109. reflex-0.7.3a1/tests/units/components/forms/__init__.py +0 -0
  110. reflex-0.7.3a1/tests/units/components/forms/test_form.py +0 -20
  111. reflex-0.7.3a1/tests/units/components/graphing/__init__.py +0 -1
  112. reflex-0.7.3a1/tests/units/components/graphing/test_plotly.py +0 -44
  113. reflex-0.7.3a1/tests/units/components/graphing/test_recharts.py +0 -52
  114. reflex-0.7.3a1/tests/units/components/layout/__init__.py +0 -1
  115. reflex-0.7.3a1/tests/units/components/lucide/test_icon.py +0 -36
  116. reflex-0.7.3a1/tests/units/components/markdown/__init__.py +0 -0
  117. reflex-0.7.3a1/tests/units/components/markdown/test_markdown.py +0 -191
  118. reflex-0.7.3a1/tests/units/components/media/__init__.py +0 -1
  119. reflex-0.7.3a1/tests/units/components/media/test_image.py +0 -65
  120. reflex-0.7.3a1/tests/units/components/radix/test_icon_button.py +0 -30
  121. reflex-0.7.3a1/tests/units/components/radix/test_layout.py +0 -6
  122. reflex-0.7.3a1/tests/units/components/recharts/test_cartesian.py +0 -50
  123. reflex-0.7.3a1/tests/units/components/recharts/test_polar.py +0 -38
  124. reflex-0.7.3a1/tests/units/components/test_component.py +0 -2317
  125. reflex-0.7.3a1/tests/units/components/test_component_future_annotations.py +0 -37
  126. reflex-0.7.3a1/tests/units/components/test_component_state.py +0 -63
  127. reflex-0.7.3a1/tests/units/components/test_props.py +0 -59
  128. reflex-0.7.3a1/tests/units/components/test_tag.py +0 -135
  129. reflex-0.7.3a1/tests/units/components/typography/__init__.py +0 -0
  130. reflex-0.7.3a1/tests/units/components/typography/test_markdown.py +0 -49
  131. reflex-0.7.3a1/tests/units/conftest.py +0 -238
  132. reflex-0.7.3a1/tests/units/middleware/__init__.py +0 -0
  133. reflex-0.7.3a1/tests/units/middleware/conftest.py +0 -25
  134. reflex-0.7.3a1/tests/units/middleware/test_hydrate_middleware.py +0 -50
  135. reflex-0.7.3a1/tests/units/states/__init__.py +0 -34
  136. reflex-0.7.3a1/tests/units/states/mutation.py +0 -219
  137. reflex-0.7.3a1/tests/units/states/upload.py +0 -174
  138. reflex-0.7.3a1/tests/units/test_app.py +0 -1774
  139. reflex-0.7.3a1/tests/units/test_attribute_access_type.py +0 -416
  140. reflex-0.7.3a1/tests/units/test_base.py +0 -100
  141. reflex-0.7.3a1/tests/units/test_config.py +0 -291
  142. reflex-0.7.3a1/tests/units/test_db_config.py +0 -204
  143. reflex-0.7.3a1/tests/units/test_event.py +0 -481
  144. reflex-0.7.3a1/tests/units/test_health_endpoint.py +0 -130
  145. reflex-0.7.3a1/tests/units/test_model.py +0 -193
  146. reflex-0.7.3a1/tests/units/test_page.py +0 -79
  147. reflex-0.7.3a1/tests/units/test_prerequisites.py +0 -387
  148. reflex-0.7.3a1/tests/units/test_route.py +0 -122
  149. reflex-0.7.3a1/tests/units/test_sqlalchemy.py +0 -166
  150. reflex-0.7.3a1/tests/units/test_state.py +0 -3942
  151. reflex-0.7.3a1/tests/units/test_state_tree.py +0 -380
  152. reflex-0.7.3a1/tests/units/test_style.py +0 -554
  153. reflex-0.7.3a1/tests/units/test_telemetry.py +0 -49
  154. reflex-0.7.3a1/tests/units/test_testing.py +0 -40
  155. reflex-0.7.3a1/tests/units/test_var.py +0 -1920
  156. reflex-0.7.3a1/tests/units/utils/__init__.py +0 -0
  157. reflex-0.7.3a1/tests/units/utils/test_format.py +0 -715
  158. reflex-0.7.3a1/tests/units/utils/test_imports.py +0 -117
  159. reflex-0.7.3a1/tests/units/utils/test_serializers.py +0 -240
  160. reflex-0.7.3a1/tests/units/utils/test_types.py +0 -92
  161. reflex-0.7.3a1/tests/units/utils/test_utils.py +0 -698
  162. reflex-0.7.3a1/tests/units/vars/test_base.py +0 -63
  163. reflex-0.7.3a1/tests/units/vars/test_object.py +0 -163
  164. {reflex-0.7.3a1 → reflex-0.7.4a0}/LICENSE +0 -0
  165. {reflex-0.7.3a1 → reflex-0.7.4a0}/README.md +0 -0
  166. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  167. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  168. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/apps/blank/code/blank.py +0 -0
  169. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  170. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
  171. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
  172. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
  173. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
  174. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
  175. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  176. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
  177. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  178. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
  179. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  180. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
  181. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  182. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -0
  183. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
  184. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  185. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
  186. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  187. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
  188. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
  189. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  190. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/web/.gitignore +0 -0
  191. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  192. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/web/components/shiki/code.js +0 -0
  193. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/web/jsconfig.json +0 -0
  194. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/web/next.config.js +0 -0
  195. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/web/postcss.config.js +0 -0
  196. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/web/styles/tailwind.css +0 -0
  197. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/web/utils/client_side_routing.js +0 -0
  198. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  199. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  200. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/web/utils/helpers/paste.js +0 -0
  201. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/web/utils/helpers/range.js +0 -0
  202. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  203. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/__init__.py +0 -0
  204. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/__init__.pyi +0 -0
  205. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/__main__.py +0 -0
  206. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/admin.py +0 -0
  207. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/app_mixins/__init__.py +0 -0
  208. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/app_mixins/lifespan.py +0 -0
  209. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/app_mixins/mixin.py +0 -0
  210. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/app_module_for_backend.py +0 -0
  211. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/assets.py +0 -0
  212. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/base.py +0 -0
  213. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/compiler/__init__.py +0 -0
  214. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/compiler/templates.py +0 -0
  215. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/compiler/utils.py +0 -0
  216. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/__init__.py +0 -0
  217. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/__init__.pyi +0 -0
  218. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/__init__.py +0 -0
  219. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/__init__.pyi +0 -0
  220. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/app_wrap.py +0 -0
  221. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/app_wrap.pyi +0 -0
  222. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/bare.py +0 -0
  223. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/body.py +0 -0
  224. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/body.pyi +0 -0
  225. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/document.py +0 -0
  226. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/document.pyi +0 -0
  227. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/error_boundary.py +0 -0
  228. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/error_boundary.pyi +0 -0
  229. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/fragment.py +0 -0
  230. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/fragment.pyi +0 -0
  231. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/head.py +0 -0
  232. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/head.pyi +0 -0
  233. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/link.py +0 -0
  234. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/link.pyi +0 -0
  235. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/meta.py +0 -0
  236. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/meta.pyi +0 -0
  237. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/script.py +0 -0
  238. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/script.pyi +0 -0
  239. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/strict_mode.py +0 -0
  240. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/base/strict_mode.pyi +0 -0
  241. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/component.py +0 -0
  242. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/__init__.py +0 -0
  243. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/__init__.pyi +0 -0
  244. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/auto_scroll.py +0 -0
  245. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/auto_scroll.pyi +0 -0
  246. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/banner.py +0 -0
  247. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/banner.pyi +0 -0
  248. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/breakpoints.py +0 -0
  249. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/client_side_routing.py +0 -0
  250. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/client_side_routing.pyi +0 -0
  251. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/clipboard.py +0 -0
  252. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/clipboard.pyi +0 -0
  253. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/colors.py +0 -0
  254. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/cond.py +0 -0
  255. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/debounce.py +0 -0
  256. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/debounce.pyi +0 -0
  257. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/foreach.py +0 -0
  258. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/html.py +0 -0
  259. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/html.pyi +0 -0
  260. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/layout/__init__.py +0 -0
  261. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/match.py +0 -0
  262. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/responsive.py +0 -0
  263. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/sticky.py +0 -0
  264. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/sticky.pyi +0 -0
  265. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/core/upload.pyi +0 -0
  266. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/datadisplay/__init__.py +0 -0
  267. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/datadisplay/__init__.pyi +0 -0
  268. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/datadisplay/code.py +0 -0
  269. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/datadisplay/code.pyi +0 -0
  270. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/datadisplay/dataeditor.py +0 -0
  271. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/datadisplay/dataeditor.pyi +0 -0
  272. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/datadisplay/logo.py +0 -0
  273. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/datadisplay/shiki_code_block.py +0 -0
  274. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
  275. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/dynamic.py +0 -0
  276. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/__init__.py +0 -0
  277. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/__init__.pyi +0 -0
  278. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/constants/__init__.py +0 -0
  279. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/constants/html.py +0 -0
  280. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/constants/react.py +0 -0
  281. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/constants/reflex.py +0 -0
  282. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/element.py +0 -0
  283. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/element.pyi +0 -0
  284. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/__init__.py +0 -0
  285. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/__init__.pyi +0 -0
  286. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/base.py +0 -0
  287. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/base.pyi +0 -0
  288. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/forms.py +0 -0
  289. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/forms.pyi +0 -0
  290. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/inline.py +0 -0
  291. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/inline.pyi +0 -0
  292. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/media.py +0 -0
  293. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/media.pyi +0 -0
  294. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/metadata.py +0 -0
  295. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/metadata.pyi +0 -0
  296. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/other.py +0 -0
  297. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/other.pyi +0 -0
  298. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/scripts.py +0 -0
  299. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/scripts.pyi +0 -0
  300. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/sectioning.py +0 -0
  301. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/sectioning.pyi +0 -0
  302. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/tables.py +0 -0
  303. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/tables.pyi +0 -0
  304. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/typography.py +0 -0
  305. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/el/elements/typography.pyi +0 -0
  306. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/gridjs/__init__.py +0 -0
  307. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/gridjs/datatable.py +0 -0
  308. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/gridjs/datatable.pyi +0 -0
  309. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/literals.py +0 -0
  310. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/lucide/__init__.py +0 -0
  311. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/lucide/icon.py +0 -0
  312. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/lucide/icon.pyi +0 -0
  313. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/markdown/__init__.py +0 -0
  314. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/markdown/markdown.py +0 -0
  315. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/markdown/markdown.pyi +0 -0
  316. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/moment/__init__.py +0 -0
  317. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/moment/moment.py +0 -0
  318. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/moment/moment.pyi +0 -0
  319. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/next/__init__.py +0 -0
  320. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/next/base.py +0 -0
  321. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/next/base.pyi +0 -0
  322. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/next/image.py +0 -0
  323. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/next/image.pyi +0 -0
  324. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/next/link.py +0 -0
  325. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/next/link.pyi +0 -0
  326. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/next/video.py +0 -0
  327. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/next/video.pyi +0 -0
  328. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/plotly/__init__.py +0 -0
  329. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/plotly/plotly.pyi +0 -0
  330. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/props.py +0 -0
  331. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/__init__.py +0 -0
  332. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/__init__.pyi +0 -0
  333. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/primitives/__init__.py +0 -0
  334. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/primitives/__init__.pyi +0 -0
  335. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/primitives/accordion.py +0 -0
  336. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/primitives/accordion.pyi +0 -0
  337. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/primitives/base.py +0 -0
  338. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/primitives/base.pyi +0 -0
  339. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/primitives/drawer.py +0 -0
  340. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/primitives/drawer.pyi +0 -0
  341. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/primitives/form.py +0 -0
  342. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/primitives/form.pyi +0 -0
  343. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/primitives/progress.py +0 -0
  344. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/primitives/progress.pyi +0 -0
  345. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/primitives/slider.py +0 -0
  346. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/primitives/slider.pyi +0 -0
  347. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/__init__.py +0 -0
  348. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/__init__.pyi +0 -0
  349. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/base.py +0 -0
  350. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/base.pyi +0 -0
  351. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/color_mode.py +0 -0
  352. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/color_mode.pyi +0 -0
  353. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/__init__.py +0 -0
  354. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/__init__.pyi +0 -0
  355. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
  356. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
  357. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  358. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
  359. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/avatar.py +0 -0
  360. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/avatar.pyi +0 -0
  361. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/badge.py +0 -0
  362. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/badge.pyi +0 -0
  363. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/button.py +0 -0
  364. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/button.pyi +0 -0
  365. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/callout.py +0 -0
  366. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/callout.pyi +0 -0
  367. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/card.py +0 -0
  368. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/card.pyi +0 -0
  369. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/checkbox.py +0 -0
  370. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
  371. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
  372. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
  373. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
  374. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
  375. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/context_menu.py +0 -0
  376. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
  377. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/data_list.py +0 -0
  378. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/data_list.pyi +0 -0
  379. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/dialog.py +0 -0
  380. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/dialog.pyi +0 -0
  381. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
  382. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
  383. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/hover_card.py +0 -0
  384. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
  385. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/icon_button.py +0 -0
  386. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
  387. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/inset.py +0 -0
  388. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/inset.pyi +0 -0
  389. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/popover.py +0 -0
  390. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/popover.pyi +0 -0
  391. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/progress.py +0 -0
  392. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/progress.pyi +0 -0
  393. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/radio.py +0 -0
  394. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/radio.pyi +0 -0
  395. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/radio_cards.py +0 -0
  396. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
  397. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/radio_group.py +0 -0
  398. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
  399. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  400. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
  401. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/segmented_control.py +0 -0
  402. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
  403. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/select.py +0 -0
  404. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/select.pyi +0 -0
  405. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/separator.py +0 -0
  406. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/separator.pyi +0 -0
  407. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/skeleton.py +0 -0
  408. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
  409. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/slider.py +0 -0
  410. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/slider.pyi +0 -0
  411. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/spinner.py +0 -0
  412. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/spinner.pyi +0 -0
  413. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/switch.py +0 -0
  414. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/switch.pyi +0 -0
  415. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/table.py +0 -0
  416. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/table.pyi +0 -0
  417. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/tabs.py +0 -0
  418. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/tabs.pyi +0 -0
  419. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/text_area.py +0 -0
  420. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/text_area.pyi +0 -0
  421. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/text_field.py +0 -0
  422. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/text_field.pyi +0 -0
  423. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/tooltip.py +0 -0
  424. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
  425. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/__init__.py +0 -0
  426. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
  427. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/base.py +0 -0
  428. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/base.pyi +0 -0
  429. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/box.py +0 -0
  430. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/box.pyi +0 -0
  431. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/center.py +0 -0
  432. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/center.pyi +0 -0
  433. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/container.py +0 -0
  434. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/container.pyi +0 -0
  435. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/flex.py +0 -0
  436. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/flex.pyi +0 -0
  437. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/grid.py +0 -0
  438. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/grid.pyi +0 -0
  439. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/list.py +0 -0
  440. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/list.pyi +0 -0
  441. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/section.py +0 -0
  442. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/section.pyi +0 -0
  443. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/spacer.py +0 -0
  444. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
  445. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/stack.py +0 -0
  446. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/layout/stack.pyi +0 -0
  447. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/typography/__init__.py +0 -0
  448. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
  449. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/typography/base.py +0 -0
  450. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  451. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
  452. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/typography/code.py +0 -0
  453. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/typography/code.pyi +0 -0
  454. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/typography/heading.py +0 -0
  455. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/typography/heading.pyi +0 -0
  456. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/typography/link.py +0 -0
  457. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/typography/link.pyi +0 -0
  458. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/typography/text.py +0 -0
  459. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/radix/themes/typography/text.pyi +0 -0
  460. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/react_player/__init__.py +0 -0
  461. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/react_player/audio.py +0 -0
  462. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/react_player/audio.pyi +0 -0
  463. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/react_player/react_player.py +0 -0
  464. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/react_player/react_player.pyi +0 -0
  465. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/react_player/video.py +0 -0
  466. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/react_player/video.pyi +0 -0
  467. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/recharts/__init__.py +0 -0
  468. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/recharts/__init__.pyi +0 -0
  469. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/recharts/cartesian.py +0 -0
  470. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/recharts/cartesian.pyi +0 -0
  471. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/recharts/charts.py +0 -0
  472. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/recharts/charts.pyi +0 -0
  473. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/recharts/general.py +0 -0
  474. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/recharts/general.pyi +0 -0
  475. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/recharts/polar.py +0 -0
  476. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/recharts/polar.pyi +0 -0
  477. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/recharts/recharts.pyi +0 -0
  478. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/sonner/__init__.py +0 -0
  479. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/sonner/toast.pyi +0 -0
  480. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/suneditor/__init__.py +0 -0
  481. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/suneditor/editor.py +0 -0
  482. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/suneditor/editor.pyi +0 -0
  483. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/tags/__init__.py +0 -0
  484. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/tags/cond_tag.py +0 -0
  485. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/tags/iter_tag.py +0 -0
  486. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/tags/match_tag.py +0 -0
  487. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/tags/tag.py +0 -0
  488. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/components/tags/tagless.py +0 -0
  489. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/constants/colors.py +0 -0
  490. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/constants/compiler.py +0 -0
  491. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/constants/config.py +0 -0
  492. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/constants/custom_components.py +0 -0
  493. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/constants/event.py +0 -0
  494. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/constants/route.py +0 -0
  495. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/constants/state.py +0 -0
  496. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/constants/style.py +0 -0
  497. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/constants/utils.py +0 -0
  498. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/custom_components/__init__.py +0 -0
  499. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/custom_components/custom_components.py +0 -0
  500. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/event.py +0 -0
  501. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/experimental/__init__.py +0 -0
  502. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/experimental/client_state.py +0 -0
  503. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/experimental/hooks.py +0 -0
  504. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/experimental/layout.py +0 -0
  505. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/experimental/layout.pyi +0 -0
  506. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/experimental/misc.py +0 -0
  507. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/istate/__init__.py +0 -0
  508. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/istate/data.py +0 -0
  509. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/istate/dynamic.py +0 -0
  510. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/istate/proxy.py +0 -0
  511. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/istate/storage.py +0 -0
  512. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/istate/wrappers.py +0 -0
  513. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/middleware/__init__.py +0 -0
  514. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/middleware/hydrate_middleware.py +0 -0
  515. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/middleware/middleware.py +0 -0
  516. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/model.py +0 -0
  517. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/page.py +0 -0
  518. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/py.typed +0 -0
  519. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/reflex.py +0 -0
  520. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/route.py +0 -0
  521. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/style.py +0 -0
  522. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/__init__.py +0 -0
  523. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/codespaces.py +0 -0
  524. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/compat.py +0 -0
  525. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/console.py +0 -0
  526. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/decorator.py +0 -0
  527. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/exceptions.py +0 -0
  528. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/export.py +0 -0
  529. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/format.py +0 -0
  530. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/imports.py +0 -0
  531. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/lazy_loader.py +0 -0
  532. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/net.py +0 -0
  533. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/pyi_generator.py +0 -0
  534. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/redir.py +0 -0
  535. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/serializers.py +0 -0
  536. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/telemetry.py +0 -0
  537. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/utils/types.py +0 -0
  538. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/vars/__init__.py +0 -0
  539. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/vars/base.py +0 -0
  540. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/vars/datetime.py +0 -0
  541. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/vars/dep_tracking.py +0 -0
  542. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/vars/function.py +0 -0
  543. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/vars/number.py +0 -0
  544. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/vars/object.py +0 -0
  545. {reflex-0.7.3a1 → reflex-0.7.4a0}/reflex/vars/sequence.py +0 -0
@@ -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,52 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reflex
3
- Version: 0.7.3a1
3
+ Version: 0.7.4a0
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: build<2.0,>=1.0.3
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
52
  <div align="center">
@@ -0,0 +1,164 @@
1
+ [project]
2
+ name = "reflex"
3
+ version = "0.7.4a0"
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,<7.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
+ ]
@@ -456,7 +456,7 @@ export const connect = async (
456
456
  console.log("Disconnect websocket on unload");
457
457
  socket.current.disconnect();
458
458
  }
459
- }
459
+ };
460
460
 
461
461
  const pagehideHandler = (event) => {
462
462
  if (event.persisted && socket.current?.connected) {
@@ -1063,7 +1063,7 @@ class App(MiddlewareMixin, LifespanMixin):
1063
1063
  with stateful_pages_marker.open("r") as f:
1064
1064
  stateful_pages = json.load(f)
1065
1065
  for route in stateful_pages:
1066
- console.info(f"BE Evaluating stateful page: {route}")
1066
+ console.debug(f"BE Evaluating stateful page: {route}")
1067
1067
  self._compile_page(route, save_page=False)
1068
1068
  self._enable_state()
1069
1069
  self._add_optional_endpoints()
@@ -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
- if out is not None:
93
- return out # pyright: ignore [reportReturnType]
94
- return update
93
+ return out # pyright: ignore[reportReturnType]
@@ -19,6 +19,7 @@ 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
22
23
  from reflex.utils.exec import is_prod_mode
23
24
  from reflex.utils.imports import ImportVar
24
25
  from reflex.utils.prerequisites import get_web_dir
@@ -190,18 +191,74 @@ def _compile_root_stylesheet(stylesheets: list[str]) -> str:
190
191
  if get_config().tailwind is not None
191
192
  else []
192
193
  )
194
+
195
+ failed_to_import_sass = False
193
196
  for stylesheet in stylesheets:
194
197
  if not utils.is_valid_url(stylesheet):
195
198
  # check if stylesheet provided exists.
196
- stylesheet_full_path = (
197
- Path.cwd() / constants.Dirs.APP_ASSETS / stylesheet.strip("/")
198
- )
199
+ assets_app_path = Path.cwd() / constants.Dirs.APP_ASSETS
200
+ stylesheet_full_path = assets_app_path / stylesheet.strip("/")
201
+
199
202
  if not stylesheet_full_path.exists():
200
203
  raise FileNotFoundError(
201
204
  f"The stylesheet file {stylesheet_full_path} does not exist."
202
205
  )
203
- stylesheet = f"../{constants.Dirs.PUBLIC}/{stylesheet.strip('/')}"
206
+
207
+ if stylesheet_full_path.is_dir():
208
+ # NOTE: this can create an infinite loop, for example:
209
+ # assets/
210
+ # | dir_a/
211
+ # | | dir_c/ (symlink to "assets/dir_a")
212
+ # | dir_b/
213
+ # so to avoid the infinite loop, we don't include symbolic links
214
+ stylesheets += [
215
+ str(p.relative_to(assets_app_path))
216
+ for p in stylesheet_full_path.iterdir()
217
+ if not (p.is_symlink() and p.is_dir())
218
+ ]
219
+ continue
220
+
221
+ if (
222
+ stylesheet_full_path.suffix[1:].lower()
223
+ in constants.Reflex.STYLESHEETS_SUPPORTED
224
+ ):
225
+ target = (
226
+ Path.cwd()
227
+ / constants.Dirs.WEB
228
+ / constants.Dirs.STYLES
229
+ / (stylesheet.rsplit(".", 1)[0].strip("/") + ".css")
230
+ )
231
+ target.parent.mkdir(parents=True, exist_ok=True)
232
+
233
+ if stylesheet_full_path.suffix == ".css":
234
+ path_ops.cp(src=stylesheet_full_path, dest=target, overwrite=True)
235
+ else:
236
+ try:
237
+ from sass import compile as sass_compile
238
+
239
+ target.write_text(
240
+ data=sass_compile(
241
+ filename=str(stylesheet_full_path),
242
+ output_style="compressed",
243
+ ),
244
+ encoding="utf8",
245
+ )
246
+ except ImportError:
247
+ failed_to_import_sass = True
248
+ else:
249
+ raise FileNotFoundError(
250
+ f'The stylesheet file "{stylesheet_full_path}" is not a valid file.'
251
+ )
252
+
253
+ stylesheet = f"./{stylesheet.rsplit('.', 1)[0].strip('/')}.css"
254
+
204
255
  sheets.append(stylesheet) if stylesheet not in sheets else None
256
+
257
+ if failed_to_import_sass:
258
+ console.error(
259
+ 'The `libsass` package is required to compile sass/scss stylesheet files. Run `pip install "libsass>=0.23.0"`.'
260
+ )
261
+
205
262
  return templates.STYLE.render(stylesheets=sheets)
206
263
 
207
264
 
@@ -190,7 +190,7 @@ class GhostUpload(Fragment):
190
190
  class Upload(MemoizationLeaf):
191
191
  """A file upload component."""
192
192
 
193
- library = "react-dropzone@14.3.5"
193
+ library = "react-dropzone@14.3.8"
194
194
 
195
195
  tag = ""
196
196
 
@@ -71,7 +71,7 @@ class Plotly(NoSSRComponent):
71
71
 
72
72
  library = "react-plotly.js@2.6.0"
73
73
 
74
- lib_dependencies: list[str] = ["plotly.js@2.35.3"]
74
+ lib_dependencies: list[str] = ["plotly.js@3.0.1"]
75
75
 
76
76
  tag = "Plot"
77
77
 
@@ -289,7 +289,7 @@ class PlotlyBasic(Plotly):
289
289
 
290
290
  library = "react-plotly.js@2.6.0"
291
291
 
292
- lib_dependencies: list[str] = ["plotly.js-basic-dist-min@3.0.0"]
292
+ lib_dependencies: list[str] = ["plotly.js-basic-dist-min@3.0.1"]
293
293
 
294
294
  def add_imports(self) -> ImportDict | list[ImportDict]:
295
295
  """Add imports for the plotly basic component.
@@ -315,7 +315,7 @@ class PlotlyCartesian(Plotly):
315
315
 
316
316
  library = "react-plotly.js@2.6.0"
317
317
 
318
- lib_dependencies: list[str] = ["plotly.js-cartesian-dist-min@3.0.0"]
318
+ lib_dependencies: list[str] = ["plotly.js-cartesian-dist-min@3.0.1"]
319
319
 
320
320
  def add_imports(self) -> ImportDict | list[ImportDict]:
321
321
  """Add imports for the plotly cartesian component.
@@ -341,7 +341,7 @@ class PlotlyGeo(Plotly):
341
341
 
342
342
  library = "react-plotly.js@2.6.0"
343
343
 
344
- lib_dependencies: list[str] = ["plotly.js-geo-dist-min@3.0.0"]
344
+ lib_dependencies: list[str] = ["plotly.js-geo-dist-min@3.0.1"]
345
345
 
346
346
  def add_imports(self) -> ImportDict | list[ImportDict]:
347
347
  """Add imports for the plotly geo component.
@@ -367,7 +367,7 @@ class PlotlyGl3d(Plotly):
367
367
 
368
368
  library = "react-plotly.js@2.6.0"
369
369
 
370
- lib_dependencies: list[str] = ["plotly.js-gl3d-dist-min@3.0.0"]
370
+ lib_dependencies: list[str] = ["plotly.js-gl3d-dist-min@3.0.1"]
371
371
 
372
372
  def add_imports(self) -> ImportDict | list[ImportDict]:
373
373
  """Add imports for the plotly 3d component.
@@ -393,7 +393,7 @@ class PlotlyGl2d(Plotly):
393
393
 
394
394
  library = "react-plotly.js@2.6.0"
395
395
 
396
- lib_dependencies: list[str] = ["plotly.js-gl2d-dist-min@3.0.0"]
396
+ lib_dependencies: list[str] = ["plotly.js-gl2d-dist-min@3.0.1"]
397
397
 
398
398
  def add_imports(self) -> ImportDict | list[ImportDict]:
399
399
  """Add imports for the plotly 2d component.
@@ -419,7 +419,7 @@ class PlotlyMapbox(Plotly):
419
419
 
420
420
  library = "react-plotly.js@2.6.0"
421
421
 
422
- lib_dependencies: list[str] = ["plotly.js-mapbox-dist-min@3.0.0"]
422
+ lib_dependencies: list[str] = ["plotly.js-mapbox-dist-min@3.0.1"]
423
423
 
424
424
  def add_imports(self) -> ImportDict | list[ImportDict]:
425
425
  """Add imports for the plotly mapbox component.
@@ -445,7 +445,7 @@ class PlotlyFinance(Plotly):
445
445
 
446
446
  library = "react-plotly.js@2.6.0"
447
447
 
448
- lib_dependencies: list[str] = ["plotly.js-finance-dist-min@3.0.0"]
448
+ lib_dependencies: list[str] = ["plotly.js-finance-dist-min@3.0.1"]
449
449
 
450
450
  def add_imports(self) -> ImportDict | list[ImportDict]:
451
451
  """Add imports for the plotly finance component.
@@ -471,7 +471,7 @@ class PlotlyStrict(Plotly):
471
471
 
472
472
  library = "react-plotly.js@2.6.0"
473
473
 
474
- lib_dependencies: list[str] = ["plotly.js-strict-dist-min@3.0.0"]
474
+ lib_dependencies: list[str] = ["plotly.js-strict-dist-min@3.0.1"]
475
475
 
476
476
  def add_imports(self) -> ImportDict | list[ImportDict]:
477
477
  """Add imports for the plotly strict component.
@@ -8,7 +8,7 @@ from reflex.components.component import Component, MemoizationLeaf, NoSSRCompone
8
8
  class Recharts(Component):
9
9
  """A component that wraps a recharts lib."""
10
10
 
11
- library = "recharts@2.15.0"
11
+ library = "recharts@2.15.1"
12
12
 
13
13
  def _get_style(self) -> dict:
14
14
  return {"wrapperStyle": self.style}
@@ -17,7 +17,7 @@ class Recharts(Component):
17
17
  class RechartsCharts(NoSSRComponent, MemoizationLeaf):
18
18
  """A component that wraps a recharts lib."""
19
19
 
20
- library = "recharts@2.15.0"
20
+ library = "recharts@2.15.1"
21
21
 
22
22
 
23
23
  LiteralAnimationEasing = Literal["ease", "ease-in", "ease-out", "ease-in-out", "linear"]
@@ -172,7 +172,7 @@ class ToastProps(PropsBase, NoExtrasAllowedProps):
172
172
  class Toaster(Component):
173
173
  """A Toaster Component for displaying toast notifications."""
174
174
 
175
- library: str | None = "sonner@1.7.2"
175
+ library: str | None = "sonner@2.0.1"
176
176
 
177
177
  tag = "Toaster"
178
178
 
@@ -596,7 +596,7 @@ class EnvironmentVariables:
596
596
  constants.CompileContext.UNDEFINED, internal=True
597
597
  )
598
598
 
599
- # Whether to use npm over bun to install frontend packages.
599
+ # Whether to use npm over bun to install and run the frontend.
600
600
  REFLEX_USE_NPM: EnvVar[bool] = env_var(False)
601
601
 
602
602
  # The npm registry to use.
@@ -614,9 +614,6 @@ class EnvironmentVariables:
614
614
  # Whether to use the system installed bun. If set to false, bun will be bundled with the app.
615
615
  REFLEX_USE_SYSTEM_BUN: EnvVar[bool] = env_var(False)
616
616
 
617
- # Whether to use the system installed node and npm. If set to false, node and npm will be bundled with the app.
618
- REFLEX_USE_SYSTEM_NODE: EnvVar[bool] = env_var(False)
619
-
620
617
  # The working directory for the next.js commands.
621
618
  REFLEX_WEB_WORKDIR: EnvVar[Path] = env_var(Path(constants.Dirs.WEB))
622
619
 
@@ -964,7 +961,7 @@ class Config(Base):
964
961
  env_var = "***"
965
962
 
966
963
  if value != getattr(self, key):
967
- console.info(
964
+ console.debug(
968
965
  f"Overriding config value {key} with env var {key.upper()}={env_var}",
969
966
  dedupe=True,
970
967
  )
@@ -45,7 +45,7 @@ from .config import (
45
45
  )
46
46
  from .custom_components import CustomComponents
47
47
  from .event import Endpoint, EventTriggers, SocketEvent
48
- from .installer import Bun, Fnm, Node, PackageJson
48
+ from .installer import Bun, Node, PackageJson
49
49
  from .route import (
50
50
  ROUTE_NOT_FOUND,
51
51
  ROUTER,
@@ -94,7 +94,6 @@ __all__ = [
94
94
  "EventTriggers",
95
95
  "Expiration",
96
96
  "Ext",
97
- "Fnm",
98
97
  "GitIgnore",
99
98
  "Hooks",
100
99
  "Imports",
@@ -88,6 +88,9 @@ class Reflex(SimpleNamespace):
88
88
 
89
89
  RELEASES_URL = "https://api.github.com/repos/reflex-dev/templates/releases"
90
90
 
91
+ # The reflex stylesheet language supported
92
+ STYLESHEETS_SUPPORTED = ["css", "sass", "scss"]
93
+
91
94
 
92
95
  class ReflexHostingCLI(SimpleNamespace):
93
96
  """Base constants concerning Reflex Hosting CLI."""
@@ -0,0 +1,104 @@
1
+ """File for constants related to the installation process. (Bun/Node)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from types import SimpleNamespace
6
+
7
+ from .base import IS_WINDOWS
8
+ from .utils import classproperty
9
+
10
+
11
+ # Bun config.
12
+ class Bun(SimpleNamespace):
13
+ """Bun constants."""
14
+
15
+ # The Bun version.
16
+ VERSION = "1.2.4"
17
+
18
+ # Min Bun Version
19
+ MIN_VERSION = "1.2.4"
20
+
21
+ # URL to bun install script.
22
+ INSTALL_URL = "https://raw.githubusercontent.com/reflex-dev/reflex/main/scripts/bun_install.sh"
23
+
24
+ # URL to windows install script.
25
+ WINDOWS_INSTALL_URL = (
26
+ "https://raw.githubusercontent.com/reflex-dev/reflex/main/scripts/install.ps1"
27
+ )
28
+
29
+ # Path of the bunfig file
30
+ CONFIG_PATH = "bunfig.toml"
31
+
32
+ @classproperty
33
+ @classmethod
34
+ def ROOT_PATH(cls):
35
+ """The directory to store the bun.
36
+
37
+ Returns:
38
+ The directory to store the bun.
39
+ """
40
+ from reflex.config import environment
41
+
42
+ return environment.REFLEX_DIR.get() / "bun"
43
+
44
+ @classproperty
45
+ @classmethod
46
+ def DEFAULT_PATH(cls):
47
+ """Default bun path.
48
+
49
+ Returns:
50
+ The default bun path.
51
+ """
52
+ return cls.ROOT_PATH / "bin" / ("bun" if not IS_WINDOWS else "bun.exe")
53
+
54
+ DEFAULT_CONFIG = """
55
+ [install]
56
+ registry = "{registry}"
57
+ """
58
+
59
+
60
+ # Node / NPM config
61
+ class Node(SimpleNamespace):
62
+ """Node/ NPM constants."""
63
+
64
+ # The Node version.
65
+ VERSION = "22.11.0"
66
+ # The minimum required node version.
67
+ MIN_VERSION = "18.18.0"
68
+
69
+
70
+ class PackageJson(SimpleNamespace):
71
+ """Constants used to build the package.json file."""
72
+
73
+ class Commands(SimpleNamespace):
74
+ """The commands to define in package.json."""
75
+
76
+ DEV = "next dev"
77
+ EXPORT = "next build"
78
+ EXPORT_SITEMAP = "next build && next-sitemap"
79
+ PROD = "next start"
80
+
81
+ PATH = "package.json"
82
+
83
+ DEPENDENCIES = {
84
+ "@emotion/react": "11.14.0",
85
+ "axios": "1.8.3",
86
+ "json5": "2.2.3",
87
+ "next": "15.0.4",
88
+ "next-sitemap": "4.2.3",
89
+ "next-themes": "0.4.6",
90
+ "react": "19.0.0",
91
+ "react-dom": "19.0.0",
92
+ "react-focus-lock": "2.13.6",
93
+ "socket.io-client": "4.8.1",
94
+ "universal-cookie": "7.2.2",
95
+ }
96
+ DEV_DEPENDENCIES = {
97
+ "autoprefixer": "10.4.21",
98
+ "postcss": "8.5.3",
99
+ "postcss-import": "16.1.0",
100
+ }
101
+ OVERRIDES = {
102
+ # This should always match the `react` version in DEPENDENCIES for recharts compatibility.
103
+ "react-is": "19.0.0"
104
+ }
@@ -905,7 +905,14 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
905
905
  ]
906
906
  if len(parent_states) >= 2:
907
907
  raise ValueError(f"Only one parent state is allowed {parent_states}.")
908
- return parent_states[0] if len(parent_states) == 1 else None
908
+ # The first non-mixin state in the mro is our parent.
909
+ for base in cls.mro()[1:]:
910
+ if base._mixin or not issubclass(base, BaseState):
911
+ continue
912
+ if base is BaseState:
913
+ break
914
+ return base
915
+ return None # No known parent
909
916
 
910
917
  @classmethod
911
918
  @functools.lru_cache()