reflex 0.7.14a6__tar.gz → 0.8.0a2__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 (428) hide show
  1. {reflex-0.7.14a6 → reflex-0.8.0a2}/PKG-INFO +12 -5
  2. {reflex-0.7.14a6 → reflex-0.8.0a2}/README.md +11 -4
  3. {reflex-0.7.14a6 → reflex-0.8.0a2}/pyproject.toml +3 -3
  4. reflex-0.8.0a2/reflex/.templates/jinja/app/rxconfig.py.jinja2 +9 -0
  5. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/package.json.jinja2 +1 -1
  6. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +16 -10
  7. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +1 -1
  8. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -1
  9. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +4 -0
  10. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/utils/context.js.jinja2 +25 -8
  11. reflex-0.8.0a2/reflex/.templates/web/app/entry.client.js +8 -0
  12. reflex-0.8.0a2/reflex/.templates/web/app/routes.js +10 -0
  13. reflex-0.8.0a2/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +35 -0
  14. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/postcss.config.js +1 -1
  15. reflex-0.8.0a2/reflex/.templates/web/react-router.config.js +6 -0
  16. reflex-0.8.0a2/reflex/.templates/web/utils/client_side_routing.js +45 -0
  17. reflex-0.8.0a2/reflex/.templates/web/utils/react-theme.js +92 -0
  18. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/utils/state.js +160 -67
  19. reflex-0.8.0a2/reflex/.templates/web/vite.config.js +32 -0
  20. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/__init__.py +1 -6
  21. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/__init__.pyi +0 -4
  22. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/app.py +53 -116
  23. reflex-0.8.0a2/reflex/base.py +47 -0
  24. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/compiler/compiler.py +41 -8
  25. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/compiler/templates.py +3 -3
  26. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/compiler/utils.py +73 -33
  27. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/__init__.py +0 -2
  28. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/__init__.pyi +0 -3
  29. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/__init__.py +1 -5
  30. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/__init__.pyi +4 -6
  31. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/app_wrap.pyi +5 -4
  32. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/body.pyi +5 -4
  33. reflex-0.8.0a2/reflex/components/base/document.py +39 -0
  34. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/document.pyi +83 -27
  35. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/error_boundary.pyi +5 -4
  36. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/fragment.pyi +5 -4
  37. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/link.pyi +9 -7
  38. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/meta.pyi +17 -13
  39. reflex-0.8.0a2/reflex/components/base/script.py +78 -0
  40. reflex-0.8.0a2/reflex/components/base/script.pyi +305 -0
  41. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/strict_mode.pyi +5 -4
  42. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/component.py +146 -217
  43. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/__init__.py +1 -0
  44. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/__init__.pyi +1 -0
  45. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/auto_scroll.pyi +5 -4
  46. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/banner.pyi +25 -19
  47. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/client_side_routing.py +7 -6
  48. reflex-0.8.0a2/reflex/components/core/client_side_routing.pyi +71 -0
  49. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/clipboard.pyi +5 -4
  50. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/debounce.py +1 -0
  51. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/debounce.pyi +5 -4
  52. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/foreach.py +3 -2
  53. reflex-0.8.0a2/reflex/components/core/helmet.py +14 -0
  54. reflex-0.7.14a6/reflex/components/next/base.pyi → reflex-0.8.0a2/reflex/components/core/helmet.pyi +10 -7
  55. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/html.pyi +5 -4
  56. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/sticky.pyi +17 -13
  57. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/upload.py +2 -1
  58. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/upload.pyi +21 -16
  59. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/code.py +2 -72
  60. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/code.pyi +9 -10
  61. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/dataeditor.pyi +11 -6
  62. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/shiki_code_block.pyi +13 -10
  63. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/dynamic.py +5 -5
  64. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/element.pyi +5 -4
  65. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/base.pyi +5 -4
  66. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/forms.pyi +69 -52
  67. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/inline.pyi +113 -85
  68. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/media.pyi +105 -79
  69. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/metadata.pyi +25 -19
  70. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/other.pyi +29 -22
  71. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/scripts.pyi +13 -10
  72. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/sectioning.pyi +61 -46
  73. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/tables.pyi +41 -31
  74. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/typography.pyi +61 -46
  75. reflex-0.8.0a2/reflex/components/field.py +175 -0
  76. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/gridjs/datatable.py +2 -2
  77. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/gridjs/datatable.pyi +11 -9
  78. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/lucide/icon.py +6 -2
  79. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/lucide/icon.pyi +15 -10
  80. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/markdown/markdown.pyi +5 -4
  81. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/moment/moment.pyi +5 -4
  82. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/plotly/plotly.pyi +19 -10
  83. reflex-0.8.0a2/reflex/components/props.py +426 -0
  84. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/accordion.py +8 -1
  85. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/accordion.pyi +29 -22
  86. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/base.pyi +9 -7
  87. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/drawer.pyi +45 -34
  88. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/form.pyi +41 -31
  89. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/progress.pyi +21 -16
  90. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/slider.pyi +21 -16
  91. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/base.py +3 -3
  92. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/base.pyi +33 -25
  93. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/color_mode.pyi +13 -10
  94. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/alert_dialog.pyi +29 -22
  95. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/aspect_ratio.pyi +5 -4
  96. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/avatar.pyi +5 -4
  97. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/badge.pyi +5 -4
  98. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/button.pyi +5 -4
  99. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/callout.pyi +21 -16
  100. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/card.pyi +5 -4
  101. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox.pyi +13 -10
  102. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox_cards.pyi +9 -7
  103. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox_group.pyi +9 -7
  104. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/context_menu.pyi +53 -40
  105. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/data_list.pyi +17 -13
  106. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/dialog.pyi +29 -22
  107. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/dropdown_menu.pyi +33 -25
  108. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/hover_card.pyi +17 -13
  109. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/icon_button.pyi +5 -4
  110. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/inset.pyi +5 -4
  111. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/popover.pyi +17 -13
  112. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/progress.pyi +5 -4
  113. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio.pyi +5 -4
  114. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio_cards.pyi +9 -7
  115. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio_group.pyi +17 -13
  116. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/scroll_area.pyi +5 -4
  117. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/segmented_control.pyi +9 -7
  118. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/select.pyi +37 -28
  119. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/separator.pyi +5 -4
  120. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/skeleton.pyi +5 -4
  121. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/slider.pyi +5 -4
  122. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/spinner.pyi +5 -4
  123. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/switch.pyi +5 -4
  124. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/table.pyi +29 -22
  125. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/tabs.pyi +21 -16
  126. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/text_area.pyi +5 -4
  127. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/text_field.pyi +13 -10
  128. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/tooltip.pyi +5 -4
  129. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/base.pyi +5 -4
  130. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/box.pyi +5 -4
  131. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/center.pyi +5 -4
  132. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/container.pyi +5 -4
  133. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/flex.pyi +5 -4
  134. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/grid.pyi +5 -4
  135. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/list.pyi +21 -16
  136. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/section.pyi +5 -4
  137. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/spacer.pyi +5 -4
  138. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/stack.pyi +13 -10
  139. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/blockquote.pyi +5 -4
  140. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/code.pyi +5 -4
  141. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/heading.pyi +5 -4
  142. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/link.py +46 -11
  143. reflex-0.8.0a2/reflex/components/radix/themes/typography/link.pyi +713 -0
  144. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/text.pyi +29 -22
  145. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/react_player/audio.pyi +5 -4
  146. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/react_player/react_player.pyi +5 -4
  147. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/react_player/video.pyi +5 -4
  148. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/cartesian.py +2 -1
  149. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/cartesian.pyi +65 -46
  150. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/charts.py +4 -2
  151. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/charts.pyi +36 -24
  152. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/general.pyi +24 -18
  153. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/polar.py +8 -4
  154. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/polar.pyi +16 -10
  155. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/recharts.pyi +9 -7
  156. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/sonner/toast.py +2 -2
  157. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/sonner/toast.pyi +10 -8
  158. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/config.py +3 -77
  159. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/__init__.py +2 -2
  160. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/base.py +28 -11
  161. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/compiler.py +5 -3
  162. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/event.py +1 -0
  163. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/installer.py +22 -16
  164. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/route.py +19 -7
  165. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/state.py +2 -0
  166. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/custom_components/custom_components.py +0 -14
  167. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/environment.py +1 -1
  168. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/event.py +178 -81
  169. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/experimental/__init__.py +0 -30
  170. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/istate/proxy.py +5 -3
  171. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/page.py +0 -27
  172. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/plugins/__init__.py +3 -2
  173. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/plugins/base.py +5 -1
  174. reflex-0.8.0a2/reflex/plugins/shared_tailwind.py +158 -0
  175. reflex-0.8.0a2/reflex/plugins/sitemap.py +206 -0
  176. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/plugins/tailwind_v3.py +13 -106
  177. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/plugins/tailwind_v4.py +15 -108
  178. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/reflex.py +1 -0
  179. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/route.py +15 -21
  180. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/state.py +134 -140
  181. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/testing.py +58 -10
  182. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/build.py +38 -82
  183. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/exec.py +59 -161
  184. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/export.py +2 -2
  185. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/imports.py +0 -4
  186. reflex-0.8.0a2/reflex/utils/misc.py +53 -0
  187. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/prerequisites.py +65 -62
  188. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/processes.py +8 -7
  189. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/pyi_generator.py +21 -9
  190. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/serializers.py +14 -1
  191. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/types.py +196 -61
  192. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/__init__.py +2 -0
  193. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/base.py +367 -134
  194. reflex-0.7.14a6/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -6
  195. reflex-0.7.14a6/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -60
  196. reflex-0.7.14a6/reflex/.templates/web/next.config.js +0 -7
  197. reflex-0.7.14a6/reflex/.templates/web/utils/client_side_routing.js +0 -43
  198. reflex-0.7.14a6/reflex/base.py +0 -133
  199. reflex-0.7.14a6/reflex/components/base/document.py +0 -35
  200. reflex-0.7.14a6/reflex/components/base/head.py +0 -20
  201. reflex-0.7.14a6/reflex/components/base/head.pyi +0 -116
  202. reflex-0.7.14a6/reflex/components/base/script.py +0 -76
  203. reflex-0.7.14a6/reflex/components/base/script.pyi +0 -90
  204. reflex-0.7.14a6/reflex/components/core/client_side_routing.pyi +0 -121
  205. reflex-0.7.14a6/reflex/components/next/__init__.py +0 -10
  206. reflex-0.7.14a6/reflex/components/next/base.py +0 -7
  207. reflex-0.7.14a6/reflex/components/next/image.py +0 -117
  208. reflex-0.7.14a6/reflex/components/next/image.pyi +0 -94
  209. reflex-0.7.14a6/reflex/components/next/link.py +0 -20
  210. reflex-0.7.14a6/reflex/components/next/link.pyi +0 -67
  211. reflex-0.7.14a6/reflex/components/next/video.py +0 -38
  212. reflex-0.7.14a6/reflex/components/next/video.pyi +0 -68
  213. reflex-0.7.14a6/reflex/components/props.py +0 -77
  214. reflex-0.7.14a6/reflex/components/radix/themes/typography/link.pyi +0 -408
  215. reflex-0.7.14a6/reflex/components/suneditor/__init__.py +0 -5
  216. reflex-0.7.14a6/reflex/components/suneditor/editor.py +0 -269
  217. reflex-0.7.14a6/reflex/components/suneditor/editor.pyi +0 -199
  218. reflex-0.7.14a6/reflex/experimental/layout.py +0 -254
  219. reflex-0.7.14a6/reflex/experimental/layout.pyi +0 -814
  220. reflex-0.7.14a6/reflex/utils/misc.py +0 -25
  221. {reflex-0.7.14a6 → reflex-0.8.0a2}/.gitignore +0 -0
  222. {reflex-0.7.14a6 → reflex-0.8.0a2}/LICENSE +0 -0
  223. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  224. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  225. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/apps/blank/code/blank.py +0 -0
  226. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
  227. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
  228. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
  229. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
  230. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
  231. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  232. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
  233. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  234. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -0
  235. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  236. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
  237. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  238. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  239. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/.gitignore +0 -0
  240. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/components/shiki/code.js +0 -0
  241. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/jsconfig.json +0 -0
  242. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  243. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  244. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/utils/helpers/paste.js +0 -0
  245. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/utils/helpers/range.js +0 -0
  246. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  247. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/__main__.py +0 -0
  248. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/admin.py +0 -0
  249. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/app_mixins/__init__.py +0 -0
  250. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/app_mixins/lifespan.py +0 -0
  251. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/app_mixins/middleware.py +0 -0
  252. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/app_mixins/mixin.py +0 -0
  253. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/assets.py +0 -0
  254. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/compiler/__init__.py +0 -0
  255. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/app_wrap.py +0 -0
  256. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/bare.py +0 -0
  257. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/body.py +0 -0
  258. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/error_boundary.py +0 -0
  259. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/fragment.py +0 -0
  260. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/link.py +0 -0
  261. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/meta.py +0 -0
  262. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/base/strict_mode.py +0 -0
  263. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/auto_scroll.py +0 -0
  264. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/banner.py +0 -0
  265. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/breakpoints.py +0 -0
  266. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/clipboard.py +0 -0
  267. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/colors.py +0 -0
  268. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/cond.py +0 -0
  269. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/html.py +0 -0
  270. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/layout/__init__.py +0 -0
  271. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/match.py +0 -0
  272. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/responsive.py +0 -0
  273. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/core/sticky.py +0 -0
  274. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/__init__.py +0 -0
  275. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/__init__.pyi +0 -0
  276. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/dataeditor.py +0 -0
  277. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/logo.py +0 -0
  278. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/datadisplay/shiki_code_block.py +0 -0
  279. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/__init__.py +0 -0
  280. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/__init__.pyi +0 -0
  281. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/constants/__init__.py +0 -0
  282. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/constants/html.py +0 -0
  283. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/constants/react.py +0 -0
  284. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/constants/reflex.py +0 -0
  285. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/element.py +0 -0
  286. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/__init__.py +0 -0
  287. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/__init__.pyi +0 -0
  288. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/base.py +0 -0
  289. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/forms.py +0 -0
  290. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/inline.py +0 -0
  291. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/media.py +0 -0
  292. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/metadata.py +0 -0
  293. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/other.py +0 -0
  294. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/scripts.py +0 -0
  295. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/sectioning.py +0 -0
  296. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/tables.py +0 -0
  297. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/el/elements/typography.py +0 -0
  298. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/gridjs/__init__.py +0 -0
  299. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/literals.py +0 -0
  300. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/lucide/__init__.py +0 -0
  301. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/markdown/__init__.py +0 -0
  302. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/markdown/markdown.py +0 -0
  303. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/moment/__init__.py +0 -0
  304. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/moment/moment.py +0 -0
  305. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/plotly/__init__.py +0 -0
  306. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/plotly/plotly.py +0 -0
  307. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/__init__.py +0 -0
  308. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/__init__.pyi +0 -0
  309. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/__init__.py +0 -0
  310. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/__init__.pyi +0 -0
  311. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/base.py +0 -0
  312. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/drawer.py +0 -0
  313. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/form.py +0 -0
  314. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/progress.py +0 -0
  315. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/primitives/slider.py +0 -0
  316. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/__init__.py +0 -0
  317. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/__init__.pyi +0 -0
  318. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/color_mode.py +0 -0
  319. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/__init__.py +0 -0
  320. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/__init__.pyi +0 -0
  321. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
  322. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  323. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/avatar.py +0 -0
  324. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/badge.py +0 -0
  325. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/button.py +0 -0
  326. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/callout.py +0 -0
  327. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/card.py +0 -0
  328. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox.py +0 -0
  329. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
  330. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
  331. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/context_menu.py +0 -0
  332. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/data_list.py +0 -0
  333. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/dialog.py +0 -0
  334. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
  335. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/hover_card.py +0 -0
  336. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/icon_button.py +0 -0
  337. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/inset.py +0 -0
  338. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/popover.py +0 -0
  339. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/progress.py +0 -0
  340. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio.py +0 -0
  341. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio_cards.py +0 -0
  342. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio_group.py +0 -0
  343. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  344. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/segmented_control.py +0 -0
  345. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/select.py +0 -0
  346. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/separator.py +0 -0
  347. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/skeleton.py +0 -0
  348. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/slider.py +0 -0
  349. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/spinner.py +0 -0
  350. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/switch.py +0 -0
  351. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/table.py +0 -0
  352. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/tabs.py +0 -0
  353. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/text_area.py +0 -0
  354. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/text_field.py +0 -0
  355. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/components/tooltip.py +0 -0
  356. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/__init__.py +0 -0
  357. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
  358. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/base.py +0 -0
  359. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/box.py +0 -0
  360. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/center.py +0 -0
  361. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/container.py +0 -0
  362. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/flex.py +0 -0
  363. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/grid.py +0 -0
  364. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/list.py +0 -0
  365. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/section.py +0 -0
  366. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/spacer.py +0 -0
  367. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/stack.py +0 -0
  368. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/__init__.py +0 -0
  369. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
  370. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/base.py +0 -0
  371. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  372. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/code.py +0 -0
  373. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/heading.py +0 -0
  374. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/text.py +0 -0
  375. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/react_player/__init__.py +0 -0
  376. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/react_player/audio.py +0 -0
  377. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/react_player/react_player.py +0 -0
  378. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/react_player/video.py +0 -0
  379. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/__init__.py +0 -0
  380. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/__init__.pyi +0 -0
  381. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/general.py +0 -0
  382. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/recharts/recharts.py +0 -0
  383. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/sonner/__init__.py +0 -0
  384. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/tags/__init__.py +0 -0
  385. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/tags/cond_tag.py +0 -0
  386. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/tags/iter_tag.py +0 -0
  387. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/tags/match_tag.py +0 -0
  388. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/tags/tag.py +0 -0
  389. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/components/tags/tagless.py +0 -0
  390. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/colors.py +0 -0
  391. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/config.py +0 -0
  392. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/custom_components.py +0 -0
  393. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/constants/utils.py +0 -0
  394. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/custom_components/__init__.py +0 -0
  395. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/experimental/client_state.py +0 -0
  396. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/experimental/hooks.py +0 -0
  397. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/istate/__init__.py +0 -0
  398. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/istate/data.py +0 -0
  399. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/istate/dynamic.py +0 -0
  400. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/istate/manager.py +0 -0
  401. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/istate/storage.py +0 -0
  402. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/istate/wrappers.py +0 -0
  403. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/middleware/__init__.py +0 -0
  404. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/middleware/hydrate_middleware.py +0 -0
  405. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/middleware/middleware.py +0 -0
  406. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/model.py +0 -0
  407. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/py.typed +0 -0
  408. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/style.py +0 -0
  409. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/__init__.py +0 -0
  410. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/codespaces.py +0 -0
  411. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/compat.py +0 -0
  412. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/console.py +0 -0
  413. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/decorator.py +0 -0
  414. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/exceptions.py +0 -0
  415. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/format.py +0 -0
  416. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/lazy_loader.py +0 -0
  417. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/net.py +0 -0
  418. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/path_ops.py +0 -0
  419. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/redir.py +0 -0
  420. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/registry.py +0 -0
  421. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/utils/telemetry.py +0 -0
  422. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/datetime.py +0 -0
  423. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/dep_tracking.py +0 -0
  424. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/function.py +0 -0
  425. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/number.py +0 -0
  426. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/object.py +0 -0
  427. {reflex-0.7.14a6 → reflex-0.8.0a2}/reflex/vars/sequence.py +0 -0
  428. {reflex-0.7.14a6 → reflex-0.8.0a2}/scripts/hatch_build.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reflex
3
- Version: 0.7.14a6
3
+ Version: 0.8.0a2
4
4
  Summary: Web apps in pure Python.
5
5
  Project-URL: homepage, https://reflex.dev
6
6
  Project-URL: repository, https://github.com/reflex-dev/reflex
@@ -39,8 +39,7 @@ Requires-Dist: wrapt<2.0,>=1.17.0
39
39
  Description-Content-Type: text/markdown
40
40
 
41
41
  <div align="center">
42
- <img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/reflex_dark.svg#gh-light-mode-only" alt="Reflex Logo" width="300px">
43
- <img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/reflex_light.svg#gh-dark-mode-only" alt="Reflex Logo" width="300px">
42
+ <img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/reflex.svg" alt="Reflex Logo" width="300px">
44
43
 
45
44
  <hr>
46
45
 
@@ -60,7 +59,12 @@ Description-Content-Type: text/markdown
60
59
 
61
60
  ---
62
61
 
63
- # Reflex
62
+ > [!NOTE]
63
+ > 🚀 **Try [Reflex Build](https://build.reflex.dev/)** – our AI-powered app builder that generates full-stack Reflex applications in seconds.
64
+
65
+ ---
66
+
67
+ # Introduction
64
68
 
65
69
  Reflex is a library to build full-stack web apps in pure Python.
66
70
 
@@ -268,7 +272,10 @@ You can create a multi-page app by adding more pages.
268
272
 
269
273
  Reflex launched in December 2022 with the name Pynecone.
270
274
 
271
- Beginning in 2025, [Reflex Cloud](https://cloud.reflex.dev) has launched to provide the best hosting experience for Reflex apps. We will continue to develop it and implement more features.
275
+ 🚀 Introducing [Reflex Build](https://build.reflex.dev/) Our AI-Powered Builder
276
+ Reflex Build uses AI to generate complete full-stack Python applications. It helps you quickly create, customize, and refine your Reflex apps — from frontend components to backend logic — so you can focus on your ideas instead of boilerplate code. Whether you’re prototyping or scaling, Reflex Build accelerates development by intelligently scaffolding and optimizing your app’s entire stack.
277
+
278
+ Alongside this, [Reflex Cloud](https://cloud.reflex.dev) launched in 2025 to offer the best hosting experience for your Reflex apps. We’re continuously improving the platform with new features and capabilities.
272
279
 
273
280
  Reflex has new releases and features coming every week! Make sure to :star: star and :eyes: watch this repository to stay up to date.
274
281
 
@@ -1,6 +1,5 @@
1
1
  <div align="center">
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">
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">
2
+ <img src="https://raw.githubusercontent.com/reflex-dev/reflex/main/docs/images/reflex.svg" alt="Reflex Logo" width="300px">
4
3
 
5
4
  <hr>
6
5
 
@@ -20,7 +19,12 @@
20
19
 
21
20
  ---
22
21
 
23
- # Reflex
22
+ > [!NOTE]
23
+ > 🚀 **Try [Reflex Build](https://build.reflex.dev/)** – our AI-powered app builder that generates full-stack Reflex applications in seconds.
24
+
25
+ ---
26
+
27
+ # Introduction
24
28
 
25
29
  Reflex is a library to build full-stack web apps in pure Python.
26
30
 
@@ -228,7 +232,10 @@ You can create a multi-page app by adding more pages.
228
232
 
229
233
  Reflex launched in December 2022 with the name Pynecone.
230
234
 
231
- Beginning in 2025, [Reflex Cloud](https://cloud.reflex.dev) has launched to provide the best hosting experience for Reflex apps. We will continue to develop it and implement more features.
235
+ 🚀 Introducing [Reflex Build](https://build.reflex.dev/) Our AI-Powered Builder
236
+ Reflex Build uses AI to generate complete full-stack Python applications. It helps you quickly create, customize, and refine your Reflex apps — from frontend components to backend logic — so you can focus on your ideas instead of boilerplate code. Whether you’re prototyping or scaling, Reflex Build accelerates development by intelligently scaffolding and optimizing your app’s entire stack.
237
+
238
+ Alongside this, [Reflex Cloud](https://cloud.reflex.dev) launched in 2025 to offer the best hosting experience for your Reflex apps. We’re continuously improving the platform with new features and capabilities.
232
239
 
233
240
  Reflex has new releases and features coming every week! Make sure to :star: star and :eyes: watch this repository to stay up to date.
234
241
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "reflex"
3
- version = "0.7.14a6"
3
+ version = "0.8.0a2"
4
4
  description = "Web apps in pure Python."
5
5
  license.text = "Apache-2.0"
6
6
  authors = [
@@ -228,7 +228,7 @@ fail_fast = true
228
228
 
229
229
  [[tool.pre-commit.repos]]
230
230
  repo = "https://github.com/astral-sh/ruff-pre-commit"
231
- rev = "v0.11.12"
231
+ rev = "v0.11.13"
232
232
  hooks = [
233
233
  { id = "ruff-format", args = [
234
234
  "reflex",
@@ -260,7 +260,7 @@ hooks = [
260
260
 
261
261
  [[tool.pre-commit.repos]]
262
262
  repo = "https://github.com/RobertCraigie/pyright-python"
263
- rev = "v1.1.401"
263
+ rev = "v1.1.402"
264
264
  hooks = [{ id = "pyright", args = ["reflex", "tests"], language = "system" }]
265
265
 
266
266
  [[tool.pre-commit.repos]]
@@ -0,0 +1,9 @@
1
+ import reflex as rx
2
+
3
+ config = rx.Config(
4
+ app_name="{{ app_name }}",
5
+ plugins=[
6
+ rx.plugins.SitemapPlugin(),
7
+ rx.plugins.TailwindV4Plugin(),
8
+ ],
9
+ )
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "reflex",
3
+ "type": "module",
3
4
  "scripts": {
4
5
  "dev": "{{ scripts.dev }}",
5
6
  "export": "{{ scripts.export }}",
6
- "export-sitemap": "{{ scripts.export_sitemap }}",
7
7
  "prod": "{{ scripts.prod }}"
8
8
  },
9
9
  "dependencies": {
@@ -6,8 +6,10 @@ import '$/styles/__reflex_global_styles.css'
6
6
  {% endblock %}
7
7
 
8
8
  {% block declaration %}
9
- import { EventLoopProvider, StateProvider, defaultColorMode } from "$/utils/context.js";
10
- import { ThemeProvider } from 'next-themes'
9
+ import { EventLoopProvider, StateProvider, defaultColorMode } from "$/utils/context";
10
+ import { ThemeProvider } from '$/utils/react-theme';
11
+ import { Layout as AppLayout } from './_document';
12
+ import { Outlet } from 'react-router';
11
13
  {% for library_alias, library_path in window_libraries %}
12
14
  import * as {{library_alias}} from "{{library_path}}";
13
15
  {% endfor %}
@@ -26,8 +28,9 @@ function AppWrap({children}) {
26
28
  )
27
29
  }
28
30
 
29
- export default function MyApp({ Component, pageProps }) {
30
- React.useEffect(() => {
31
+
32
+ export function Layout({children}) {
33
+ React.useEffect(() => {
31
34
  // Make contexts and state objects available globally for dynamic eval'd components
32
35
  let windowImports = {
33
36
  {% for library_alias, library_path in window_libraries %}
@@ -36,17 +39,20 @@ export default function MyApp({ Component, pageProps }) {
36
39
  };
37
40
  window["__reflex"] = windowImports;
38
41
  }, []);
39
- return (
40
- jsx(ThemeProvider, {defaultTheme:defaultColorMode,attribute:"class"},
42
+
43
+ return jsx(AppLayout, {},
44
+ jsx(ThemeProvider, {defaultTheme: defaultColorMode, attribute: "class"},
41
45
  jsx(StateProvider, {},
42
- jsx(EventLoopProvider, {},
43
- jsx(AppWrap, {},
44
- jsx(Component, pageProps)
45
- )
46
+ jsx(EventLoopProvider, {},
47
+ jsx(AppWrap, {}, children)
46
48
  )
47
49
  )
48
50
  )
49
51
  );
50
52
  }
51
53
 
54
+ export default function App() {
55
+ return jsx(Outlet, {});
56
+ }
57
+
52
58
  {% endblock %}
@@ -1,7 +1,7 @@
1
1
  {% extends "web/pages/base_page.js.jinja2" %}
2
2
 
3
3
  {% block export %}
4
- export default function Document() {
4
+ export function Layout({children}) {
5
5
  return (
6
6
  {{utils.render(document)}}
7
7
  )
@@ -1,5 +1,4 @@
1
1
  {% import 'web/pages/utils.js.jinja2' as utils %}
2
- /** @jsxImportSource @emotion/react */
3
2
 
4
3
  {% block early_imports %}
5
4
  {% endblock %}
@@ -2,7 +2,11 @@
2
2
  {% from 'web/pages/macros.js.jinja2' import renderHooksWithMemo %}
3
3
  {% set all_hooks = component._get_all_hooks() %}
4
4
 
5
+ {% if export %}
5
6
  export function {{tag_name}} () {
7
+ {% else %}
8
+ function {{tag_name}} () {
9
+ {% endif %}
6
10
  {{ renderHooksWithMemo(all_hooks, memo_trigger_hooks) }}
7
11
 
8
12
  return (
@@ -1,5 +1,6 @@
1
- import { createContext, useContext, useMemo, useReducer, useState, createElement } from "react"
2
- import { applyDelta, Event, hydrateClientStorage, useEventLoop, refs } from "$/utils/state.js"
1
+ import { createContext, useContext, useMemo, useReducer, useState, createElement, useEffect } from "react"
2
+ import { applyDelta, Event, hydrateClientStorage, useEventLoop, refs } from "$/utils/state"
3
+ import { jsx } from "@emotion/react";
3
4
 
4
5
  {% if initial_state %}
5
6
  export const initialState = {{ initial_state|json_dumps }}
@@ -68,8 +69,6 @@ export const initialEvents = () => []
68
69
 
69
70
  export const isDevMode = {{ is_dev_mode|json_dumps }}
70
71
 
71
- export const lastCompiledTimeStamp = {{ last_compiled_time|json_dumps }}
72
-
73
72
  export function UploadFilesProvider({ children }) {
74
73
  const [filesById, setFilesById] = useState({})
75
74
  refs["__clear_selected_files"] = (id) => setFilesById(filesById => {
@@ -77,7 +76,21 @@ export function UploadFilesProvider({ children }) {
77
76
  delete newFilesById[id]
78
77
  return newFilesById
79
78
  })
80
- return createElement(UploadFilesContext, {value:[filesById, setFilesById]}, children);
79
+ return createElement(
80
+ UploadFilesContext.Provider,
81
+ { value: [filesById, setFilesById] },
82
+ children
83
+ );
84
+ }
85
+
86
+ export function ClientSide(component) {
87
+ return ({ children, ...props }) => {
88
+ const [Component, setComponent] = useState(null);
89
+ useEffect(() => {
90
+ setComponent(component);
91
+ }, []);
92
+ return Component ? jsx(Component, props, children) : null;
93
+ };
81
94
  }
82
95
 
83
96
  export function EventLoopProvider({ children }) {
@@ -87,7 +100,11 @@ export function EventLoopProvider({ children }) {
87
100
  initialEvents,
88
101
  clientStorage,
89
102
  )
90
- return createElement(EventLoopContext, {value:[addEvents, connectErrors]}, children);
103
+ return createElement(
104
+ EventLoopContext.Provider,
105
+ { value: [addEvents, connectErrors] },
106
+ children
107
+ );
91
108
  }
92
109
 
93
110
  export function StateProvider({ children }) {
@@ -106,7 +123,7 @@ export function StateProvider({ children }) {
106
123
  {% for state_name in initial_state %}
107
124
  createElement(StateContexts.{{state_name|var_name}},{value: {{state_name|var_name}}},
108
125
  {% endfor %}
109
- createElement(DispatchContext.Provider, {value: dispatchers}, children),
110
- {% for state_name in initial_state|reverse %}){% endfor %}
126
+ createElement(DispatchContext, {value: dispatchers}, children)
127
+ {% for state_name in initial_state %}){% endfor %}
111
128
  )
112
129
  }
@@ -0,0 +1,8 @@
1
+ import { startTransition } from "react";
2
+ import { hydrateRoot } from "react-dom/client";
3
+ import { HydratedRouter } from "react-router/dom";
4
+ import { createElement } from "react";
5
+
6
+ startTransition(() => {
7
+ hydrateRoot(document, createElement(HydratedRouter));
8
+ });
@@ -0,0 +1,10 @@
1
+ import { route } from "@react-router/dev/routes";
2
+ import { flatRoutes } from "@react-router/fs-routes";
3
+
4
+ export default [
5
+ route("404", "routes/[404]_._index.jsx", { id: "404" }),
6
+ ...(await flatRoutes({
7
+ ignoredRouteFiles: ["routes/\\[404\\]_._index.jsx"],
8
+ })),
9
+ route("*", "routes/[404]_._index.jsx"),
10
+ ];
@@ -0,0 +1,35 @@
1
+ import { useTheme } from "$/utils/react-theme";
2
+ import { createElement } from "react";
3
+ import { ColorModeContext, defaultColorMode } from "$/utils/context";
4
+
5
+ export default function RadixThemesColorModeProvider({ children }) {
6
+ const { theme, resolvedTheme, setTheme } = useTheme();
7
+
8
+ const toggleColorMode = () => {
9
+ setTheme(resolvedTheme === "light" ? "dark" : "light");
10
+ };
11
+
12
+ const setColorMode = (mode) => {
13
+ const allowedModes = ["light", "dark", "system"];
14
+ if (!allowedModes.includes(mode)) {
15
+ console.error(
16
+ `Invalid color mode "${mode}". Defaulting to "${defaultColorMode}".`,
17
+ );
18
+ mode = defaultColorMode;
19
+ }
20
+ setTheme(mode);
21
+ };
22
+
23
+ return createElement(
24
+ ColorModeContext.Provider,
25
+ {
26
+ value: {
27
+ rawColorMode: theme,
28
+ resolvedColorMode: resolvedTheme,
29
+ toggleColorMode,
30
+ setColorMode,
31
+ },
32
+ },
33
+ children,
34
+ );
35
+ }
@@ -1,4 +1,4 @@
1
- module.exports = {
1
+ export default {
2
2
  plugins: {
3
3
  "postcss-import": {},
4
4
  autoprefixer: {},
@@ -0,0 +1,6 @@
1
+ export default {
2
+ future: {
3
+ unstable_optimizeDeps: true,
4
+ },
5
+ ssr: false,
6
+ };
@@ -0,0 +1,45 @@
1
+ import { useEffect, useRef, useState } from "react";
2
+ import { useLocation, useNavigate } from "react-router-dom";
3
+
4
+ /**
5
+ * React hook for use in NotFound page to enable client-side routing.
6
+ *
7
+ * Uses React Router to redirect to the provided URL when loading
8
+ * the NotFound page (for example as a fallback in static hosting situations).
9
+ *
10
+ * @returns {boolean} routeNotFound - true if the current route is an actual 404
11
+ */
12
+ export const useClientSideRouting = () => {
13
+ const [routeNotFound, setRouteNotFound] = useState(false);
14
+ const didRedirect = useRef(false);
15
+ const location = useLocation();
16
+ const navigate = useNavigate();
17
+
18
+ useEffect(() => {
19
+ if (!didRedirect.current) {
20
+ // have not tried redirecting yet
21
+ didRedirect.current = true; // never redirect twice to avoid navigation loops
22
+
23
+ // attempt to redirect to the route in the browser address bar once
24
+ const path = window.location.pathname;
25
+ const search = window.location.search;
26
+
27
+ // Use navigate instead of replace
28
+ navigate(path + search, { replace: true })
29
+ .then(() => {
30
+ // Check if we're still on a NotFound route
31
+ // Note: This depends on how your routes are set up
32
+ if (location.pathname === path) {
33
+ setRouteNotFound(true); // Mark as an actual 404
34
+ }
35
+ })
36
+ .catch(() => {
37
+ setRouteNotFound(true); // navigation failed, so this is a real 404
38
+ });
39
+ }
40
+ }, [location, navigate]);
41
+
42
+ // Return the reactive bool, to avoid flashing 404 page until we know for sure
43
+ // the route is not found.
44
+ return routeNotFound;
45
+ };
@@ -0,0 +1,92 @@
1
+ import {
2
+ createContext,
3
+ useContext,
4
+ useState,
5
+ useEffect,
6
+ createElement,
7
+ useRef,
8
+ useMemo,
9
+ } from "react";
10
+
11
+ import { isDevMode, defaultColorMode } from "$/utils/context";
12
+
13
+ const ThemeContext = createContext({
14
+ theme: defaultColorMode,
15
+ resolvedTheme: defaultColorMode !== "system" ? defaultColorMode : "light",
16
+ setTheme: () => {},
17
+ });
18
+
19
+ export function ThemeProvider({ children, defaultTheme = "system" }) {
20
+ const [theme, setTheme] = useState(defaultTheme);
21
+ const [systemTheme, setSystemTheme] = useState(
22
+ defaultTheme !== "system" ? defaultTheme : "light",
23
+ );
24
+
25
+ const firstRender = useRef(true);
26
+
27
+ useEffect(() => {
28
+ if (!firstRender.current) {
29
+ return;
30
+ }
31
+
32
+ firstRender.current = false;
33
+
34
+ if (isDevMode) {
35
+ const lastCompiledTheme = localStorage.getItem("last_compiled_theme");
36
+ if (lastCompiledTheme !== defaultColorMode) {
37
+ // on app startup, make sure the application color mode is persisted correctly.
38
+ localStorage.setItem("last_compiled_theme", defaultColorMode);
39
+ return;
40
+ }
41
+ }
42
+
43
+ // Load saved theme from localStorage
44
+ const savedTheme = localStorage.getItem("theme") || defaultTheme;
45
+ setTheme(savedTheme);
46
+ });
47
+
48
+ const resolvedTheme = useMemo(
49
+ () => (theme === "system" ? systemTheme : theme),
50
+ [theme, systemTheme],
51
+ );
52
+
53
+ useEffect(() => {
54
+ // Set up media query for system preference detection
55
+ const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
56
+
57
+ // Listen for system preference changes
58
+ const handleChange = () => {
59
+ setSystemTheme(mediaQuery.matches ? "dark" : "light");
60
+ };
61
+
62
+ handleChange();
63
+
64
+ mediaQuery.addEventListener("change", handleChange);
65
+
66
+ return () => {
67
+ mediaQuery.removeEventListener("change", handleChange);
68
+ };
69
+ });
70
+
71
+ // Save theme to localStorage whenever it changes
72
+ useEffect(() => {
73
+ localStorage.setItem("theme", theme);
74
+ }, [theme]);
75
+
76
+ useEffect(() => {
77
+ const root = window.document.documentElement;
78
+ root.classList.remove("light", "dark");
79
+ root.classList.add(resolvedTheme);
80
+ root.style.colorScheme = resolvedTheme;
81
+ }, [resolvedTheme]);
82
+
83
+ return createElement(
84
+ ThemeContext.Provider,
85
+ { value: { theme, resolvedTheme, setTheme } },
86
+ children,
87
+ );
88
+ }
89
+
90
+ export function useTheme() {
91
+ return useContext(ThemeContext);
92
+ }