reflex 0.6.8a2__tar.gz → 0.7.0a2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of reflex might be problematic. Click here for more details.

Files changed (402) hide show
  1. {reflex-0.6.8a2 → reflex-0.7.0a2}/PKG-INFO +7 -8
  2. {reflex-0.6.8a2 → reflex-0.7.0a2}/README.md +1 -1
  3. {reflex-0.6.8a2 → reflex-0.7.0a2}/pyproject.toml +16 -12
  4. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +1 -1
  5. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +7 -7
  6. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +3 -3
  7. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +1 -4
  8. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/web/utils/state.js +65 -36
  9. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/__init__.py +4 -17
  10. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/__init__.pyi +1 -2
  11. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/app.py +249 -116
  12. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/app_mixins/lifespan.py +9 -9
  13. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/app_mixins/middleware.py +6 -6
  14. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/app_module_for_backend.py +3 -7
  15. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/base.py +7 -7
  16. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/compiler/compiler.py +8 -0
  17. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/compiler/utils.py +35 -6
  18. reflex-0.7.0a2/reflex/components/base/app_wrap.pyi +47 -0
  19. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/bare.py +1 -1
  20. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/body.pyi +16 -16
  21. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/document.pyi +76 -76
  22. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/error_boundary.py +2 -1
  23. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/error_boundary.pyi +19 -22
  24. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/fragment.pyi +16 -16
  25. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/head.pyi +31 -31
  26. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/link.pyi +31 -31
  27. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/meta.py +2 -2
  28. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/meta.pyi +61 -61
  29. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/script.pyi +19 -19
  30. reflex-0.7.0a2/reflex/components/base/strict_mode.py +10 -0
  31. reflex-0.7.0a2/reflex/components/base/strict_mode.pyi +57 -0
  32. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/component.py +38 -77
  33. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/banner.py +159 -4
  34. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/banner.pyi +162 -76
  35. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/breakpoints.py +3 -1
  36. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/client_side_routing.py +1 -1
  37. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/client_side_routing.pyi +32 -32
  38. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/clipboard.pyi +17 -20
  39. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/cond.py +9 -10
  40. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/debounce.py +1 -1
  41. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/debounce.pyi +17 -17
  42. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/foreach.py +28 -3
  43. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/html.py +1 -1
  44. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/html.pyi +16 -16
  45. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/match.py +5 -5
  46. reflex-0.7.0a2/reflex/components/core/sticky.py +160 -0
  47. reflex-0.7.0a2/reflex/components/core/sticky.pyi +449 -0
  48. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/upload.py +2 -2
  49. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/upload.pyi +80 -88
  50. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/datadisplay/code.py +5 -14
  51. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/datadisplay/code.pyi +31 -31
  52. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/datadisplay/dataeditor.py +7 -4
  53. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/datadisplay/dataeditor.pyi +40 -54
  54. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/datadisplay/logo.py +13 -8
  55. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/datadisplay/shiki_code_block.py +14 -9
  56. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/datadisplay/shiki_code_block.pyi +46 -46
  57. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/dynamic.py +22 -3
  58. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/constants/reflex.py +1 -1
  59. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/element.py +1 -1
  60. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/element.pyi +16 -16
  61. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/base.pyi +16 -16
  62. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/forms.py +4 -4
  63. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/forms.pyi +224 -258
  64. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/inline.pyi +421 -421
  65. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/media.pyi +376 -376
  66. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/metadata.pyi +91 -91
  67. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/other.pyi +106 -106
  68. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/scripts.pyi +46 -46
  69. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/sectioning.pyi +226 -226
  70. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/tables.pyi +151 -151
  71. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/typography.pyi +226 -226
  72. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/gridjs/datatable.pyi +31 -31
  73. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/lucide/icon.py +46 -8
  74. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/lucide/icon.pyi +85 -31
  75. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/markdown/markdown.py +10 -8
  76. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/markdown/markdown.pyi +16 -16
  77. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/moment/moment.py +2 -2
  78. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/moment/moment.pyi +17 -19
  79. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/next/base.pyi +16 -16
  80. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/next/image.py +16 -4
  81. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/next/image.pyi +22 -20
  82. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/next/link.py +1 -1
  83. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/next/link.pyi +16 -16
  84. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/next/video.pyi +16 -16
  85. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/plotly/plotly.py +5 -5
  86. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/plotly/plotly.pyi +34 -44
  87. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/props.py +3 -3
  88. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/__init__.pyi +1 -1
  89. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/primitives/accordion.py +9 -5
  90. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/primitives/accordion.pyi +110 -108
  91. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/primitives/base.pyi +31 -31
  92. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/primitives/drawer.py +5 -2
  93. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/primitives/drawer.pyi +179 -187
  94. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/primitives/form.pyi +160 -172
  95. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/primitives/progress.py +1 -1
  96. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/primitives/progress.pyi +76 -76
  97. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/primitives/slider.py +1 -1
  98. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/primitives/slider.pyi +78 -82
  99. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/base.pyi +121 -121
  100. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/color_mode.py +11 -9
  101. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/color_mode.pyi +47 -49
  102. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/alert_dialog.py +3 -0
  103. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/alert_dialog.pyi +110 -112
  104. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/aspect_ratio.pyi +16 -16
  105. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/avatar.pyi +16 -16
  106. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/badge.pyi +16 -16
  107. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/button.pyi +16 -16
  108. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/callout.pyi +76 -76
  109. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/card.py +1 -1
  110. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/card.pyi +17 -17
  111. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/checkbox.pyi +49 -55
  112. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/checkbox_cards.pyi +31 -31
  113. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/checkbox_group.pyi +31 -31
  114. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/context_menu.py +5 -0
  115. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/context_menu.pyi +149 -155
  116. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/data_list.pyi +61 -61
  117. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/dialog.py +3 -0
  118. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/dialog.pyi +113 -117
  119. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/dropdown_menu.py +5 -0
  120. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/dropdown_menu.pyi +133 -137
  121. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/hover_card.py +3 -0
  122. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/hover_card.pyi +63 -67
  123. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/icon_button.py +2 -2
  124. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/icon_button.pyi +17 -16
  125. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/inset.pyi +16 -16
  126. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/popover.py +3 -0
  127. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/popover.pyi +68 -70
  128. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/progress.pyi +16 -16
  129. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/radio.pyi +16 -16
  130. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/radio_cards.py +2 -0
  131. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/radio_cards.pyi +32 -34
  132. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/radio_group.py +1 -1
  133. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/radio_group.pyi +62 -64
  134. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/scroll_area.pyi +16 -16
  135. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/segmented_control.pyi +32 -35
  136. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/select.py +4 -0
  137. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/select.pyi +145 -157
  138. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/separator.pyi +16 -16
  139. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/skeleton.py +3 -0
  140. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/skeleton.pyi +16 -16
  141. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/slider.pyi +22 -28
  142. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/spinner.pyi +16 -16
  143. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/switch.pyi +17 -19
  144. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/table.pyi +106 -106
  145. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/tabs.py +3 -0
  146. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/tabs.pyi +78 -82
  147. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/text_area.py +12 -0
  148. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/text_area.pyi +21 -33
  149. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/text_field.py +1 -1
  150. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/text_field.pyi +52 -80
  151. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/tooltip.py +6 -1
  152. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/tooltip.pyi +20 -21
  153. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/__init__.pyi +1 -1
  154. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/base.pyi +16 -16
  155. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/box.pyi +16 -16
  156. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/center.pyi +16 -16
  157. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/container.pyi +16 -16
  158. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/flex.pyi +16 -16
  159. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/grid.pyi +16 -16
  160. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/list.py +2 -2
  161. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/list.pyi +76 -76
  162. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/section.pyi +16 -16
  163. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/spacer.pyi +16 -16
  164. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/stack.py +2 -2
  165. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/stack.pyi +46 -46
  166. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/typography/blockquote.pyi +16 -16
  167. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/typography/code.pyi +16 -16
  168. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/typography/heading.pyi +16 -16
  169. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/typography/link.py +1 -1
  170. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/typography/link.pyi +16 -16
  171. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/typography/text.py +2 -2
  172. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/typography/text.pyi +106 -106
  173. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/react_player/audio.pyi +33 -39
  174. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/react_player/react_player.py +1 -1
  175. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/react_player/react_player.pyi +32 -38
  176. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/react_player/video.pyi +33 -39
  177. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/recharts/__init__.py +2 -0
  178. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/recharts/__init__.pyi +2 -0
  179. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/recharts/cartesian.pyi +282 -282
  180. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/recharts/charts.py +15 -15
  181. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/recharts/charts.pyi +164 -164
  182. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/recharts/general.py +19 -4
  183. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/recharts/general.pyi +132 -81
  184. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/recharts/polar.py +2 -2
  185. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/recharts/polar.pyi +55 -55
  186. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/recharts/recharts.py +4 -4
  187. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/recharts/recharts.pyi +31 -31
  188. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/sonner/toast.py +15 -13
  189. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/sonner/toast.pyi +22 -22
  190. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/suneditor/editor.py +6 -4
  191. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/suneditor/editor.pyi +26 -40
  192. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/tags/iter_tag.py +3 -3
  193. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/tags/tag.py +25 -3
  194. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/config.py +48 -15
  195. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/constants/__init__.py +1 -0
  196. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/constants/base.py +4 -1
  197. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/constants/compiler.py +5 -2
  198. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/constants/config.py +8 -1
  199. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/constants/installer.py +9 -9
  200. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/constants/style.py +1 -1
  201. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/custom_components/custom_components.py +9 -7
  202. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/event.py +215 -208
  203. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/experimental/__init__.py +19 -11
  204. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/experimental/client_state.py +53 -28
  205. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/experimental/hooks.py +5 -5
  206. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/experimental/layout.py +8 -5
  207. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/experimental/layout.pyi +79 -83
  208. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/experimental/misc.py +3 -3
  209. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/istate/wrappers.py +1 -1
  210. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/middleware/hydrate_middleware.py +2 -2
  211. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/model.py +11 -6
  212. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/page.py +5 -5
  213. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/reflex.py +90 -19
  214. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/route.py +1 -1
  215. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/state.py +358 -401
  216. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/style.py +27 -3
  217. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/testing.py +29 -23
  218. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/build.py +6 -2
  219. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/codespaces.py +1 -4
  220. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/compat.py +6 -5
  221. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/console.py +52 -16
  222. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/exceptions.py +89 -26
  223. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/exec.py +69 -74
  224. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/export.py +6 -1
  225. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/format.py +8 -40
  226. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/imports.py +2 -2
  227. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/lazy_loader.py +7 -1
  228. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/path_ops.py +28 -14
  229. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/prerequisites.py +326 -67
  230. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/processes.py +45 -32
  231. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/pyi_generator.py +39 -33
  232. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/registry.py +4 -4
  233. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/serializers.py +1 -1
  234. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/telemetry.py +5 -4
  235. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/types.py +42 -18
  236. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/vars/base.py +656 -333
  237. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/vars/datetime.py +6 -7
  238. reflex-0.7.0a2/reflex/vars/dep_tracking.py +344 -0
  239. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/vars/function.py +11 -5
  240. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/vars/number.py +31 -43
  241. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/vars/object.py +63 -62
  242. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/vars/sequence.py +79 -67
  243. reflex-0.6.8a2/reflex/components/base/app_wrap.pyi +0 -47
  244. reflex-0.6.8a2/reflex/experimental/assets.py +0 -37
  245. {reflex-0.6.8a2 → reflex-0.7.0a2}/LICENSE +0 -0
  246. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  247. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  248. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/apps/blank/code/blank.py +0 -0
  249. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  250. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
  251. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
  252. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
  253. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
  254. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  255. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  256. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
  257. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  258. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
  259. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  260. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/web/pages/macros.js.jinja2 +0 -0
  261. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
  262. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  263. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  264. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
  265. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
  266. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  267. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/web/.gitignore +0 -0
  268. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/web/components/shiki/code.js +0 -0
  269. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/web/jsconfig.json +0 -0
  270. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/web/next.config.js +0 -0
  271. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/web/postcss.config.js +0 -0
  272. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/web/styles/tailwind.css +0 -0
  273. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/web/utils/client_side_routing.js +0 -0
  274. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  275. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  276. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/web/utils/helpers/paste.js +0 -0
  277. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/web/utils/helpers/range.js +0 -0
  278. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  279. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/__main__.py +0 -0
  280. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/admin.py +0 -0
  281. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/app_mixins/__init__.py +0 -0
  282. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/app_mixins/mixin.py +0 -0
  283. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/assets.py +0 -0
  284. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/compiler/__init__.py +0 -0
  285. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/compiler/templates.py +0 -0
  286. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/__init__.py +0 -0
  287. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/__init__.pyi +0 -0
  288. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/__init__.py +0 -0
  289. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/__init__.pyi +0 -0
  290. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/app_wrap.py +0 -0
  291. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/body.py +0 -0
  292. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/document.py +0 -0
  293. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/fragment.py +0 -0
  294. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/head.py +0 -0
  295. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/link.py +0 -0
  296. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/base/script.py +0 -0
  297. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/__init__.py +0 -0
  298. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/__init__.pyi +0 -0
  299. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/clipboard.py +0 -0
  300. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/colors.py +0 -0
  301. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/layout/__init__.py +0 -0
  302. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/core/responsive.py +0 -0
  303. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/datadisplay/__init__.py +0 -0
  304. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/datadisplay/__init__.pyi +0 -0
  305. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/__init__.py +0 -0
  306. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/__init__.pyi +0 -0
  307. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/constants/__init__.py +0 -0
  308. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/constants/html.py +0 -0
  309. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/constants/react.py +0 -0
  310. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/__init__.py +0 -0
  311. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/__init__.pyi +0 -0
  312. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/base.py +0 -0
  313. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/inline.py +0 -0
  314. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/media.py +0 -0
  315. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/metadata.py +0 -0
  316. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/other.py +0 -0
  317. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/scripts.py +0 -0
  318. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/sectioning.py +0 -0
  319. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/tables.py +0 -0
  320. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/el/elements/typography.py +0 -0
  321. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/gridjs/__init__.py +0 -0
  322. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/gridjs/datatable.py +0 -0
  323. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/literals.py +0 -0
  324. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/lucide/__init__.py +0 -0
  325. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/markdown/__init__.py +0 -0
  326. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/moment/__init__.py +0 -0
  327. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/next/__init__.py +0 -0
  328. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/next/base.py +0 -0
  329. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/next/video.py +0 -0
  330. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/plotly/__init__.py +0 -0
  331. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/__init__.py +0 -0
  332. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/primitives/__init__.py +0 -0
  333. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/primitives/__init__.pyi +0 -0
  334. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/primitives/base.py +0 -0
  335. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/primitives/form.py +0 -0
  336. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/__init__.py +0 -0
  337. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/__init__.pyi +0 -0
  338. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/base.py +0 -0
  339. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/__init__.py +0 -0
  340. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/__init__.pyi +0 -0
  341. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  342. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/avatar.py +0 -0
  343. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/badge.py +0 -0
  344. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/button.py +0 -0
  345. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/callout.py +0 -0
  346. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/checkbox.py +0 -0
  347. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
  348. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
  349. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/data_list.py +0 -0
  350. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/inset.py +0 -0
  351. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/progress.py +0 -0
  352. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/radio.py +0 -0
  353. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  354. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/segmented_control.py +0 -0
  355. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/separator.py +0 -0
  356. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/slider.py +0 -0
  357. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/spinner.py +0 -0
  358. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/switch.py +0 -0
  359. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/components/table.py +0 -0
  360. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/__init__.py +0 -0
  361. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/base.py +0 -0
  362. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/box.py +0 -0
  363. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/center.py +0 -0
  364. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/container.py +0 -0
  365. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/flex.py +0 -0
  366. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/grid.py +0 -0
  367. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/section.py +0 -0
  368. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/layout/spacer.py +0 -0
  369. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/typography/__init__.py +0 -0
  370. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
  371. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/typography/base.py +0 -0
  372. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  373. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/typography/code.py +0 -0
  374. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/radix/themes/typography/heading.py +0 -0
  375. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/react_player/__init__.py +0 -0
  376. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/react_player/audio.py +0 -0
  377. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/react_player/video.py +0 -0
  378. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/recharts/cartesian.py +0 -0
  379. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/sonner/__init__.py +0 -0
  380. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/suneditor/__init__.py +0 -0
  381. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/tags/__init__.py +0 -0
  382. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/tags/cond_tag.py +0 -0
  383. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/tags/match_tag.py +0 -0
  384. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/components/tags/tagless.py +0 -0
  385. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/constants/colors.py +0 -0
  386. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/constants/custom_components.py +0 -0
  387. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/constants/event.py +0 -0
  388. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/constants/route.py +0 -0
  389. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/constants/state.py +0 -0
  390. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/constants/utils.py +0 -0
  391. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/custom_components/__init__.py +0 -0
  392. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/istate/__init__.py +0 -0
  393. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/istate/data.py +0 -0
  394. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/istate/dynamic.py +0 -0
  395. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/istate/proxy.py +0 -0
  396. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/istate/storage.py +0 -0
  397. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/middleware/__init__.py +0 -0
  398. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/middleware/middleware.py +0 -0
  399. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/__init__.py +0 -0
  400. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/net.py +0 -0
  401. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/utils/redir.py +0 -0
  402. {reflex-0.6.8a2 → reflex-0.7.0a2}/reflex/vars/__init__.py +0 -0
@@ -1,20 +1,19 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: reflex
3
- Version: 0.6.8a2
3
+ Version: 0.7.0a2
4
4
  Summary: Web apps in pure Python.
5
- Home-page: https://reflex.dev
6
5
  License: Apache-2.0
7
6
  Keywords: web,framework
8
7
  Author: Nikhil Rao
9
8
  Author-email: nikhil@reflex.dev
10
- Requires-Python: >=3.9,<4.0
9
+ Requires-Python: >=3.10,<4.0
11
10
  Classifier: Development Status :: 4 - Beta
12
11
  Classifier: License :: OSI Approved :: Apache Software License
13
12
  Classifier: Programming Language :: Python :: 3
14
- Classifier: Programming Language :: Python :: 3.9
15
13
  Classifier: Programming Language :: Python :: 3.10
16
14
  Classifier: Programming Language :: Python :: 3.11
17
15
  Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
18
17
  Requires-Dist: alembic (>=1.11.1,<2.0)
19
18
  Requires-Dist: build (>=1.0.3,<2.0)
20
19
  Requires-Dist: charset-normalizer (>=3.3.2,<4.0)
@@ -32,8 +31,7 @@ Requires-Dist: python-engineio (!=4.6.0)
32
31
  Requires-Dist: python-multipart (>=0.0.5,<0.1)
33
32
  Requires-Dist: python-socketio (>=5.7.0,<6.0)
34
33
  Requires-Dist: redis (>=4.3.5,<6.0)
35
- Requires-Dist: reflex-chakra (>=0.6.0)
36
- Requires-Dist: reflex-hosting-cli (>=0.1.29,<2.0)
34
+ Requires-Dist: reflex-hosting-cli (>=0.1.29)
37
35
  Requires-Dist: rich (>=13.0.0,<14.0)
38
36
  Requires-Dist: setuptools (>=75.0)
39
37
  Requires-Dist: sqlmodel (>=0.0.14,<0.1)
@@ -47,6 +45,7 @@ Requires-Dist: wheel (>=0.42.0,<1.0)
47
45
  Requires-Dist: wrapt (>=1.11.0,<2.0) ; python_version < "3.11"
48
46
  Requires-Dist: wrapt (>=1.14.0,<2.0) ; python_version >= "3.11"
49
47
  Project-URL: Documentation, https://reflex.dev/docs/getting-started/introduction
48
+ Project-URL: Homepage, https://reflex.dev
50
49
  Project-URL: Repository, https://github.com/reflex-dev/reflex
51
50
  Description-Content-Type: text/markdown
52
51
 
@@ -86,7 +85,7 @@ See our [architecture page](https://reflex.dev/blog/2024-03-21-reflex-architectu
86
85
 
87
86
  ## ⚙️ Installation
88
87
 
89
- Open a terminal and run (Requires Python 3.9+):
88
+ Open a terminal and run (Requires Python 3.10+):
90
89
 
91
90
  ```bash
92
91
  pip install reflex
@@ -34,7 +34,7 @@ See our [architecture page](https://reflex.dev/blog/2024-03-21-reflex-architectu
34
34
 
35
35
  ## ⚙️ Installation
36
36
 
37
- Open a terminal and run (Requires Python 3.9+):
37
+ Open a terminal and run (Requires Python 3.10+):
38
38
 
39
39
  ```bash
40
40
  pip install reflex
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "reflex"
3
- version = "0.6.8a2"
3
+ version = "0.7.0a2"
4
4
  description = "Web apps in pure Python."
5
5
  license = "Apache-2.0"
6
6
  authors = [
@@ -18,7 +18,7 @@ keywords = ["web", "framework"]
18
18
  classifiers = ["Development Status :: 4 - Beta"]
19
19
 
20
20
  [tool.poetry.dependencies]
21
- python = "^3.9"
21
+ python = ">=3.10, <4.0"
22
22
  fastapi = ">=0.96.0,!=0.111.0,!=0.111.1"
23
23
  gunicorn = ">=20.1.0,<24.0"
24
24
  jinja2 = ">=3.1.2,<4.0"
@@ -41,7 +41,7 @@ wrapt = [
41
41
  { version = ">=1.11.0,<2.0", python = "<3.11" },
42
42
  ]
43
43
  packaging = ">=23.1,<25.0"
44
- reflex-hosting-cli = ">=0.1.29,<2.0"
44
+ reflex-hosting-cli = ">=0.1.29"
45
45
  charset-normalizer = ">=3.3.2,<4.0"
46
46
  wheel = ">=0.42.0,<1.0"
47
47
  build = ">=1.0.3,<2.0"
@@ -50,19 +50,18 @@ httpx = ">=0.25.1,<1.0"
50
50
  twine = ">=4.0.0,<7.0"
51
51
  tomlkit = ">=0.12.4,<1.0"
52
52
  lazy_loader = ">=0.4"
53
- reflex-chakra = ">=0.6.0"
54
53
  typing_extensions = ">=4.6.0"
55
54
 
56
55
  [tool.poetry.group.dev.dependencies]
57
56
  pytest = ">=7.1.2,<9.0"
58
57
  pytest-mock = ">=3.10.0,<4.0"
59
- pyright = ">=1.1.229,<1.1.335"
58
+ pyright = ">=1.1.392, <1.2"
60
59
  darglint = ">=1.8.1,<2.0"
61
60
  dill = ">=0.3.8"
62
61
  toml = ">=0.10.2,<1.0"
63
62
  pytest-asyncio = ">=0.24.0"
64
63
  pytest-cov = ">=4.0.0,<7.0"
65
- ruff = "0.8.2"
64
+ ruff = "0.9.3"
66
65
  pandas = ">=2.1.1,<3.0"
67
66
  pillow = ">=10.0.0,<12.0"
68
67
  plotly = ">=5.13.0,<6.0"
@@ -72,6 +71,7 @@ selenium = ">=4.11.0,<5.0"
72
71
  pytest-benchmark = ">=4.0.0,<6.0"
73
72
  playwright = ">=1.46.0"
74
73
  pytest-playwright = ">=0.5.1"
74
+ pytest-codspeed = "^3.1.2"
75
75
 
76
76
  [tool.poetry.scripts]
77
77
  reflex = "reflex.reflex:cli"
@@ -81,20 +81,24 @@ requires = ["poetry-core>=1.5.1"]
81
81
  build-backend = "poetry.core.masonry.api"
82
82
 
83
83
  [tool.pyright]
84
+ reportIncompatibleMethodOverride = false
84
85
 
85
86
  [tool.ruff]
86
- target-version = "py39"
87
+ target-version = "py310"
87
88
  output-format = "concise"
88
89
  lint.isort.split-on-trailing-comma = false
89
- lint.select = ["B", "C4", "D", "E", "ERA", "F", "FURB", "I", "PERF", "PTH", "RUF", "SIM", "T", "W"]
90
- lint.ignore = ["B008", "D205", "E501", "F403", "SIM115", "RUF006", "RUF012"]
90
+ lint.select = ["ANN001","B", "C4", "D", "E", "ERA", "F", "FURB", "I", "N", "PERF", "PGH", "PTH", "RUF", "SIM", "T", "TRY", "W"]
91
+ lint.ignore = ["B008", "D205", "E501", "F403", "SIM115", "RUF006", "RUF008", "RUF012", "TRY0"]
91
92
  lint.pydocstyle.convention = "google"
92
93
 
93
94
  [tool.ruff.lint.per-file-ignores]
94
95
  "__init__.py" = ["F401"]
95
- "tests/*.py" = ["D100", "D103", "D104", "B018", "PERF", "T"]
96
+ "tests/*.py" = ["ANN001", "D100", "D103", "D104", "B018", "PERF", "T", "N"]
97
+ "benchmarks/*.py" = ["ANN001", "D100", "D103", "D104", "B018", "PERF", "T", "N"]
96
98
  "reflex/.templates/*.py" = ["D100", "D103", "D104"]
97
- "*.pyi" = ["D301", "D415", "D417", "D418", "E742"]
99
+ "*.pyi" = ["D301", "D415", "D417", "D418", "E742", "N", "PGH"]
100
+ "pyi_generator.py" = ["N802"]
101
+ "reflex/constants/*.py" = ["N"]
98
102
  "*/blank.py" = ["I001"]
99
103
 
100
104
  [tool.pytest.ini_options]
@@ -102,5 +106,5 @@ asyncio_default_fixture_loop_scope = "function"
102
106
  asyncio_mode = "auto"
103
107
 
104
108
  [tool.codespell]
105
- skip = "docs/*,*.html,examples/*, *.pyi"
109
+ skip = "docs/*,*.html,examples/*, *.pyi, poetry.lock"
106
110
  ignore-words-list = "te, TreeE"
@@ -8,7 +8,7 @@ version = "0.0.1"
8
8
  description = "Reflex custom component {{ module_name }}"
9
9
  readme = "README.md"
10
10
  license = { text = "Apache-2.0" }
11
- requires-python = ">=3.9"
11
+ requires-python = ">=3.10"
12
12
  authors = [{ name = "", email = "YOUREMAIL@domain.com" }]
13
13
  keywords = ["reflex","reflex-custom-components"]
14
14
 
@@ -38,13 +38,13 @@ export default function MyApp({ Component, pageProps }) {
38
38
  }, []);
39
39
  return (
40
40
  <ThemeProvider defaultTheme={ defaultColorMode } attribute="class">
41
- <AppWrap>
42
- <StateProvider>
43
- <EventLoopProvider>
44
- <Component {...pageProps} />
45
- </EventLoopProvider>
46
- </StateProvider>
47
- </AppWrap>
41
+ <StateProvider>
42
+ <EventLoopProvider>
43
+ <AppWrap>
44
+ <Component {...pageProps} />
45
+ </AppWrap>
46
+ </EventLoopProvider>
47
+ </StateProvider>
48
48
  </ThemeProvider>
49
49
  );
50
50
  }
@@ -60,7 +60,7 @@
60
60
  {# Args: #}
61
61
  {# component: component dictionary #}
62
62
  {% macro render_iterable_tag(component) %}
63
- <>{ {%- if component.iterable_type == 'dict' -%}Object.entries({{- component.iterable_state }}){%- else -%}{{- component.iterable_state }}{%- endif -%}.map(({{ component.arg_name }}, {{ component.arg_index }}) => (
63
+ <>{ {{ component.iterable_state }}.map(({{ component.arg_name }}, {{ component.arg_index }}) => (
64
64
  {% for child in component.children %}
65
65
  {{ render(child) }}
66
66
  {% endfor %}
@@ -86,11 +86,11 @@
86
86
  {% for condition in case[:-1] %}
87
87
  case JSON.stringify({{ condition._js_expr }}):
88
88
  {% endfor %}
89
- return {{ case[-1] }};
89
+ return {{ render(case[-1]) }};
90
90
  break;
91
91
  {% endfor %}
92
92
  default:
93
- return {{ component.default }};
93
+ return {{ render(component.default) }};
94
94
  break;
95
95
  }
96
96
  })()
@@ -16,10 +16,7 @@ export default function RadixThemesColorModeProvider({ children }) {
16
16
  if (isDevMode) {
17
17
  const lastCompiledTimeInLocalStorage =
18
18
  localStorage.getItem("last_compiled_time");
19
- if (
20
- lastCompiledTimeInLocalStorage &&
21
- lastCompiledTimeInLocalStorage !== lastCompiledTimeStamp
22
- ) {
19
+ if (lastCompiledTimeInLocalStorage !== lastCompiledTimeStamp) {
23
20
  // on app startup, make sure the application color mode is persisted correctly.
24
21
  setTheme(defaultColorMode);
25
22
  localStorage.setItem("last_compiled_time", lastCompiledTimeStamp);
@@ -3,6 +3,7 @@ import axios from "axios";
3
3
  import io from "socket.io-client";
4
4
  import JSON5 from "json5";
5
5
  import env from "$/env.json";
6
+ import reflexEnvironment from "$/reflex.json";
6
7
  import Cookies from "universal-cookie";
7
8
  import { useEffect, useRef, useState } from "react";
8
9
  import Router, { useRouter } from "next/router";
@@ -105,6 +106,18 @@ export const getBackendURL = (url_str) => {
105
106
  return endpoint;
106
107
  };
107
108
 
109
+ /**
110
+ * Check if the backend is disabled.
111
+ *
112
+ * @returns True if the backend is disabled, false otherwise.
113
+ */
114
+ export const isBackendDisabled = () => {
115
+ const cookie = document.cookie
116
+ .split("; ")
117
+ .find((row) => row.startsWith("backend-enabled="));
118
+ return cookie !== undefined && cookie.split("=")[1] == "false";
119
+ };
120
+
108
121
  /**
109
122
  * Determine if any event in the event queue is stateful.
110
123
  *
@@ -214,8 +227,8 @@ export const applyEvent = async (event, socket) => {
214
227
  a.href = eval?.(
215
228
  event.payload.url.replace(
216
229
  "getBackendURL(env.UPLOAD)",
217
- `"${getBackendURL(env.UPLOAD)}"`
218
- )
230
+ `"${getBackendURL(env.UPLOAD)}"`,
231
+ ),
219
232
  );
220
233
  }
221
234
  a.download = event.payload.filename;
@@ -300,10 +313,7 @@ export const applyEvent = async (event, socket) => {
300
313
 
301
314
  // Send the event to the server.
302
315
  if (socket) {
303
- socket.emit(
304
- "event",
305
- event,
306
- );
316
+ socket.emit("event", event);
307
317
  return true;
308
318
  }
309
319
 
@@ -331,7 +341,7 @@ export const applyRestEvent = async (event, socket) => {
331
341
  event.payload.files,
332
342
  event.payload.upload_id,
333
343
  event.payload.on_upload_progress,
334
- socket
344
+ socket,
335
345
  );
336
346
  return false;
337
347
  }
@@ -398,7 +408,7 @@ export const connect = async (
398
408
  dispatch,
399
409
  transports,
400
410
  setConnectErrors,
401
- client_storage = {}
411
+ client_storage = {},
402
412
  ) => {
403
413
  // Get backend URL object from the endpoint.
404
414
  const endpoint = getBackendURL(EVENTURL);
@@ -407,10 +417,18 @@ export const connect = async (
407
417
  socket.current = io(endpoint.href, {
408
418
  path: endpoint["pathname"],
409
419
  transports: transports,
420
+ protocols: [reflexEnvironment.version],
410
421
  autoUnref: false,
411
422
  });
412
423
  // Ensure undefined fields in events are sent as null instead of removed
413
- socket.current.io.encoder.replacer = (k, v) => (v === undefined ? null : v)
424
+ socket.current.io.encoder.replacer = (k, v) => (v === undefined ? null : v);
425
+ socket.current.io.decoder.tryParse = (str) => {
426
+ try {
427
+ return JSON5.parse(str);
428
+ } catch (e) {
429
+ return false;
430
+ }
431
+ };
414
432
 
415
433
  function checkVisibility() {
416
434
  if (document.visibilityState === "visible") {
@@ -481,14 +499,14 @@ export const uploadFiles = async (
481
499
  files,
482
500
  upload_id,
483
501
  on_upload_progress,
484
- socket
502
+ socket,
485
503
  ) => {
486
504
  // return if there's no file to upload
487
505
  if (files === undefined || files.length === 0) {
488
506
  return false;
489
507
  }
490
508
 
491
- const upload_ref_name = `__upload_controllers_${upload_id}`
509
+ const upload_ref_name = `__upload_controllers_${upload_id}`;
492
510
 
493
511
  if (refs[upload_ref_name]) {
494
512
  console.log("Upload already in progress for ", upload_id);
@@ -586,7 +604,7 @@ export const Event = (
586
604
  name,
587
605
  payload = {},
588
606
  event_actions = {},
589
- handler = null
607
+ handler = null,
590
608
  ) => {
591
609
  return { name, payload, handler, event_actions };
592
610
  };
@@ -613,7 +631,7 @@ export const hydrateClientStorage = (client_storage) => {
613
631
  for (const state_key in client_storage.local_storage) {
614
632
  const options = client_storage.local_storage[state_key];
615
633
  const local_storage_value = localStorage.getItem(
616
- options.name || state_key
634
+ options.name || state_key,
617
635
  );
618
636
  if (local_storage_value !== null) {
619
637
  client_storage_values[state_key] = local_storage_value;
@@ -624,7 +642,7 @@ export const hydrateClientStorage = (client_storage) => {
624
642
  for (const state_key in client_storage.session_storage) {
625
643
  const session_options = client_storage.session_storage[state_key];
626
644
  const session_storage_value = sessionStorage.getItem(
627
- session_options.name || state_key
645
+ session_options.name || state_key,
628
646
  );
629
647
  if (session_storage_value != null) {
630
648
  client_storage_values[state_key] = session_storage_value;
@@ -649,7 +667,7 @@ export const hydrateClientStorage = (client_storage) => {
649
667
  const applyClientStorageDelta = (client_storage, delta) => {
650
668
  // find the main state and check for is_hydrated
651
669
  const unqualified_states = Object.keys(delta).filter(
652
- (key) => key.split(".").length === 1
670
+ (key) => key.split(".").length === 1,
653
671
  );
654
672
  if (unqualified_states.length === 1) {
655
673
  const main_state = delta[unqualified_states[0]];
@@ -683,7 +701,7 @@ const applyClientStorageDelta = (client_storage, delta) => {
683
701
  const session_options = client_storage.session_storage[state_key];
684
702
  sessionStorage.setItem(
685
703
  session_options.name || state_key,
686
- delta[substate][key]
704
+ delta[substate][key],
687
705
  );
688
706
  }
689
707
  }
@@ -703,7 +721,7 @@ const applyClientStorageDelta = (client_storage, delta) => {
703
721
  export const useEventLoop = (
704
722
  dispatch,
705
723
  initial_events = () => [],
706
- client_storage = {}
724
+ client_storage = {},
707
725
  ) => {
708
726
  const socket = useRef(null);
709
727
  const router = useRouter();
@@ -717,7 +735,7 @@ export const useEventLoop = (
717
735
 
718
736
  event_actions = events.reduce(
719
737
  (acc, e) => ({ ...acc, ...e.event_actions }),
720
- event_actions ?? {}
738
+ event_actions ?? {},
721
739
  );
722
740
 
723
741
  const _e = args.filter((o) => o?.preventDefault !== undefined)[0];
@@ -745,7 +763,7 @@ export const useEventLoop = (
745
763
  debounce(
746
764
  combined_name,
747
765
  () => queueEvents(events, socket),
748
- event_actions.debounce
766
+ event_actions.debounce,
749
767
  );
750
768
  } else {
751
769
  queueEvents(events, socket);
@@ -764,7 +782,7 @@ export const useEventLoop = (
764
782
  query,
765
783
  asPath,
766
784
  }))(router),
767
- }))
785
+ })),
768
786
  );
769
787
  sentHydrate.current = true;
770
788
  }
@@ -799,14 +817,10 @@ export const useEventLoop = (
799
817
  };
800
818
  }, []);
801
819
 
802
- // Main event loop.
820
+ // Handle socket connect/disconnect.
803
821
  useEffect(() => {
804
- // Skip if the router is not ready.
805
- if (!router.isReady) {
806
- return;
807
- }
808
- // only use websockets if state is present
809
- if (Object.keys(initialState).length > 1) {
822
+ // only use websockets if state is present and backend is not disabled (reflex cloud).
823
+ if (Object.keys(initialState).length > 1 && !isBackendDisabled()) {
810
824
  // Initialize the websocket connection.
811
825
  if (!socket.current) {
812
826
  connect(
@@ -814,16 +828,31 @@ export const useEventLoop = (
814
828
  dispatch,
815
829
  ["websocket"],
816
830
  setConnectErrors,
817
- client_storage
831
+ client_storage,
818
832
  );
819
833
  }
820
- (async () => {
821
- // Process all outstanding events.
822
- while (event_queue.length > 0 && !event_processing) {
823
- await processEvent(socket.current);
824
- }
825
- })();
826
834
  }
835
+
836
+ // Cleanup function.
837
+ return () => {
838
+ if (socket.current) {
839
+ socket.current.disconnect();
840
+ }
841
+ };
842
+ }, []);
843
+
844
+ // Main event loop.
845
+ useEffect(() => {
846
+ // Skip if the router is not ready.
847
+ if (!router.isReady || isBackendDisabled()) {
848
+ return;
849
+ }
850
+ (async () => {
851
+ // Process all outstanding events.
852
+ while (event_queue.length > 0 && !event_processing) {
853
+ await processEvent(socket.current);
854
+ }
855
+ })();
827
856
  });
828
857
 
829
858
  // localStorage event handling
@@ -847,7 +876,7 @@ export const useEventLoop = (
847
876
  vars[storage_to_state_map[e.key]] = e.newValue;
848
877
  const event = Event(
849
878
  `${state_name}.reflex___state____update_vars_internal_state.update_vars_internal`,
850
- { vars: vars }
879
+ { vars: vars },
851
880
  );
852
881
  addEvents([event], e);
853
882
  }
@@ -940,7 +969,7 @@ export const getRefValues = (refs) => {
940
969
  return refs.map((ref) =>
941
970
  ref.current
942
971
  ? ref.current.value || ref.current.getAttribute("aria-valuenow")
943
- : null
972
+ : null,
944
973
  );
945
974
  };
946
975
 
@@ -84,6 +84,9 @@ In the example above, you will be able to do `rx.list`
84
84
 
85
85
  from __future__ import annotations
86
86
 
87
+ from types import ModuleType
88
+ from typing import Any
89
+
87
90
  from reflex.utils import (
88
91
  compat, # for side-effects
89
92
  lazy_loader,
@@ -303,7 +306,6 @@ _MAPPING: dict = {
303
306
  "event": [
304
307
  "EventChain",
305
308
  "EventHandler",
306
- "background",
307
309
  "call_script",
308
310
  "call_function",
309
311
  "run_script",
@@ -366,20 +368,5 @@ getattr, __dir__, __all__ = lazy_loader.attach(
366
368
  )
367
369
 
368
370
 
369
- def __getattr__(name):
370
- if name == "chakra":
371
- from reflex.utils import console
372
-
373
- console.deprecate(
374
- "rx.chakra",
375
- reason="and moved to a separate package. "
376
- "To continue using Chakra UI components, install the `reflex-chakra` package via `pip install "
377
- "reflex-chakra`.",
378
- deprecation_version="0.6.0",
379
- removal_version="0.7.0",
380
- dedupe=True,
381
- )
382
- import reflex_chakra as rc
383
-
384
- return rc
371
+ def __getattr__(name: ModuleType | Any):
385
372
  return getattr(name)
@@ -131,7 +131,7 @@ from .components.radix.themes.layout.container import container as container
131
131
  from .components.radix.themes.layout.flex import flex as flex
132
132
  from .components.radix.themes.layout.grid import grid as grid
133
133
  from .components.radix.themes.layout.list import list_item as list_item
134
- from .components.radix.themes.layout.list import list_ns as list # noqa
134
+ from .components.radix.themes.layout.list import list_ns as list # noqa: F401
135
135
  from .components.radix.themes.layout.list import ordered_list as ordered_list
136
136
  from .components.radix.themes.layout.list import unordered_list as unordered_list
137
137
  from .components.radix.themes.layout.section import section as section
@@ -156,7 +156,6 @@ from .constants import Env as Env
156
156
  from .constants.colors import Color as Color
157
157
  from .event import EventChain as EventChain
158
158
  from .event import EventHandler as EventHandler
159
- from .event import background as background
160
159
  from .event import call_function as call_function
161
160
  from .event import call_script as call_script
162
161
  from .event import clear_local_storage as clear_local_storage