reflex 0.8.7__tar.gz → 0.8.8a1__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 (411) hide show
  1. {reflex-0.8.7 → reflex-0.8.8a1}/PKG-INFO +3 -4
  2. {reflex-0.8.7 → reflex-0.8.8a1}/pyproject.toml +4 -5
  3. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/app.py +13 -5
  4. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/app_mixins/lifespan.py +8 -2
  5. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/compiler/compiler.py +12 -12
  6. reflex-0.8.8a1/reflex/compiler/templates.py +700 -0
  7. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/compiler/utils.py +29 -20
  8. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/bare.py +17 -0
  9. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/component.py +37 -33
  10. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/cond.py +6 -12
  11. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/foreach.py +1 -1
  12. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/match.py +83 -60
  13. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/dynamic.py +3 -3
  14. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/forms.py +31 -14
  15. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/forms.pyi +0 -5
  16. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/lucide/icon.py +2 -1
  17. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/lucide/icon.pyi +2 -1
  18. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/markdown/markdown.py +2 -2
  19. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/primitives/accordion.py +1 -1
  20. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/primitives/drawer.py +1 -1
  21. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/primitives/form.py +1 -1
  22. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/primitives/slider.py +1 -1
  23. reflex-0.8.8a1/reflex/components/tags/cond_tag.py +31 -0
  24. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/tags/iter_tag.py +0 -26
  25. reflex-0.8.8a1/reflex/components/tags/match_tag.py +31 -0
  26. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/tags/tag.py +3 -6
  27. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/tags/tagless.py +14 -0
  28. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/constants/base.py +0 -2
  29. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/constants/installer.py +4 -4
  30. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/custom_components/custom_components.py +202 -15
  31. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/experimental/client_state.py +1 -1
  32. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/istate/manager.py +2 -1
  33. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/plugins/shared_tailwind.py +87 -62
  34. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/plugins/tailwind_v3.py +2 -2
  35. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/plugins/tailwind_v4.py +4 -4
  36. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/state.py +5 -1
  37. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/format.py +2 -3
  38. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/frontend_skeleton.py +2 -2
  39. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/imports.py +18 -0
  40. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/pyi_generator.py +10 -2
  41. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/telemetry.py +4 -1
  42. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/templates.py +1 -6
  43. reflex-0.8.7/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -9
  44. reflex-0.8.7/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -9
  45. reflex-0.8.7/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -1
  46. reflex-0.8.7/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -39
  47. reflex-0.8.7/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -25
  48. reflex-0.8.7/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -57
  49. reflex-0.8.7/reflex/.templates/jinja/web/package.json.jinja2 +0 -27
  50. reflex-0.8.7/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -62
  51. reflex-0.8.7/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -9
  52. reflex-0.8.7/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -21
  53. reflex-0.8.7/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -2
  54. reflex-0.8.7/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -22
  55. reflex-0.8.7/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -18
  56. reflex-0.8.7/reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -38
  57. reflex-0.8.7/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -15
  58. reflex-0.8.7/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -5
  59. reflex-0.8.7/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -93
  60. reflex-0.8.7/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -6
  61. reflex-0.8.7/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -129
  62. reflex-0.8.7/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -1
  63. reflex-0.8.7/reflex/.templates/jinja/web/vite.config.js.jinja2 +0 -74
  64. reflex-0.8.7/reflex/compiler/templates.py +0 -173
  65. reflex-0.8.7/reflex/components/tags/cond_tag.py +0 -22
  66. reflex-0.8.7/reflex/components/tags/match_tag.py +0 -22
  67. {reflex-0.8.7 → reflex-0.8.8a1}/.gitignore +0 -0
  68. {reflex-0.8.7 → reflex-0.8.8a1}/LICENSE +0 -0
  69. {reflex-0.8.7 → reflex-0.8.8a1}/README.md +0 -0
  70. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  71. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  72. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/apps/blank/code/blank.py +0 -0
  73. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/.gitignore +0 -0
  74. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/app/entry.client.js +0 -0
  75. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/app/routes.js +0 -0
  76. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  77. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/components/shiki/code.js +0 -0
  78. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/jsconfig.json +0 -0
  79. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/postcss.config.js +0 -0
  80. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/react-router.config.js +0 -0
  81. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/styles/__reflex_style_reset.css +0 -0
  82. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  83. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  84. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/utils/helpers/paste.js +0 -0
  85. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/utils/helpers/range.js +0 -0
  86. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  87. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/utils/react-theme.js +0 -0
  88. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/utils/state.js +0 -0
  89. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/.templates/web/vite-plugin-safari-cachebust.js +0 -0
  90. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/__init__.py +0 -0
  91. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/__init__.pyi +0 -0
  92. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/__main__.py +0 -0
  93. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/admin.py +0 -0
  94. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/app_mixins/__init__.py +0 -0
  95. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/app_mixins/middleware.py +0 -0
  96. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/app_mixins/mixin.py +0 -0
  97. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/assets.py +0 -0
  98. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/base.py +0 -0
  99. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/compiler/__init__.py +0 -0
  100. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/__init__.py +0 -0
  101. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/__init__.pyi +0 -0
  102. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/__init__.py +0 -0
  103. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/__init__.pyi +0 -0
  104. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/app_wrap.py +0 -0
  105. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/app_wrap.pyi +0 -0
  106. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/body.py +0 -0
  107. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/body.pyi +0 -0
  108. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/document.py +0 -0
  109. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/document.pyi +0 -0
  110. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/error_boundary.py +0 -0
  111. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/error_boundary.pyi +0 -0
  112. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/fragment.py +0 -0
  113. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/fragment.pyi +0 -0
  114. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/link.py +0 -0
  115. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/link.pyi +0 -0
  116. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/meta.py +0 -0
  117. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/meta.pyi +0 -0
  118. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/script.py +0 -0
  119. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/script.pyi +0 -0
  120. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/strict_mode.py +0 -0
  121. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/base/strict_mode.pyi +0 -0
  122. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/__init__.py +0 -0
  123. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/__init__.pyi +0 -0
  124. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/auto_scroll.py +0 -0
  125. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/auto_scroll.pyi +0 -0
  126. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/banner.py +0 -0
  127. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/banner.pyi +0 -0
  128. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/breakpoints.py +0 -0
  129. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/clipboard.py +0 -0
  130. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/clipboard.pyi +0 -0
  131. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/colors.py +0 -0
  132. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/debounce.py +0 -0
  133. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/debounce.pyi +0 -0
  134. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/helmet.py +0 -0
  135. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/helmet.pyi +0 -0
  136. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/html.py +0 -0
  137. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/html.pyi +0 -0
  138. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/layout/__init__.py +0 -0
  139. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/responsive.py +0 -0
  140. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/sticky.py +0 -0
  141. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/sticky.pyi +0 -0
  142. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/upload.py +0 -0
  143. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/upload.pyi +0 -0
  144. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/window_events.py +0 -0
  145. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/core/window_events.pyi +0 -0
  146. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/datadisplay/__init__.py +0 -0
  147. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/datadisplay/__init__.pyi +0 -0
  148. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/datadisplay/code.py +0 -0
  149. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/datadisplay/code.pyi +0 -0
  150. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/datadisplay/dataeditor.py +0 -0
  151. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/datadisplay/dataeditor.pyi +0 -0
  152. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/datadisplay/logo.py +0 -0
  153. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/datadisplay/shiki_code_block.py +0 -0
  154. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
  155. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/__init__.py +0 -0
  156. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/__init__.pyi +0 -0
  157. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/element.py +0 -0
  158. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/element.pyi +0 -0
  159. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/__init__.py +0 -0
  160. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/__init__.pyi +0 -0
  161. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/base.py +0 -0
  162. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/base.pyi +0 -0
  163. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/inline.py +0 -0
  164. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/inline.pyi +0 -0
  165. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/media.py +0 -0
  166. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/media.pyi +0 -0
  167. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/metadata.py +0 -0
  168. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/metadata.pyi +0 -0
  169. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/other.py +0 -0
  170. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/other.pyi +0 -0
  171. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/scripts.py +0 -0
  172. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/scripts.pyi +0 -0
  173. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/sectioning.py +0 -0
  174. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/sectioning.pyi +0 -0
  175. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/tables.py +0 -0
  176. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/tables.pyi +0 -0
  177. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/typography.py +0 -0
  178. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/el/elements/typography.pyi +0 -0
  179. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/field.py +0 -0
  180. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/gridjs/__init__.py +0 -0
  181. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/gridjs/datatable.py +0 -0
  182. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/gridjs/datatable.pyi +0 -0
  183. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/literals.py +0 -0
  184. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/lucide/__init__.py +0 -0
  185. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/markdown/__init__.py +0 -0
  186. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/markdown/markdown.pyi +0 -0
  187. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/moment/__init__.py +0 -0
  188. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/moment/moment.py +0 -0
  189. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/moment/moment.pyi +0 -0
  190. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/plotly/__init__.py +0 -0
  191. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/plotly/plotly.py +0 -0
  192. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/plotly/plotly.pyi +0 -0
  193. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/props.py +0 -0
  194. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/__init__.py +0 -0
  195. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/__init__.pyi +0 -0
  196. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/primitives/__init__.py +0 -0
  197. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/primitives/__init__.pyi +0 -0
  198. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/primitives/accordion.pyi +0 -0
  199. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/primitives/base.py +0 -0
  200. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/primitives/base.pyi +0 -0
  201. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/primitives/drawer.pyi +0 -0
  202. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/primitives/form.pyi +0 -0
  203. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/primitives/progress.py +0 -0
  204. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/primitives/progress.pyi +0 -0
  205. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/primitives/slider.pyi +0 -0
  206. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/__init__.py +0 -0
  207. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/__init__.pyi +0 -0
  208. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/base.py +0 -0
  209. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/base.pyi +0 -0
  210. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/color_mode.py +0 -0
  211. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/color_mode.pyi +0 -0
  212. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/__init__.py +0 -0
  213. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/__init__.pyi +0 -0
  214. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
  215. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
  216. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  217. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
  218. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/avatar.py +0 -0
  219. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/avatar.pyi +0 -0
  220. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/badge.py +0 -0
  221. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/badge.pyi +0 -0
  222. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/button.py +0 -0
  223. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/button.pyi +0 -0
  224. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/callout.py +0 -0
  225. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/callout.pyi +0 -0
  226. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/card.py +0 -0
  227. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/card.pyi +0 -0
  228. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/checkbox.py +0 -0
  229. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
  230. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
  231. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
  232. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
  233. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
  234. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/context_menu.py +0 -0
  235. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
  236. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/data_list.py +0 -0
  237. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/data_list.pyi +0 -0
  238. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/dialog.py +0 -0
  239. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/dialog.pyi +0 -0
  240. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
  241. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
  242. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/hover_card.py +0 -0
  243. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
  244. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/icon_button.py +0 -0
  245. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
  246. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/inset.py +0 -0
  247. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/inset.pyi +0 -0
  248. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/popover.py +0 -0
  249. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/popover.pyi +0 -0
  250. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/progress.py +0 -0
  251. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/progress.pyi +0 -0
  252. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/radio.py +0 -0
  253. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/radio.pyi +0 -0
  254. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/radio_cards.py +0 -0
  255. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
  256. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/radio_group.py +0 -0
  257. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
  258. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  259. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
  260. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/segmented_control.py +0 -0
  261. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
  262. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/select.py +0 -0
  263. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/select.pyi +0 -0
  264. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/separator.py +0 -0
  265. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/separator.pyi +0 -0
  266. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/skeleton.py +0 -0
  267. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
  268. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/slider.py +0 -0
  269. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/slider.pyi +0 -0
  270. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/spinner.py +0 -0
  271. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/spinner.pyi +0 -0
  272. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/switch.py +0 -0
  273. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/switch.pyi +0 -0
  274. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/table.py +0 -0
  275. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/table.pyi +0 -0
  276. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/tabs.py +0 -0
  277. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/tabs.pyi +0 -0
  278. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/text_area.py +0 -0
  279. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/text_area.pyi +0 -0
  280. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/text_field.py +0 -0
  281. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/text_field.pyi +0 -0
  282. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/tooltip.py +0 -0
  283. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
  284. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/__init__.py +0 -0
  285. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
  286. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/base.py +0 -0
  287. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/base.pyi +0 -0
  288. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/box.py +0 -0
  289. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/box.pyi +0 -0
  290. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/center.py +0 -0
  291. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/center.pyi +0 -0
  292. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/container.py +0 -0
  293. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/container.pyi +0 -0
  294. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/flex.py +0 -0
  295. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/flex.pyi +0 -0
  296. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/grid.py +0 -0
  297. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/grid.pyi +0 -0
  298. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/list.py +0 -0
  299. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/list.pyi +0 -0
  300. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/section.py +0 -0
  301. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/section.pyi +0 -0
  302. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/spacer.py +0 -0
  303. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
  304. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/stack.py +0 -0
  305. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/layout/stack.pyi +0 -0
  306. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/typography/__init__.py +0 -0
  307. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
  308. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/typography/base.py +0 -0
  309. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  310. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
  311. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/typography/code.py +0 -0
  312. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/typography/code.pyi +0 -0
  313. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/typography/heading.py +0 -0
  314. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/typography/heading.pyi +0 -0
  315. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/typography/link.py +0 -0
  316. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/typography/link.pyi +0 -0
  317. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/typography/text.py +0 -0
  318. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/radix/themes/typography/text.pyi +0 -0
  319. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/react_player/__init__.py +0 -0
  320. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/react_player/audio.py +0 -0
  321. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/react_player/audio.pyi +0 -0
  322. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/react_player/react_player.py +0 -0
  323. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/react_player/react_player.pyi +0 -0
  324. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/react_player/video.py +0 -0
  325. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/react_player/video.pyi +0 -0
  326. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/react_router/__init__.py +0 -0
  327. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/react_router/dom.py +0 -0
  328. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/react_router/dom.pyi +0 -0
  329. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/recharts/__init__.py +0 -0
  330. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/recharts/__init__.pyi +0 -0
  331. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/recharts/cartesian.py +0 -0
  332. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/recharts/cartesian.pyi +0 -0
  333. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/recharts/charts.py +0 -0
  334. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/recharts/charts.pyi +0 -0
  335. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/recharts/general.py +0 -0
  336. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/recharts/general.pyi +0 -0
  337. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/recharts/polar.py +0 -0
  338. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/recharts/polar.pyi +0 -0
  339. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/recharts/recharts.py +0 -0
  340. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/recharts/recharts.pyi +0 -0
  341. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/sonner/__init__.py +0 -0
  342. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/sonner/toast.py +0 -0
  343. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/sonner/toast.pyi +0 -0
  344. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/components/tags/__init__.py +0 -0
  345. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/config.py +0 -0
  346. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/constants/__init__.py +0 -0
  347. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/constants/colors.py +0 -0
  348. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/constants/compiler.py +0 -0
  349. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/constants/config.py +0 -0
  350. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/constants/custom_components.py +0 -0
  351. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/constants/event.py +0 -0
  352. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/constants/route.py +0 -0
  353. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/constants/state.py +0 -0
  354. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/constants/utils.py +0 -0
  355. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/custom_components/__init__.py +0 -0
  356. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/environment.py +0 -0
  357. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/event.py +0 -0
  358. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/experimental/__init__.py +0 -0
  359. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/experimental/hooks.py +0 -0
  360. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/istate/__init__.py +0 -0
  361. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/istate/data.py +0 -0
  362. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/istate/dynamic.py +0 -0
  363. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/istate/proxy.py +0 -0
  364. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/istate/storage.py +0 -0
  365. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/istate/wrappers.py +0 -0
  366. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/middleware/__init__.py +0 -0
  367. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/middleware/hydrate_middleware.py +0 -0
  368. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/middleware/middleware.py +0 -0
  369. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/model.py +0 -0
  370. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/page.py +0 -0
  371. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/plugins/__init__.py +0 -0
  372. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/plugins/_screenshot.py +0 -0
  373. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/plugins/base.py +0 -0
  374. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/plugins/sitemap.py +0 -0
  375. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/py.typed +0 -0
  376. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/reflex.py +0 -0
  377. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/route.py +0 -0
  378. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/style.py +0 -0
  379. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/testing.py +0 -0
  380. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/__init__.py +0 -0
  381. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/build.py +0 -0
  382. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/codespaces.py +0 -0
  383. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/compat.py +0 -0
  384. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/console.py +0 -0
  385. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/decorator.py +0 -0
  386. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/exceptions.py +0 -0
  387. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/exec.py +0 -0
  388. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/export.py +0 -0
  389. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/js_runtimes.py +0 -0
  390. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/lazy_loader.py +0 -0
  391. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/misc.py +0 -0
  392. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/monitoring.py +0 -0
  393. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/net.py +0 -0
  394. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/path_ops.py +0 -0
  395. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/prerequisites.py +0 -0
  396. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/processes.py +0 -0
  397. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/redir.py +0 -0
  398. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/registry.py +0 -0
  399. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/rename.py +0 -0
  400. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/serializers.py +0 -0
  401. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/token_manager.py +0 -0
  402. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/utils/types.py +0 -0
  403. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/vars/__init__.py +0 -0
  404. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/vars/base.py +0 -0
  405. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/vars/datetime.py +0 -0
  406. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/vars/dep_tracking.py +0 -0
  407. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/vars/function.py +0 -0
  408. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/vars/number.py +0 -0
  409. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/vars/object.py +0 -0
  410. {reflex-0.8.7 → reflex-0.8.8a1}/reflex/vars/sequence.py +0 -0
  411. {reflex-0.8.7 → reflex-0.8.8a1}/scripts/hatch_build.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reflex
3
- Version: 0.8.7
3
+ Version: 0.8.8a1
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
@@ -21,8 +21,7 @@ Requires-Python: <4.0,>=3.10
21
21
  Requires-Dist: alembic<2.0,>=1.15.2
22
22
  Requires-Dist: click>=8.2
23
23
  Requires-Dist: granian[reload]>=2.4.0
24
- Requires-Dist: httpx<1.0,>=0.28.0
25
- Requires-Dist: jinja2<4.0,>=3.1.2
24
+ Requires-Dist: httpx<1.0,>=0.23.3
26
25
  Requires-Dist: packaging<26,>=24.2
27
26
  Requires-Dist: platformdirs<5.0,>=4.3.7
28
27
  Requires-Dist: psutil<8.0,>=7.0.0; sys_platform == 'win32'
@@ -30,7 +29,7 @@ Requires-Dist: pydantic<3.0,>=1.10.21
30
29
  Requires-Dist: python-multipart<1.0,>=0.0.20
31
30
  Requires-Dist: python-socketio<6.0,>=5.12.0
32
31
  Requires-Dist: redis<7.0,>=5.2.1
33
- Requires-Dist: reflex-hosting-cli>=0.1.54
32
+ Requires-Dist: reflex-hosting-cli>=0.1.55
34
33
  Requires-Dist: rich<15,>=13
35
34
  Requires-Dist: sqlmodel<0.1,>=0.0.24
36
35
  Requires-Dist: starlette>=0.47.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "reflex"
3
- version = "0.8.7"
3
+ version = "0.8.8a1"
4
4
  description = "Web apps in pure Python."
5
5
  license.text = "Apache-2.0"
6
6
  authors = [
@@ -23,8 +23,7 @@ dependencies = [
23
23
  "alembic >=1.15.2,<2.0",
24
24
  "click >=8.2",
25
25
  "granian[reload] >=2.4.0",
26
- "httpx >=0.28.0,<1.0",
27
- "jinja2 >=3.1.2,<4.0",
26
+ "httpx >=0.23.3,<1.0",
28
27
  "packaging >=24.2,<26",
29
28
  "platformdirs >=4.3.7,<5.0",
30
29
  "psutil >=7.0.0,<8.0; sys_platform == 'win32'",
@@ -32,7 +31,7 @@ dependencies = [
32
31
  "python-multipart >=0.0.20,<1.0",
33
32
  "python-socketio >=5.12.0,<6.0",
34
33
  "redis >=5.2.1,<7.0",
35
- "reflex-hosting-cli >=0.1.54",
34
+ "reflex-hosting-cli >=0.1.55",
36
35
  "rich >=13,<15",
37
36
  "sqlmodel >=0.0.24,<0.1",
38
37
  "starlette >=0.47.0",
@@ -233,7 +232,7 @@ fail_fast = true
233
232
 
234
233
  [[tool.pre-commit.repos]]
235
234
  repo = "https://github.com/astral-sh/ruff-pre-commit"
236
- rev = "v0.12.8"
235
+ rev = "v0.12.9"
237
236
  hooks = [
238
237
  { id = "ruff-format", args = [
239
238
  "reflex",
@@ -12,6 +12,7 @@ import inspect
12
12
  import io
13
13
  import json
14
14
  import sys
15
+ import time
15
16
  import traceback
16
17
  import urllib.parse
17
18
  from collections.abc import (
@@ -1582,7 +1583,10 @@ class App(MiddlewareMixin, LifespanMixin):
1582
1583
  sid=state.router.session.session_id,
1583
1584
  )
1584
1585
 
1585
- task = asyncio.create_task(_coro())
1586
+ task = asyncio.create_task(
1587
+ _coro(),
1588
+ name=f"reflex_background_task|{event.name}|{time.time()}|{event.token}",
1589
+ )
1586
1590
  self._background_tasks.add(task)
1587
1591
  # Clean up task from background_tasks set when complete.
1588
1592
  task.add_done_callback(self._background_tasks.discard)
@@ -1727,7 +1731,8 @@ async def process(
1727
1731
  "reload",
1728
1732
  data=event,
1729
1733
  to=sid,
1730
- )
1734
+ ),
1735
+ name=f"reflex_emit_reload|{event.name}|{time.time()}|{event.token}",
1731
1736
  )
1732
1737
  return
1733
1738
  # re-assign only when the value is different
@@ -2028,7 +2033,8 @@ class EventNamespace(AsyncNamespace):
2028
2033
  if disconnect_token:
2029
2034
  # Use async cleanup through token manager
2030
2035
  task = asyncio.create_task(
2031
- self._token_manager.disconnect_token(disconnect_token, sid)
2036
+ self._token_manager.disconnect_token(disconnect_token, sid),
2037
+ name=f"reflex_disconnect_token|{disconnect_token}|{time.time()}",
2032
2038
  )
2033
2039
  # Don't await to avoid blocking disconnect, but handle potential errors
2034
2040
  task.add_done_callback(
@@ -2047,12 +2053,14 @@ class EventNamespace(AsyncNamespace):
2047
2053
  # If the sid is None, we are not connected to a client. Prevent sending
2048
2054
  # updates to all clients.
2049
2055
  return
2050
- if sid not in self.sid_to_token:
2056
+ token = self.sid_to_token.get(sid)
2057
+ if token is None:
2051
2058
  console.warn(f"Attempting to send delta to disconnected websocket {sid}")
2052
2059
  return
2053
2060
  # Creating a task prevents the update from being blocked behind other coroutines.
2054
2061
  await asyncio.create_task(
2055
- self.emit(str(constants.SocketEvent.EVENT), update, to=sid)
2062
+ self.emit(str(constants.SocketEvent.EVENT), update, to=sid),
2063
+ name=f"reflex_emit_event|{token}|{sid}|{time.time()}",
2056
2064
  )
2057
2065
 
2058
2066
  async def on_event(self, sid: str, data: Any):
@@ -7,6 +7,7 @@ import contextlib
7
7
  import dataclasses
8
8
  import functools
9
9
  import inspect
10
+ import time
10
11
  from collections.abc import Callable, Coroutine
11
12
 
12
13
  from starlette.applications import Starlette
@@ -36,6 +37,7 @@ class LifespanMixin(AppMixin):
36
37
  if isinstance(task, asyncio.Task):
37
38
  running_tasks.append(task)
38
39
  else:
40
+ task_name = task.__name__
39
41
  signature = inspect.signature(task)
40
42
  if "app" in signature.parameters:
41
43
  task = functools.partial(task, app=app)
@@ -44,7 +46,10 @@ class LifespanMixin(AppMixin):
44
46
  await stack.enter_async_context(_t)
45
47
  console.debug(run_msg.format(type="asynccontextmanager"))
46
48
  elif isinstance(_t, Coroutine):
47
- task_ = asyncio.create_task(_t)
49
+ task_ = asyncio.create_task(
50
+ _t,
51
+ name=f"reflex_lifespan_task|{task_name}|{time.time()}",
52
+ )
48
53
  task_.add_done_callback(lambda t: t.result())
49
54
  running_tasks.append(task_)
50
55
  console.debug(run_msg.format(type="coroutine"))
@@ -70,9 +75,10 @@ class LifespanMixin(AppMixin):
70
75
  msg = f"Task {task.__name__} of type generator must be decorated with contextlib.asynccontextmanager."
71
76
  raise InvalidLifespanTaskTypeError(msg)
72
77
 
78
+ task_name = task.__name__ # pyright: ignore [reportAttributeAccessIssue]
73
79
  if task_kwargs:
74
80
  original_task = task
75
81
  task = functools.partial(task, **task_kwargs) # pyright: ignore [reportArgumentType]
76
82
  functools.update_wrapper(task, original_task) # pyright: ignore [reportArgumentType]
77
83
  self.lifespan_tasks.add(task)
78
- console.debug(f"Registered lifespan task: {task.__name__}") # pyright: ignore [reportAttributeAccessIssue]
84
+ console.debug(f"Registered lifespan task: {task_name}")
@@ -53,7 +53,7 @@ def _compile_document_root(root: Component) -> str:
53
53
  """
54
54
  document_root_imports = root._get_all_imports()
55
55
  _apply_common_imports(document_root_imports)
56
- return templates.DOCUMENT_ROOT.render(
56
+ return templates.document_root_template(
57
57
  imports=utils.compile_imports(document_root_imports),
58
58
  document=root.render(),
59
59
  )
@@ -93,7 +93,7 @@ def _compile_app(app_root: Component) -> str:
93
93
  app_root_imports = app_root._get_all_imports()
94
94
  _apply_common_imports(app_root_imports)
95
95
 
96
- return templates.APP_ROOT.render(
96
+ return templates.app_root_template(
97
97
  imports=utils.compile_imports(app_root_imports),
98
98
  custom_codes=app_root._get_all_custom_code(),
99
99
  hooks=app_root._get_all_hooks(),
@@ -112,7 +112,7 @@ def _compile_theme(theme: str) -> str:
112
112
  Returns:
113
113
  The compiled theme.
114
114
  """
115
- return templates.THEME.render(theme=theme)
115
+ return templates.theme_template(theme=theme)
116
116
 
117
117
 
118
118
  def _compile_contexts(state: type[BaseState] | None, theme: Component | None) -> str:
@@ -130,17 +130,17 @@ def _compile_contexts(state: type[BaseState] | None, theme: Component | None) ->
130
130
  appearance = LiteralVar.create(SYSTEM_COLOR_MODE)
131
131
 
132
132
  return (
133
- templates.CONTEXT.render(
133
+ templates.context_template(
134
134
  initial_state=utils.compile_state(state),
135
135
  state_name=state.get_name(),
136
136
  client_storage=utils.compile_client_storage(state),
137
137
  is_dev_mode=not is_prod_mode(),
138
- default_color_mode=appearance,
138
+ default_color_mode=str(appearance),
139
139
  )
140
140
  if state
141
- else templates.CONTEXT.render(
141
+ else templates.context_template(
142
142
  is_dev_mode=not is_prod_mode(),
143
- default_color_mode=appearance,
143
+ default_color_mode=str(appearance),
144
144
  )
145
145
  )
146
146
 
@@ -159,7 +159,7 @@ def _compile_page(component: BaseComponent) -> str:
159
159
  imports = utils.compile_imports(imports)
160
160
 
161
161
  # Compile the code to render the component.
162
- return templates.PAGE.render(
162
+ return templates.page_template(
163
163
  imports=imports,
164
164
  dynamic_imports=component._get_all_dynamic_imports(),
165
165
  custom_codes=component._get_all_custom_code(),
@@ -321,7 +321,7 @@ def _compile_root_stylesheet(stylesheets: list[str], reset_style: bool = True) -
321
321
  'The `libsass` package is required to compile sass/scss stylesheet files. Run `pip install "libsass>=0.23.0"`.'
322
322
  )
323
323
 
324
- return templates.STYLE.render(stylesheets=sheets)
324
+ return templates.styles_template(stylesheets=sheets)
325
325
 
326
326
 
327
327
  def _compile_component(component: Component | StatefulComponent) -> str:
@@ -333,7 +333,7 @@ def _compile_component(component: Component | StatefulComponent) -> str:
333
333
  Returns:
334
334
  The compiled component.
335
335
  """
336
- return templates.COMPONENT.render(component=component)
336
+ return templates.component_template(component=component)
337
337
 
338
338
 
339
339
  def _compile_components(
@@ -376,7 +376,7 @@ def _compile_components(
376
376
 
377
377
  # Compile the components page.
378
378
  return (
379
- templates.COMPONENTS.render(
379
+ templates.custom_component_template(
380
380
  imports=utils.compile_imports(imports),
381
381
  components=component_renders,
382
382
  dynamic_imports=dynamic_imports,
@@ -456,7 +456,7 @@ def _compile_stateful_components(
456
456
  if rendered_components:
457
457
  _apply_common_imports(all_imports)
458
458
 
459
- return templates.STATEFUL_COMPONENTS.render(
459
+ return templates.stateful_components_template(
460
460
  imports=utils.compile_imports(all_imports),
461
461
  memoized_code="\n".join(rendered_components),
462
462
  )