reflex 0.7.14a2__tar.gz → 0.7.14a3__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 (407) hide show
  1. {reflex-0.7.14a2 → reflex-0.7.14a3}/PKG-INFO +1 -1
  2. {reflex-0.7.14a2 → reflex-0.7.14a3}/pyproject.toml +1 -1
  3. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/component.py +8 -0
  4. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/config.py +6 -0
  5. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/console.py +61 -0
  6. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/exec.py +102 -27
  7. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/telemetry.py +15 -0
  8. reflex-0.7.14a2/reflex/experimental/layout.pyi +0 -814
  9. {reflex-0.7.14a2 → reflex-0.7.14a3}/.gitignore +0 -0
  10. {reflex-0.7.14a2 → reflex-0.7.14a3}/LICENSE +0 -0
  11. {reflex-0.7.14a2 → reflex-0.7.14a3}/README.md +0 -0
  12. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  13. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  14. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/apps/blank/code/blank.py +0 -0
  15. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  16. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
  17. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
  18. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
  19. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
  20. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
  21. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  22. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
  23. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  24. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
  25. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  26. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
  27. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  28. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -0
  29. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
  30. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  31. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
  32. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  33. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
  34. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  35. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/web/.gitignore +0 -0
  36. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  37. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/web/components/shiki/code.js +0 -0
  38. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/web/jsconfig.json +0 -0
  39. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/web/next.config.js +0 -0
  40. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/web/postcss.config.js +0 -0
  41. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/web/utils/client_side_routing.js +0 -0
  42. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  43. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  44. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/web/utils/helpers/paste.js +0 -0
  45. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/web/utils/helpers/range.js +0 -0
  46. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  47. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/.templates/web/utils/state.js +0 -0
  48. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/__init__.py +0 -0
  49. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/__init__.pyi +0 -0
  50. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/__main__.py +0 -0
  51. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/admin.py +0 -0
  52. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/app.py +0 -0
  53. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/app_mixins/__init__.py +0 -0
  54. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/app_mixins/lifespan.py +0 -0
  55. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/app_mixins/middleware.py +0 -0
  56. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/app_mixins/mixin.py +0 -0
  57. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/assets.py +0 -0
  58. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/base.py +0 -0
  59. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/compiler/__init__.py +0 -0
  60. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/compiler/compiler.py +0 -0
  61. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/compiler/templates.py +0 -0
  62. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/compiler/utils.py +0 -0
  63. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/__init__.py +0 -0
  64. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/__init__.pyi +0 -0
  65. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/__init__.py +0 -0
  66. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/__init__.pyi +0 -0
  67. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/app_wrap.py +0 -0
  68. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/app_wrap.pyi +0 -0
  69. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/bare.py +0 -0
  70. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/body.py +0 -0
  71. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/body.pyi +0 -0
  72. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/document.py +0 -0
  73. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/document.pyi +0 -0
  74. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/error_boundary.py +0 -0
  75. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/error_boundary.pyi +0 -0
  76. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/fragment.py +0 -0
  77. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/fragment.pyi +0 -0
  78. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/head.py +0 -0
  79. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/head.pyi +0 -0
  80. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/link.py +0 -0
  81. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/link.pyi +0 -0
  82. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/meta.py +0 -0
  83. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/meta.pyi +0 -0
  84. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/script.py +0 -0
  85. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/script.pyi +0 -0
  86. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/strict_mode.py +0 -0
  87. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/base/strict_mode.pyi +0 -0
  88. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/__init__.py +0 -0
  89. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/__init__.pyi +0 -0
  90. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/auto_scroll.py +0 -0
  91. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/auto_scroll.pyi +0 -0
  92. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/banner.py +0 -0
  93. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/banner.pyi +0 -0
  94. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/breakpoints.py +0 -0
  95. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/client_side_routing.py +0 -0
  96. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/client_side_routing.pyi +0 -0
  97. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/clipboard.py +0 -0
  98. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/clipboard.pyi +0 -0
  99. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/colors.py +0 -0
  100. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/cond.py +0 -0
  101. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/debounce.py +0 -0
  102. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/debounce.pyi +0 -0
  103. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/foreach.py +0 -0
  104. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/html.py +0 -0
  105. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/html.pyi +0 -0
  106. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/layout/__init__.py +0 -0
  107. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/match.py +0 -0
  108. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/responsive.py +0 -0
  109. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/sticky.py +0 -0
  110. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/sticky.pyi +0 -0
  111. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/upload.py +0 -0
  112. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/core/upload.pyi +0 -0
  113. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/datadisplay/__init__.py +0 -0
  114. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/datadisplay/__init__.pyi +0 -0
  115. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/datadisplay/code.py +0 -0
  116. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/datadisplay/code.pyi +0 -0
  117. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/datadisplay/dataeditor.py +0 -0
  118. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/datadisplay/dataeditor.pyi +0 -0
  119. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/datadisplay/logo.py +0 -0
  120. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/datadisplay/shiki_code_block.py +0 -0
  121. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
  122. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/dynamic.py +0 -0
  123. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/__init__.py +0 -0
  124. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/__init__.pyi +0 -0
  125. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/constants/__init__.py +0 -0
  126. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/constants/html.py +0 -0
  127. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/constants/react.py +0 -0
  128. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/constants/reflex.py +0 -0
  129. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/element.py +0 -0
  130. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/element.pyi +0 -0
  131. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/__init__.py +0 -0
  132. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/__init__.pyi +0 -0
  133. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/base.py +0 -0
  134. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/base.pyi +0 -0
  135. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/forms.py +0 -0
  136. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/forms.pyi +0 -0
  137. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/inline.py +0 -0
  138. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/inline.pyi +0 -0
  139. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/media.py +0 -0
  140. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/media.pyi +0 -0
  141. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/metadata.py +0 -0
  142. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/metadata.pyi +0 -0
  143. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/other.py +0 -0
  144. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/other.pyi +0 -0
  145. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/scripts.py +0 -0
  146. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/scripts.pyi +0 -0
  147. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/sectioning.py +0 -0
  148. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/sectioning.pyi +0 -0
  149. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/tables.py +0 -0
  150. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/tables.pyi +0 -0
  151. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/typography.py +0 -0
  152. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/el/elements/typography.pyi +0 -0
  153. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/gridjs/__init__.py +0 -0
  154. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/gridjs/datatable.py +0 -0
  155. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/gridjs/datatable.pyi +0 -0
  156. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/literals.py +0 -0
  157. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/lucide/__init__.py +0 -0
  158. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/lucide/icon.py +0 -0
  159. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/lucide/icon.pyi +0 -0
  160. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/markdown/__init__.py +0 -0
  161. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/markdown/markdown.py +0 -0
  162. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/markdown/markdown.pyi +0 -0
  163. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/moment/__init__.py +0 -0
  164. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/moment/moment.py +0 -0
  165. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/moment/moment.pyi +0 -0
  166. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/next/__init__.py +0 -0
  167. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/next/base.py +0 -0
  168. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/next/base.pyi +0 -0
  169. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/next/image.py +0 -0
  170. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/next/image.pyi +0 -0
  171. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/next/link.py +0 -0
  172. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/next/link.pyi +0 -0
  173. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/next/video.py +0 -0
  174. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/next/video.pyi +0 -0
  175. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/plotly/__init__.py +0 -0
  176. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/plotly/plotly.py +0 -0
  177. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/plotly/plotly.pyi +0 -0
  178. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/props.py +0 -0
  179. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/__init__.py +0 -0
  180. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/__init__.pyi +0 -0
  181. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/primitives/__init__.py +0 -0
  182. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/primitives/__init__.pyi +0 -0
  183. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/primitives/accordion.py +0 -0
  184. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/primitives/accordion.pyi +0 -0
  185. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/primitives/base.py +0 -0
  186. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/primitives/base.pyi +0 -0
  187. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/primitives/drawer.py +0 -0
  188. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/primitives/drawer.pyi +0 -0
  189. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/primitives/form.py +0 -0
  190. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/primitives/form.pyi +0 -0
  191. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/primitives/progress.py +0 -0
  192. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/primitives/progress.pyi +0 -0
  193. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/primitives/slider.py +0 -0
  194. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/primitives/slider.pyi +0 -0
  195. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/__init__.py +0 -0
  196. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/__init__.pyi +0 -0
  197. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/base.py +0 -0
  198. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/base.pyi +0 -0
  199. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/color_mode.py +0 -0
  200. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/color_mode.pyi +0 -0
  201. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/__init__.py +0 -0
  202. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/__init__.pyi +0 -0
  203. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
  204. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
  205. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  206. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
  207. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/avatar.py +0 -0
  208. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/avatar.pyi +0 -0
  209. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/badge.py +0 -0
  210. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/badge.pyi +0 -0
  211. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/button.py +0 -0
  212. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/button.pyi +0 -0
  213. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/callout.py +0 -0
  214. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/callout.pyi +0 -0
  215. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/card.py +0 -0
  216. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/card.pyi +0 -0
  217. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/checkbox.py +0 -0
  218. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
  219. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
  220. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
  221. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
  222. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
  223. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/context_menu.py +0 -0
  224. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
  225. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/data_list.py +0 -0
  226. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/data_list.pyi +0 -0
  227. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/dialog.py +0 -0
  228. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/dialog.pyi +0 -0
  229. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
  230. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
  231. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/hover_card.py +0 -0
  232. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
  233. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/icon_button.py +0 -0
  234. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
  235. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/inset.py +0 -0
  236. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/inset.pyi +0 -0
  237. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/popover.py +0 -0
  238. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/popover.pyi +0 -0
  239. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/progress.py +0 -0
  240. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/progress.pyi +0 -0
  241. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/radio.py +0 -0
  242. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/radio.pyi +0 -0
  243. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/radio_cards.py +0 -0
  244. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
  245. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/radio_group.py +0 -0
  246. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
  247. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  248. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
  249. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/segmented_control.py +0 -0
  250. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
  251. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/select.py +0 -0
  252. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/select.pyi +0 -0
  253. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/separator.py +0 -0
  254. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/separator.pyi +0 -0
  255. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/skeleton.py +0 -0
  256. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
  257. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/slider.py +0 -0
  258. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/slider.pyi +0 -0
  259. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/spinner.py +0 -0
  260. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/spinner.pyi +0 -0
  261. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/switch.py +0 -0
  262. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/switch.pyi +0 -0
  263. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/table.py +0 -0
  264. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/table.pyi +0 -0
  265. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/tabs.py +0 -0
  266. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/tabs.pyi +0 -0
  267. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/text_area.py +0 -0
  268. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/text_area.pyi +0 -0
  269. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/text_field.py +0 -0
  270. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/text_field.pyi +0 -0
  271. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/tooltip.py +0 -0
  272. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
  273. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/__init__.py +0 -0
  274. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
  275. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/base.py +0 -0
  276. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/base.pyi +0 -0
  277. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/box.py +0 -0
  278. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/box.pyi +0 -0
  279. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/center.py +0 -0
  280. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/center.pyi +0 -0
  281. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/container.py +0 -0
  282. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/container.pyi +0 -0
  283. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/flex.py +0 -0
  284. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/flex.pyi +0 -0
  285. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/grid.py +0 -0
  286. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/grid.pyi +0 -0
  287. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/list.py +0 -0
  288. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/list.pyi +0 -0
  289. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/section.py +0 -0
  290. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/section.pyi +0 -0
  291. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/spacer.py +0 -0
  292. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
  293. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/stack.py +0 -0
  294. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/layout/stack.pyi +0 -0
  295. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/typography/__init__.py +0 -0
  296. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
  297. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/typography/base.py +0 -0
  298. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  299. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
  300. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/typography/code.py +0 -0
  301. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/typography/code.pyi +0 -0
  302. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/typography/heading.py +0 -0
  303. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/typography/heading.pyi +0 -0
  304. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/typography/link.py +0 -0
  305. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/typography/link.pyi +0 -0
  306. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/typography/text.py +0 -0
  307. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/radix/themes/typography/text.pyi +0 -0
  308. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/react_player/__init__.py +0 -0
  309. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/react_player/audio.py +0 -0
  310. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/react_player/audio.pyi +0 -0
  311. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/react_player/react_player.py +0 -0
  312. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/react_player/react_player.pyi +0 -0
  313. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/react_player/video.py +0 -0
  314. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/react_player/video.pyi +0 -0
  315. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/recharts/__init__.py +0 -0
  316. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/recharts/__init__.pyi +0 -0
  317. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/recharts/cartesian.py +0 -0
  318. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/recharts/cartesian.pyi +0 -0
  319. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/recharts/charts.py +0 -0
  320. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/recharts/charts.pyi +0 -0
  321. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/recharts/general.py +0 -0
  322. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/recharts/general.pyi +0 -0
  323. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/recharts/polar.py +0 -0
  324. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/recharts/polar.pyi +0 -0
  325. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/recharts/recharts.py +0 -0
  326. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/recharts/recharts.pyi +0 -0
  327. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/sonner/__init__.py +0 -0
  328. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/sonner/toast.py +0 -0
  329. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/sonner/toast.pyi +0 -0
  330. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/suneditor/__init__.py +0 -0
  331. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/suneditor/editor.py +0 -0
  332. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/suneditor/editor.pyi +0 -0
  333. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/tags/__init__.py +0 -0
  334. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/tags/cond_tag.py +0 -0
  335. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/tags/iter_tag.py +0 -0
  336. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/tags/match_tag.py +0 -0
  337. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/tags/tag.py +0 -0
  338. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/components/tags/tagless.py +0 -0
  339. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/constants/__init__.py +0 -0
  340. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/constants/base.py +0 -0
  341. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/constants/colors.py +0 -0
  342. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/constants/compiler.py +0 -0
  343. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/constants/config.py +0 -0
  344. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/constants/custom_components.py +0 -0
  345. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/constants/event.py +0 -0
  346. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/constants/installer.py +0 -0
  347. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/constants/route.py +0 -0
  348. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/constants/state.py +0 -0
  349. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/constants/utils.py +0 -0
  350. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/custom_components/__init__.py +0 -0
  351. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/custom_components/custom_components.py +0 -0
  352. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/event.py +0 -0
  353. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/experimental/__init__.py +0 -0
  354. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/experimental/client_state.py +0 -0
  355. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/experimental/hooks.py +0 -0
  356. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/experimental/layout.py +0 -0
  357. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/istate/__init__.py +0 -0
  358. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/istate/data.py +0 -0
  359. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/istate/dynamic.py +0 -0
  360. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/istate/manager.py +0 -0
  361. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/istate/proxy.py +0 -0
  362. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/istate/storage.py +0 -0
  363. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/istate/wrappers.py +0 -0
  364. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/middleware/__init__.py +0 -0
  365. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/middleware/hydrate_middleware.py +0 -0
  366. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/middleware/middleware.py +0 -0
  367. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/model.py +0 -0
  368. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/page.py +0 -0
  369. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/plugins/__init__.py +0 -0
  370. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/plugins/base.py +0 -0
  371. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/plugins/tailwind_v3.py +0 -0
  372. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/plugins/tailwind_v4.py +0 -0
  373. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/py.typed +0 -0
  374. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/reflex.py +0 -0
  375. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/route.py +0 -0
  376. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/state.py +0 -0
  377. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/style.py +0 -0
  378. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/testing.py +0 -0
  379. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/__init__.py +0 -0
  380. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/build.py +0 -0
  381. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/codespaces.py +0 -0
  382. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/compat.py +0 -0
  383. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/decorator.py +0 -0
  384. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/exceptions.py +0 -0
  385. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/export.py +0 -0
  386. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/format.py +0 -0
  387. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/imports.py +0 -0
  388. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/lazy_loader.py +0 -0
  389. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/misc.py +0 -0
  390. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/net.py +0 -0
  391. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/path_ops.py +0 -0
  392. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/prerequisites.py +0 -0
  393. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/processes.py +0 -0
  394. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/pyi_generator.py +0 -0
  395. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/redir.py +0 -0
  396. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/registry.py +0 -0
  397. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/serializers.py +0 -0
  398. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/utils/types.py +0 -0
  399. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/vars/__init__.py +0 -0
  400. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/vars/base.py +0 -0
  401. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/vars/datetime.py +0 -0
  402. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/vars/dep_tracking.py +0 -0
  403. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/vars/function.py +0 -0
  404. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/vars/number.py +0 -0
  405. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/vars/object.py +0 -0
  406. {reflex-0.7.14a2 → reflex-0.7.14a3}/reflex/vars/sequence.py +0 -0
  407. {reflex-0.7.14a2 → reflex-0.7.14a3}/scripts/hatch_build.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reflex
3
- Version: 0.7.14a2
3
+ Version: 0.7.14a3
4
4
  Summary: Web apps in pure Python.
5
5
  Project-URL: homepage, https://reflex.dev
6
6
  Project-URL: repository, https://github.com/reflex-dev/reflex
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "reflex"
3
- version = "0.7.14a2"
3
+ version = "0.7.14a3"
4
4
  description = "Web apps in pure Python."
5
5
  license.text = "Apache-2.0"
6
6
  authors = [
@@ -2206,6 +2206,14 @@ class CustomComponent(Component):
2206
2206
  component._add_style_recursive(style)
2207
2207
  return component
2208
2208
 
2209
+ def _get_all_app_wrap_components(self) -> dict[tuple[int, str], Component]:
2210
+ """Get the app wrap components for the custom component.
2211
+
2212
+ Returns:
2213
+ The app wrap components.
2214
+ """
2215
+ return self.get_component()._get_all_app_wrap_components()
2216
+
2209
2217
 
2210
2218
  CUSTOM_COMPONENTS: dict[str, CustomComponent] = {}
2211
2219
 
@@ -766,6 +766,12 @@ class EnvironmentVariables:
766
766
  # Whether to run Granian in a spawn process. This enables Reflex to pick up on environment variable changes between hot reloads.
767
767
  REFLEX_STRICT_HOT_RELOAD: EnvVar[bool] = env_var(False)
768
768
 
769
+ # The path to the reflex log file. If not set, the log file will be stored in the reflex user directory.
770
+ REFLEX_LOG_FILE: EnvVar[Path | None] = env_var(None)
771
+
772
+ # Enable full logging of debug messages to reflex user directory.
773
+ REFLEX_ENABLE_FULL_LOGGING: EnvVar[bool] = env_var(False)
774
+
769
775
 
770
776
  environment = EnvironmentVariables()
771
777
 
@@ -15,6 +15,8 @@ from rich.progress import MofNCompleteColumn, Progress, TimeElapsedColumn
15
15
  from rich.prompt import Prompt
16
16
 
17
17
  from reflex.constants import LogLevel
18
+ from reflex.constants.base import Reflex
19
+ from reflex.utils.decorator import once
18
20
 
19
21
  # Console for pretty printing.
20
22
  _console = Console()
@@ -92,6 +94,51 @@ def print(msg: str, dedupe: bool = False, **kwargs):
92
94
  _console.print(msg, **kwargs)
93
95
 
94
96
 
97
+ @once
98
+ def log_file_console():
99
+ """Create a console that logs to a file.
100
+
101
+ Returns:
102
+ A Console object that logs to a file.
103
+ """
104
+ from reflex.config import environment
105
+
106
+ if not (env_log_file := environment.REFLEX_LOG_FILE.get()):
107
+ subseconds = int((time.time() % 1) * 1000)
108
+ timestamp = time.strftime("%Y-%m-%d_%H-%M-%S") + f"_{subseconds:03d}"
109
+ log_file = Reflex.DIR / "logs" / (timestamp + ".log")
110
+ log_file.parent.mkdir(parents=True, exist_ok=True)
111
+ else:
112
+ log_file = env_log_file
113
+ if log_file.exists():
114
+ log_file.unlink()
115
+ log_file.touch()
116
+ return Console(file=log_file.open("a", encoding="utf-8"))
117
+
118
+
119
+ @once
120
+ def should_use_log_file_console() -> bool:
121
+ """Check if the log file console should be used.
122
+
123
+ Returns:
124
+ True if the log file console should be used, False otherwise.
125
+ """
126
+ from reflex.config import environment
127
+
128
+ return environment.REFLEX_ENABLE_FULL_LOGGING.get()
129
+
130
+
131
+ def print_to_log_file(msg: str, dedupe: bool = False, **kwargs):
132
+ """Print a message to the log file.
133
+
134
+ Args:
135
+ msg: The message to print.
136
+ dedupe: If True, suppress multiple console logs of print message.
137
+ kwargs: Keyword arguments to pass to the print function.
138
+ """
139
+ log_file_console().print(msg, **kwargs)
140
+
141
+
95
142
  def debug(msg: str, dedupe: bool = False, **kwargs):
96
143
  """Print a debug message.
97
144
 
@@ -110,6 +157,8 @@ def debug(msg: str, dedupe: bool = False, **kwargs):
110
157
  progress.console.print(msg_, **kwargs)
111
158
  else:
112
159
  print(msg_, **kwargs)
160
+ if should_use_log_file_console() and kwargs.pop("progress", None) is None:
161
+ print_to_log_file(f"[purple]Debug: {msg}[/purple]", **kwargs)
113
162
 
114
163
 
115
164
  def info(msg: str, dedupe: bool = False, **kwargs):
@@ -126,6 +175,8 @@ def info(msg: str, dedupe: bool = False, **kwargs):
126
175
  return
127
176
  _EMITTED_INFO.add(msg)
128
177
  print(f"[cyan]Info: {msg}[/cyan]", **kwargs)
178
+ if should_use_log_file_console():
179
+ print_to_log_file(f"[cyan]Info: {msg}[/cyan]", **kwargs)
129
180
 
130
181
 
131
182
  def success(msg: str, dedupe: bool = False, **kwargs):
@@ -142,6 +193,8 @@ def success(msg: str, dedupe: bool = False, **kwargs):
142
193
  return
143
194
  _EMITTED_SUCCESS.add(msg)
144
195
  print(f"[green]Success: {msg}[/green]", **kwargs)
196
+ if should_use_log_file_console():
197
+ print_to_log_file(f"[green]Success: {msg}[/green]", **kwargs)
145
198
 
146
199
 
147
200
  def log(msg: str, dedupe: bool = False, **kwargs):
@@ -158,6 +211,8 @@ def log(msg: str, dedupe: bool = False, **kwargs):
158
211
  return
159
212
  _EMITTED_LOGS.add(msg)
160
213
  _console.log(msg, **kwargs)
214
+ if should_use_log_file_console():
215
+ print_to_log_file(msg, **kwargs)
161
216
 
162
217
 
163
218
  def rule(title: str, **kwargs):
@@ -184,6 +239,8 @@ def warn(msg: str, dedupe: bool = False, **kwargs):
184
239
  return
185
240
  _EMIITED_WARNINGS.add(msg)
186
241
  print(f"[orange1]Warning: {msg}[/orange1]", **kwargs)
242
+ if should_use_log_file_console():
243
+ print_to_log_file(f"[orange1]Warning: {msg}[/orange1]", **kwargs)
187
244
 
188
245
 
189
246
  def _get_first_non_framework_frame() -> FrameType | None:
@@ -248,6 +305,8 @@ def deprecate(
248
305
  )
249
306
  if _LOG_LEVEL <= LogLevel.WARNING:
250
307
  print(f"[yellow]DeprecationWarning: {msg}[/yellow]", **kwargs)
308
+ if should_use_log_file_console():
309
+ print_to_log_file(f"[yellow]DeprecationWarning: {msg}[/yellow]", **kwargs)
251
310
  if dedupe:
252
311
  _EMITTED_DEPRECATION_WARNINGS.add(dedupe_key)
253
312
 
@@ -266,6 +325,8 @@ def error(msg: str, dedupe: bool = False, **kwargs):
266
325
  return
267
326
  _EMITTED_ERRORS.add(msg)
268
327
  print(f"[red]{msg}[/red]", **kwargs)
328
+ if should_use_log_file_console():
329
+ print_to_log_file(f"[red]{msg}[/red]", **kwargs)
269
330
 
270
331
 
271
332
  def ask(
@@ -12,6 +12,7 @@ import subprocess
12
12
  import sys
13
13
  from collections.abc import Sequence
14
14
  from pathlib import Path
15
+ from typing import NamedTuple, TypedDict
15
16
  from urllib.parse import urljoin
16
17
 
17
18
  import psutil
@@ -27,26 +28,102 @@ from reflex.utils.prerequisites import get_web_dir
27
28
  frontend_process = None
28
29
 
29
30
 
30
- def detect_package_change(json_file_path: Path) -> str:
31
- """Calculates the SHA-256 hash of a JSON file and returns it as a hexadecimal string.
31
+ def get_package_json_and_hash(package_json_path: Path) -> tuple[PackageJson, str]:
32
+ """Get the content of package.json and its hash.
32
33
 
33
34
  Args:
34
- json_file_path: The path to the JSON file to be hashed.
35
+ package_json_path: The path to the package.json file.
35
36
 
36
37
  Returns:
37
- str: The SHA-256 hash of the JSON file as a hexadecimal string.
38
-
39
- Example:
40
- >>> detect_package_change("package.json")
41
- 'a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2'
38
+ A tuple containing the content of package.json as a dictionary and its SHA-256 hash.
42
39
  """
43
- with json_file_path.open("r") as file:
40
+ with package_json_path.open("r") as file:
44
41
  json_data = json.load(file)
45
42
 
46
43
  # Calculate the hash
47
44
  json_string = json.dumps(json_data, sort_keys=True)
48
45
  hash_object = hashlib.sha256(json_string.encode())
49
- return hash_object.hexdigest()
46
+ return (json_data, hash_object.hexdigest())
47
+
48
+
49
+ class PackageJson(TypedDict):
50
+ """package.json content."""
51
+
52
+ dependencies: dict[str, str]
53
+ devDependencies: dict[str, str]
54
+
55
+
56
+ class Change(NamedTuple):
57
+ """A named tuple to represent a change in package dependencies."""
58
+
59
+ added: set[str]
60
+ removed: set[str]
61
+
62
+
63
+ def format_change(name: str, change: Change) -> str:
64
+ """Format the change for display.
65
+
66
+ Args:
67
+ name: The name of the change (e.g., "dependencies" or "devDependencies").
68
+ change: The Change named tuple containing added and removed packages.
69
+
70
+ Returns:
71
+ A formatted string representing the changes.
72
+ """
73
+ if not change.added and not change.removed:
74
+ return ""
75
+ added_str = ", ".join(sorted(change.added))
76
+ removed_str = ", ".join(sorted(change.removed))
77
+ change_str = f"{name}:\n"
78
+ if change.added:
79
+ change_str += f" Added: {added_str}\n"
80
+ if change.removed:
81
+ change_str += f" Removed: {removed_str}\n"
82
+ return change_str.strip()
83
+
84
+
85
+ def get_different_packages(
86
+ old_package_json_content: PackageJson,
87
+ new_package_json_content: PackageJson,
88
+ ) -> tuple[Change, Change]:
89
+ """Get the packages that are different between two package JSON contents.
90
+
91
+ Args:
92
+ old_package_json_content: The content of the old package JSON.
93
+ new_package_json_content: The content of the new package JSON.
94
+
95
+ Returns:
96
+ A tuple containing two `Change` named tuples:
97
+ - The first `Change` contains the changes in the `dependencies` section.
98
+ - The second `Change` contains the changes in the `devDependencies` section.
99
+ """
100
+
101
+ def get_changes(old: dict[str, str], new: dict[str, str]) -> Change:
102
+ """Get the changes between two dictionaries.
103
+
104
+ Args:
105
+ old: The old dictionary of packages.
106
+ new: The new dictionary of packages.
107
+
108
+ Returns:
109
+ A `Change` named tuple containing the added and removed packages.
110
+ """
111
+ old_keys = set(old.keys())
112
+ new_keys = set(new.keys())
113
+ added = new_keys - old_keys
114
+ removed = old_keys - new_keys
115
+ return Change(added=added, removed=removed)
116
+
117
+ dependencies_change = get_changes(
118
+ old_package_json_content.get("dependencies", {}),
119
+ new_package_json_content.get("dependencies", {}),
120
+ )
121
+ dev_dependencies_change = get_changes(
122
+ old_package_json_content.get("devDependencies", {}),
123
+ new_package_json_content.get("devDependencies", {}),
124
+ )
125
+
126
+ return dependencies_change, dev_dependencies_change
50
127
 
51
128
 
52
129
  def kill(proc_pid: int):
@@ -86,7 +163,7 @@ def run_process_and_launch_url(
86
163
  from reflex.utils import processes
87
164
 
88
165
  json_file_path = get_web_dir() / constants.PackageJson.PATH
89
- last_hash = detect_package_change(json_file_path)
166
+ last_content, last_hash = get_package_json_and_hash(json_file_path)
90
167
  process = None
91
168
  first_run = True
92
169
 
@@ -105,6 +182,18 @@ def run_process_and_launch_url(
105
182
  frontend_process = process
106
183
  if process.stdout:
107
184
  for line in processes.stream_logs("Starting frontend", process):
185
+ new_content, new_hash = get_package_json_and_hash(json_file_path)
186
+ if new_hash != last_hash:
187
+ dependencies_change, dev_dependencies_change = (
188
+ get_different_packages(last_content, new_content)
189
+ )
190
+ last_content, last_hash = new_content, new_hash
191
+ console.info(
192
+ "Detected changes in package.json.\n"
193
+ + format_change("Dependencies", dependencies_change)
194
+ + format_change("Dev Dependencies", dev_dependencies_change)
195
+ )
196
+
108
197
  match = re.search(constants.Next.FRONTEND_LISTENING_REGEX, line)
109
198
  if match:
110
199
  if first_run:
@@ -119,22 +208,8 @@ def run_process_and_launch_url(
119
208
  notify_backend()
120
209
  first_run = False
121
210
  else:
122
- console.print("New packages detected: Updating app...")
123
- else:
124
- if any(
125
- x in line for x in ("bin executable does not exist on disk",)
126
- ):
127
- console.error(
128
- "Try setting `REFLEX_USE_NPM=1` and re-running `reflex init` and `reflex run` to use npm instead of bun:\n"
129
- "`REFLEX_USE_NPM=1 reflex init`\n"
130
- "`REFLEX_USE_NPM=1 reflex run`"
131
- )
132
- new_hash = detect_package_change(json_file_path)
133
- if new_hash != last_hash:
134
- last_hash = new_hash
135
- kill(process.pid)
136
- process = None
137
- break # for line in process.stdout
211
+ console.print("Frontend is restarting...")
212
+
138
213
  if process is not None:
139
214
  break # while True
140
215
 
@@ -4,6 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  import asyncio
6
6
  import dataclasses
7
+ import importlib.metadata
7
8
  import multiprocessing
8
9
  import platform
9
10
  import warnings
@@ -76,6 +77,18 @@ def get_cpu_count() -> int:
76
77
  return multiprocessing.cpu_count()
77
78
 
78
79
 
80
+ def get_reflex_enterprise_version() -> str | None:
81
+ """Get the version of reflex-enterprise if installed.
82
+
83
+ Returns:
84
+ The version string if installed, None if not installed.
85
+ """
86
+ try:
87
+ return importlib.metadata.version("reflex-enterprise")
88
+ except importlib.metadata.PackageNotFoundError:
89
+ return None
90
+
91
+
79
92
  def get_memory() -> int:
80
93
  """Get the total memory in MB.
81
94
 
@@ -113,6 +126,7 @@ class _Properties(TypedDict):
113
126
  python_version: str
114
127
  node_version: str | None
115
128
  bun_version: str | None
129
+ reflex_enterprise_version: str | None
116
130
  cpu_count: int
117
131
  memory: int
118
132
  cpu_info: dict
@@ -166,6 +180,7 @@ def _get_event_defaults() -> _DefaultEvent | None:
166
180
  "bun_version": (
167
181
  str(bun_version) if (bun_version := get_bun_version()) else None
168
182
  ),
183
+ "reflex_enterprise_version": get_reflex_enterprise_version(),
169
184
  "cpu_count": get_cpu_count(),
170
185
  "memory": get_memory(),
171
186
  "cpu_info": dataclasses.asdict(cpuinfo) if cpuinfo else {},