reflex 0.8.0a1__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 (402) hide show
  1. {reflex-0.8.0a1 → reflex-0.8.0a2}/PKG-INFO +1 -1
  2. {reflex-0.8.0a1 → reflex-0.8.0a2}/pyproject.toml +1 -1
  3. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +4 -0
  4. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -2
  5. reflex-0.8.0a2/reflex/.templates/web/app/routes.js +10 -0
  6. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +1 -6
  7. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/utils/react-theme.js +9 -6
  8. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/utils/state.js +6 -1
  9. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/app.py +1 -1
  10. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/compiler/compiler.py +1 -5
  11. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/compiler/templates.py +3 -3
  12. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/compiler/utils.py +24 -10
  13. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/component.py +37 -23
  14. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/datadisplay/code.py +2 -72
  15. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/datadisplay/code.pyi +0 -3
  16. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/datadisplay/dataeditor.pyi +6 -2
  17. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/dynamic.py +1 -0
  18. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/link.py +6 -4
  19. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/sonner/toast.pyi +3 -2
  20. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/constants/__init__.py +1 -2
  21. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/constants/base.py +1 -14
  22. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/constants/compiler.py +1 -1
  23. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/constants/installer.py +2 -3
  24. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/constants/route.py +19 -7
  25. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/route.py +15 -21
  26. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/testing.py +1 -1
  27. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/build.py +29 -13
  28. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/export.py +1 -1
  29. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/prerequisites.py +7 -7
  30. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/processes.py +2 -1
  31. reflex-0.8.0a1/reflex/.templates/web/app/routes.js +0 -10
  32. {reflex-0.8.0a1 → reflex-0.8.0a2}/.gitignore +0 -0
  33. {reflex-0.8.0a1 → reflex-0.8.0a2}/LICENSE +0 -0
  34. {reflex-0.8.0a1 → reflex-0.8.0a2}/README.md +0 -0
  35. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  36. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  37. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/apps/blank/code/blank.py +0 -0
  38. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  39. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
  40. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
  41. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
  42. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
  43. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
  44. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  45. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
  46. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  47. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
  48. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  49. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
  50. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  51. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -0
  52. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  53. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
  54. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  55. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  56. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/.gitignore +0 -0
  57. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/app/entry.client.js +0 -0
  58. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/components/shiki/code.js +0 -0
  59. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/jsconfig.json +0 -0
  60. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/postcss.config.js +0 -0
  61. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/react-router.config.js +0 -0
  62. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/utils/client_side_routing.js +0 -0
  63. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  64. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  65. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/utils/helpers/paste.js +0 -0
  66. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/utils/helpers/range.js +0 -0
  67. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  68. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/.templates/web/vite.config.js +0 -0
  69. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/__init__.py +0 -0
  70. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/__init__.pyi +0 -0
  71. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/__main__.py +0 -0
  72. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/admin.py +0 -0
  73. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/app_mixins/__init__.py +0 -0
  74. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/app_mixins/lifespan.py +0 -0
  75. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/app_mixins/middleware.py +0 -0
  76. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/app_mixins/mixin.py +0 -0
  77. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/assets.py +0 -0
  78. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/base.py +0 -0
  79. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/compiler/__init__.py +0 -0
  80. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/__init__.py +0 -0
  81. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/__init__.pyi +0 -0
  82. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/__init__.py +0 -0
  83. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/__init__.pyi +0 -0
  84. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/app_wrap.py +0 -0
  85. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/app_wrap.pyi +0 -0
  86. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/bare.py +0 -0
  87. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/body.py +0 -0
  88. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/body.pyi +0 -0
  89. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/document.py +0 -0
  90. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/document.pyi +0 -0
  91. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/error_boundary.py +0 -0
  92. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/error_boundary.pyi +0 -0
  93. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/fragment.py +0 -0
  94. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/fragment.pyi +0 -0
  95. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/link.py +0 -0
  96. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/link.pyi +0 -0
  97. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/meta.py +0 -0
  98. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/meta.pyi +0 -0
  99. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/script.py +0 -0
  100. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/script.pyi +0 -0
  101. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/strict_mode.py +0 -0
  102. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/base/strict_mode.pyi +0 -0
  103. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/__init__.py +0 -0
  104. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/__init__.pyi +0 -0
  105. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/auto_scroll.py +0 -0
  106. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/auto_scroll.pyi +0 -0
  107. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/banner.py +0 -0
  108. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/banner.pyi +0 -0
  109. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/breakpoints.py +0 -0
  110. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/client_side_routing.py +0 -0
  111. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/client_side_routing.pyi +0 -0
  112. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/clipboard.py +0 -0
  113. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/clipboard.pyi +0 -0
  114. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/colors.py +0 -0
  115. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/cond.py +0 -0
  116. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/debounce.py +0 -0
  117. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/debounce.pyi +0 -0
  118. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/foreach.py +0 -0
  119. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/helmet.py +0 -0
  120. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/helmet.pyi +0 -0
  121. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/html.py +0 -0
  122. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/html.pyi +0 -0
  123. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/layout/__init__.py +0 -0
  124. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/match.py +0 -0
  125. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/responsive.py +0 -0
  126. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/sticky.py +0 -0
  127. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/sticky.pyi +0 -0
  128. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/upload.py +0 -0
  129. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/core/upload.pyi +0 -0
  130. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/datadisplay/__init__.py +0 -0
  131. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/datadisplay/__init__.pyi +0 -0
  132. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/datadisplay/dataeditor.py +0 -0
  133. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/datadisplay/logo.py +0 -0
  134. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/datadisplay/shiki_code_block.py +0 -0
  135. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
  136. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/__init__.py +0 -0
  137. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/__init__.pyi +0 -0
  138. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/constants/__init__.py +0 -0
  139. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/constants/html.py +0 -0
  140. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/constants/react.py +0 -0
  141. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/constants/reflex.py +0 -0
  142. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/element.py +0 -0
  143. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/element.pyi +0 -0
  144. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/__init__.py +0 -0
  145. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/__init__.pyi +0 -0
  146. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/base.py +0 -0
  147. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/base.pyi +0 -0
  148. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/forms.py +0 -0
  149. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/forms.pyi +0 -0
  150. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/inline.py +0 -0
  151. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/inline.pyi +0 -0
  152. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/media.py +0 -0
  153. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/media.pyi +0 -0
  154. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/metadata.py +0 -0
  155. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/metadata.pyi +0 -0
  156. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/other.py +0 -0
  157. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/other.pyi +0 -0
  158. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/scripts.py +0 -0
  159. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/scripts.pyi +0 -0
  160. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/sectioning.py +0 -0
  161. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/sectioning.pyi +0 -0
  162. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/tables.py +0 -0
  163. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/tables.pyi +0 -0
  164. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/typography.py +0 -0
  165. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/el/elements/typography.pyi +0 -0
  166. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/field.py +0 -0
  167. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/gridjs/__init__.py +0 -0
  168. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/gridjs/datatable.py +0 -0
  169. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/gridjs/datatable.pyi +0 -0
  170. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/literals.py +0 -0
  171. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/lucide/__init__.py +0 -0
  172. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/lucide/icon.py +0 -0
  173. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/lucide/icon.pyi +0 -0
  174. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/markdown/__init__.py +0 -0
  175. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/markdown/markdown.py +0 -0
  176. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/markdown/markdown.pyi +0 -0
  177. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/moment/__init__.py +0 -0
  178. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/moment/moment.py +0 -0
  179. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/moment/moment.pyi +0 -0
  180. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/plotly/__init__.py +0 -0
  181. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/plotly/plotly.py +0 -0
  182. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/plotly/plotly.pyi +0 -0
  183. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/props.py +0 -0
  184. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/__init__.py +0 -0
  185. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/__init__.pyi +0 -0
  186. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/primitives/__init__.py +0 -0
  187. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/primitives/__init__.pyi +0 -0
  188. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/primitives/accordion.py +0 -0
  189. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/primitives/accordion.pyi +0 -0
  190. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/primitives/base.py +0 -0
  191. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/primitives/base.pyi +0 -0
  192. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/primitives/drawer.py +0 -0
  193. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/primitives/drawer.pyi +0 -0
  194. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/primitives/form.py +0 -0
  195. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/primitives/form.pyi +0 -0
  196. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/primitives/progress.py +0 -0
  197. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/primitives/progress.pyi +0 -0
  198. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/primitives/slider.py +0 -0
  199. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/primitives/slider.pyi +0 -0
  200. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/__init__.py +0 -0
  201. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/__init__.pyi +0 -0
  202. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/base.py +0 -0
  203. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/base.pyi +0 -0
  204. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/color_mode.py +0 -0
  205. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/color_mode.pyi +0 -0
  206. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/__init__.py +0 -0
  207. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/__init__.pyi +0 -0
  208. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
  209. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
  210. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  211. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
  212. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/avatar.py +0 -0
  213. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/avatar.pyi +0 -0
  214. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/badge.py +0 -0
  215. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/badge.pyi +0 -0
  216. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/button.py +0 -0
  217. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/button.pyi +0 -0
  218. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/callout.py +0 -0
  219. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/callout.pyi +0 -0
  220. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/card.py +0 -0
  221. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/card.pyi +0 -0
  222. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox.py +0 -0
  223. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
  224. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
  225. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
  226. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
  227. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
  228. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/context_menu.py +0 -0
  229. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
  230. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/data_list.py +0 -0
  231. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/data_list.pyi +0 -0
  232. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/dialog.py +0 -0
  233. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/dialog.pyi +0 -0
  234. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
  235. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
  236. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/hover_card.py +0 -0
  237. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
  238. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/icon_button.py +0 -0
  239. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
  240. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/inset.py +0 -0
  241. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/inset.pyi +0 -0
  242. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/popover.py +0 -0
  243. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/popover.pyi +0 -0
  244. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/progress.py +0 -0
  245. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/progress.pyi +0 -0
  246. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio.py +0 -0
  247. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio.pyi +0 -0
  248. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio_cards.py +0 -0
  249. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
  250. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio_group.py +0 -0
  251. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
  252. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  253. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
  254. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/segmented_control.py +0 -0
  255. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
  256. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/select.py +0 -0
  257. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/select.pyi +0 -0
  258. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/separator.py +0 -0
  259. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/separator.pyi +0 -0
  260. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/skeleton.py +0 -0
  261. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
  262. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/slider.py +0 -0
  263. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/slider.pyi +0 -0
  264. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/spinner.py +0 -0
  265. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/spinner.pyi +0 -0
  266. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/switch.py +0 -0
  267. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/switch.pyi +0 -0
  268. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/table.py +0 -0
  269. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/table.pyi +0 -0
  270. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/tabs.py +0 -0
  271. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/tabs.pyi +0 -0
  272. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/text_area.py +0 -0
  273. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/text_area.pyi +0 -0
  274. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/text_field.py +0 -0
  275. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/text_field.pyi +0 -0
  276. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/tooltip.py +0 -0
  277. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
  278. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/__init__.py +0 -0
  279. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
  280. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/base.py +0 -0
  281. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/base.pyi +0 -0
  282. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/box.py +0 -0
  283. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/box.pyi +0 -0
  284. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/center.py +0 -0
  285. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/center.pyi +0 -0
  286. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/container.py +0 -0
  287. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/container.pyi +0 -0
  288. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/flex.py +0 -0
  289. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/flex.pyi +0 -0
  290. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/grid.py +0 -0
  291. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/grid.pyi +0 -0
  292. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/list.py +0 -0
  293. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/list.pyi +0 -0
  294. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/section.py +0 -0
  295. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/section.pyi +0 -0
  296. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/spacer.py +0 -0
  297. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
  298. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/stack.py +0 -0
  299. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/layout/stack.pyi +0 -0
  300. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/__init__.py +0 -0
  301. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
  302. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/base.py +0 -0
  303. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  304. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
  305. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/code.py +0 -0
  306. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/code.pyi +0 -0
  307. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/heading.py +0 -0
  308. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/heading.pyi +0 -0
  309. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/link.pyi +0 -0
  310. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/text.py +0 -0
  311. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/radix/themes/typography/text.pyi +0 -0
  312. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/react_player/__init__.py +0 -0
  313. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/react_player/audio.py +0 -0
  314. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/react_player/audio.pyi +0 -0
  315. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/react_player/react_player.py +0 -0
  316. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/react_player/react_player.pyi +0 -0
  317. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/react_player/video.py +0 -0
  318. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/react_player/video.pyi +0 -0
  319. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/recharts/__init__.py +0 -0
  320. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/recharts/__init__.pyi +0 -0
  321. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/recharts/cartesian.py +0 -0
  322. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/recharts/cartesian.pyi +0 -0
  323. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/recharts/charts.py +0 -0
  324. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/recharts/charts.pyi +0 -0
  325. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/recharts/general.py +0 -0
  326. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/recharts/general.pyi +0 -0
  327. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/recharts/polar.py +0 -0
  328. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/recharts/polar.pyi +0 -0
  329. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/recharts/recharts.py +0 -0
  330. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/recharts/recharts.pyi +0 -0
  331. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/sonner/__init__.py +0 -0
  332. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/sonner/toast.py +0 -0
  333. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/tags/__init__.py +0 -0
  334. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/tags/cond_tag.py +0 -0
  335. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/tags/iter_tag.py +0 -0
  336. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/tags/match_tag.py +0 -0
  337. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/tags/tag.py +0 -0
  338. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/components/tags/tagless.py +0 -0
  339. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/config.py +0 -0
  340. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/constants/colors.py +0 -0
  341. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/constants/config.py +0 -0
  342. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/constants/custom_components.py +0 -0
  343. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/constants/event.py +0 -0
  344. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/constants/state.py +0 -0
  345. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/constants/utils.py +0 -0
  346. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/custom_components/__init__.py +0 -0
  347. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/custom_components/custom_components.py +0 -0
  348. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/environment.py +0 -0
  349. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/event.py +0 -0
  350. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/experimental/__init__.py +0 -0
  351. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/experimental/client_state.py +0 -0
  352. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/experimental/hooks.py +0 -0
  353. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/istate/__init__.py +0 -0
  354. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/istate/data.py +0 -0
  355. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/istate/dynamic.py +0 -0
  356. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/istate/manager.py +0 -0
  357. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/istate/proxy.py +0 -0
  358. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/istate/storage.py +0 -0
  359. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/istate/wrappers.py +0 -0
  360. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/middleware/__init__.py +0 -0
  361. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/middleware/hydrate_middleware.py +0 -0
  362. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/middleware/middleware.py +0 -0
  363. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/model.py +0 -0
  364. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/page.py +0 -0
  365. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/plugins/__init__.py +0 -0
  366. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/plugins/base.py +0 -0
  367. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/plugins/shared_tailwind.py +0 -0
  368. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/plugins/sitemap.py +0 -0
  369. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/plugins/tailwind_v3.py +0 -0
  370. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/plugins/tailwind_v4.py +0 -0
  371. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/py.typed +0 -0
  372. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/reflex.py +0 -0
  373. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/state.py +0 -0
  374. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/style.py +0 -0
  375. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/__init__.py +0 -0
  376. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/codespaces.py +0 -0
  377. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/compat.py +0 -0
  378. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/console.py +0 -0
  379. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/decorator.py +0 -0
  380. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/exceptions.py +0 -0
  381. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/exec.py +0 -0
  382. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/format.py +0 -0
  383. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/imports.py +0 -0
  384. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/lazy_loader.py +0 -0
  385. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/misc.py +0 -0
  386. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/net.py +0 -0
  387. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/path_ops.py +0 -0
  388. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/pyi_generator.py +0 -0
  389. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/redir.py +0 -0
  390. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/registry.py +0 -0
  391. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/serializers.py +0 -0
  392. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/telemetry.py +0 -0
  393. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/utils/types.py +0 -0
  394. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/vars/__init__.py +0 -0
  395. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/vars/base.py +0 -0
  396. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/vars/datetime.py +0 -0
  397. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/vars/dep_tracking.py +0 -0
  398. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/vars/function.py +0 -0
  399. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/vars/number.py +0 -0
  400. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/vars/object.py +0 -0
  401. {reflex-0.8.0a1 → reflex-0.8.0a2}/reflex/vars/sequence.py +0 -0
  402. {reflex-0.8.0a1 → 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.8.0a1
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "reflex"
3
- version = "0.8.0a1"
3
+ version = "0.8.0a2"
4
4
  description = "Web apps in pure Python."
5
5
  license.text = "Apache-2.0"
6
6
  authors = [
@@ -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 (
@@ -69,8 +69,6 @@ export const initialEvents = () => []
69
69
 
70
70
  export const isDevMode = {{ is_dev_mode|json_dumps }}
71
71
 
72
- export const lastCompiledTimeStamp = {{ last_compiled_time|json_dumps }}
73
-
74
72
  export function UploadFilesProvider({ children }) {
75
73
  const [filesById, setFilesById] = useState({})
76
74
  refs["__clear_selected_files"] = (id) => setFilesById(filesById => {
@@ -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
+ ];
@@ -1,11 +1,6 @@
1
1
  import { useTheme } from "$/utils/react-theme";
2
2
  import { createElement } from "react";
3
- import {
4
- ColorModeContext,
5
- defaultColorMode,
6
- isDevMode,
7
- lastCompiledTimeStamp,
8
- } from "$/utils/context";
3
+ import { ColorModeContext, defaultColorMode } from "$/utils/context";
9
4
 
10
5
  export default function RadixThemesColorModeProvider({ children }) {
11
6
  const { theme, resolvedTheme, setTheme } = useTheme();
@@ -8,9 +8,13 @@ import {
8
8
  useMemo,
9
9
  } from "react";
10
10
 
11
- import { isDevMode, lastCompiledTimeStamp } from "$/utils/context";
11
+ import { isDevMode, defaultColorMode } from "$/utils/context";
12
12
 
13
- const ThemeContext = createContext();
13
+ const ThemeContext = createContext({
14
+ theme: defaultColorMode,
15
+ resolvedTheme: defaultColorMode !== "system" ? defaultColorMode : "light",
16
+ setTheme: () => {},
17
+ });
14
18
 
15
19
  export function ThemeProvider({ children, defaultTheme = "system" }) {
16
20
  const [theme, setTheme] = useState(defaultTheme);
@@ -28,11 +32,10 @@ export function ThemeProvider({ children, defaultTheme = "system" }) {
28
32
  firstRender.current = false;
29
33
 
30
34
  if (isDevMode) {
31
- const lastCompiledTimeInLocalStorage =
32
- localStorage.getItem("last_compiled_time");
33
- if (lastCompiledTimeInLocalStorage !== lastCompiledTimeStamp) {
35
+ const lastCompiledTheme = localStorage.getItem("last_compiled_theme");
36
+ if (lastCompiledTheme !== defaultColorMode) {
34
37
  // on app startup, make sure the application color mode is persisted correctly.
35
- localStorage.setItem("last_compiled_time", lastCompiledTimeStamp);
38
+ localStorage.setItem("last_compiled_theme", defaultColorMode);
36
39
  return;
37
40
  }
38
41
  }
@@ -842,7 +842,12 @@ export const useEventLoop = (
842
842
  const params = useRef(paramsR);
843
843
 
844
844
  useEffect(() => {
845
- params.current = paramsR;
845
+ const { "*": splat, ...remainingParams } = paramsR;
846
+ if (splat) {
847
+ params.current = { ...remainingParams, splat: splat.split("/") };
848
+ } else {
849
+ params.current = remainingParams;
850
+ }
846
851
  }, [paramsR]);
847
852
 
848
853
  // Function to add new events to the event queue.
@@ -890,7 +890,7 @@ class App(MiddlewareMixin, LifespanMixin):
890
890
  def _check_routes_conflict(self, new_route: str):
891
891
  """Verify if there is any conflict between the new route and any existing route.
892
892
 
893
- Based on conflicts that NextJS would throw if not intercepted.
893
+ Based on conflicts that React Router would throw if not intercepted.
894
894
 
895
895
  Raises:
896
896
  RouteValueError: exception showing which conflict exist with the route to be added
@@ -4,7 +4,6 @@ from __future__ import annotations
4
4
 
5
5
  import sys
6
6
  from collections.abc import Iterable, Sequence
7
- from datetime import datetime
8
7
  from inspect import getmodule
9
8
  from pathlib import Path
10
9
  from typing import TYPE_CHECKING
@@ -126,21 +125,18 @@ def _compile_contexts(state: type[BaseState] | None, theme: Component | None) ->
126
125
  if appearance is None or str(LiteralVar.create(appearance)) == '"inherit"':
127
126
  appearance = LiteralVar.create(SYSTEM_COLOR_MODE)
128
127
 
129
- last_compiled_time = str(datetime.now())
130
128
  return (
131
129
  templates.CONTEXT.render(
132
130
  initial_state=utils.compile_state(state),
133
131
  state_name=state.get_name(),
134
132
  client_storage=utils.compile_client_storage(state),
135
133
  is_dev_mode=not is_prod_mode(),
136
- last_compiled_time=last_compiled_time,
137
134
  default_color_mode=appearance,
138
135
  )
139
136
  if state
140
137
  else templates.CONTEXT.render(
141
138
  is_dev_mode=not is_prod_mode(),
142
139
  default_color_mode=appearance,
143
- last_compiled_time=last_compiled_time,
144
140
  )
145
141
  )
146
142
 
@@ -429,7 +425,7 @@ def _compile_stateful_components(
429
425
 
430
426
  # Include custom code in the shared component.
431
427
  rendered_components.update(
432
- dict.fromkeys(component._get_all_custom_code()),
428
+ dict.fromkeys(component._get_all_custom_code(export=True)),
433
429
  )
434
430
 
435
431
  # Include all imports in the shared component.
@@ -113,10 +113,10 @@ def from_string(source: str) -> Template:
113
113
  # Template for the Reflex config file.
114
114
  RXCONFIG = get_template("app/rxconfig.py.jinja2")
115
115
 
116
- # Code to render a NextJS Document root.
116
+ # Code to render the Document root.
117
117
  DOCUMENT_ROOT = get_template("web/pages/_document.js.jinja2")
118
118
 
119
- # Code to render NextJS App root.
119
+ # Code to render App root.
120
120
  APP_ROOT = get_template("web/pages/_app.js.jinja2")
121
121
 
122
122
  # Template for the theme file.
@@ -128,7 +128,7 @@ CONTEXT = get_template("web/utils/context.js.jinja2")
128
128
  # Template to render a component tag.
129
129
  COMPONENT = get_template("web/pages/component.js.jinja2")
130
130
 
131
- # Code to render a single NextJS page.
131
+ # Code to render a single react page.
132
132
  PAGE = get_template("web/pages/index.js.jinja2")
133
133
 
134
134
  # Code to render the custom components page.
@@ -5,7 +5,7 @@ from __future__ import annotations
5
5
  import asyncio
6
6
  import concurrent.futures
7
7
  import traceback
8
- from collections.abc import Sequence
8
+ from collections.abc import Mapping, Sequence
9
9
  from datetime import datetime
10
10
  from pathlib import Path
11
11
  from typing import Any
@@ -174,6 +174,18 @@ def save_error(error: Exception) -> str:
174
174
  return str(log_path)
175
175
 
176
176
 
177
+ def _sorted_keys(d: Mapping[str, Any]) -> dict[str, Any]:
178
+ """Sort the keys of a dictionary.
179
+
180
+ Args:
181
+ d: The dictionary to sort.
182
+
183
+ Returns:
184
+ A new dictionary with sorted keys.
185
+ """
186
+ return dict(sorted(d.items(), key=lambda kv: kv[0]))
187
+
188
+
177
189
  def compile_state(state: type[BaseState]) -> dict:
178
190
  """Compile the state of the app.
179
191
 
@@ -198,10 +210,10 @@ def compile_state(state: type[BaseState]) -> dict:
198
210
  console.warn(
199
211
  f"Had to get initial state in a thread 🤮 {resolved_initial_state}",
200
212
  )
201
- return resolved_initial_state
213
+ return _sorted_keys(resolved_initial_state)
202
214
 
203
215
  # Normally the compile runs before any event loop starts, we asyncio.run is available for calling.
204
- return asyncio.run(_resolve_delta(initial_state))
216
+ return _sorted_keys(asyncio.run(_resolve_delta(initial_state)))
205
217
 
206
218
 
207
219
  def _compile_client_storage_field(
@@ -403,7 +415,10 @@ def create_theme(style: ComponentStyle) -> dict:
403
415
 
404
416
  def _format_route_part(part: str) -> str:
405
417
  if part.startswith("[") and part.endswith("]"):
406
- return f"${part}_"
418
+ if part.startswith(("[...", "[[...")):
419
+ return "$"
420
+ # We don't add [] here since we are reusing them from the input
421
+ return "$" + part + "_"
407
422
  return "[" + part + "]_"
408
423
 
409
424
 
@@ -411,9 +426,8 @@ def _path_to_file_stem(path: str) -> str:
411
426
  if path == "index":
412
427
  return "_index"
413
428
  path = path if path != "index" else "/"
414
- return (
415
- ".".join([_format_route_part(part) for part in path.split("/")]) + "._index"
416
- ).lstrip(".")
429
+ name = ".".join([_format_route_part(part) for part in path.split("/")]).lstrip(".")
430
+ return name + "._index" if not name.endswith("$") else name
417
431
 
418
432
 
419
433
  def get_page_path(path: str) -> str:
@@ -429,7 +443,7 @@ def get_page_path(path: str) -> str:
429
443
  get_web_dir()
430
444
  / constants.Dirs.PAGES
431
445
  / constants.Dirs.ROUTES
432
- / (_path_to_file_stem(path) + constants.Ext.JS)
446
+ / (_path_to_file_stem(path) + constants.Ext.JSX)
433
447
  )
434
448
 
435
449
 
@@ -477,7 +491,7 @@ def get_components_path() -> str:
477
491
  return str(
478
492
  get_web_dir()
479
493
  / constants.Dirs.UTILS
480
- / (constants.PageNames.COMPONENTS + constants.Ext.JS),
494
+ / (constants.PageNames.COMPONENTS + constants.Ext.JSX),
481
495
  )
482
496
 
483
497
 
@@ -490,7 +504,7 @@ def get_stateful_components_path() -> str:
490
504
  return str(
491
505
  get_web_dir()
492
506
  / constants.Dirs.UTILS
493
- / (constants.PageNames.STATEFUL_COMPONENTS + constants.Ext.JS)
507
+ / (constants.PageNames.STATEFUL_COMPONENTS + constants.Ext.JSX)
494
508
  )
495
509
 
496
510
 
@@ -2293,16 +2293,19 @@ class StatefulComponent(BaseComponent):
2293
2293
  tag_to_stateful_component: ClassVar[dict[str, StatefulComponent]] = {}
2294
2294
 
2295
2295
  # Reference to the original component that was memoized into this component.
2296
- component: Component
2297
-
2298
- # The rendered (memoized) code that will be emitted.
2299
- code: str
2296
+ component: Component = field(
2297
+ default_factory=Component, is_javascript_property=False
2298
+ )
2300
2299
 
2301
2300
  # How many times this component is referenced in the app.
2302
- references: int = 0
2301
+ references: int = field(default=0, is_javascript_property=False)
2303
2302
 
2304
2303
  # Whether the component has already been rendered to a shared file.
2305
- rendered_as_shared: bool = False
2304
+ rendered_as_shared: bool = field(default=False, is_javascript_property=False)
2305
+
2306
+ memo_trigger_hooks: list[str] = field(
2307
+ default_factory=list, is_javascript_property=False
2308
+ )
2306
2309
 
2307
2310
  @classmethod
2308
2311
  def create(cls, component: Component) -> StatefulComponent | None:
@@ -2362,8 +2365,7 @@ class StatefulComponent(BaseComponent):
2362
2365
  # Look up the tag in the cache
2363
2366
  stateful_component = cls.tag_to_stateful_component.get(tag_name)
2364
2367
  if stateful_component is None:
2365
- # Render the component as a string of javascript code.
2366
- code = cls._render_stateful_code(component, tag_name=tag_name)
2368
+ memo_trigger_hooks = cls._fix_event_triggers(component)
2367
2369
  # Set the stateful component in the cache for the given tag.
2368
2370
  stateful_component = cls.tag_to_stateful_component.setdefault(
2369
2371
  tag_name,
@@ -2371,7 +2373,7 @@ class StatefulComponent(BaseComponent):
2371
2373
  children=component.children,
2372
2374
  component=component,
2373
2375
  tag=tag_name,
2374
- code=code,
2376
+ memo_trigger_hooks=memo_trigger_hooks,
2375
2377
  ),
2376
2378
  )
2377
2379
  # Bump the reference count -- multiple pages referencing the same component
@@ -2435,26 +2437,38 @@ class StatefulComponent(BaseComponent):
2435
2437
  f"{component.tag or 'Comp'}_{code_hash}"
2436
2438
  ).capitalize()
2437
2439
 
2438
- @classmethod
2439
2440
  def _render_stateful_code(
2441
+ self,
2442
+ export: bool = False,
2443
+ ) -> str:
2444
+ if not self.tag:
2445
+ return ""
2446
+ # Render the code for this component and hooks.
2447
+ return STATEFUL_COMPONENT.render(
2448
+ tag_name=self.tag,
2449
+ memo_trigger_hooks=self.memo_trigger_hooks,
2450
+ component=self.component,
2451
+ export=export,
2452
+ )
2453
+
2454
+ @classmethod
2455
+ def _fix_event_triggers(
2440
2456
  cls,
2441
2457
  component: Component,
2442
- tag_name: str,
2443
- ) -> str:
2458
+ ) -> list[str]:
2444
2459
  """Render the code for a stateful component.
2445
2460
 
2446
2461
  Args:
2447
2462
  component: The component to render.
2448
- tag_name: The tag name for the stateful component (see _get_tag_name).
2449
2463
 
2450
2464
  Returns:
2451
- The rendered code.
2465
+ The memoized event trigger hooks for the component.
2452
2466
  """
2453
2467
  # Memoize event triggers useCallback to avoid unnecessary re-renders.
2454
2468
  memo_event_triggers = tuple(cls._get_memoized_event_triggers(component).items())
2455
2469
 
2456
2470
  # Trigger hooks stored separately to write after the normal hooks (see stateful_component.js.jinja2)
2457
- memo_trigger_hooks = []
2471
+ memo_trigger_hooks: list[str] = []
2458
2472
 
2459
2473
  if memo_event_triggers:
2460
2474
  # Copy the component to avoid mutating the original.
@@ -2468,12 +2482,7 @@ class StatefulComponent(BaseComponent):
2468
2482
  memo_trigger_hooks.append(memo_trigger_hook)
2469
2483
  component.event_triggers[event_trigger] = memo_trigger
2470
2484
 
2471
- # Render the code for this component and hooks.
2472
- return STATEFUL_COMPONENT.render(
2473
- tag_name=tag_name,
2474
- memo_trigger_hooks=memo_trigger_hooks,
2475
- component=component,
2476
- )
2485
+ return memo_trigger_hooks
2477
2486
 
2478
2487
  @staticmethod
2479
2488
  def _get_hook_deps(hook: str) -> list[str]:
@@ -2631,15 +2640,20 @@ class StatefulComponent(BaseComponent):
2631
2640
  return set()
2632
2641
  return self.component._get_all_dynamic_imports()
2633
2642
 
2634
- def _get_all_custom_code(self) -> set[str]:
2643
+ def _get_all_custom_code(self, export: bool = False) -> set[str]:
2635
2644
  """Get custom code for the component.
2636
2645
 
2646
+ Args:
2647
+ export: Whether to export the component.
2648
+
2637
2649
  Returns:
2638
2650
  The custom code.
2639
2651
  """
2640
2652
  if self.rendered_as_shared:
2641
2653
  return set()
2642
- return self.component._get_all_custom_code().union({self.code})
2654
+ return self.component._get_all_custom_code().union(
2655
+ {self._render_stateful_code(export=export)}
2656
+ )
2643
2657
 
2644
2658
  def _get_all_refs(self) -> set[str]:
2645
2659
  """Get the refs for the children of the component.
@@ -3,13 +3,12 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import dataclasses
6
- import typing
7
6
  from typing import ClassVar, Literal
8
7
 
9
8
  from reflex.components.component import Component, ComponentNamespace
10
9
  from reflex.components.core.cond import color_mode_cond
11
10
  from reflex.components.lucide.icon import Icon
12
- from reflex.components.markdown.markdown import _LANGUAGE, MarkdownComponentMap
11
+ from reflex.components.markdown.markdown import MarkdownComponentMap
13
12
  from reflex.components.radix.themes.components.button import Button
14
13
  from reflex.components.radix.themes.layout.box import Box
15
14
  from reflex.constants.colors import Color
@@ -315,7 +314,7 @@ def construct_theme_var(theme: str) -> Var[Theme]:
315
314
  theme,
316
315
  _var_data=VarData(
317
316
  imports={
318
- f"react-syntax-highlighter/dist/cjs/styles/prism/{format.to_kebab_case(theme)}": [
317
+ f"react-syntax-highlighter/dist/esm/styles/prism/{format.to_kebab_case(theme)}": [
319
318
  ImportVar(tag=theme, is_default=True, install=False)
320
319
  ]
321
320
  }
@@ -502,75 +501,6 @@ class CodeBlock(Component, MarkdownComponentMap):
502
501
  def _exclude_props(self) -> list[str]:
503
502
  return ["can_copy", "copy_button"]
504
503
 
505
- @classmethod
506
- def _get_language_registration_hook(cls, language_var: Var = _LANGUAGE) -> Var:
507
- """Get the hook to register the language.
508
-
509
- Args:
510
- language_var: The const/literal Var of the language module to import.
511
- For markdown, uses the default placeholder _LANGUAGE. For direct use,
512
- a LiteralStringVar should be passed via the language prop.
513
-
514
- Returns:
515
- The hook to register the language.
516
- """
517
- language_in_there = Var.create(typing.get_args(LiteralCodeLanguage)).contains(
518
- language_var
519
- )
520
- async_load = f"""
521
- (async () => {{
522
- try {{
523
- const module = await import(`react-syntax-highlighter/dist/cjs/languages/prism/${{{language_var!s}}}`);
524
- SyntaxHighlighter.registerLanguage({language_var!s}, module.default);
525
- }} catch (error) {{
526
- console.error(`Language ${{{language_var!s}}} is not supported for code blocks inside of markdown: `, error);
527
- }}
528
- }})();
529
- """
530
- return Var(
531
- f"""
532
- if ({language_var!s}) {{
533
- if (!{language_in_there!s}) {{
534
- console.warn(`Language \\`${{{language_var!s}}}\\` is not supported for code blocks inside of markdown.`);
535
- {language_var!s} = '';
536
- }} else {{
537
- {async_load!s}
538
- }}
539
- }}
540
- """
541
- if not isinstance(language_var, LiteralVar)
542
- else f"""
543
- if ({language_var!s}) {{
544
- {async_load!s}
545
- }}""",
546
- _var_data=VarData(
547
- imports={
548
- cls.get_fields()["library"].default_value(): [
549
- ImportVar(tag="PrismAsyncLight", alias="SyntaxHighlighter")
550
- ]
551
- },
552
- ),
553
- )
554
-
555
- @classmethod
556
- def get_component_map_custom_code(cls) -> Var:
557
- """Get the custom code for the component.
558
-
559
- Returns:
560
- The custom code for the component.
561
- """
562
- return cls._get_language_registration_hook()
563
-
564
- def add_hooks(self) -> list[str | Var]:
565
- """Add hooks for the component.
566
-
567
- Returns:
568
- The hooks for the component.
569
- """
570
- return [
571
- self._get_language_registration_hook(language_var=self.language),
572
- ]
573
-
574
504
 
575
505
  class CodeblockNamespace(ComponentNamespace):
576
506
  """Namespace for the CodeBlock component."""
@@ -987,9 +987,6 @@ class CodeBlock(Component, MarkdownComponentMap):
987
987
  """
988
988
 
989
989
  def add_style(self): ...
990
- @classmethod
991
- def get_component_map_custom_code(cls) -> Var: ...
992
- def add_hooks(self) -> list[str | Var]: ...
993
990
 
994
991
  class CodeblockNamespace(ComponentNamespace):
995
992
  themes = Theme
@@ -3,11 +3,11 @@
3
3
  # ------------------- DO NOT EDIT ----------------------
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
+ import dataclasses
6
7
  from collections.abc import Mapping, Sequence
7
8
  from enum import Enum
8
9
  from typing import Any, Literal, TypedDict, overload
9
10
 
10
- from reflex.base import Base
11
11
  from reflex.components.component import NoSSRComponent
12
12
  from reflex.components.core.breakpoints import Breakpoints
13
13
  from reflex.event import EventType, PointerEventInfo
@@ -43,7 +43,8 @@ class GridColumnIcons(Enum):
43
43
  Uri = "uri"
44
44
  VideoUri = "video_uri"
45
45
 
46
- class DataEditorTheme(Base):
46
+ @dataclasses.dataclass
47
+ class DataEditorThemeBase:
47
48
  accent_color: str | None
48
49
  accent_fg: str | None
49
50
  accent_light: str | None
@@ -77,6 +78,9 @@ class DataEditorTheme(Base):
77
78
  text_light: str | None
78
79
  text_medium: str | None
79
80
 
81
+ @dataclasses.dataclass(init=False)
82
+ class DataEditorTheme(DataEditorThemeBase): ...
83
+
80
84
  class Bounds(TypedDict):
81
85
  x: int
82
86
  y: int
@@ -90,6 +90,7 @@ def load_dynamic_serializer():
90
90
  tag_name="MySSRComponent",
91
91
  memo_trigger_hooks=[],
92
92
  component=component,
93
+ export=True,
93
94
  )
94
95
  ] = None
95
96
 
@@ -123,16 +123,18 @@ class Link(RadixThemesComponent, A, MemoizationLeaf, MarkdownComponentMap):
123
123
 
124
124
  if "as_child" not in props:
125
125
  # Extract props for the ReactRouterLink, the rest go to the Link/A element.
126
- next_link_props = {}
126
+ react_router_link_props = {}
127
127
  for prop in props.copy():
128
128
  if prop in _KNOWN_REACT_ROUTER_LINK_PROPS:
129
- next_link_props[prop] = props.pop(prop)
129
+ react_router_link_props[prop] = props.pop(prop)
130
130
 
131
- next_link_props["to"] = next_link_props.pop("href", href)
131
+ react_router_link_props["to"] = react_router_link_props.pop(
132
+ "href", href
133
+ )
132
134
 
133
135
  # If user does not use `as_child`, by default we render using react_router_link to avoid page refresh during internal navigation
134
136
  return super().create(
135
- ReactRouterLink.create(*children, **next_link_props),
137
+ ReactRouterLink.create(*children, **react_router_link_props),
136
138
  as_child=True,
137
139
  **props,
138
140
  )
@@ -3,10 +3,10 @@
3
3
  # ------------------- DO NOT EDIT ----------------------
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
+ import dataclasses
6
7
  from collections.abc import Mapping, Sequence
7
8
  from typing import Any, Literal, overload
8
9
 
9
- from reflex.base import Base
10
10
  from reflex.components.component import Component, ComponentNamespace
11
11
  from reflex.components.core.breakpoints import Breakpoints
12
12
  from reflex.components.lucide.icon import Icon
@@ -32,7 +32,8 @@ toast_ref = Var(
32
32
  _var_data=VarData(imports={f"$/{Dirs.STATE_PATH}": [ImportVar(tag="refs")]}),
33
33
  )
34
34
 
35
- class ToastAction(Base):
35
+ @dataclasses.dataclass
36
+ class ToastAction:
36
37
  label: str
37
38
  on_click: Any
38
39
 
@@ -16,7 +16,6 @@ from .base import (
16
16
  Dirs,
17
17
  Env,
18
18
  LogLevel,
19
- Next,
20
19
  Ping,
21
20
  ReactRouter,
22
21
  Reflex,
@@ -101,13 +100,13 @@ __all__ = [
101
100
  "LogLevel",
102
101
  "MemoizationDisposition",
103
102
  "MemoizationMode",
104
- "Next",
105
103
  "Node",
106
104
  "PackageJson",
107
105
  "Page404",
108
106
  "PageNames",
109
107
  "Ping",
110
108
  "PyprojectToml",
109
+ "ReactRouter",
111
110
  "Reflex",
112
111
  "RequirementsTxt",
113
112
  "RouteArgType",
@@ -22,7 +22,7 @@ class Dirs(SimpleNamespace):
22
22
  """Various directories/paths used by Reflex."""
23
23
 
24
24
  # The frontend directories in a project.
25
- # The web folder where the NextJS app is compiled to.
25
+ # The web folder where the frontend app is compiled to.
26
26
  WEB = ".web"
27
27
  # The directory where uploaded files are stored.
28
28
  UPLOADED_FILES = "uploaded_files"
@@ -208,19 +208,6 @@ class Javascript(SimpleNamespace):
208
208
  PACKAGE_LOCK = "package-lock.json"
209
209
 
210
210
 
211
- class Next(Javascript):
212
- """Constants related to NextJS."""
213
-
214
- # The NextJS config file
215
- CONFIG_FILE = "next.config.js"
216
-
217
- # The sitemap config file.
218
- SITEMAP_CONFIG_FILE = "next-sitemap.config.js"
219
-
220
- # Regex to check for message displayed when frontend comes up
221
- FRONTEND_LISTENING_REGEX = "Local:[\\s]+(.*)"
222
-
223
-
224
211
  class ReactRouter(Javascript):
225
212
  """Constants related to React Router."""
226
213
 
@@ -80,7 +80,7 @@ class CompileVars(SimpleNamespace):
80
80
 
81
81
 
82
82
  class PageNames(SimpleNamespace):
83
- """The name of basic pages deployed in NextJS."""
83
+ """The name of basic pages deployed in the frontend."""
84
84
 
85
85
  # The name of the index page.
86
86
  INDEX_ROUTE = "index"