reflex 0.7.2.dev1__tar.gz → 0.7.3a2__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 (544) hide show
  1. reflex-0.7.3a2/.gitignore +21 -0
  2. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/PKG-INFO +42 -42
  3. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/README.md +13 -20
  4. reflex-0.7.3a2/pyproject.toml +164 -0
  5. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +6 -3
  6. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +1 -1
  7. reflex-0.7.3a2/reflex/.templates/web/components/shiki/code.js +39 -0
  8. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/web/postcss.config.js +1 -1
  9. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/web/utils/client_side_routing.js +18 -16
  10. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/web/utils/helpers/dataeditor.js +1 -1
  11. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/web/utils/helpers/range.js +30 -30
  12. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/web/utils/state.js +44 -22
  13. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/app_mixins/middleware.py +9 -10
  14. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/compiler/compiler.py +7 -0
  15. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/banner.py +1 -1
  16. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/foreach.py +3 -2
  17. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/datadisplay/logo.py +1 -1
  18. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/__init__.pyi +22 -0
  19. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/__init__.py +20 -1
  20. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/__init__.pyi +42 -1
  21. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/media.py +11 -0
  22. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/media.pyi +11 -0
  23. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/lucide/icon.py +8 -6
  24. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/lucide/icon.pyi +0 -1
  25. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/slider.py +2 -1
  26. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/config.py +13 -7
  27. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/custom_components/custom_components.py +23 -25
  28. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/event.py +7 -2
  29. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/istate/data.py +59 -7
  30. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/reflex.py +69 -30
  31. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/state.py +3 -3
  32. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/testing.py +4 -10
  33. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/exceptions.py +31 -1
  34. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/exec.py +4 -8
  35. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/export.py +2 -2
  36. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/vars/base.py +23 -1
  37. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/vars/number.py +22 -21
  38. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/vars/object.py +29 -0
  39. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/vars/sequence.py +37 -0
  40. reflex-0.7.2.dev1/benchmarks/__init__.py +0 -3
  41. reflex-0.7.2.dev1/benchmarks/benchmark_compile_times.py +0 -147
  42. reflex-0.7.2.dev1/benchmarks/benchmark_imports.py +0 -128
  43. reflex-0.7.2.dev1/benchmarks/benchmark_lighthouse.py +0 -75
  44. reflex-0.7.2.dev1/benchmarks/benchmark_package_size.py +0 -135
  45. reflex-0.7.2.dev1/benchmarks/benchmark_web_size.py +0 -106
  46. reflex-0.7.2.dev1/benchmarks/conftest.py +0 -20
  47. reflex-0.7.2.dev1/benchmarks/lighthouse.sh +0 -77
  48. reflex-0.7.2.dev1/benchmarks/utils.py +0 -74
  49. reflex-0.7.2.dev1/pyproject.toml +0 -198
  50. reflex-0.7.2.dev1/reflex/.templates/web/components/shiki/code.js +0 -34
  51. reflex-0.7.2.dev1/tests/__init__.py +0 -5
  52. reflex-0.7.2.dev1/tests/benchmarks/__init__.py +0 -0
  53. reflex-0.7.2.dev1/tests/benchmarks/conftest.py +0 -3
  54. reflex-0.7.2.dev1/tests/benchmarks/fixtures.py +0 -383
  55. reflex-0.7.2.dev1/tests/benchmarks/test_compilation.py +0 -25
  56. reflex-0.7.2.dev1/tests/benchmarks/test_evaluate.py +0 -11
  57. reflex-0.7.2.dev1/tests/integration/__init__.py +0 -1
  58. reflex-0.7.2.dev1/tests/integration/conftest.py +0 -71
  59. reflex-0.7.2.dev1/tests/integration/init-test/Dockerfile +0 -8
  60. reflex-0.7.2.dev1/tests/integration/init-test/in_docker_test_script.sh +0 -37
  61. reflex-0.7.2.dev1/tests/integration/shared/state.py +0 -9
  62. reflex-0.7.2.dev1/tests/integration/test_background_task.py +0 -381
  63. reflex-0.7.2.dev1/tests/integration/test_call_script.py +0 -542
  64. reflex-0.7.2.dev1/tests/integration/test_client_storage.py +0 -760
  65. reflex-0.7.2.dev1/tests/integration/test_component_state.py +0 -204
  66. reflex-0.7.2.dev1/tests/integration/test_computed_vars.py +0 -275
  67. reflex-0.7.2.dev1/tests/integration/test_connection_banner.py +0 -223
  68. reflex-0.7.2.dev1/tests/integration/test_deploy_url.py +0 -99
  69. reflex-0.7.2.dev1/tests/integration/test_dynamic_components.py +0 -170
  70. reflex-0.7.2.dev1/tests/integration/test_dynamic_routes.py +0 -430
  71. reflex-0.7.2.dev1/tests/integration/test_event_actions.py +0 -385
  72. reflex-0.7.2.dev1/tests/integration/test_event_chain.py +0 -579
  73. reflex-0.7.2.dev1/tests/integration/test_exception_handlers.py +0 -204
  74. reflex-0.7.2.dev1/tests/integration/test_extra_overlay_function.py +0 -87
  75. reflex-0.7.2.dev1/tests/integration/test_form_submit.py +0 -262
  76. reflex-0.7.2.dev1/tests/integration/test_input.py +0 -188
  77. reflex-0.7.2.dev1/tests/integration/test_large_state.py +0 -91
  78. reflex-0.7.2.dev1/tests/integration/test_lifespan.py +0 -133
  79. reflex-0.7.2.dev1/tests/integration/test_login_flow.py +0 -147
  80. reflex-0.7.2.dev1/tests/integration/test_media.py +0 -163
  81. reflex-0.7.2.dev1/tests/integration/test_navigation.py +0 -93
  82. reflex-0.7.2.dev1/tests/integration/test_server_side_event.py +0 -184
  83. reflex-0.7.2.dev1/tests/integration/test_shared_state.py +0 -77
  84. reflex-0.7.2.dev1/tests/integration/test_state_inheritance.py +0 -452
  85. reflex-0.7.2.dev1/tests/integration/test_tailwind.py +0 -122
  86. reflex-0.7.2.dev1/tests/integration/test_upload.py +0 -503
  87. reflex-0.7.2.dev1/tests/integration/test_urls.py +0 -68
  88. reflex-0.7.2.dev1/tests/integration/test_var_operations.py +0 -885
  89. reflex-0.7.2.dev1/tests/integration/tests_playwright/test_appearance.py +0 -218
  90. reflex-0.7.2.dev1/tests/integration/tests_playwright/test_datetime_operations.py +0 -87
  91. reflex-0.7.2.dev1/tests/integration/tests_playwright/test_link_hover.py +0 -46
  92. reflex-0.7.2.dev1/tests/integration/tests_playwright/test_stateless_app.py +0 -59
  93. reflex-0.7.2.dev1/tests/integration/tests_playwright/test_table.py +0 -103
  94. reflex-0.7.2.dev1/tests/integration/utils.py +0 -191
  95. reflex-0.7.2.dev1/tests/test_node_version.py +0 -73
  96. reflex-0.7.2.dev1/tests/units/__init__.py +0 -5
  97. reflex-0.7.2.dev1/tests/units/assets/custom_script.js +0 -1
  98. reflex-0.7.2.dev1/tests/units/assets/test_assets.py +0 -81
  99. reflex-0.7.2.dev1/tests/units/compiler/__init__.py +0 -1
  100. reflex-0.7.2.dev1/tests/units/compiler/test_compiler.py +0 -219
  101. reflex-0.7.2.dev1/tests/units/compiler/test_compiler_utils.py +0 -7
  102. reflex-0.7.2.dev1/tests/units/components/__init__.py +0 -1
  103. reflex-0.7.2.dev1/tests/units/components/base/test_bare.py +0 -26
  104. reflex-0.7.2.dev1/tests/units/components/base/test_link.py +0 -15
  105. reflex-0.7.2.dev1/tests/units/components/base/test_script.py +0 -75
  106. reflex-0.7.2.dev1/tests/units/components/core/__init__.py +0 -0
  107. reflex-0.7.2.dev1/tests/units/components/core/test_banner.py +0 -59
  108. reflex-0.7.2.dev1/tests/units/components/core/test_colors.py +0 -136
  109. reflex-0.7.2.dev1/tests/units/components/core/test_cond.py +0 -146
  110. reflex-0.7.2.dev1/tests/units/components/core/test_debounce.py +0 -185
  111. reflex-0.7.2.dev1/tests/units/components/core/test_foreach.py +0 -325
  112. reflex-0.7.2.dev1/tests/units/components/core/test_html.py +0 -41
  113. reflex-0.7.2.dev1/tests/units/components/core/test_match.py +0 -317
  114. reflex-0.7.2.dev1/tests/units/components/core/test_responsive.py +0 -38
  115. reflex-0.7.2.dev1/tests/units/components/core/test_upload.py +0 -130
  116. reflex-0.7.2.dev1/tests/units/components/datadisplay/__init__.py +0 -1
  117. reflex-0.7.2.dev1/tests/units/components/datadisplay/conftest.py +0 -89
  118. reflex-0.7.2.dev1/tests/units/components/datadisplay/test_code.py +0 -13
  119. reflex-0.7.2.dev1/tests/units/components/datadisplay/test_dataeditor.py +0 -11
  120. reflex-0.7.2.dev1/tests/units/components/datadisplay/test_datatable.py +0 -124
  121. reflex-0.7.2.dev1/tests/units/components/datadisplay/test_shiki_code.py +0 -175
  122. reflex-0.7.2.dev1/tests/units/components/el/test_html.py +0 -6
  123. reflex-0.7.2.dev1/tests/units/components/el/test_svg.py +0 -74
  124. reflex-0.7.2.dev1/tests/units/components/forms/__init__.py +0 -0
  125. reflex-0.7.2.dev1/tests/units/components/forms/test_form.py +0 -20
  126. reflex-0.7.2.dev1/tests/units/components/graphing/__init__.py +0 -1
  127. reflex-0.7.2.dev1/tests/units/components/graphing/test_plotly.py +0 -44
  128. reflex-0.7.2.dev1/tests/units/components/graphing/test_recharts.py +0 -52
  129. reflex-0.7.2.dev1/tests/units/components/layout/__init__.py +0 -1
  130. reflex-0.7.2.dev1/tests/units/components/lucide/test_icon.py +0 -36
  131. reflex-0.7.2.dev1/tests/units/components/markdown/__init__.py +0 -0
  132. reflex-0.7.2.dev1/tests/units/components/markdown/test_markdown.py +0 -191
  133. reflex-0.7.2.dev1/tests/units/components/media/__init__.py +0 -1
  134. reflex-0.7.2.dev1/tests/units/components/media/test_image.py +0 -65
  135. reflex-0.7.2.dev1/tests/units/components/radix/test_icon_button.py +0 -30
  136. reflex-0.7.2.dev1/tests/units/components/radix/test_layout.py +0 -6
  137. reflex-0.7.2.dev1/tests/units/components/recharts/test_cartesian.py +0 -50
  138. reflex-0.7.2.dev1/tests/units/components/recharts/test_polar.py +0 -38
  139. reflex-0.7.2.dev1/tests/units/components/test_component.py +0 -2317
  140. reflex-0.7.2.dev1/tests/units/components/test_component_future_annotations.py +0 -37
  141. reflex-0.7.2.dev1/tests/units/components/test_component_state.py +0 -63
  142. reflex-0.7.2.dev1/tests/units/components/test_props.py +0 -59
  143. reflex-0.7.2.dev1/tests/units/components/test_tag.py +0 -135
  144. reflex-0.7.2.dev1/tests/units/components/typography/__init__.py +0 -0
  145. reflex-0.7.2.dev1/tests/units/components/typography/test_markdown.py +0 -49
  146. reflex-0.7.2.dev1/tests/units/conftest.py +0 -238
  147. reflex-0.7.2.dev1/tests/units/middleware/__init__.py +0 -0
  148. reflex-0.7.2.dev1/tests/units/middleware/conftest.py +0 -25
  149. reflex-0.7.2.dev1/tests/units/middleware/test_hydrate_middleware.py +0 -50
  150. reflex-0.7.2.dev1/tests/units/states/__init__.py +0 -34
  151. reflex-0.7.2.dev1/tests/units/states/mutation.py +0 -219
  152. reflex-0.7.2.dev1/tests/units/states/upload.py +0 -174
  153. reflex-0.7.2.dev1/tests/units/test_app.py +0 -1774
  154. reflex-0.7.2.dev1/tests/units/test_attribute_access_type.py +0 -416
  155. reflex-0.7.2.dev1/tests/units/test_base.py +0 -100
  156. reflex-0.7.2.dev1/tests/units/test_config.py +0 -291
  157. reflex-0.7.2.dev1/tests/units/test_db_config.py +0 -204
  158. reflex-0.7.2.dev1/tests/units/test_event.py +0 -481
  159. reflex-0.7.2.dev1/tests/units/test_health_endpoint.py +0 -130
  160. reflex-0.7.2.dev1/tests/units/test_model.py +0 -193
  161. reflex-0.7.2.dev1/tests/units/test_page.py +0 -79
  162. reflex-0.7.2.dev1/tests/units/test_prerequisites.py +0 -387
  163. reflex-0.7.2.dev1/tests/units/test_route.py +0 -122
  164. reflex-0.7.2.dev1/tests/units/test_sqlalchemy.py +0 -166
  165. reflex-0.7.2.dev1/tests/units/test_state.py +0 -3937
  166. reflex-0.7.2.dev1/tests/units/test_state_tree.py +0 -380
  167. reflex-0.7.2.dev1/tests/units/test_style.py +0 -554
  168. reflex-0.7.2.dev1/tests/units/test_telemetry.py +0 -49
  169. reflex-0.7.2.dev1/tests/units/test_testing.py +0 -40
  170. reflex-0.7.2.dev1/tests/units/test_var.py +0 -1920
  171. reflex-0.7.2.dev1/tests/units/utils/__init__.py +0 -0
  172. reflex-0.7.2.dev1/tests/units/utils/test_format.py +0 -714
  173. reflex-0.7.2.dev1/tests/units/utils/test_imports.py +0 -117
  174. reflex-0.7.2.dev1/tests/units/utils/test_serializers.py +0 -240
  175. reflex-0.7.2.dev1/tests/units/utils/test_types.py +0 -92
  176. reflex-0.7.2.dev1/tests/units/utils/test_utils.py +0 -698
  177. reflex-0.7.2.dev1/tests/units/vars/test_base.py +0 -63
  178. reflex-0.7.2.dev1/tests/units/vars/test_object.py +0 -163
  179. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/LICENSE +0 -0
  180. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  181. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  182. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/apps/blank/code/blank.py +0 -0
  183. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  184. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
  185. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
  186. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
  187. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
  188. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
  189. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  190. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
  191. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  192. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
  193. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  194. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  195. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -0
  196. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
  197. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  198. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
  199. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  200. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
  201. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
  202. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  203. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/web/.gitignore +0 -0
  204. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/web/jsconfig.json +0 -0
  205. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/web/next.config.js +0 -0
  206. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/web/styles/tailwind.css +0 -0
  207. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  208. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/web/utils/helpers/paste.js +0 -0
  209. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  210. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/__init__.py +0 -0
  211. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/__init__.pyi +0 -0
  212. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/__main__.py +0 -0
  213. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/admin.py +0 -0
  214. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/app.py +0 -0
  215. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/app_mixins/__init__.py +0 -0
  216. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/app_mixins/lifespan.py +0 -0
  217. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/app_mixins/mixin.py +0 -0
  218. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/app_module_for_backend.py +0 -0
  219. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/assets.py +0 -0
  220. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/base.py +0 -0
  221. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/compiler/__init__.py +0 -0
  222. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/compiler/templates.py +0 -0
  223. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/compiler/utils.py +0 -0
  224. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/__init__.py +0 -0
  225. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/__init__.pyi +0 -0
  226. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/__init__.py +0 -0
  227. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/__init__.pyi +0 -0
  228. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/app_wrap.py +0 -0
  229. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/app_wrap.pyi +0 -0
  230. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/bare.py +0 -0
  231. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/body.py +0 -0
  232. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/body.pyi +0 -0
  233. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/document.py +0 -0
  234. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/document.pyi +0 -0
  235. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/error_boundary.py +0 -0
  236. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/error_boundary.pyi +0 -0
  237. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/fragment.py +0 -0
  238. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/fragment.pyi +0 -0
  239. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/head.py +0 -0
  240. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/head.pyi +0 -0
  241. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/link.py +0 -0
  242. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/link.pyi +0 -0
  243. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/meta.py +0 -0
  244. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/meta.pyi +0 -0
  245. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/script.py +0 -0
  246. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/script.pyi +0 -0
  247. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/strict_mode.py +0 -0
  248. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/base/strict_mode.pyi +0 -0
  249. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/component.py +0 -0
  250. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/__init__.py +0 -0
  251. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/__init__.pyi +0 -0
  252. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/auto_scroll.py +0 -0
  253. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/auto_scroll.pyi +0 -0
  254. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/banner.pyi +0 -0
  255. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/breakpoints.py +0 -0
  256. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/client_side_routing.py +0 -0
  257. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/client_side_routing.pyi +0 -0
  258. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/clipboard.py +0 -0
  259. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/clipboard.pyi +0 -0
  260. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/colors.py +0 -0
  261. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/cond.py +0 -0
  262. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/debounce.py +0 -0
  263. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/debounce.pyi +0 -0
  264. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/html.py +0 -0
  265. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/html.pyi +0 -0
  266. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/layout/__init__.py +0 -0
  267. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/match.py +0 -0
  268. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/responsive.py +0 -0
  269. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/sticky.py +0 -0
  270. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/sticky.pyi +0 -0
  271. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/upload.py +0 -0
  272. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/core/upload.pyi +0 -0
  273. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/datadisplay/__init__.py +0 -0
  274. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/datadisplay/__init__.pyi +0 -0
  275. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/datadisplay/code.py +0 -0
  276. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/datadisplay/code.pyi +0 -0
  277. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/datadisplay/dataeditor.py +0 -0
  278. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/datadisplay/dataeditor.pyi +0 -0
  279. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/datadisplay/shiki_code_block.py +0 -0
  280. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
  281. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/dynamic.py +0 -0
  282. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/__init__.py +0 -0
  283. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/constants/__init__.py +0 -0
  284. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/constants/html.py +0 -0
  285. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/constants/react.py +0 -0
  286. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/constants/reflex.py +0 -0
  287. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/element.py +0 -0
  288. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/element.pyi +0 -0
  289. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/base.py +0 -0
  290. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/base.pyi +0 -0
  291. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/forms.py +0 -0
  292. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/forms.pyi +0 -0
  293. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/inline.py +0 -0
  294. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/inline.pyi +0 -0
  295. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/metadata.py +0 -0
  296. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/metadata.pyi +0 -0
  297. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/other.py +0 -0
  298. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/other.pyi +0 -0
  299. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/scripts.py +0 -0
  300. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/scripts.pyi +0 -0
  301. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/sectioning.py +0 -0
  302. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/sectioning.pyi +0 -0
  303. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/tables.py +0 -0
  304. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/tables.pyi +0 -0
  305. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/typography.py +0 -0
  306. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/el/elements/typography.pyi +0 -0
  307. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/gridjs/__init__.py +0 -0
  308. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/gridjs/datatable.py +0 -0
  309. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/gridjs/datatable.pyi +0 -0
  310. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/literals.py +0 -0
  311. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/lucide/__init__.py +0 -0
  312. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/markdown/__init__.py +0 -0
  313. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/markdown/markdown.py +0 -0
  314. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/markdown/markdown.pyi +0 -0
  315. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/moment/__init__.py +0 -0
  316. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/moment/moment.py +0 -0
  317. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/moment/moment.pyi +0 -0
  318. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/next/__init__.py +0 -0
  319. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/next/base.py +0 -0
  320. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/next/base.pyi +0 -0
  321. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/next/image.py +0 -0
  322. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/next/image.pyi +0 -0
  323. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/next/link.py +0 -0
  324. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/next/link.pyi +0 -0
  325. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/next/video.py +0 -0
  326. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/next/video.pyi +0 -0
  327. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/plotly/__init__.py +0 -0
  328. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/plotly/plotly.py +0 -0
  329. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/plotly/plotly.pyi +0 -0
  330. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/props.py +0 -0
  331. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/__init__.py +0 -0
  332. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/__init__.pyi +0 -0
  333. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/primitives/__init__.py +0 -0
  334. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/primitives/__init__.pyi +0 -0
  335. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/primitives/accordion.py +0 -0
  336. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/primitives/accordion.pyi +0 -0
  337. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/primitives/base.py +0 -0
  338. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/primitives/base.pyi +0 -0
  339. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/primitives/drawer.py +0 -0
  340. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/primitives/drawer.pyi +0 -0
  341. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/primitives/form.py +0 -0
  342. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/primitives/form.pyi +0 -0
  343. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/primitives/progress.py +0 -0
  344. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/primitives/progress.pyi +0 -0
  345. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/primitives/slider.py +0 -0
  346. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/primitives/slider.pyi +0 -0
  347. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/__init__.py +0 -0
  348. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/__init__.pyi +0 -0
  349. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/base.py +0 -0
  350. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/base.pyi +0 -0
  351. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/color_mode.py +0 -0
  352. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/color_mode.pyi +0 -0
  353. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/__init__.py +0 -0
  354. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/__init__.pyi +0 -0
  355. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
  356. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
  357. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  358. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
  359. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/avatar.py +0 -0
  360. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/avatar.pyi +0 -0
  361. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/badge.py +0 -0
  362. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/badge.pyi +0 -0
  363. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/button.py +0 -0
  364. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/button.pyi +0 -0
  365. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/callout.py +0 -0
  366. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/callout.pyi +0 -0
  367. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/card.py +0 -0
  368. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/card.pyi +0 -0
  369. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/checkbox.py +0 -0
  370. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
  371. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
  372. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
  373. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
  374. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
  375. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/context_menu.py +0 -0
  376. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
  377. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/data_list.py +0 -0
  378. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/data_list.pyi +0 -0
  379. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/dialog.py +0 -0
  380. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/dialog.pyi +0 -0
  381. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
  382. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
  383. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/hover_card.py +0 -0
  384. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
  385. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/icon_button.py +0 -0
  386. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
  387. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/inset.py +0 -0
  388. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/inset.pyi +0 -0
  389. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/popover.py +0 -0
  390. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/popover.pyi +0 -0
  391. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/progress.py +0 -0
  392. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/progress.pyi +0 -0
  393. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/radio.py +0 -0
  394. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/radio.pyi +0 -0
  395. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/radio_cards.py +0 -0
  396. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
  397. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/radio_group.py +0 -0
  398. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
  399. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  400. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
  401. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/segmented_control.py +0 -0
  402. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
  403. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/select.py +0 -0
  404. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/select.pyi +0 -0
  405. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/separator.py +0 -0
  406. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/separator.pyi +0 -0
  407. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/skeleton.py +0 -0
  408. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
  409. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/slider.pyi +0 -0
  410. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/spinner.py +0 -0
  411. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/spinner.pyi +0 -0
  412. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/switch.py +0 -0
  413. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/switch.pyi +0 -0
  414. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/table.py +0 -0
  415. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/table.pyi +0 -0
  416. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/tabs.py +0 -0
  417. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/tabs.pyi +0 -0
  418. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/text_area.py +0 -0
  419. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/text_area.pyi +0 -0
  420. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/text_field.py +0 -0
  421. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/text_field.pyi +0 -0
  422. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/tooltip.py +0 -0
  423. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
  424. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/__init__.py +0 -0
  425. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
  426. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/base.py +0 -0
  427. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/base.pyi +0 -0
  428. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/box.py +0 -0
  429. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/box.pyi +0 -0
  430. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/center.py +0 -0
  431. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/center.pyi +0 -0
  432. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/container.py +0 -0
  433. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/container.pyi +0 -0
  434. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/flex.py +0 -0
  435. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/flex.pyi +0 -0
  436. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/grid.py +0 -0
  437. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/grid.pyi +0 -0
  438. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/list.py +0 -0
  439. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/list.pyi +0 -0
  440. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/section.py +0 -0
  441. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/section.pyi +0 -0
  442. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/spacer.py +0 -0
  443. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
  444. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/stack.py +0 -0
  445. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/layout/stack.pyi +0 -0
  446. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/typography/__init__.py +0 -0
  447. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
  448. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/typography/base.py +0 -0
  449. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  450. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
  451. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/typography/code.py +0 -0
  452. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/typography/code.pyi +0 -0
  453. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/typography/heading.py +0 -0
  454. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/typography/heading.pyi +0 -0
  455. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/typography/link.py +0 -0
  456. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/typography/link.pyi +0 -0
  457. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/typography/text.py +0 -0
  458. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/radix/themes/typography/text.pyi +0 -0
  459. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/react_player/__init__.py +0 -0
  460. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/react_player/audio.py +0 -0
  461. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/react_player/audio.pyi +0 -0
  462. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/react_player/react_player.py +0 -0
  463. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/react_player/react_player.pyi +0 -0
  464. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/react_player/video.py +0 -0
  465. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/react_player/video.pyi +0 -0
  466. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/recharts/__init__.py +0 -0
  467. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/recharts/__init__.pyi +0 -0
  468. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/recharts/cartesian.py +0 -0
  469. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/recharts/cartesian.pyi +0 -0
  470. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/recharts/charts.py +0 -0
  471. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/recharts/charts.pyi +0 -0
  472. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/recharts/general.py +0 -0
  473. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/recharts/general.pyi +0 -0
  474. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/recharts/polar.py +0 -0
  475. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/recharts/polar.pyi +0 -0
  476. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/recharts/recharts.py +0 -0
  477. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/recharts/recharts.pyi +0 -0
  478. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/sonner/__init__.py +0 -0
  479. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/sonner/toast.py +0 -0
  480. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/sonner/toast.pyi +0 -0
  481. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/suneditor/__init__.py +0 -0
  482. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/suneditor/editor.py +0 -0
  483. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/suneditor/editor.pyi +0 -0
  484. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/tags/__init__.py +0 -0
  485. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/tags/cond_tag.py +0 -0
  486. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/tags/iter_tag.py +0 -0
  487. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/tags/match_tag.py +0 -0
  488. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/tags/tag.py +0 -0
  489. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/components/tags/tagless.py +0 -0
  490. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/constants/__init__.py +0 -0
  491. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/constants/base.py +0 -0
  492. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/constants/colors.py +0 -0
  493. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/constants/compiler.py +0 -0
  494. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/constants/config.py +0 -0
  495. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/constants/custom_components.py +0 -0
  496. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/constants/event.py +0 -0
  497. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/constants/installer.py +0 -0
  498. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/constants/route.py +0 -0
  499. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/constants/state.py +0 -0
  500. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/constants/style.py +0 -0
  501. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/constants/utils.py +0 -0
  502. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/custom_components/__init__.py +0 -0
  503. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/experimental/__init__.py +0 -0
  504. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/experimental/client_state.py +0 -0
  505. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/experimental/hooks.py +0 -0
  506. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/experimental/layout.py +0 -0
  507. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/experimental/layout.pyi +0 -0
  508. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/experimental/misc.py +0 -0
  509. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/istate/__init__.py +0 -0
  510. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/istate/dynamic.py +0 -0
  511. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/istate/proxy.py +0 -0
  512. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/istate/storage.py +0 -0
  513. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/istate/wrappers.py +0 -0
  514. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/middleware/__init__.py +0 -0
  515. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/middleware/hydrate_middleware.py +0 -0
  516. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/middleware/middleware.py +0 -0
  517. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/model.py +0 -0
  518. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/page.py +0 -0
  519. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/py.typed +0 -0
  520. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/route.py +0 -0
  521. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/style.py +0 -0
  522. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/__init__.py +0 -0
  523. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/build.py +0 -0
  524. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/codespaces.py +0 -0
  525. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/compat.py +0 -0
  526. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/console.py +0 -0
  527. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/decorator.py +0 -0
  528. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/format.py +0 -0
  529. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/imports.py +0 -0
  530. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/lazy_loader.py +0 -0
  531. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/net.py +0 -0
  532. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/path_ops.py +0 -0
  533. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/prerequisites.py +0 -0
  534. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/processes.py +0 -0
  535. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/pyi_generator.py +0 -0
  536. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/redir.py +0 -0
  537. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/registry.py +0 -0
  538. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/serializers.py +0 -0
  539. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/telemetry.py +0 -0
  540. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/utils/types.py +0 -0
  541. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/vars/__init__.py +0 -0
  542. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/vars/datetime.py +0 -0
  543. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/vars/dep_tracking.py +0 -0
  544. {reflex-0.7.2.dev1 → reflex-0.7.3a2}/reflex/vars/function.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,48 +1,54 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reflex
3
- Version: 0.7.2.dev1
3
+ Version: 0.7.3a2
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
-
46
52
  <div align="center">
47
53
  <img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/reflex_dark.svg#gh-light-mode-only" alt="Reflex Logo" width="300px">
48
54
  <img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/reflex_light.svg#gh-dark-mode-only" alt="Reflex Logo" width="300px">
@@ -50,10 +56,12 @@ Description-Content-Type: text/markdown
50
56
  <hr>
51
57
 
52
58
  ### **✨ Performant, customizable web apps in pure Python. Deploy in seconds. ✨**
59
+
53
60
  [![PyPI version](https://badge.fury.io/py/reflex.svg)](https://badge.fury.io/py/reflex)
54
61
  ![versions](https://img.shields.io/pypi/pyversions/reflex.svg)
55
62
  [![Documentation](https://img.shields.io/badge/Documentation%20-Introduction%20-%20%23007ec6)](https://reflex.dev/docs/getting-started/introduction)
56
63
  [![Discord](https://img.shields.io/discord/1029853095527727165?color=%237289da&label=Discord)](https://discord.gg/T5WSbC2YtQ)
64
+
57
65
  </div>
58
66
 
59
67
  ---
@@ -67,9 +75,10 @@ Description-Content-Type: text/markdown
67
75
  Reflex is a library to build full-stack web apps in pure Python.
68
76
 
69
77
  Key features:
70
- * **Pure Python** - Write your app's frontend and backend all in Python, no need to learn Javascript.
71
- * **Full Flexibility** - Reflex is easy to get started with, but can also scale to complex apps.
72
- * **Deploy Instantly** - After building, deploy your app with a [single command](https://reflex.dev/docs/hosting/deploy-quick-start/) or host it on your own server.
78
+
79
+ - **Pure Python** - Write your app's frontend and backend all in Python, no need to learn Javascript.
80
+ - **Full Flexibility** - Reflex is easy to get started with, but can also scale to complex apps.
81
+ - **Deploy Instantly** - After building, deploy your app with a [single command](https://reflex.dev/docs/hosting/deploy-quick-start/) or host it on your own server.
73
82
 
74
83
  See our [architecture page](https://reflex.dev/blog/2024-03-21-reflex-architecture/#the-reflex-architecture) to learn how Reflex works under the hood.
75
84
 
@@ -93,7 +102,7 @@ cd my_app_name
93
102
  reflex init
94
103
  ```
95
104
 
96
- This command initializes a template app in your new directory.
105
+ This command initializes a template app in your new directory.
97
106
 
98
107
  You can run this app in development mode:
99
108
 
@@ -105,7 +114,6 @@ You should see your app running at http://localhost:3000.
105
114
 
106
115
  Now you can modify the source code in `my_app_name/my_app_name.py`. Reflex has fast refreshes so you can see your changes instantly when you save your code.
107
116
 
108
-
109
117
  ## 🫧 Example App
110
118
 
111
119
  Let's go over an example: creating an image generation UI around [DALL·E](https://platform.openai.com/docs/guides/images/image-generation?context=node). For simplicity, we just call the [OpenAI API](https://platform.openai.com/docs/api-reference/authentication), but you could replace this with an ML model run locally.
@@ -120,8 +128,6 @@ Let's go over an example: creating an image generation UI around [DALL·E](https
120
128
 
121
129
  Here is the complete code to create this. This is all done in one Python file!
122
130
 
123
-
124
-
125
131
  ```python
126
132
  import reflex as rx
127
133
  import openai
@@ -161,7 +167,7 @@ def index():
161
167
  width="25em",
162
168
  ),
163
169
  rx.button(
164
- "Generate Image",
170
+ "Generate Image",
165
171
  on_click=State.get_image,
166
172
  width="25em",
167
173
  loading=State.processing
@@ -181,17 +187,12 @@ app = rx.App()
181
187
  app.add_page(index, title="Reflex:DALL-E")
182
188
  ```
183
189
 
184
-
185
-
186
-
187
-
188
190
  ## Let's break this down.
189
191
 
190
192
  <div align="center">
191
193
  <img src="docs/images/dalle_colored_code_example.png" alt="Explaining the differences between backend and frontend parts of the DALL-E app." width="900" />
192
194
  </div>
193
195
 
194
-
195
196
  ### **Reflex UI**
196
197
 
197
198
  Let's start with the UI.
@@ -269,11 +270,10 @@ You can create a multi-page app by adding more pages.
269
270
 
270
271
  <div align="center">
271
272
 
272
- 📑 [Docs](https://reflex.dev/docs/getting-started/introduction) &nbsp; | &nbsp; 🗞️ [Blog](https://reflex.dev/blog) &nbsp; | &nbsp; 📱 [Component Library](https://reflex.dev/docs/library) &nbsp; | &nbsp; 🖼️ [Templates](https://reflex.dev/templates/) &nbsp; | &nbsp; 🛸 [Deployment](https://reflex.dev/docs/hosting/deploy-quick-start) &nbsp;
273
+ 📑 [Docs](https://reflex.dev/docs/getting-started/introduction) &nbsp; | &nbsp; 🗞️ [Blog](https://reflex.dev/blog) &nbsp; | &nbsp; 📱 [Component Library](https://reflex.dev/docs/library) &nbsp; | &nbsp; 🖼️ [Templates](https://reflex.dev/templates/) &nbsp; | &nbsp; 🛸 [Deployment](https://reflex.dev/docs/hosting/deploy-quick-start) &nbsp;
273
274
 
274
275
  </div>
275
276
 
276
-
277
277
  ## ✅ Status
278
278
 
279
279
  Reflex launched in December 2022 with the name Pynecone.
@@ -286,14 +286,14 @@ Reflex has new releases and features coming every other week! Make sure to :star
286
286
 
287
287
  We welcome contributions of any size! Below are some good ways to get started in the Reflex community.
288
288
 
289
- - **Join Our Discord**: Our [Discord](https://discord.gg/T5WSbC2YtQ) is the best place to get help on your Reflex project and to discuss how you can contribute.
290
- - **GitHub Discussions**: A great way to talk about features you want added or things that are confusing/need clarification.
291
- - **GitHub Issues**: [Issues](https://github.com/reflex-dev/reflex/issues) are an excellent way to report bugs. Additionally, you can try and solve an existing issue and submit a PR.
289
+ - **Join Our Discord**: Our [Discord](https://discord.gg/T5WSbC2YtQ) is the best place to get help on your Reflex project and to discuss how you can contribute.
290
+ - **GitHub Discussions**: A great way to talk about features you want added or things that are confusing/need clarification.
291
+ - **GitHub Issues**: [Issues](https://github.com/reflex-dev/reflex/issues) are an excellent way to report bugs. Additionally, you can try and solve an existing issue and submit a PR.
292
292
 
293
293
  We are actively looking for contributors, no matter your skill level or experience. To contribute check out [CONTRIBUTING.md](https://github.com/reflex-dev/reflex/blob/main/CONTRIBUTING.md)
294
294
 
295
-
296
295
  ## All Thanks To Our Contributors:
296
+
297
297
  <a href="https://github.com/reflex-dev/reflex/graphs/contributors">
298
298
  <img src="https://contrib.rocks/image?repo=reflex-dev/reflex" />
299
299
  </a>
@@ -1,4 +1,3 @@
1
-
2
1
  <div align="center">
3
2
  <img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/reflex_dark.svg#gh-light-mode-only" alt="Reflex Logo" width="300px">
4
3
  <img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/reflex_light.svg#gh-dark-mode-only" alt="Reflex Logo" width="300px">
@@ -6,10 +5,12 @@
6
5
  <hr>
7
6
 
8
7
  ### **✨ Performant, customizable web apps in pure Python. Deploy in seconds. ✨**
8
+
9
9
  [![PyPI version](https://badge.fury.io/py/reflex.svg)](https://badge.fury.io/py/reflex)
10
10
  ![versions](https://img.shields.io/pypi/pyversions/reflex.svg)
11
11
  [![Documentation](https://img.shields.io/badge/Documentation%20-Introduction%20-%20%23007ec6)](https://reflex.dev/docs/getting-started/introduction)
12
12
  [![Discord](https://img.shields.io/discord/1029853095527727165?color=%237289da&label=Discord)](https://discord.gg/T5WSbC2YtQ)
13
+
13
14
  </div>
14
15
 
15
16
  ---
@@ -23,9 +24,10 @@
23
24
  Reflex is a library to build full-stack web apps in pure Python.
24
25
 
25
26
  Key features:
26
- * **Pure Python** - Write your app's frontend and backend all in Python, no need to learn Javascript.
27
- * **Full Flexibility** - Reflex is easy to get started with, but can also scale to complex apps.
28
- * **Deploy Instantly** - After building, deploy your app with a [single command](https://reflex.dev/docs/hosting/deploy-quick-start/) or host it on your own server.
27
+
28
+ - **Pure Python** - Write your app's frontend and backend all in Python, no need to learn Javascript.
29
+ - **Full Flexibility** - Reflex is easy to get started with, but can also scale to complex apps.
30
+ - **Deploy Instantly** - After building, deploy your app with a [single command](https://reflex.dev/docs/hosting/deploy-quick-start/) or host it on your own server.
29
31
 
30
32
  See our [architecture page](https://reflex.dev/blog/2024-03-21-reflex-architecture/#the-reflex-architecture) to learn how Reflex works under the hood.
31
33
 
@@ -49,7 +51,7 @@ cd my_app_name
49
51
  reflex init
50
52
  ```
51
53
 
52
- This command initializes a template app in your new directory.
54
+ This command initializes a template app in your new directory.
53
55
 
54
56
  You can run this app in development mode:
55
57
 
@@ -61,7 +63,6 @@ You should see your app running at http://localhost:3000.
61
63
 
62
64
  Now you can modify the source code in `my_app_name/my_app_name.py`. Reflex has fast refreshes so you can see your changes instantly when you save your code.
63
65
 
64
-
65
66
  ## 🫧 Example App
66
67
 
67
68
  Let's go over an example: creating an image generation UI around [DALL·E](https://platform.openai.com/docs/guides/images/image-generation?context=node). For simplicity, we just call the [OpenAI API](https://platform.openai.com/docs/api-reference/authentication), but you could replace this with an ML model run locally.
@@ -76,8 +77,6 @@ Let's go over an example: creating an image generation UI around [DALL·E](https
76
77
 
77
78
  Here is the complete code to create this. This is all done in one Python file!
78
79
 
79
-
80
-
81
80
  ```python
82
81
  import reflex as rx
83
82
  import openai
@@ -117,7 +116,7 @@ def index():
117
116
  width="25em",
118
117
  ),
119
118
  rx.button(
120
- "Generate Image",
119
+ "Generate Image",
121
120
  on_click=State.get_image,
122
121
  width="25em",
123
122
  loading=State.processing
@@ -137,17 +136,12 @@ app = rx.App()
137
136
  app.add_page(index, title="Reflex:DALL-E")
138
137
  ```
139
138
 
140
-
141
-
142
-
143
-
144
139
  ## Let's break this down.
145
140
 
146
141
  <div align="center">
147
142
  <img src="docs/images/dalle_colored_code_example.png" alt="Explaining the differences between backend and frontend parts of the DALL-E app." width="900" />
148
143
  </div>
149
144
 
150
-
151
145
  ### **Reflex UI**
152
146
 
153
147
  Let's start with the UI.
@@ -225,11 +219,10 @@ You can create a multi-page app by adding more pages.
225
219
 
226
220
  <div align="center">
227
221
 
228
- 📑 [Docs](https://reflex.dev/docs/getting-started/introduction) &nbsp; | &nbsp; 🗞️ [Blog](https://reflex.dev/blog) &nbsp; | &nbsp; 📱 [Component Library](https://reflex.dev/docs/library) &nbsp; | &nbsp; 🖼️ [Templates](https://reflex.dev/templates/) &nbsp; | &nbsp; 🛸 [Deployment](https://reflex.dev/docs/hosting/deploy-quick-start) &nbsp;
222
+ 📑 [Docs](https://reflex.dev/docs/getting-started/introduction) &nbsp; | &nbsp; 🗞️ [Blog](https://reflex.dev/blog) &nbsp; | &nbsp; 📱 [Component Library](https://reflex.dev/docs/library) &nbsp; | &nbsp; 🖼️ [Templates](https://reflex.dev/templates/) &nbsp; | &nbsp; 🛸 [Deployment](https://reflex.dev/docs/hosting/deploy-quick-start) &nbsp;
229
223
 
230
224
  </div>
231
225
 
232
-
233
226
  ## ✅ Status
234
227
 
235
228
  Reflex launched in December 2022 with the name Pynecone.
@@ -242,14 +235,14 @@ Reflex has new releases and features coming every other week! Make sure to :star
242
235
 
243
236
  We welcome contributions of any size! Below are some good ways to get started in the Reflex community.
244
237
 
245
- - **Join Our Discord**: Our [Discord](https://discord.gg/T5WSbC2YtQ) is the best place to get help on your Reflex project and to discuss how you can contribute.
246
- - **GitHub Discussions**: A great way to talk about features you want added or things that are confusing/need clarification.
247
- - **GitHub Issues**: [Issues](https://github.com/reflex-dev/reflex/issues) are an excellent way to report bugs. Additionally, you can try and solve an existing issue and submit a PR.
238
+ - **Join Our Discord**: Our [Discord](https://discord.gg/T5WSbC2YtQ) is the best place to get help on your Reflex project and to discuss how you can contribute.
239
+ - **GitHub Discussions**: A great way to talk about features you want added or things that are confusing/need clarification.
240
+ - **GitHub Issues**: [Issues](https://github.com/reflex-dev/reflex/issues) are an excellent way to report bugs. Additionally, you can try and solve an existing issue and submit a PR.
248
241
 
249
242
  We are actively looking for contributors, no matter your skill level or experience. To contribute check out [CONTRIBUTING.md](https://github.com/reflex-dev/reflex/blob/main/CONTRIBUTING.md)
250
243
 
251
-
252
244
  ## All Thanks To Our Contributors:
245
+
253
246
  <a href="https://github.com/reflex-dev/reflex/graphs/contributors">
254
247
  <img src="https://contrib.rocks/image?repo=reflex-dev/reflex" />
255
248
  </a>
@@ -0,0 +1,164 @@
1
+ [project]
2
+ name = "reflex"
3
+ version = "0.7.3a2"
4
+ description = "Web apps in pure Python."
5
+ license = { text = "Apache-2.0" }
6
+ authors = [
7
+ { name = "Nikhil Rao", email = "nikhil@reflex.dev" },
8
+ { name = "Alek Petuskey", email = "alek@reflex.dev" },
9
+ { name = "Masen Furer", email = "masen@reflex.dev" },
10
+ { name = "Elijah Ahianyo", email = "elijahahianyo@gmail.com" },
11
+ { name = "Thomas Brandeho", email = "thomas@reflex.dev" },
12
+ { name = "Khaleel Al-Adhami", email = "khaleel@reflex.dev" },
13
+ ]
14
+ maintainers = [
15
+ { name = "Masen Furer", email = "masen@reflex.dev" },
16
+ { name = "Thomas Brandeho", email = "thomas@reflex.dev" },
17
+ { name = "Khaleel Al-Adhami", email = "khaleel@reflex.dev" },
18
+ ]
19
+ readme = "README.md"
20
+ keywords = ["web", "framework"]
21
+ requires-python = ">=3.10,<4.0"
22
+ dependencies = [
23
+ "alembic >=1.11.1,<2.0",
24
+ "build >=1.0.3,<2.0",
25
+ "charset-normalizer >=3.3.2,<4.0",
26
+ "distro >=1.8.0,<2.0; platform_system == 'Linux'",
27
+ "fastapi >=0.96.0,!=0.111.0,!=0.111.1",
28
+ "gunicorn >=20.1.0,<24.0",
29
+ "httpx >=0.25.1,<1.0",
30
+ "jinja2 >=3.1.2,<4.0",
31
+ "lazy_loader >=0.4",
32
+ "packaging >=23.1,<25.0",
33
+ "platformdirs >=3.10.0,<5.0",
34
+ "psutil >=5.9.4,<8.0",
35
+ "pydantic >=1.10.21,<3.0",
36
+ "python-engineio !=4.6.0",
37
+ "python-multipart >=0.0.5,<0.1",
38
+ "python-socketio >=5.7.0,<6.0",
39
+ "redis >=4.3.5,<6.0",
40
+ "reflex-hosting-cli >=0.1.29",
41
+ "rich >=13.0.0,<14.0",
42
+ "setuptools >=75.0",
43
+ "starlette-admin >=0.11.0,<1.0",
44
+ "sqlmodel >=0.0.14,<0.1",
45
+ "tomlkit >=0.12.4,<1.0",
46
+ "twine >=4.0.0,<7.0",
47
+ "typer >=0.15.1,<1.0",
48
+ "typing_extensions >=4.6.0",
49
+ "uvicorn >=0.20.0",
50
+ "wheel >=0.42.0,<1.0",
51
+ "wrapt >=1.17.0,<2.0",
52
+ ]
53
+ classifiers = [
54
+ "Development Status :: 4 - Beta",
55
+ "License :: OSI Approved :: Apache Software License",
56
+ "Programming Language :: Python :: 3",
57
+ "Programming Language :: Python :: 3.10",
58
+ "Programming Language :: Python :: 3.11",
59
+ "Programming Language :: Python :: 3.12",
60
+ "Programming Language :: Python :: 3.13",
61
+ ]
62
+
63
+
64
+ [project.urls]
65
+ homepage = "https://reflex.dev"
66
+ repository = "https://github.com/reflex-dev/reflex"
67
+ documentation = "https://reflex.dev/docs/getting-started/introduction"
68
+
69
+ [project.scripts]
70
+ reflex = "reflex.reflex:cli"
71
+
72
+ [build-system]
73
+ requires = ["hatchling"]
74
+ build-backend = "hatchling.build"
75
+
76
+ [tool.hatch.build]
77
+ include = ["reflex"]
78
+
79
+ [tool.pyright]
80
+ reportIncompatibleMethodOverride = false
81
+
82
+ [tool.ruff]
83
+ target-version = "py310"
84
+ output-format = "concise"
85
+ lint.isort.split-on-trailing-comma = false
86
+ lint.select = [
87
+ "ANN001",
88
+ "B",
89
+ "C4",
90
+ "D",
91
+ "E",
92
+ "ERA",
93
+ "F",
94
+ "FURB",
95
+ "I",
96
+ "N",
97
+ "PERF",
98
+ "PGH",
99
+ "PTH",
100
+ "RUF",
101
+ "SIM",
102
+ "T",
103
+ "TRY",
104
+ "W",
105
+ ]
106
+ lint.ignore = [
107
+ "B008",
108
+ "D205",
109
+ "E501",
110
+ "F403",
111
+ "SIM115",
112
+ "RUF006",
113
+ "RUF008",
114
+ "RUF012",
115
+ "TRY0",
116
+ ]
117
+ lint.pydocstyle.convention = "google"
118
+
119
+ [tool.ruff.lint.per-file-ignores]
120
+ "__init__.py" = ["F401"]
121
+ "tests/*.py" = ["ANN001", "D100", "D103", "D104", "B018", "PERF", "T", "N"]
122
+ "benchmarks/*.py" = ["ANN001", "D100", "D103", "D104", "B018", "PERF", "T", "N"]
123
+ "reflex/.templates/*.py" = ["D100", "D103", "D104"]
124
+ "*.pyi" = ["D301", "D415", "D417", "D418", "E742", "N", "PGH"]
125
+ "pyi_generator.py" = ["N802"]
126
+ "reflex/constants/*.py" = ["N"]
127
+ "*/blank.py" = ["I001"]
128
+
129
+ [tool.pytest.ini_options]
130
+ filterwarnings = "ignore:fields may not start with an underscore:RuntimeWarning"
131
+ asyncio_default_fixture_loop_scope = "function"
132
+ asyncio_mode = "auto"
133
+
134
+ [tool.codespell]
135
+ skip = "docs/*,*.html,examples/*, *.pyi, poetry.lock, uv.lock"
136
+ ignore-words-list = "te, TreeE"
137
+
138
+ [dependency-groups]
139
+ dev = [
140
+ "asynctest >=0.13.0,<1.0",
141
+ "darglint >=1.8.1,<2.0",
142
+ "dill >=0.3.8",
143
+ "granian[reload] >= 2.0.0",
144
+ "numpy >=2.2.3,<3.0",
145
+ "pandas >=2.1.1,<3.0",
146
+ "pillow >=10.0.0,<12.0",
147
+ "playwright >=1.46.0",
148
+ "plotly >=5.13.0,<6.0",
149
+ "pre-commit >=4.1.0,<5.0",
150
+ "psycopg[binary] >=3.2.6,<4.0",
151
+ "pyright >=1.1.396,<1.2",
152
+ "pytest >=7.1.2,<9.0",
153
+ "pytest-asyncio >=0.24.0",
154
+ "pytest-benchmark >=4.0.0,<6.0",
155
+ "pytest-codspeed >=3.1.2,<4.0.0",
156
+ "pytest-cov >=4.0.0,<7.0",
157
+ "pytest-mock >=3.10.0,<4.0",
158
+ "pytest-playwright >=0.5.1",
159
+ "pytest-retry >=1.7.0,<2.0",
160
+ "pytest-split >=0.10.0,<1.0",
161
+ "ruff ==0.9.10",
162
+ "selenium >=4.11.0,<5.0",
163
+ "toml >=0.10.2,<1.0",
164
+ ]
@@ -1,11 +1,14 @@
1
1
  {% extends "web/pages/base_page.js.jinja2" %}
2
2
  {% from "web/pages/macros.js.jinja2" import renderHooks %}
3
- {% block export %}
4
- {% for component in components %}
5
3
 
6
- {% for custom_code in component.custom_code %}
4
+ {% block declaration %}
5
+ {% for custom_code in custom_codes %}
7
6
  {{custom_code}}
8
7
  {% endfor %}
8
+ {% endblock %}
9
+
10
+ {% block export %}
11
+ {% for component in components %}
9
12
 
10
13
  export const {{component.name}} = memo(({ {{-component.props|join(", ")-}} }) => {
11
14
  {{ renderHooks(component.hooks) }}
@@ -11,7 +11,7 @@ export default function RadixThemesColorModeProvider({ children }) {
11
11
  const { theme, resolvedTheme, setTheme } = useTheme();
12
12
  const [rawColorMode, setRawColorMode] = useState(defaultColorMode);
13
13
  const [resolvedColorMode, setResolvedColorMode] = useState(
14
- defaultColorMode === "dark" ? "dark" : "light"
14
+ defaultColorMode === "dark" ? "dark" : "light",
15
15
  );
16
16
 
17
17
  useEffect(() => {
@@ -0,0 +1,39 @@
1
+ import { useEffect, useState } from "react";
2
+ import { codeToHtml } from "shiki";
3
+
4
+ /**
5
+ * Code component that uses Shiki to convert code to HTML and render it.
6
+ *
7
+ * @param code - The code to be highlighted.
8
+ * @param theme - The theme to be used for highlighting.
9
+ * @param language - The language of the code.
10
+ * @param transformers - The transformers to be applied to the code.
11
+ * @param decorations - The decorations to be applied to the code.
12
+ * @param divProps - Additional properties to be passed to the div element.
13
+ * @returns The rendered code block.
14
+ */
15
+ export function Code({
16
+ code,
17
+ theme,
18
+ language,
19
+ transformers,
20
+ decorations,
21
+ ...divProps
22
+ }) {
23
+ const [codeResult, setCodeResult] = useState("");
24
+ useEffect(() => {
25
+ async function fetchCode() {
26
+ const result = await codeToHtml(code, {
27
+ lang: language,
28
+ theme,
29
+ transformers,
30
+ decorations,
31
+ });
32
+ setCodeResult(result);
33
+ }
34
+ fetchCode();
35
+ }, [code, language, theme, transformers, decorations]);
36
+ return (
37
+ <div dangerouslySetInnerHTML={{ __html: codeResult }} {...divProps}></div>
38
+ );
39
+ }
@@ -4,4 +4,4 @@ module.exports = {
4
4
  tailwindcss: {},
5
5
  autoprefixer: {},
6
6
  },
7
- }
7
+ };
@@ -10,32 +10,34 @@ import { useRouter } from "next/router";
10
10
  * @returns {boolean} routeNotFound - true if the current route is an actual 404
11
11
  */
12
12
  export const useClientSideRouting = () => {
13
- const [routeNotFound, setRouteNotFound] = useState(false)
14
- const didRedirect = useRef(false)
15
- const router = useRouter()
13
+ const [routeNotFound, setRouteNotFound] = useState(false);
14
+ const didRedirect = useRef(false);
15
+ const router = useRouter();
16
16
  useEffect(() => {
17
17
  if (
18
18
  router.isReady &&
19
- !didRedirect.current // have not tried redirecting yet
19
+ !didRedirect.current // have not tried redirecting yet
20
20
  ) {
21
- didRedirect.current = true // never redirect twice to avoid "Hard Navigate" error
21
+ didRedirect.current = true; // never redirect twice to avoid "Hard Navigate" error
22
22
  // attempt to redirect to the route in the browser address bar once
23
- router.replace({
23
+ router
24
+ .replace({
24
25
  pathname: window.location.pathname,
25
26
  query: window.location.search.slice(1),
26
- }).then(()=>{
27
+ })
28
+ .then(() => {
27
29
  // Check if the current route is /404
28
- if (router.pathname === '/404') {
29
- setRouteNotFound(true); // Mark as an actual 404
30
- }
31
- })
32
- .catch((e) => {
33
- setRouteNotFound(true) // navigation failed, so this is a real 404
34
- })
30
+ if (router.pathname === "/404") {
31
+ setRouteNotFound(true); // Mark as an actual 404
32
+ }
33
+ })
34
+ .catch((e) => {
35
+ setRouteNotFound(true); // navigation failed, so this is a real 404
36
+ });
35
37
  }
36
38
  }, [router.isReady]);
37
39
 
38
40
  // Return the reactive bool, to avoid flashing 404 page until we know for sure
39
41
  // the route is not found.
40
- return routeNotFound
41
- }
42
+ return routeNotFound;
43
+ };
@@ -48,7 +48,7 @@ export function formatCell(value, column) {
48
48
  };
49
49
  default:
50
50
  console.log(
51
- "Warning: column.type is undefined for column.title=" + column.title
51
+ "Warning: column.type is undefined for column.title=" + column.title,
52
52
  );
53
53
  return {
54
54
  kind: GridCellKind.Text,