reflex 0.6.7a2__tar.gz → 0.6.8__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 (397) hide show
  1. {reflex-0.6.7a2 → reflex-0.6.8}/PKG-INFO +2 -2
  2. {reflex-0.6.7a2 → reflex-0.6.8}/README.md +1 -1
  3. {reflex-0.6.7a2 → reflex-0.6.8}/pyproject.toml +7 -4
  4. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +2 -4
  5. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +3 -4
  6. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/web/pages/index.js.jinja2 +2 -3
  7. reflex-0.6.8/reflex/.templates/jinja/web/pages/macros.js.jinja2 +38 -0
  8. reflex-0.6.8/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +11 -0
  9. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/web/utils/context.js.jinja2 +1 -1
  10. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/web/utils/state.js +9 -4
  11. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/app.py +12 -10
  12. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/compiler/compiler.py +2 -2
  13. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/compiler/templates.py +41 -0
  14. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/compiler/utils.py +1 -1
  15. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/bare.py +7 -3
  16. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/component.py +78 -116
  17. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/banner.py +1 -1
  18. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/breakpoints.py +1 -1
  19. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/datadisplay/code.py +14 -10
  20. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/datadisplay/dataeditor.py +1 -1
  21. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/datadisplay/dataeditor.pyi +1 -1
  22. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/forms.py +7 -5
  23. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/metadata.py +1 -1
  24. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/lucide/icon.py +142 -19
  25. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/lucide/icon.pyi +141 -18
  26. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/markdown/markdown.py +3 -2
  27. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/plotly/plotly.py +3 -3
  28. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/plotly/plotly.pyi +3 -3
  29. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/primitives/slider.py +1 -1
  30. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/center.pyi +1 -1
  31. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/flex.py +1 -1
  32. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/flex.pyi +1 -1
  33. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/grid.py +1 -1
  34. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/grid.pyi +1 -1
  35. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/spacer.pyi +1 -1
  36. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/stack.pyi +3 -3
  37. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/typography/link.py +1 -1
  38. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/recharts/cartesian.py +2 -2
  39. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/recharts/cartesian.pyi +6 -6
  40. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/recharts/charts.py +2 -2
  41. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/recharts/polar.py +2 -2
  42. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/recharts/polar.pyi +2 -2
  43. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/sonner/toast.py +1 -1
  44. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/constants/base.py +1 -1
  45. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/constants/compiler.py +1 -0
  46. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/event.py +96 -1
  47. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/experimental/client_state.py +42 -20
  48. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/istate/data.py +3 -3
  49. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/model.py +4 -5
  50. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/page.py +1 -1
  51. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/reflex.py +8 -1
  52. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/state.py +116 -9
  53. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/testing.py +3 -3
  54. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/exceptions.py +4 -0
  55. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/prerequisites.py +37 -20
  56. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/processes.py +2 -2
  57. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/pyi_generator.py +2 -2
  58. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/telemetry.py +6 -4
  59. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/vars/base.py +15 -4
  60. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/vars/sequence.py +37 -0
  61. reflex-0.6.7a2/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -23
  62. {reflex-0.6.7a2 → reflex-0.6.8}/LICENSE +0 -0
  63. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  64. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  65. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/apps/blank/code/blank.py +0 -0
  66. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  67. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
  68. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
  69. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
  70. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
  71. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
  72. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  73. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  74. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
  75. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  76. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  77. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
  78. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  79. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
  80. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  81. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/web/.gitignore +0 -0
  82. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  83. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/web/components/shiki/code.js +0 -0
  84. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/web/jsconfig.json +0 -0
  85. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/web/next.config.js +0 -0
  86. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/web/postcss.config.js +0 -0
  87. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/web/styles/tailwind.css +0 -0
  88. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/web/utils/client_side_routing.js +0 -0
  89. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  90. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  91. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/web/utils/helpers/paste.js +0 -0
  92. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/web/utils/helpers/range.js +0 -0
  93. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  94. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/__init__.py +0 -0
  95. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/__init__.pyi +0 -0
  96. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/__main__.py +0 -0
  97. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/admin.py +0 -0
  98. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/app_mixins/__init__.py +0 -0
  99. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/app_mixins/lifespan.py +0 -0
  100. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/app_mixins/middleware.py +0 -0
  101. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/app_mixins/mixin.py +0 -0
  102. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/app_module_for_backend.py +0 -0
  103. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/assets.py +0 -0
  104. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/base.py +0 -0
  105. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/compiler/__init__.py +0 -0
  106. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/__init__.py +0 -0
  107. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/__init__.pyi +0 -0
  108. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/__init__.py +0 -0
  109. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/__init__.pyi +0 -0
  110. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/app_wrap.py +0 -0
  111. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/app_wrap.pyi +0 -0
  112. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/body.py +0 -0
  113. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/body.pyi +0 -0
  114. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/document.py +0 -0
  115. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/document.pyi +0 -0
  116. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/error_boundary.py +0 -0
  117. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/error_boundary.pyi +0 -0
  118. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/fragment.py +0 -0
  119. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/fragment.pyi +0 -0
  120. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/head.py +0 -0
  121. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/head.pyi +0 -0
  122. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/link.py +0 -0
  123. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/link.pyi +0 -0
  124. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/meta.py +0 -0
  125. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/meta.pyi +0 -0
  126. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/script.py +0 -0
  127. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/base/script.pyi +0 -0
  128. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/__init__.py +0 -0
  129. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/__init__.pyi +0 -0
  130. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/banner.pyi +0 -0
  131. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/client_side_routing.py +0 -0
  132. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/client_side_routing.pyi +0 -0
  133. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/clipboard.py +0 -0
  134. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/clipboard.pyi +0 -0
  135. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/colors.py +0 -0
  136. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/cond.py +0 -0
  137. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/debounce.py +0 -0
  138. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/debounce.pyi +0 -0
  139. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/foreach.py +0 -0
  140. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/html.py +0 -0
  141. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/html.pyi +0 -0
  142. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/layout/__init__.py +0 -0
  143. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/match.py +0 -0
  144. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/responsive.py +0 -0
  145. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/upload.py +0 -0
  146. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/core/upload.pyi +0 -0
  147. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/datadisplay/__init__.py +0 -0
  148. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/datadisplay/__init__.pyi +0 -0
  149. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/datadisplay/code.pyi +0 -0
  150. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/datadisplay/logo.py +0 -0
  151. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/datadisplay/shiki_code_block.py +0 -0
  152. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
  153. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/dynamic.py +0 -0
  154. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/__init__.py +0 -0
  155. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/__init__.pyi +0 -0
  156. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/constants/__init__.py +0 -0
  157. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/constants/html.py +0 -0
  158. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/constants/react.py +0 -0
  159. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/constants/reflex.py +0 -0
  160. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/element.py +0 -0
  161. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/element.pyi +0 -0
  162. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/__init__.py +0 -0
  163. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/__init__.pyi +0 -0
  164. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/base.py +0 -0
  165. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/base.pyi +0 -0
  166. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/forms.pyi +0 -0
  167. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/inline.py +0 -0
  168. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/inline.pyi +0 -0
  169. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/media.py +0 -0
  170. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/media.pyi +0 -0
  171. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/metadata.pyi +0 -0
  172. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/other.py +0 -0
  173. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/other.pyi +0 -0
  174. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/scripts.py +0 -0
  175. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/scripts.pyi +0 -0
  176. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/sectioning.py +0 -0
  177. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/sectioning.pyi +0 -0
  178. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/tables.py +0 -0
  179. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/tables.pyi +0 -0
  180. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/typography.py +0 -0
  181. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/el/elements/typography.pyi +0 -0
  182. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/gridjs/__init__.py +0 -0
  183. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/gridjs/datatable.py +0 -0
  184. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/gridjs/datatable.pyi +0 -0
  185. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/literals.py +0 -0
  186. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/lucide/__init__.py +0 -0
  187. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/markdown/__init__.py +0 -0
  188. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/markdown/markdown.pyi +0 -0
  189. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/moment/__init__.py +0 -0
  190. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/moment/moment.py +0 -0
  191. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/moment/moment.pyi +0 -0
  192. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/next/__init__.py +0 -0
  193. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/next/base.py +0 -0
  194. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/next/base.pyi +0 -0
  195. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/next/image.py +0 -0
  196. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/next/image.pyi +0 -0
  197. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/next/link.py +0 -0
  198. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/next/link.pyi +0 -0
  199. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/next/video.py +0 -0
  200. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/next/video.pyi +0 -0
  201. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/plotly/__init__.py +0 -0
  202. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/props.py +0 -0
  203. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/__init__.py +0 -0
  204. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/__init__.pyi +0 -0
  205. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/primitives/__init__.py +0 -0
  206. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/primitives/__init__.pyi +0 -0
  207. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/primitives/accordion.py +0 -0
  208. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/primitives/accordion.pyi +0 -0
  209. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/primitives/base.py +0 -0
  210. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/primitives/base.pyi +0 -0
  211. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/primitives/drawer.py +0 -0
  212. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/primitives/drawer.pyi +0 -0
  213. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/primitives/form.py +0 -0
  214. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/primitives/form.pyi +0 -0
  215. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/primitives/progress.py +0 -0
  216. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/primitives/progress.pyi +0 -0
  217. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/primitives/slider.pyi +0 -0
  218. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/__init__.py +0 -0
  219. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/__init__.pyi +0 -0
  220. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/base.py +0 -0
  221. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/base.pyi +0 -0
  222. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/color_mode.py +0 -0
  223. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/color_mode.pyi +0 -0
  224. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/__init__.py +0 -0
  225. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/__init__.pyi +0 -0
  226. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
  227. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
  228. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  229. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
  230. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/avatar.py +0 -0
  231. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/avatar.pyi +0 -0
  232. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/badge.py +0 -0
  233. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/badge.pyi +0 -0
  234. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/button.py +0 -0
  235. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/button.pyi +0 -0
  236. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/callout.py +0 -0
  237. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/callout.pyi +0 -0
  238. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/card.py +0 -0
  239. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/card.pyi +0 -0
  240. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/checkbox.py +0 -0
  241. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
  242. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
  243. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
  244. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
  245. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
  246. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/context_menu.py +0 -0
  247. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
  248. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/data_list.py +0 -0
  249. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/data_list.pyi +0 -0
  250. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/dialog.py +0 -0
  251. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/dialog.pyi +0 -0
  252. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
  253. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
  254. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/hover_card.py +0 -0
  255. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
  256. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/icon_button.py +0 -0
  257. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
  258. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/inset.py +0 -0
  259. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/inset.pyi +0 -0
  260. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/popover.py +0 -0
  261. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/popover.pyi +0 -0
  262. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/progress.py +0 -0
  263. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/progress.pyi +0 -0
  264. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/radio.py +0 -0
  265. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/radio.pyi +0 -0
  266. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/radio_cards.py +0 -0
  267. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
  268. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/radio_group.py +0 -0
  269. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
  270. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  271. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
  272. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/segmented_control.py +0 -0
  273. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
  274. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/select.py +0 -0
  275. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/select.pyi +0 -0
  276. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/separator.py +0 -0
  277. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/separator.pyi +0 -0
  278. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/skeleton.py +0 -0
  279. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
  280. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/slider.py +0 -0
  281. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/slider.pyi +0 -0
  282. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/spinner.py +0 -0
  283. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/spinner.pyi +0 -0
  284. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/switch.py +0 -0
  285. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/switch.pyi +0 -0
  286. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/table.py +0 -0
  287. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/table.pyi +0 -0
  288. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/tabs.py +0 -0
  289. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/tabs.pyi +0 -0
  290. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/text_area.py +0 -0
  291. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/text_area.pyi +0 -0
  292. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/text_field.py +0 -0
  293. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/text_field.pyi +0 -0
  294. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/tooltip.py +0 -0
  295. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
  296. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/__init__.py +0 -0
  297. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
  298. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/base.py +0 -0
  299. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/base.pyi +0 -0
  300. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/box.py +0 -0
  301. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/box.pyi +0 -0
  302. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/center.py +0 -0
  303. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/container.py +0 -0
  304. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/container.pyi +0 -0
  305. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/list.py +0 -0
  306. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/list.pyi +0 -0
  307. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/section.py +0 -0
  308. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/section.pyi +0 -0
  309. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/spacer.py +0 -0
  310. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/layout/stack.py +0 -0
  311. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/typography/__init__.py +0 -0
  312. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
  313. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/typography/base.py +0 -0
  314. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  315. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
  316. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/typography/code.py +0 -0
  317. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/typography/code.pyi +0 -0
  318. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/typography/heading.py +0 -0
  319. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/typography/heading.pyi +0 -0
  320. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/typography/link.pyi +0 -0
  321. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/typography/text.py +0 -0
  322. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/radix/themes/typography/text.pyi +0 -0
  323. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/react_player/__init__.py +0 -0
  324. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/react_player/audio.py +0 -0
  325. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/react_player/audio.pyi +0 -0
  326. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/react_player/react_player.py +0 -0
  327. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/react_player/react_player.pyi +0 -0
  328. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/react_player/video.py +0 -0
  329. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/react_player/video.pyi +0 -0
  330. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/recharts/__init__.py +0 -0
  331. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/recharts/__init__.pyi +0 -0
  332. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/recharts/charts.pyi +0 -0
  333. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/recharts/general.py +0 -0
  334. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/recharts/general.pyi +0 -0
  335. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/recharts/recharts.py +0 -0
  336. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/recharts/recharts.pyi +0 -0
  337. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/sonner/__init__.py +0 -0
  338. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/sonner/toast.pyi +0 -0
  339. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/suneditor/__init__.py +0 -0
  340. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/suneditor/editor.py +0 -0
  341. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/suneditor/editor.pyi +0 -0
  342. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/tags/__init__.py +0 -0
  343. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/tags/cond_tag.py +0 -0
  344. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/tags/iter_tag.py +0 -0
  345. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/tags/match_tag.py +0 -0
  346. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/tags/tag.py +0 -0
  347. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/components/tags/tagless.py +0 -0
  348. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/config.py +0 -0
  349. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/constants/__init__.py +0 -0
  350. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/constants/colors.py +0 -0
  351. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/constants/config.py +0 -0
  352. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/constants/custom_components.py +0 -0
  353. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/constants/event.py +0 -0
  354. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/constants/installer.py +0 -0
  355. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/constants/route.py +0 -0
  356. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/constants/state.py +0 -0
  357. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/constants/style.py +0 -0
  358. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/constants/utils.py +0 -0
  359. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/custom_components/__init__.py +0 -0
  360. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/custom_components/custom_components.py +0 -0
  361. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/experimental/__init__.py +0 -0
  362. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/experimental/assets.py +0 -0
  363. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/experimental/hooks.py +0 -0
  364. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/experimental/layout.py +0 -0
  365. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/experimental/layout.pyi +0 -0
  366. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/experimental/misc.py +0 -0
  367. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/istate/__init__.py +0 -0
  368. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/istate/dynamic.py +0 -0
  369. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/istate/proxy.py +0 -0
  370. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/istate/storage.py +0 -0
  371. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/istate/wrappers.py +0 -0
  372. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/middleware/__init__.py +0 -0
  373. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/middleware/hydrate_middleware.py +0 -0
  374. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/middleware/middleware.py +0 -0
  375. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/route.py +0 -0
  376. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/style.py +0 -0
  377. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/__init__.py +0 -0
  378. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/build.py +0 -0
  379. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/codespaces.py +0 -0
  380. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/compat.py +0 -0
  381. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/console.py +0 -0
  382. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/exec.py +0 -0
  383. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/export.py +0 -0
  384. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/format.py +0 -0
  385. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/imports.py +0 -0
  386. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/lazy_loader.py +0 -0
  387. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/net.py +0 -0
  388. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/path_ops.py +0 -0
  389. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/redir.py +0 -0
  390. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/registry.py +0 -0
  391. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/serializers.py +0 -0
  392. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/utils/types.py +0 -0
  393. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/vars/__init__.py +0 -0
  394. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/vars/datetime.py +0 -0
  395. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/vars/function.py +0 -0
  396. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/vars/number.py +0 -0
  397. {reflex-0.6.7a2 → reflex-0.6.8}/reflex/vars/object.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflex
3
- Version: 0.6.7a2
3
+ Version: 0.6.8
4
4
  Summary: Web apps in pure Python.
5
5
  Home-page: https://reflex.dev
6
6
  License: Apache-2.0
@@ -301,7 +301,7 @@ We welcome contributions of any size! Below are some good ways to get started in
301
301
  - **GitHub Discussions**: A great way to talk about features you want added or things that are confusing/need clarification.
302
302
  - **GitHub Issues**: [Issues](https://github.com/reflex-dev/reflex/issues) are an excellent way to report bugs. Additionally, you can try and solve an existing issue and submit a PR.
303
303
 
304
- We are actively looking for contributors, no matter your skill level or experience. To contribute check out [CONTIBUTING.md](https://github.com/reflex-dev/reflex/blob/main/CONTRIBUTING.md)
304
+ We are actively looking for contributors, no matter your skill level or experience. To contribute check out [CONTRIBUTING.md](https://github.com/reflex-dev/reflex/blob/main/CONTRIBUTING.md)
305
305
 
306
306
 
307
307
  ## All Thanks To Our Contributors:
@@ -249,7 +249,7 @@ We welcome contributions of any size! Below are some good ways to get started in
249
249
  - **GitHub Discussions**: A great way to talk about features you want added or things that are confusing/need clarification.
250
250
  - **GitHub Issues**: [Issues](https://github.com/reflex-dev/reflex/issues) are an excellent way to report bugs. Additionally, you can try and solve an existing issue and submit a PR.
251
251
 
252
- We are actively looking for contributors, no matter your skill level or experience. To contribute check out [CONTIBUTING.md](https://github.com/reflex-dev/reflex/blob/main/CONTRIBUTING.md)
252
+ We are actively looking for contributors, no matter your skill level or experience. To contribute check out [CONTRIBUTING.md](https://github.com/reflex-dev/reflex/blob/main/CONTRIBUTING.md)
253
253
 
254
254
 
255
255
  ## All Thanks To Our Contributors:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "reflex"
3
- version = "0.6.7a2"
3
+ version = "0.6.8"
4
4
  description = "Web apps in pure Python."
5
5
  license = "Apache-2.0"
6
6
  authors = [
@@ -16,7 +16,6 @@ repository = "https://github.com/reflex-dev/reflex"
16
16
  documentation = "https://reflex.dev/docs/getting-started/introduction"
17
17
  keywords = ["web", "framework"]
18
18
  classifiers = ["Development Status :: 4 - Beta"]
19
- packages = [{ include = "reflex" }]
20
19
 
21
20
  [tool.poetry.dependencies]
22
21
  python = "^3.9"
@@ -87,13 +86,13 @@ build-backend = "poetry.core.masonry.api"
87
86
  target-version = "py39"
88
87
  output-format = "concise"
89
88
  lint.isort.split-on-trailing-comma = false
90
- lint.select = ["B", "C4", "D", "E", "ERA", "F", "FURB", "I", "PERF", "PTH", "RUF", "SIM", "W"]
89
+ lint.select = ["B", "C4", "D", "E", "ERA", "F", "FURB", "I", "PERF", "PTH", "RUF", "SIM", "T", "W"]
91
90
  lint.ignore = ["B008", "D205", "E501", "F403", "SIM115", "RUF006", "RUF012"]
92
91
  lint.pydocstyle.convention = "google"
93
92
 
94
93
  [tool.ruff.lint.per-file-ignores]
95
94
  "__init__.py" = ["F401"]
96
- "tests/*.py" = ["D100", "D103", "D104", "B018", "PERF"]
95
+ "tests/*.py" = ["D100", "D103", "D104", "B018", "PERF", "T"]
97
96
  "reflex/.templates/*.py" = ["D100", "D103", "D104"]
98
97
  "*.pyi" = ["D301", "D415", "D417", "D418", "E742"]
99
98
  "*/blank.py" = ["I001"]
@@ -101,3 +100,7 @@ lint.pydocstyle.convention = "google"
101
100
  [tool.pytest.ini_options]
102
101
  asyncio_default_fixture_loop_scope = "function"
103
102
  asyncio_mode = "auto"
103
+
104
+ [tool.codespell]
105
+ skip = "docs/*,*.html,examples/*, *.pyi"
106
+ ignore-words-list = "te, TreeE"
@@ -1,4 +1,5 @@
1
1
  {% extends "web/pages/base_page.js.jinja2" %}
2
+ {% from "web/pages/macros.js.jinja2" import renderHooks %}
2
3
 
3
4
  {% block early_imports %}
4
5
  import '$/styles/styles.css'
@@ -18,10 +19,7 @@ import * as {{library_alias}} from "{{library_path}}";
18
19
 
19
20
  {% block export %}
20
21
  function AppWrap({children}) {
21
-
22
- {% for hook in hooks %}
23
- {{ hook }}
24
- {% endfor %}
22
+ {{ renderHooks(hooks) }}
25
23
 
26
24
  return (
27
25
  {{utils.render(render, indent_width=0)}}
@@ -1,5 +1,5 @@
1
1
  {% extends "web/pages/base_page.js.jinja2" %}
2
-
2
+ {% from "web/pages/macros.js.jinja2" import renderHooks %}
3
3
  {% block export %}
4
4
  {% for component in components %}
5
5
 
@@ -8,9 +8,8 @@
8
8
  {% endfor %}
9
9
 
10
10
  export const {{component.name}} = memo(({ {{-component.props|join(", ")-}} }) => {
11
- {% for hook in component.hooks %}
12
- {{ hook }}
13
- {% endfor %}
11
+ {{ renderHooks(component.hooks) }}
12
+
14
13
  return(
15
14
  {{utils.render(component.render)}}
16
15
  )
@@ -1,4 +1,5 @@
1
1
  {% extends "web/pages/base_page.js.jinja2" %}
2
+ {% from "web/pages/macros.js.jinja2" import renderHooks %}
2
3
 
3
4
  {% block declaration %}
4
5
  {% for custom_code in custom_codes %}
@@ -8,9 +9,7 @@
8
9
 
9
10
  {% block export %}
10
11
  export default function Component() {
11
- {% for hook in hooks %}
12
- {{ hook }}
13
- {% endfor %}
12
+ {{ renderHooks(hooks)}}
14
13
 
15
14
  return (
16
15
  {{utils.render(render, indent_width=0)}}
@@ -0,0 +1,38 @@
1
+ {% macro renderHooks(hooks) %}
2
+ {% set sorted_hooks = sort_hooks(hooks) %}
3
+
4
+ {# Render the grouped hooks #}
5
+ {% for hook, _ in sorted_hooks[const.hook_position.INTERNAL] %}
6
+ {{ hook }}
7
+ {% endfor %}
8
+
9
+ {% for hook, _ in sorted_hooks[const.hook_position.PRE_TRIGGER] %}
10
+ {{ hook }}
11
+ {% endfor %}
12
+
13
+ {% for hook, _ in sorted_hooks[const.hook_position.POST_TRIGGER] %}
14
+ {{ hook }}
15
+ {% endfor %}
16
+ {% endmacro %}
17
+
18
+ {% macro renderHooksWithMemo(hooks, memo)%}
19
+ {% set sorted_hooks = sort_hooks(hooks) %}
20
+
21
+ {# Render the grouped hooks #}
22
+ {% for hook, _ in sorted_hooks[const.hook_position.INTERNAL] %}
23
+ {{ hook }}
24
+ {% endfor %}
25
+
26
+ {% for hook, _ in sorted_hooks[const.hook_position.PRE_TRIGGER] %}
27
+ {{ hook }}
28
+ {% endfor %}
29
+
30
+ {% for hook in memo %}
31
+ {{ hook }}
32
+ {% endfor %}
33
+
34
+ {% for hook, _ in sorted_hooks[const.hook_position.POST_TRIGGER] %}
35
+ {{ hook }}
36
+ {% endfor %}
37
+
38
+ {% endmacro %}
@@ -0,0 +1,11 @@
1
+ {% import 'web/pages/utils.js.jinja2' as utils %}
2
+ {% from 'web/pages/macros.js.jinja2' import renderHooksWithMemo %}
3
+ {% set all_hooks = component._get_all_hooks() %}
4
+
5
+ export function {{tag_name}} () {
6
+ {{ renderHooksWithMemo(all_hooks, memo_trigger_hooks) }}
7
+
8
+ return (
9
+ {{utils.render(component.render(), indent_width=0)}}
10
+ )
11
+ }
@@ -28,7 +28,7 @@ export const state_name = "{{state_name}}"
28
28
 
29
29
  export const exception_state_name = "{{const.frontend_exception_state}}"
30
30
 
31
- // Theses events are triggered on initial load and each page navigation.
31
+ // These events are triggered on initial load and each page navigation.
32
32
  export const onLoadInternalEvent = () => {
33
33
  const internal_events = [];
34
34
 
@@ -208,11 +208,16 @@ export const applyEvent = async (event, socket) => {
208
208
  if (event.name == "_download") {
209
209
  const a = document.createElement("a");
210
210
  a.hidden = true;
211
+ a.href = event.payload.url;
211
212
  // Special case when linking to uploaded files
212
- a.href = event.payload.url.replace(
213
- "${getBackendURL(env.UPLOAD)}",
214
- getBackendURL(env.UPLOAD)
215
- );
213
+ if (a.href.includes("getBackendURL(env.UPLOAD)")) {
214
+ a.href = eval?.(
215
+ event.payload.url.replace(
216
+ "getBackendURL(env.UPLOAD)",
217
+ `"${getBackendURL(env.UPLOAD)}"`
218
+ )
219
+ );
220
+ }
216
221
  a.download = event.payload.filename;
217
222
  a.click();
218
223
  a.remove();
@@ -1356,20 +1356,22 @@ async def health() -> JSONResponse:
1356
1356
  health_status = {"status": True}
1357
1357
  status_code = 200
1358
1358
 
1359
- db_status, redis_status = await asyncio.gather(
1360
- get_db_status(), prerequisites.get_redis_status()
1361
- )
1359
+ tasks = []
1360
+
1361
+ if prerequisites.check_db_used():
1362
+ tasks.append(get_db_status())
1363
+ if prerequisites.check_redis_used():
1364
+ tasks.append(prerequisites.get_redis_status())
1365
+
1366
+ results = await asyncio.gather(*tasks)
1362
1367
 
1363
- health_status["db"] = db_status
1368
+ for result in results:
1369
+ health_status |= result
1364
1370
 
1365
- if redis_status is None:
1371
+ if "redis" in health_status and health_status["redis"] is None:
1366
1372
  health_status["redis"] = False
1367
- else:
1368
- health_status["redis"] = redis_status
1369
1373
 
1370
- if not health_status["db"] or (
1371
- not health_status["redis"] and redis_status is not None
1372
- ):
1374
+ if not all(health_status.values()):
1373
1375
  health_status["status"] = False
1374
1376
  status_code = 503
1375
1377
 
@@ -75,7 +75,7 @@ def _compile_app(app_root: Component) -> str:
75
75
  return templates.APP_ROOT.render(
76
76
  imports=utils.compile_imports(app_root._get_all_imports()),
77
77
  custom_codes=app_root._get_all_custom_code(),
78
- hooks={**app_root._get_all_hooks_internal(), **app_root._get_all_hooks()},
78
+ hooks=app_root._get_all_hooks(),
79
79
  window_libraries=window_libraries,
80
80
  render=app_root.render(),
81
81
  )
@@ -149,7 +149,7 @@ def _compile_page(
149
149
  imports=imports,
150
150
  dynamic_imports=component._get_all_dynamic_imports(),
151
151
  custom_codes=component._get_all_custom_code(),
152
- hooks={**component._get_all_hooks_internal(), **component._get_all_hooks()},
152
+ hooks=component._get_all_hooks(),
153
153
  render=component.render(),
154
154
  **kwargs,
155
155
  )
@@ -1,9 +1,46 @@
1
1
  """Templates to use in the reflex compiler."""
2
2
 
3
+ from __future__ import annotations
4
+
3
5
  from jinja2 import Environment, FileSystemLoader, Template
4
6
 
5
7
  from reflex import constants
8
+ from reflex.constants import Hooks
6
9
  from reflex.utils.format import format_state_name, json_dumps
10
+ from reflex.vars.base import VarData
11
+
12
+
13
+ def _sort_hooks(hooks: dict[str, VarData | None]):
14
+ """Sort the hooks by their position.
15
+
16
+ Args:
17
+ hooks: The hooks to sort.
18
+
19
+ Returns:
20
+ The sorted hooks.
21
+ """
22
+ sorted_hooks = {
23
+ Hooks.HookPosition.INTERNAL: [],
24
+ Hooks.HookPosition.PRE_TRIGGER: [],
25
+ Hooks.HookPosition.POST_TRIGGER: [],
26
+ }
27
+
28
+ for hook, data in hooks.items():
29
+ if data and data.position and data.position == Hooks.HookPosition.INTERNAL:
30
+ sorted_hooks[Hooks.HookPosition.INTERNAL].append((hook, data))
31
+ elif not data or (
32
+ not data.position
33
+ or data.position == constants.Hooks.HookPosition.PRE_TRIGGER
34
+ ):
35
+ sorted_hooks[Hooks.HookPosition.PRE_TRIGGER].append((hook, data))
36
+ elif (
37
+ data
38
+ and data.position
39
+ and data.position == constants.Hooks.HookPosition.POST_TRIGGER
40
+ ):
41
+ sorted_hooks[Hooks.HookPosition.POST_TRIGGER].append((hook, data))
42
+
43
+ return sorted_hooks
7
44
 
8
45
 
9
46
  class ReflexJinjaEnvironment(Environment):
@@ -47,6 +84,7 @@ class ReflexJinjaEnvironment(Environment):
47
84
  "frontend_exception_state": constants.CompileVars.FRONTEND_EXCEPTION_STATE_FULL,
48
85
  "hook_position": constants.Hooks.HookPosition,
49
86
  }
87
+ self.globals["sort_hooks"] = _sort_hooks
50
88
 
51
89
 
52
90
  def get_template(name: str) -> Template:
@@ -103,6 +141,9 @@ STYLE = get_template("web/styles/styles.css.jinja2")
103
141
  # Code that generate the package json file
104
142
  PACKAGE_JSON = get_template("web/package.json.jinja2")
105
143
 
144
+ # Template containing some macros used in the web pages.
145
+ MACROS = get_template("web/pages/macros.js.jinja2")
146
+
106
147
  # Code that generate the pyproject.toml file for custom components.
107
148
  CUSTOM_COMPONENTS_PYPROJECT_TOML = get_template(
108
149
  "custom_components/pyproject.toml.jinja2"
@@ -290,7 +290,7 @@ def compile_custom_component(
290
290
  "name": component.tag,
291
291
  "props": props,
292
292
  "render": render.render(),
293
- "hooks": {**render._get_all_hooks_internal(), **render._get_all_hooks()},
293
+ "hooks": render._get_all_hooks(),
294
294
  "custom_code": render._get_all_custom_code(),
295
295
  },
296
296
  imports,
@@ -9,6 +9,7 @@ from reflex.components.tags import Tag
9
9
  from reflex.components.tags.tagless import Tagless
10
10
  from reflex.utils.imports import ParsedImportDict
11
11
  from reflex.vars import BooleanVar, ObjectVar, Var
12
+ from reflex.vars.base import VarData
12
13
 
13
14
 
14
15
  class Bare(Component):
@@ -32,7 +33,7 @@ class Bare(Component):
32
33
  contents = str(contents) if contents is not None else ""
33
34
  return cls(contents=contents) # type: ignore
34
35
 
35
- def _get_all_hooks_internal(self) -> dict[str, None]:
36
+ def _get_all_hooks_internal(self) -> dict[str, VarData | None]:
36
37
  """Include the hooks for the component.
37
38
 
38
39
  Returns:
@@ -43,7 +44,7 @@ class Bare(Component):
43
44
  hooks |= self.contents._var_value._get_all_hooks_internal()
44
45
  return hooks
45
46
 
46
- def _get_all_hooks(self) -> dict[str, None]:
47
+ def _get_all_hooks(self) -> dict[str, VarData | None]:
47
48
  """Include the hooks for the component.
48
49
 
49
50
  Returns:
@@ -107,11 +108,14 @@ class Bare(Component):
107
108
  return Tagless(contents=f"{{{self.contents!s}}}")
108
109
  return Tagless(contents=str(self.contents))
109
110
 
110
- def _get_vars(self, include_children: bool = False) -> Iterator[Var]:
111
+ def _get_vars(
112
+ self, include_children: bool = False, ignore_ids: set[int] | None = None
113
+ ) -> Iterator[Var]:
111
114
  """Walk all Vars used in this component.
112
115
 
113
116
  Args:
114
117
  include_children: Whether to include Vars from children.
118
+ ignore_ids: The ids to ignore.
115
119
 
116
120
  Yields:
117
121
  The contents if it is a Var, otherwise nothing.