reflex 0.6.5a3__tar.gz → 0.6.6a1__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.5a3 → reflex-0.6.6a1}/PKG-INFO +3 -2
  2. {reflex-0.6.5a3 → reflex-0.6.6a1}/pyproject.toml +4 -3
  3. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/web/utils/state.js +15 -1
  4. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/__init__.py +3 -1
  5. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/__init__.pyi +3 -0
  6. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/app.py +4 -2
  7. reflex-0.6.6a1/reflex/assets.py +95 -0
  8. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/base.py +2 -2
  9. reflex-0.6.6a1/reflex/components/base/error_boundary.py +155 -0
  10. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/error_boundary.pyi +3 -4
  11. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/component.py +29 -7
  12. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/cond.py +8 -0
  13. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/datadisplay/code.py +1 -1
  14. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/datadisplay/logo.py +26 -13
  15. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/__init__.pyi +2 -0
  16. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/__init__.py +1 -0
  17. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/__init__.pyi +3 -0
  18. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/forms.py +1 -0
  19. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/forms.pyi +1 -0
  20. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/moment/moment.py +4 -3
  21. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/moment/moment.pyi +12 -2
  22. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/primitives/drawer.py +5 -23
  23. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/base.py +3 -0
  24. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/segmented_control.py +3 -1
  25. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/segmented_control.pyi +7 -2
  26. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/text_field.py +3 -0
  27. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/text_field.pyi +4 -0
  28. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/sonner/toast.py +23 -12
  29. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/sonner/toast.pyi +6 -6
  30. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/config.py +60 -9
  31. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/constants/base.py +12 -0
  32. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/constants/installer.py +3 -3
  33. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/constants/style.py +1 -1
  34. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/event.py +22 -5
  35. reflex-0.6.6a1/reflex/experimental/assets.py +37 -0
  36. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/reflex.py +15 -34
  37. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/state.py +81 -23
  38. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/exceptions.py +4 -0
  39. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/prerequisites.py +174 -40
  40. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/redir.py +13 -4
  41. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/serializers.py +52 -1
  42. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/telemetry.py +2 -1
  43. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/types.py +52 -1
  44. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/vars/base.py +18 -4
  45. reflex-0.6.6a1/reflex/vars/function.py +479 -0
  46. reflex-0.6.5a3/reflex/components/base/error_boundary.py +0 -92
  47. reflex-0.6.5a3/reflex/experimental/assets.py +0 -59
  48. reflex-0.6.5a3/reflex/vars/function.py +0 -233
  49. {reflex-0.6.5a3 → reflex-0.6.6a1}/LICENSE +0 -0
  50. {reflex-0.6.5a3 → reflex-0.6.6a1}/README.md +0 -0
  51. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  52. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  53. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/apps/blank/code/blank.py +0 -0
  54. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  55. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
  56. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
  57. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
  58. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +0 -0
  59. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
  60. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  61. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
  62. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  63. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
  64. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  65. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
  66. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  67. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
  68. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  69. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
  70. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  71. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
  72. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
  73. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  74. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/web/.gitignore +0 -0
  75. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  76. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/web/components/shiki/code.js +0 -0
  77. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/web/jsconfig.json +0 -0
  78. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/web/next.config.js +0 -0
  79. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/web/postcss.config.js +0 -0
  80. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/web/styles/tailwind.css +0 -0
  81. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/web/utils/client_side_routing.js +0 -0
  82. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  83. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  84. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/web/utils/helpers/paste.js +0 -0
  85. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/web/utils/helpers/range.js +0 -0
  86. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  87. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/__main__.py +0 -0
  88. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/admin.py +0 -0
  89. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/app_mixins/__init__.py +0 -0
  90. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/app_mixins/lifespan.py +0 -0
  91. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/app_mixins/middleware.py +0 -0
  92. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/app_mixins/mixin.py +0 -0
  93. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/app_module_for_backend.py +0 -0
  94. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/compiler/__init__.py +0 -0
  95. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/compiler/compiler.py +0 -0
  96. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/compiler/templates.py +0 -0
  97. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/compiler/utils.py +0 -0
  98. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/__init__.py +0 -0
  99. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/__init__.pyi +0 -0
  100. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/__init__.py +0 -0
  101. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/__init__.pyi +0 -0
  102. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/app_wrap.py +0 -0
  103. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/app_wrap.pyi +0 -0
  104. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/bare.py +0 -0
  105. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/body.py +0 -0
  106. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/body.pyi +0 -0
  107. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/document.py +0 -0
  108. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/document.pyi +0 -0
  109. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/fragment.py +0 -0
  110. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/fragment.pyi +0 -0
  111. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/head.py +0 -0
  112. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/head.pyi +0 -0
  113. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/link.py +0 -0
  114. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/link.pyi +0 -0
  115. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/meta.py +0 -0
  116. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/meta.pyi +0 -0
  117. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/script.py +0 -0
  118. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/base/script.pyi +0 -0
  119. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/__init__.py +0 -0
  120. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/__init__.pyi +0 -0
  121. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/banner.py +0 -0
  122. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/banner.pyi +0 -0
  123. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/breakpoints.py +0 -0
  124. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/client_side_routing.py +0 -0
  125. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/client_side_routing.pyi +0 -0
  126. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/clipboard.py +0 -0
  127. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/clipboard.pyi +0 -0
  128. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/colors.py +0 -0
  129. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/debounce.py +0 -0
  130. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/debounce.pyi +0 -0
  131. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/foreach.py +0 -0
  132. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/html.py +0 -0
  133. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/html.pyi +0 -0
  134. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/layout/__init__.py +0 -0
  135. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/match.py +0 -0
  136. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/responsive.py +0 -0
  137. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/upload.py +0 -0
  138. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/core/upload.pyi +0 -0
  139. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/datadisplay/__init__.py +0 -0
  140. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/datadisplay/__init__.pyi +0 -0
  141. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/datadisplay/code.pyi +0 -0
  142. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/datadisplay/dataeditor.py +0 -0
  143. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/datadisplay/dataeditor.pyi +0 -0
  144. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/datadisplay/shiki_code_block.py +0 -0
  145. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
  146. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/dynamic.py +0 -0
  147. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/__init__.py +0 -0
  148. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/constants/__init__.py +0 -0
  149. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/constants/html.py +0 -0
  150. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/constants/react.py +0 -0
  151. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/constants/reflex.py +0 -0
  152. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/element.py +0 -0
  153. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/element.pyi +0 -0
  154. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/base.py +0 -0
  155. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/base.pyi +0 -0
  156. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/inline.py +0 -0
  157. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/inline.pyi +0 -0
  158. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/media.py +0 -0
  159. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/media.pyi +0 -0
  160. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/metadata.py +0 -0
  161. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/metadata.pyi +0 -0
  162. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/other.py +0 -0
  163. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/other.pyi +0 -0
  164. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/scripts.py +0 -0
  165. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/scripts.pyi +0 -0
  166. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/sectioning.py +0 -0
  167. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/sectioning.pyi +0 -0
  168. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/tables.py +0 -0
  169. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/tables.pyi +0 -0
  170. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/typography.py +0 -0
  171. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/el/elements/typography.pyi +0 -0
  172. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/gridjs/__init__.py +0 -0
  173. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/gridjs/datatable.py +0 -0
  174. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/gridjs/datatable.pyi +0 -0
  175. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/literals.py +0 -0
  176. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/lucide/__init__.py +0 -0
  177. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/lucide/icon.py +0 -0
  178. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/lucide/icon.pyi +0 -0
  179. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/markdown/__init__.py +0 -0
  180. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/markdown/markdown.py +0 -0
  181. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/markdown/markdown.pyi +0 -0
  182. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/moment/__init__.py +0 -0
  183. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/next/__init__.py +0 -0
  184. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/next/base.py +0 -0
  185. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/next/base.pyi +0 -0
  186. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/next/image.py +0 -0
  187. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/next/image.pyi +0 -0
  188. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/next/link.py +0 -0
  189. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/next/link.pyi +0 -0
  190. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/next/video.py +0 -0
  191. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/next/video.pyi +0 -0
  192. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/plotly/__init__.py +0 -0
  193. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/plotly/plotly.py +0 -0
  194. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/plotly/plotly.pyi +0 -0
  195. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/props.py +0 -0
  196. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/__init__.py +0 -0
  197. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/__init__.pyi +0 -0
  198. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/primitives/__init__.py +0 -0
  199. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/primitives/__init__.pyi +0 -0
  200. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/primitives/accordion.py +0 -0
  201. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/primitives/accordion.pyi +0 -0
  202. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/primitives/base.py +0 -0
  203. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/primitives/base.pyi +0 -0
  204. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/primitives/drawer.pyi +0 -0
  205. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/primitives/form.py +0 -0
  206. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/primitives/form.pyi +0 -0
  207. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/primitives/progress.py +0 -0
  208. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/primitives/progress.pyi +0 -0
  209. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/primitives/slider.py +0 -0
  210. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/primitives/slider.pyi +0 -0
  211. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/__init__.py +0 -0
  212. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/__init__.pyi +0 -0
  213. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/base.pyi +0 -0
  214. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/color_mode.py +0 -0
  215. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/color_mode.pyi +0 -0
  216. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/__init__.py +0 -0
  217. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/__init__.pyi +0 -0
  218. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
  219. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
  220. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  221. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
  222. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/avatar.py +0 -0
  223. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/avatar.pyi +0 -0
  224. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/badge.py +0 -0
  225. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/badge.pyi +0 -0
  226. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/button.py +0 -0
  227. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/button.pyi +0 -0
  228. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/callout.py +0 -0
  229. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/callout.pyi +0 -0
  230. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/card.py +0 -0
  231. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/card.pyi +0 -0
  232. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/checkbox.py +0 -0
  233. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
  234. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
  235. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
  236. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
  237. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
  238. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/context_menu.py +0 -0
  239. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
  240. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/data_list.py +0 -0
  241. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/data_list.pyi +0 -0
  242. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/dialog.py +0 -0
  243. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/dialog.pyi +0 -0
  244. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
  245. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
  246. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/hover_card.py +0 -0
  247. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
  248. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/icon_button.py +0 -0
  249. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
  250. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/inset.py +0 -0
  251. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/inset.pyi +0 -0
  252. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/popover.py +0 -0
  253. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/popover.pyi +0 -0
  254. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/progress.py +0 -0
  255. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/progress.pyi +0 -0
  256. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/radio.py +0 -0
  257. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/radio.pyi +0 -0
  258. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/radio_cards.py +0 -0
  259. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
  260. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/radio_group.py +0 -0
  261. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
  262. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  263. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
  264. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/select.py +0 -0
  265. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/select.pyi +0 -0
  266. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/separator.py +0 -0
  267. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/separator.pyi +0 -0
  268. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/skeleton.py +0 -0
  269. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
  270. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/slider.py +0 -0
  271. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/slider.pyi +0 -0
  272. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/spinner.py +0 -0
  273. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/spinner.pyi +0 -0
  274. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/switch.py +0 -0
  275. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/switch.pyi +0 -0
  276. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/table.py +0 -0
  277. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/table.pyi +0 -0
  278. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/tabs.py +0 -0
  279. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/tabs.pyi +0 -0
  280. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/text_area.py +0 -0
  281. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/text_area.pyi +0 -0
  282. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/tooltip.py +0 -0
  283. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
  284. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/__init__.py +0 -0
  285. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
  286. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/base.py +0 -0
  287. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/base.pyi +0 -0
  288. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/box.py +0 -0
  289. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/box.pyi +0 -0
  290. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/center.py +0 -0
  291. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/center.pyi +0 -0
  292. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/container.py +0 -0
  293. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/container.pyi +0 -0
  294. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/flex.py +0 -0
  295. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/flex.pyi +0 -0
  296. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/grid.py +0 -0
  297. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/grid.pyi +0 -0
  298. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/list.py +0 -0
  299. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/list.pyi +0 -0
  300. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/section.py +0 -0
  301. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/section.pyi +0 -0
  302. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/spacer.py +0 -0
  303. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
  304. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/stack.py +0 -0
  305. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/layout/stack.pyi +0 -0
  306. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/typography/__init__.py +0 -0
  307. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
  308. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/typography/base.py +0 -0
  309. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  310. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
  311. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/typography/code.py +0 -0
  312. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/typography/code.pyi +0 -0
  313. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/typography/heading.py +0 -0
  314. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/typography/heading.pyi +0 -0
  315. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/typography/link.py +0 -0
  316. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/typography/link.pyi +0 -0
  317. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/typography/text.py +0 -0
  318. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/radix/themes/typography/text.pyi +0 -0
  319. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/react_player/__init__.py +0 -0
  320. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/react_player/audio.py +0 -0
  321. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/react_player/audio.pyi +0 -0
  322. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/react_player/react_player.py +0 -0
  323. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/react_player/react_player.pyi +0 -0
  324. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/react_player/video.py +0 -0
  325. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/react_player/video.pyi +0 -0
  326. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/recharts/__init__.py +0 -0
  327. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/recharts/__init__.pyi +0 -0
  328. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/recharts/cartesian.py +0 -0
  329. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/recharts/cartesian.pyi +0 -0
  330. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/recharts/charts.py +0 -0
  331. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/recharts/charts.pyi +0 -0
  332. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/recharts/general.py +0 -0
  333. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/recharts/general.pyi +0 -0
  334. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/recharts/polar.py +0 -0
  335. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/recharts/polar.pyi +0 -0
  336. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/recharts/recharts.py +0 -0
  337. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/recharts/recharts.pyi +0 -0
  338. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/sonner/__init__.py +0 -0
  339. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/suneditor/__init__.py +0 -0
  340. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/suneditor/editor.py +0 -0
  341. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/suneditor/editor.pyi +0 -0
  342. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/tags/__init__.py +0 -0
  343. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/tags/cond_tag.py +0 -0
  344. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/tags/iter_tag.py +0 -0
  345. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/tags/match_tag.py +0 -0
  346. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/tags/tag.py +0 -0
  347. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/components/tags/tagless.py +0 -0
  348. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/constants/__init__.py +0 -0
  349. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/constants/colors.py +0 -0
  350. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/constants/compiler.py +0 -0
  351. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/constants/config.py +0 -0
  352. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/constants/custom_components.py +0 -0
  353. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/constants/event.py +0 -0
  354. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/constants/route.py +0 -0
  355. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/constants/state.py +0 -0
  356. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/constants/utils.py +0 -0
  357. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/custom_components/__init__.py +0 -0
  358. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/custom_components/custom_components.py +0 -0
  359. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/experimental/__init__.py +0 -0
  360. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/experimental/client_state.py +0 -0
  361. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/experimental/hooks.py +0 -0
  362. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/experimental/layout.py +0 -0
  363. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/experimental/layout.pyi +0 -0
  364. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/experimental/misc.py +0 -0
  365. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/istate/__init__.py +0 -0
  366. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/istate/data.py +0 -0
  367. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/istate/dynamic.py +0 -0
  368. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/istate/proxy.py +0 -0
  369. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/istate/storage.py +0 -0
  370. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/istate/wrappers.py +0 -0
  371. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/middleware/__init__.py +0 -0
  372. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/middleware/hydrate_middleware.py +0 -0
  373. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/middleware/middleware.py +0 -0
  374. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/model.py +0 -0
  375. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/page.py +0 -0
  376. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/route.py +0 -0
  377. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/style.py +0 -0
  378. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/testing.py +0 -0
  379. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/__init__.py +0 -0
  380. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/build.py +0 -0
  381. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/codespaces.py +0 -0
  382. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/compat.py +0 -0
  383. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/console.py +0 -0
  384. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/exec.py +0 -0
  385. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/export.py +0 -0
  386. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/format.py +0 -0
  387. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/imports.py +0 -0
  388. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/lazy_loader.py +0 -0
  389. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/net.py +0 -0
  390. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/path_ops.py +0 -0
  391. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/processes.py +0 -0
  392. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/pyi_generator.py +0 -0
  393. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/utils/registry.py +0 -0
  394. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/vars/__init__.py +0 -0
  395. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/vars/number.py +0 -0
  396. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/vars/object.py +0 -0
  397. {reflex-0.6.5a3 → reflex-0.6.6a1}/reflex/vars/sequence.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflex
3
- Version: 0.6.5a3
3
+ Version: 0.6.6a1
4
4
  Summary: Web apps in pure Python.
5
5
  Home-page: https://reflex.dev
6
6
  License: Apache-2.0
@@ -33,7 +33,7 @@ Requires-Dist: python-multipart (>=0.0.5,<0.1)
33
33
  Requires-Dist: python-socketio (>=5.7.0,<6.0)
34
34
  Requires-Dist: redis (>=4.3.5,<6.0)
35
35
  Requires-Dist: reflex-chakra (>=0.6.0)
36
- Requires-Dist: reflex-hosting-cli (>=0.1.15,<2.0)
36
+ Requires-Dist: reflex-hosting-cli (>=0.1.17,<2.0)
37
37
  Requires-Dist: rich (>=13.0.0,<14.0)
38
38
  Requires-Dist: setuptools (>=75.0)
39
39
  Requires-Dist: sqlmodel (>=0.0.14,<0.1)
@@ -41,6 +41,7 @@ Requires-Dist: starlette-admin (>=0.11.0,<1.0)
41
41
  Requires-Dist: tomlkit (>=0.12.4,<1.0)
42
42
  Requires-Dist: twine (>=4.0.0,<6.0)
43
43
  Requires-Dist: typer (>=0.4.2,<1.0)
44
+ Requires-Dist: typing_extensions (>=4.6.0)
44
45
  Requires-Dist: uvicorn (>=0.20.0)
45
46
  Requires-Dist: wheel (>=0.42.0,<1.0)
46
47
  Requires-Dist: wrapt (>=1.11.0,<2.0) ; python_version < "3.11"
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "reflex"
3
- version = "0.6.5a3"
3
+ version = "0.6.6a1"
4
4
  description = "Web apps in pure Python."
5
5
  license = "Apache-2.0"
6
6
  authors = [
@@ -49,7 +49,7 @@ wrapt = [
49
49
  {version = ">=1.11.0,<2.0", python = "<3.11"},
50
50
  ]
51
51
  packaging = ">=23.1,<25.0"
52
- reflex-hosting-cli = ">=0.1.15,<2.0"
52
+ reflex-hosting-cli = ">=0.1.17,<2.0"
53
53
  charset-normalizer = ">=3.3.2,<4.0"
54
54
  wheel = ">=0.42.0,<1.0"
55
55
  build = ">=1.0.3,<2.0"
@@ -59,6 +59,7 @@ twine = ">=4.0.0,<6.0"
59
59
  tomlkit = ">=0.12.4,<1.0"
60
60
  lazy_loader = ">=0.4"
61
61
  reflex-chakra = ">=0.6.0"
62
+ typing_extensions = ">=4.6.0"
62
63
 
63
64
  [tool.poetry.group.dev.dependencies]
64
65
  pytest = ">=7.1.2,<9.0"
@@ -69,7 +70,7 @@ dill = ">=0.3.8"
69
70
  toml = ">=0.10.2,<1.0"
70
71
  pytest-asyncio = ">=0.24.0"
71
72
  pytest-cov = ">=4.0.0,<7.0"
72
- ruff = "0.7.2"
73
+ ruff = "0.7.4"
73
74
  pandas = ">=2.1.1,<3.0"
74
75
  pillow = ">=10.0.0,<12.0"
75
76
  plotly = ">=5.13.0,<6.0"
@@ -705,6 +705,11 @@ export const useEventLoop = (
705
705
  _e.stopPropagation();
706
706
  }
707
707
  const combined_name = events.map((e) => e.name).join("+++");
708
+ if (event_actions?.temporal) {
709
+ if (!socket.current || !socket.current.connected) {
710
+ return; // don't queue when the backend is not connected
711
+ }
712
+ }
708
713
  if (event_actions?.throttle) {
709
714
  // If throttle returns false, the events are not added to the queue.
710
715
  if (!throttle(combined_name, event_actions.throttle)) {
@@ -762,7 +767,7 @@ export const useEventLoop = (
762
767
  window.onunhandledrejection = function (event) {
763
768
  addEvents([
764
769
  Event(`${exception_state_name}.handle_frontend_exception`, {
765
- stack: event.reason.stack,
770
+ stack: event.reason?.stack,
766
771
  component_stack: "",
767
772
  }),
768
773
  ]);
@@ -837,11 +842,20 @@ export const useEventLoop = (
837
842
  }
838
843
  };
839
844
  const change_complete = () => addEvents(onLoadInternalEvent());
845
+ const change_error = () => {
846
+ // Remove cached error state from router for this page, otherwise the
847
+ // page will never send on_load events again.
848
+ if (router.components[router.pathname].error) {
849
+ delete router.components[router.pathname].error;
850
+ }
851
+ }
840
852
  router.events.on("routeChangeStart", change_start);
841
853
  router.events.on("routeChangeComplete", change_complete);
854
+ router.events.on("routeChangeError", change_error);
842
855
  return () => {
843
856
  router.events.off("routeChangeStart", change_start);
844
857
  router.events.off("routeChangeComplete", change_complete);
858
+ router.events.off("routeChangeError", change_error);
845
859
  };
846
860
  }, [router]);
847
861
 
@@ -264,6 +264,7 @@ _MAPPING: dict = {
264
264
  "experimental": ["_x"],
265
265
  "admin": ["AdminDash"],
266
266
  "app": ["App", "UploadFile"],
267
+ "assets": ["asset"],
267
268
  "base": ["Base"],
268
269
  "components.component": [
269
270
  "Component",
@@ -298,6 +299,7 @@ _MAPPING: dict = {
298
299
  "components.moment": ["MomentDelta", "moment"],
299
300
  "config": ["Config", "DBConfig"],
300
301
  "constants": ["Env"],
302
+ "constants.colors": ["Color"],
301
303
  "event": [
302
304
  "EventChain",
303
305
  "EventHandler",
@@ -338,7 +340,7 @@ _MAPPING: dict = {
338
340
  ],
339
341
  "istate.wrappers": ["get_state"],
340
342
  "style": ["Style", "toggle_color_mode"],
341
- "utils.imports": ["ImportVar"],
343
+ "utils.imports": ["ImportDict", "ImportVar"],
342
344
  "utils.serializers": ["serializer"],
343
345
  "vars": ["Var", "field", "Field"],
344
346
  }
@@ -19,6 +19,7 @@ from . import vars as vars
19
19
  from .admin import AdminDash as AdminDash
20
20
  from .app import App as App
21
21
  from .app import UploadFile as UploadFile
22
+ from .assets import asset as asset
22
23
  from .base import Base as Base
23
24
  from .components import el as el
24
25
  from .components import lucide as lucide
@@ -152,6 +153,7 @@ from .components.suneditor import editor as editor
152
153
  from .config import Config as Config
153
154
  from .config import DBConfig as DBConfig
154
155
  from .constants import Env as Env
156
+ from .constants.colors import Color as Color
155
157
  from .event import EventChain as EventChain
156
158
  from .event import EventHandler as EventHandler
157
159
  from .event import background as background
@@ -192,6 +194,7 @@ from .state import dynamic as dynamic
192
194
  from .state import var as var
193
195
  from .style import Style as Style
194
196
  from .style import toggle_color_mode as toggle_color_mode
197
+ from .utils.imports import ImportDict as ImportDict
195
198
  from .utils.imports import ImportVar as ImportVar
196
199
  from .utils.serializers import serializer as serializer
197
200
  from .vars import Field as Field
@@ -850,10 +850,9 @@ class App(MiddlewareMixin, LifespanMixin):
850
850
  if self.theme is not None:
851
851
  # If a theme component was provided, wrap the app with it
852
852
  app_wrappers[(20, "Theme")] = self.theme
853
- # Fix #2992 by removing the top-level appearance prop
854
- self.theme.appearance = None
855
853
 
856
854
  for route in self.unevaluated_pages:
855
+ console.debug(f"Evaluating page: {route}")
857
856
  self._compile_page(route)
858
857
 
859
858
  # Add the optional endpoints (_upload)
@@ -1006,6 +1005,9 @@ class App(MiddlewareMixin, LifespanMixin):
1006
1005
  compile_results.append(
1007
1006
  compiler.compile_contexts(self.state, self.theme),
1008
1007
  )
1008
+ if self.theme is not None:
1009
+ # Fix #2992 by removing the top-level appearance prop
1010
+ self.theme.appearance = None
1009
1011
  progress.advance(task)
1010
1012
 
1011
1013
  # Compile the app root.
@@ -0,0 +1,95 @@
1
+ """Helper functions for adding assets to the app."""
2
+
3
+ import inspect
4
+ from pathlib import Path
5
+ from typing import Optional
6
+
7
+ from reflex import constants
8
+ from reflex.utils.exec import is_backend_only
9
+
10
+
11
+ def asset(
12
+ path: str,
13
+ shared: bool = False,
14
+ subfolder: Optional[str] = None,
15
+ _stack_level: int = 1,
16
+ ) -> str:
17
+ """Add an asset to the app, either shared as a symlink or local.
18
+
19
+ Shared/External/Library assets:
20
+ Place the file next to your including python file.
21
+ Links the file to the app's external assets directory.
22
+
23
+ Example:
24
+ ```python
25
+ # my_custom_javascript.js is a shared asset located next to the including python file.
26
+ rx.script(src=rx.asset(path="my_custom_javascript.js", shared=True))
27
+ rx.image(src=rx.asset(path="test_image.png", shared=True, subfolder="subfolder"))
28
+ ```
29
+
30
+ Local/Internal assets:
31
+ Place the file in the app's assets/ directory.
32
+
33
+ Example:
34
+ ```python
35
+ # local_image.png is an asset located in the app's assets/ directory. It cannot be shared when developing a library.
36
+ rx.image(src=rx.asset(path="local_image.png"))
37
+ ```
38
+
39
+ Args:
40
+ path: The relative path of the asset.
41
+ subfolder: The directory to place the shared asset in.
42
+ shared: Whether to expose the asset to other apps.
43
+ _stack_level: The stack level to determine the calling file, defaults to
44
+ the immediate caller 1. When using rx.asset via a helper function,
45
+ increase this number for each helper function in the stack.
46
+
47
+ Raises:
48
+ FileNotFoundError: If the file does not exist.
49
+ ValueError: If subfolder is provided for local assets.
50
+
51
+ Returns:
52
+ The relative URL to the asset.
53
+ """
54
+ assets = constants.Dirs.APP_ASSETS
55
+ backend_only = is_backend_only()
56
+
57
+ # Local asset handling
58
+ if not shared:
59
+ cwd = Path.cwd()
60
+ src_file_local = cwd / assets / path
61
+ if subfolder is not None:
62
+ raise ValueError("Subfolder is not supported for local assets.")
63
+ if not backend_only and not src_file_local.exists():
64
+ raise FileNotFoundError(f"File not found: {src_file_local}")
65
+ return f"/{path}"
66
+
67
+ # Shared asset handling
68
+ # Determine the file by which the asset is exposed.
69
+ frame = inspect.stack()[_stack_level]
70
+ calling_file = frame.filename
71
+ module = inspect.getmodule(frame[0])
72
+ assert module is not None
73
+
74
+ external = constants.Dirs.EXTERNAL_APP_ASSETS
75
+ src_file_shared = Path(calling_file).parent / path
76
+ if not src_file_shared.exists():
77
+ raise FileNotFoundError(f"File not found: {src_file_shared}")
78
+
79
+ caller_module_path = module.__name__.replace(".", "/")
80
+ subfolder = f"{caller_module_path}/{subfolder}" if subfolder else caller_module_path
81
+
82
+ # Symlink the asset to the app's external assets directory if running frontend.
83
+ if not backend_only:
84
+ # Create the asset folder in the currently compiling app.
85
+ asset_folder = Path.cwd() / assets / external / subfolder
86
+ asset_folder.mkdir(parents=True, exist_ok=True)
87
+
88
+ dst_file = asset_folder / path
89
+
90
+ if not dst_file.exists() and (
91
+ not dst_file.is_symlink() or dst_file.resolve() != src_file_shared.resolve()
92
+ ):
93
+ dst_file.symlink_to(src_file_shared)
94
+
95
+ return f"/{external}/{subfolder}/{path}"
@@ -130,8 +130,8 @@ class Base(BaseModel): # pyright: ignore [reportUnboundVariable]
130
130
  Returns:
131
131
  The value of the field.
132
132
  """
133
- if isinstance(key, str) and key in self.__fields__:
133
+ if isinstance(key, str):
134
134
  # Seems like this function signature was wrong all along?
135
135
  # If the user wants a field that we know of, get it and pass it off to _get_value
136
- key = getattr(self, key)
136
+ return getattr(self, key, key)
137
137
  return key
@@ -0,0 +1,155 @@
1
+ """A React Error Boundary component that catches unhandled frontend exceptions."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Dict, Tuple
6
+
7
+ from reflex.components.component import Component
8
+ from reflex.components.datadisplay.logo import svg_logo
9
+ from reflex.components.el import a, button, details, div, h2, hr, p, pre, summary
10
+ from reflex.event import EventHandler, set_clipboard
11
+ from reflex.state import FrontendEventExceptionState
12
+ from reflex.vars.base import Var
13
+ from reflex.vars.function import ArgsFunctionOperation
14
+
15
+
16
+ def on_error_spec(
17
+ error: Var[Dict[str, str]], info: Var[Dict[str, str]]
18
+ ) -> Tuple[Var[str], Var[str]]:
19
+ """The spec for the on_error event handler.
20
+
21
+ Args:
22
+ error: The error message.
23
+ info: Additional information about the error.
24
+
25
+ Returns:
26
+ The arguments for the event handler.
27
+ """
28
+ return (
29
+ error.stack,
30
+ info.componentStack,
31
+ )
32
+
33
+
34
+ class ErrorBoundary(Component):
35
+ """A React Error Boundary component that catches unhandled frontend exceptions."""
36
+
37
+ library = "react-error-boundary"
38
+ tag = "ErrorBoundary"
39
+
40
+ # Fired when the boundary catches an error.
41
+ on_error: EventHandler[on_error_spec]
42
+
43
+ # Rendered instead of the children when an error is caught.
44
+ fallback_render: Var[Component]
45
+
46
+ @classmethod
47
+ def create(cls, *children, **props):
48
+ """Create an ErrorBoundary component.
49
+
50
+ Args:
51
+ *children: The children of the component.
52
+ **props: The props of the component.
53
+
54
+ Returns:
55
+ The ErrorBoundary component.
56
+ """
57
+ if "on_error" not in props:
58
+ props["on_error"] = FrontendEventExceptionState.handle_frontend_exception
59
+ if "fallback_render" not in props:
60
+ props["fallback_render"] = ArgsFunctionOperation.create(
61
+ ("event_args",),
62
+ Var.create(
63
+ div(
64
+ div(
65
+ div(
66
+ h2(
67
+ "An error occurred while rendering this page.",
68
+ font_size="1.25rem",
69
+ font_weight="bold",
70
+ ),
71
+ p(
72
+ "This is an error with the application itself.",
73
+ opacity="0.75",
74
+ ),
75
+ details(
76
+ summary("Error message", padding="0.5rem"),
77
+ div(
78
+ div(
79
+ pre(
80
+ Var(
81
+ _js_expr="event_args.error.stack",
82
+ ),
83
+ ),
84
+ padding="0.5rem",
85
+ width="fit-content",
86
+ ),
87
+ width="100%",
88
+ max_height="50vh",
89
+ overflow="auto",
90
+ background="#000",
91
+ color="#fff",
92
+ border_radius="0.25rem",
93
+ ),
94
+ button(
95
+ "Copy",
96
+ on_click=set_clipboard(
97
+ Var(_js_expr="event_args.error.stack"),
98
+ ),
99
+ padding="0.35rem 0.75rem",
100
+ margin="0.5rem",
101
+ background="#fff",
102
+ color="#000",
103
+ border="1px solid #000",
104
+ border_radius="0.25rem",
105
+ font_weight="bold",
106
+ ),
107
+ ),
108
+ display="flex",
109
+ flex_direction="column",
110
+ gap="1rem",
111
+ max_width="50ch",
112
+ border="1px solid #888888",
113
+ border_radius="0.25rem",
114
+ padding="1rem",
115
+ ),
116
+ hr(
117
+ border_color="currentColor",
118
+ opacity="0.25",
119
+ ),
120
+ a(
121
+ div(
122
+ "Built with ",
123
+ svg_logo("currentColor"),
124
+ display="flex",
125
+ align_items="baseline",
126
+ justify_content="center",
127
+ font_family="monospace",
128
+ gap="0.5rem",
129
+ ),
130
+ href="https://reflex.dev",
131
+ ),
132
+ display="flex",
133
+ flex_direction="column",
134
+ gap="1rem",
135
+ ),
136
+ height="100%",
137
+ width="100%",
138
+ position="absolute",
139
+ display="flex",
140
+ align_items="center",
141
+ justify_content="center",
142
+ )
143
+ ),
144
+ _var_type=Component,
145
+ )
146
+ else:
147
+ props["fallback_render"] = ArgsFunctionOperation.create(
148
+ ("event_args",),
149
+ props["fallback_render"],
150
+ _var_type=Component,
151
+ )
152
+ return super().create(*children, **props)
153
+
154
+
155
+ error_boundary = ErrorBoundary.create
@@ -3,7 +3,7 @@
3
3
  # ------------------- DO NOT EDIT ----------------------
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
- from typing import Any, Dict, List, Optional, Tuple, Union, overload
6
+ from typing import Any, Dict, Optional, Tuple, Union, overload
7
7
 
8
8
  from reflex.components.component import Component
9
9
  from reflex.event import BASE_STATE, EventType
@@ -15,13 +15,12 @@ def on_error_spec(
15
15
  ) -> Tuple[Var[str], Var[str]]: ...
16
16
 
17
17
  class ErrorBoundary(Component):
18
- def add_custom_code(self) -> List[str]: ...
19
18
  @overload
20
19
  @classmethod
21
20
  def create( # type: ignore
22
21
  cls,
23
22
  *children,
24
- Fallback_component: Optional[Union[Component, Var[Component]]] = None,
23
+ fallback_render: Optional[Union[Component, Var[Component]]] = None,
25
24
  style: Optional[Style] = None,
26
25
  key: Optional[Any] = None,
27
26
  id: Optional[Any] = None,
@@ -57,7 +56,7 @@ class ErrorBoundary(Component):
57
56
  Args:
58
57
  *children: The children of the component.
59
58
  on_error: Fired when the boundary catches an error.
60
- Fallback_component: Rendered instead of the children when an error is caught.
59
+ fallback_render: Rendered instead of the children when an error is caught.
61
60
  style: The style of the component.
62
61
  key: A unique key for the component.
63
62
  id: The id for the component.
@@ -186,6 +186,23 @@ ComponentStyle = Dict[
186
186
  ComponentChild = Union[types.PrimitiveType, Var, BaseComponent]
187
187
 
188
188
 
189
+ def satisfies_type_hint(obj: Any, type_hint: Any) -> bool:
190
+ """Check if an object satisfies a type hint.
191
+
192
+ Args:
193
+ obj: The object to check.
194
+ type_hint: The type hint to check against.
195
+
196
+ Returns:
197
+ Whether the object satisfies the type hint.
198
+ """
199
+ if isinstance(obj, LiteralVar):
200
+ return types._isinstance(obj._var_value, type_hint)
201
+ if isinstance(obj, Var):
202
+ return types._issubclass(obj._var_type, type_hint)
203
+ return types._isinstance(obj, type_hint)
204
+
205
+
189
206
  class Component(BaseComponent, ABC):
190
207
  """A component with style, event trigger and other props."""
191
208
 
@@ -460,8 +477,7 @@ class Component(BaseComponent, ABC):
460
477
  )
461
478
  ) or (
462
479
  # Else just check if the passed var type is valid.
463
- not passed_types
464
- and not types._issubclass(passed_type, expected_type, value)
480
+ not passed_types and not satisfies_type_hint(value, expected_type)
465
481
  ):
466
482
  value_name = value._js_expr if isinstance(value, Var) else value
467
483
 
@@ -1904,6 +1920,11 @@ memo = custom_component
1904
1920
  class NoSSRComponent(Component):
1905
1921
  """A dynamic component that is not rendered on the server."""
1906
1922
 
1923
+ def _get_import_name(self) -> None | str:
1924
+ if not self.library:
1925
+ return None
1926
+ return f"${self.library}" if self.library.startswith("/") else self.library
1927
+
1907
1928
  def _get_imports(self) -> ParsedImportDict:
1908
1929
  """Get the imports for the component.
1909
1930
 
@@ -1917,8 +1938,9 @@ class NoSSRComponent(Component):
1917
1938
  _imports = super()._get_imports()
1918
1939
 
1919
1940
  # Do NOT import the main library/tag statically.
1920
- if self.library is not None:
1921
- _imports[self.library] = [
1941
+ import_name = self._get_import_name()
1942
+ if import_name is not None:
1943
+ _imports[import_name] = [
1922
1944
  imports.ImportVar(
1923
1945
  tag=None,
1924
1946
  render=False,
@@ -1936,10 +1958,10 @@ class NoSSRComponent(Component):
1936
1958
  opts_fragment = ", { ssr: false });"
1937
1959
 
1938
1960
  # extract the correct import name from library name
1939
- if self.library is None:
1961
+ base_import_name = self._get_import_name()
1962
+ if base_import_name is None:
1940
1963
  raise ValueError("Undefined library for NoSSRComponent")
1941
-
1942
- import_name = format.format_library_name(self.library)
1964
+ import_name = format.format_library_name(base_import_name)
1943
1965
 
1944
1966
  library_import = f"const {self.alias if self.alias else self.tag} = dynamic(() => import('{import_name}')"
1945
1967
  mod_import = (
@@ -171,6 +171,14 @@ def cond(condition: Any, c1: Any, c2: Any = None) -> Component | Var:
171
171
  )
172
172
 
173
173
 
174
+ @overload
175
+ def color_mode_cond(light: Component, dark: Component | None = None) -> Component: ... # type: ignore
176
+
177
+
178
+ @overload
179
+ def color_mode_cond(light: Any, dark: Any = None) -> Var: ...
180
+
181
+
174
182
  def color_mode_cond(light: Any, dark: Any = None) -> Var | Component:
175
183
  """Create a component or Prop based on color_mode.
176
184
 
@@ -382,7 +382,7 @@ for theme_name in dir(Theme):
382
382
  class CodeBlock(Component, MarkdownComponentMap):
383
383
  """A code block."""
384
384
 
385
- library = "react-syntax-highlighter@15.6.1"
385
+ library = "react-syntax-highlighter@15.6.0"
386
386
 
387
387
  tag = "PrismAsyncLight"
388
388
 
@@ -1,22 +1,23 @@
1
1
  """A Reflex logo component."""
2
2
 
3
+ from typing import Union
4
+
3
5
  import reflex as rx
4
6
 
5
7
 
6
- def logo(**props):
7
- """A Reflex logo.
8
+ def svg_logo(color: Union[str, rx.Var[str]] = rx.color_mode_cond("#110F1F", "white")):
9
+ """A Reflex logo SVG.
8
10
 
9
11
  Args:
10
- **props: The props to pass to the component.
12
+ color: The color of the logo.
11
13
 
12
14
  Returns:
13
- The logo component.
15
+ The Reflex logo SVG.
14
16
  """
15
17
 
16
18
  def logo_path(d):
17
19
  return rx.el.svg.path(
18
20
  d=d,
19
- fill=rx.color_mode_cond("#110F1F", "white"),
20
21
  )
21
22
 
22
23
  paths = [
@@ -28,18 +29,30 @@ def logo(**props):
28
29
  "M47.04 4.8799V0.399902H49.28V4.8799H47.04ZM53.76 4.8799V0.399902H56V4.8799H53.76ZM49.28 7.1199V4.8799H53.76V7.1199H49.28ZM47.04 11.5999V7.1199H49.28V11.5999H47.04ZM53.76 11.5999V7.1199H56V11.5999H53.76Z",
29
30
  ]
30
31
 
32
+ return rx.el.svg(
33
+ *[logo_path(d) for d in paths],
34
+ width="56",
35
+ height="12",
36
+ viewBox="0 0 56 12",
37
+ fill=color,
38
+ xmlns="http://www.w3.org/2000/svg",
39
+ )
40
+
41
+
42
+ def logo(**props):
43
+ """A Reflex logo.
44
+
45
+ Args:
46
+ **props: The props to pass to the component.
47
+
48
+ Returns:
49
+ The logo component.
50
+ """
31
51
  return rx.center(
32
52
  rx.link(
33
53
  rx.hstack(
34
54
  "Built with ",
35
- rx.el.svg(
36
- *[logo_path(d) for d in paths],
37
- width="56",
38
- height="12",
39
- viewBox="0 0 56 12",
40
- fill="none",
41
- xmlns="http://www.w3.org/2000/svg",
42
- ),
55
+ svg_logo(),
43
56
  text_align="center",
44
57
  align="center",
45
58
  padding="1em",
@@ -5,6 +5,7 @@
5
5
 
6
6
  from . import elements as elements
7
7
  from .elements.forms import Button as Button
8
+ from .elements.forms import Datalist as Datalist
8
9
  from .elements.forms import Fieldset as Fieldset
9
10
  from .elements.forms import Form as Form
10
11
  from .elements.forms import Input as Input
@@ -18,6 +19,7 @@ from .elements.forms import Progress as Progress
18
19
  from .elements.forms import Select as Select
19
20
  from .elements.forms import Textarea as Textarea
20
21
  from .elements.forms import button as button
22
+ from .elements.forms import datalist as datalist
21
23
  from .elements.forms import fieldset as fieldset
22
24
  from .elements.forms import form as form
23
25
  from .elements.forms import input as input
@@ -7,6 +7,7 @@ from reflex.utils import lazy_loader
7
7
  _MAPPING = {
8
8
  "forms": [
9
9
  "button",
10
+ "datalist",
10
11
  "fieldset",
11
12
  "form",
12
13
  "input",