reflex 0.6.0__tar.gz → 0.6.0a1__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 (386) hide show
  1. {reflex-0.6.0 → reflex-0.6.0a1}/PKG-INFO +5 -4
  2. {reflex-0.6.0 → reflex-0.6.0a1}/README.md +1 -1
  3. {reflex-0.6.0 → reflex-0.6.0a1}/pyproject.toml +12 -7
  4. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/custom_components/pyproject.toml.jinja2 +2 -2
  5. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +1 -1
  6. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +2 -2
  7. reflex-0.6.0a1/reflex/.templates/web/components/reflex/chakra_color_mode_provider.js +36 -0
  8. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/web/utils/state.js +1 -3
  9. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/__init__.py +2 -8
  10. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/__init__.pyi +1 -2
  11. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/app.py +2 -4
  12. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/app_module_for_backend.py +1 -1
  13. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/base.py +1 -1
  14. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/compiler/compiler.py +2 -2
  15. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/compiler/utils.py +3 -3
  16. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/app_wrap.py +2 -2
  17. reflex-0.6.0a1/reflex/components/base/app_wrap.pyi +77 -0
  18. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/bare.py +5 -4
  19. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/body.pyi +27 -17
  20. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/document.pyi +131 -81
  21. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/error_boundary.py +7 -6
  22. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/error_boundary.pyi +33 -20
  23. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/fragment.pyi +27 -17
  24. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/head.pyi +53 -33
  25. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/link.py +1 -1
  26. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/link.pyi +54 -33
  27. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/meta.pyi +105 -65
  28. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/script.py +2 -1
  29. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/script.pyi +38 -21
  30. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/component.py +47 -53
  31. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/banner.py +27 -23
  32. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/banner.pyi +171 -134
  33. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/client_side_routing.py +3 -2
  34. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/client_side_routing.pyi +54 -33
  35. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/clipboard.py +1 -2
  36. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/clipboard.pyi +33 -20
  37. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/cond.py +5 -5
  38. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/debounce.py +5 -5
  39. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/debounce.pyi +33 -20
  40. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/foreach.py +4 -3
  41. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/html.py +1 -1
  42. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/html.pyi +46 -35
  43. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/match.py +17 -17
  44. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/upload.py +23 -17
  45. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/upload.pyi +124 -78
  46. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/datadisplay/code.py +10 -9
  47. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/datadisplay/code.pyi +409 -299
  48. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/datadisplay/dataeditor.py +10 -8
  49. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/datadisplay/dataeditor.pyi +53 -40
  50. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/element.pyi +27 -17
  51. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/base.py +1 -1
  52. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/base.pyi +45 -34
  53. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/forms.py +16 -16
  54. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/forms.pyi +707 -554
  55. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/inline.py +1 -1
  56. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/inline.pyi +1218 -937
  57. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/media.py +1 -1
  58. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/media.pyi +997 -786
  59. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/metadata.py +6 -3
  60. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/metadata.pyi +242 -181
  61. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/other.py +1 -1
  62. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/other.pyi +306 -235
  63. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/scripts.py +1 -1
  64. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/scripts.pyi +140 -109
  65. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/sectioning.py +2 -0
  66. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/sectioning.pyi +647 -496
  67. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/tables.py +1 -1
  68. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/tables.pyi +452 -351
  69. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/typography.py +1 -1
  70. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/typography.pyi +657 -506
  71. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/gridjs/datatable.py +9 -6
  72. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/gridjs/datatable.pyi +56 -35
  73. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/lucide/icon.py +1 -1
  74. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/lucide/icon.pyi +54 -33
  75. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/markdown/markdown.py +31 -26
  76. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/markdown/markdown.pyi +37 -27
  77. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/moment/moment.py +12 -13
  78. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/moment/moment.pyi +35 -23
  79. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/next/base.pyi +27 -17
  80. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/next/image.py +1 -1
  81. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/next/image.pyi +37 -22
  82. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/next/link.py +1 -1
  83. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/next/link.pyi +28 -17
  84. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/next/video.py +1 -1
  85. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/next/video.pyi +28 -17
  86. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/plotly/plotly.py +13 -12
  87. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/plotly/plotly.pyi +54 -39
  88. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/props.py +1 -1
  89. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/__init__.pyi +0 -1
  90. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/primitives/__init__.pyi +0 -1
  91. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/primitives/accordion.py +4 -4
  92. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/primitives/accordion.pyi +495 -424
  93. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/primitives/base.py +1 -1
  94. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/primitives/base.pyi +54 -33
  95. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/primitives/drawer.py +1 -1
  96. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/primitives/drawer.pyi +273 -172
  97. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/primitives/form.py +1 -1
  98. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/primitives/form.pyi +364 -257
  99. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/primitives/progress.py +1 -1
  100. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/primitives/progress.pyi +282 -231
  101. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/primitives/slider.py +1 -1
  102. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/primitives/slider.pyi +138 -87
  103. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/base.py +24 -3
  104. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/base.pyi +250 -178
  105. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/color_mode.py +5 -5
  106. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/color_mode.pyi +220 -187
  107. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/alert_dialog.py +1 -1
  108. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/alert_dialog.pyi +207 -136
  109. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/aspect_ratio.py +1 -1
  110. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/aspect_ratio.pyi +28 -17
  111. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/avatar.py +1 -1
  112. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/avatar.pyi +81 -70
  113. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/badge.py +1 -1
  114. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/badge.pyi +99 -88
  115. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/button.py +1 -1
  116. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/button.pyi +109 -98
  117. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/callout.py +1 -1
  118. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/callout.pyi +373 -322
  119. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/card.py +1 -1
  120. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/card.pyi +49 -38
  121. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/checkbox.py +2 -1
  122. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/checkbox.pyi +245 -208
  123. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/checkbox_cards.py +1 -1
  124. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/checkbox_cards.pyi +115 -94
  125. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/checkbox_group.py +1 -1
  126. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/checkbox_group.pyi +107 -86
  127. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/context_menu.py +1 -1
  128. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/context_menu.pyi +319 -238
  129. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/data_list.py +1 -1
  130. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/data_list.pyi +171 -130
  131. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/dialog.py +1 -1
  132. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/dialog.pyi +210 -139
  133. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/dropdown_menu.py +1 -1
  134. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/dropdown_menu.pyi +332 -249
  135. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/hover_card.py +1 -1
  136. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/hover_card.pyi +131 -90
  137. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/icon_button.py +3 -2
  138. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/icon_button.pyi +109 -98
  139. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/inset.py +1 -1
  140. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/inset.pyi +58 -47
  141. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/popover.py +1 -1
  142. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/popover.pyi +136 -95
  143. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/progress.py +1 -1
  144. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/progress.pyi +82 -71
  145. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/radio.py +1 -1
  146. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/radio.pyi +80 -69
  147. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/radio_cards.py +1 -1
  148. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/radio_cards.pyi +119 -98
  149. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/radio_group.py +11 -8
  150. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/radio_group.pyi +271 -228
  151. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/scroll_area.py +1 -1
  152. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/scroll_area.pyi +32 -21
  153. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/segmented_control.py +1 -1
  154. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/segmented_control.pyi +113 -90
  155. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/select.py +3 -2
  156. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/select.pyi +471 -374
  157. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/separator.py +2 -1
  158. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/separator.pyi +80 -69
  159. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/skeleton.py +1 -1
  160. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/skeleton.pyi +34 -23
  161. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/slider.py +3 -2
  162. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/slider.pyi +88 -75
  163. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/spinner.py +1 -1
  164. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/spinner.pyi +30 -19
  165. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/switch.py +1 -1
  166. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/switch.pyi +84 -71
  167. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/table.py +1 -1
  168. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/table.pyi +332 -261
  169. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/tabs.py +1 -1
  170. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/tabs.pyi +194 -139
  171. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/text_area.py +1 -1
  172. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/text_area.pyi +111 -96
  173. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/text_field.py +1 -1
  174. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/text_field.pyi +286 -247
  175. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/tooltip.py +1 -1
  176. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/tooltip.pyi +37 -26
  177. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/__init__.pyi +0 -1
  178. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/base.py +1 -1
  179. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/base.pyi +67 -56
  180. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/box.pyi +45 -34
  181. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/center.pyi +67 -56
  182. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/container.py +2 -1
  183. reflex-0.6.0a1/reflex/components/radix/themes/layout/container.pyi +129 -0
  184. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/flex.py +1 -1
  185. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/flex.pyi +67 -56
  186. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/grid.py +1 -1
  187. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/grid.pyi +75 -64
  188. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/list.py +6 -5
  189. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/list.pyi +244 -193
  190. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/section.py +2 -1
  191. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/section.pyi +47 -36
  192. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/spacer.pyi +67 -56
  193. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/stack.py +1 -1
  194. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/stack.pyi +159 -128
  195. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/typography/blockquote.py +1 -1
  196. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/typography/blockquote.pyi +100 -89
  197. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/typography/code.py +1 -1
  198. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/typography/code.pyi +101 -90
  199. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/typography/heading.py +1 -1
  200. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/typography/heading.pyi +107 -96
  201. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/typography/link.py +1 -1
  202. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/typography/link.pyi +113 -102
  203. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/typography/text.py +1 -1
  204. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/typography/text.pyi +572 -501
  205. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/react_player/audio.pyi +60 -33
  206. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/react_player/react_player.py +1 -1
  207. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/react_player/react_player.pyi +60 -33
  208. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/react_player/video.pyi +60 -33
  209. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/recharts/cartesian.py +3 -2
  210. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/recharts/cartesian.pyi +861 -678
  211. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/recharts/charts.py +5 -4
  212. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/recharts/charts.pyi +357 -252
  213. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/recharts/general.py +2 -1
  214. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/recharts/general.pyi +231 -180
  215. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/recharts/polar.py +5 -4
  216. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/recharts/polar.pyi +181 -144
  217. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/recharts/recharts.pyi +53 -33
  218. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/sonner/toast.py +17 -16
  219. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/sonner/toast.pyi +47 -36
  220. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/suneditor/editor.py +3 -2
  221. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/suneditor/editor.pyi +78 -55
  222. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/tags/cond_tag.py +4 -6
  223. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/tags/iter_tag.py +16 -28
  224. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/tags/match_tag.py +4 -6
  225. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/tags/tag.py +23 -40
  226. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/custom_components/custom_components.py +1 -3
  227. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/event.py +65 -113
  228. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/experimental/client_state.py +24 -25
  229. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/experimental/hooks.py +16 -16
  230. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/experimental/layout.py +5 -5
  231. reflex-0.6.0a1/reflex/experimental/layout.pyi +483 -0
  232. {reflex-0.6.0/reflex/vars → reflex-0.6.0a1/reflex/ivars}/__init__.py +2 -6
  233. {reflex-0.6.0/reflex/vars → reflex-0.6.0a1/reflex/ivars}/base.py +216 -599
  234. {reflex-0.6.0/reflex/vars → reflex-0.6.0a1/reflex/ivars}/function.py +19 -15
  235. {reflex-0.6.0/reflex/vars → reflex-0.6.0a1/reflex/ivars}/number.py +20 -41
  236. {reflex-0.6.0/reflex/vars → reflex-0.6.0a1/reflex/ivars}/object.py +30 -28
  237. {reflex-0.6.0/reflex/vars → reflex-0.6.0a1/reflex/ivars}/sequence.py +50 -53
  238. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/middleware/hydrate_middleware.py +0 -2
  239. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/middleware/middleware.py +3 -3
  240. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/state.py +82 -148
  241. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/style.py +22 -21
  242. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/exceptions.py +0 -20
  243. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/format.py +34 -54
  244. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/imports.py +73 -16
  245. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/prerequisites.py +15 -35
  246. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/pyi_generator.py +8 -13
  247. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/serializers.py +22 -12
  248. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/telemetry.py +2 -3
  249. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/types.py +5 -10
  250. reflex-0.6.0a1/reflex/vars.py +501 -0
  251. reflex-0.6.0/reflex/components/base/app_wrap.pyi +0 -67
  252. reflex-0.6.0/reflex/components/radix/themes/layout/container.pyi +0 -118
  253. reflex-0.6.0/reflex/experimental/layout.pyi +0 -432
  254. {reflex-0.6.0 → reflex-0.6.0a1}/LICENSE +0 -0
  255. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  256. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  257. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/apps/blank/code/blank.py +0 -0
  258. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  259. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/custom_components/README.md.jinja2 +0 -0
  260. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/custom_components/__init__.py.jinja2 +0 -0
  261. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/custom_components/demo_app.py.jinja2 +0 -0
  262. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/custom_components/src.py.jinja2 +0 -0
  263. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  264. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  265. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +0 -0
  266. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  267. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
  268. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  269. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
  270. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  271. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  272. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
  273. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
  274. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  275. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/web/.gitignore +0 -0
  276. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  277. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/web/jsconfig.json +0 -0
  278. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/web/next.config.js +0 -0
  279. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/web/postcss.config.js +0 -0
  280. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/web/styles/tailwind.css +0 -0
  281. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/web/utils/client_side_routing.js +0 -0
  282. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  283. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  284. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/web/utils/helpers/paste.js +0 -0
  285. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/web/utils/helpers/range.js +0 -0
  286. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  287. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/__main__.py +0 -0
  288. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/admin.py +0 -0
  289. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/app_mixins/__init__.py +0 -0
  290. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/app_mixins/lifespan.py +0 -0
  291. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/app_mixins/middleware.py +0 -0
  292. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/app_mixins/mixin.py +0 -0
  293. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/compiler/__init__.py +0 -0
  294. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/compiler/templates.py +0 -0
  295. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/__init__.py +0 -0
  296. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/__init__.pyi +0 -0
  297. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/__init__.py +0 -0
  298. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/__init__.pyi +0 -0
  299. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/body.py +0 -0
  300. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/document.py +0 -0
  301. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/fragment.py +0 -0
  302. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/head.py +0 -0
  303. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/base/meta.py +0 -0
  304. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/__init__.py +0 -0
  305. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/__init__.pyi +0 -0
  306. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/breakpoints.py +0 -0
  307. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/colors.py +0 -0
  308. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/layout/__init__.py +0 -0
  309. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/core/responsive.py +0 -0
  310. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/datadisplay/__init__.py +0 -0
  311. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/datadisplay/__init__.pyi +0 -0
  312. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/datadisplay/logo.py +0 -0
  313. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/__init__.py +0 -0
  314. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/__init__.pyi +0 -0
  315. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/constants/__init__.py +0 -0
  316. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/constants/html.py +0 -0
  317. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/constants/react.py +0 -0
  318. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/constants/reflex.py +0 -0
  319. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/element.py +0 -0
  320. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/__init__.py +0 -0
  321. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/el/elements/__init__.pyi +0 -0
  322. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/gridjs/__init__.py +0 -0
  323. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/literals.py +0 -0
  324. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/lucide/__init__.py +0 -0
  325. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/markdown/__init__.py +0 -0
  326. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/moment/__init__.py +0 -0
  327. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/next/__init__.py +0 -0
  328. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/next/base.py +0 -0
  329. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/plotly/__init__.py +0 -0
  330. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/__init__.py +0 -0
  331. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/primitives/__init__.py +0 -0
  332. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/__init__.py +0 -0
  333. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/__init__.pyi +0 -0
  334. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/__init__.py +0 -0
  335. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/components/__init__.pyi +0 -0
  336. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/__init__.py +0 -0
  337. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/box.py +0 -0
  338. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/center.py +0 -0
  339. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/layout/spacer.py +0 -0
  340. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/typography/__init__.py +0 -0
  341. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
  342. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/radix/themes/typography/base.py +0 -0
  343. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/react_player/__init__.py +0 -0
  344. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/react_player/audio.py +0 -0
  345. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/react_player/video.py +0 -0
  346. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/recharts/__init__.py +0 -0
  347. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/recharts/__init__.pyi +0 -0
  348. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/recharts/recharts.py +0 -0
  349. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/sonner/__init__.py +0 -0
  350. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/suneditor/__init__.py +0 -0
  351. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/tags/__init__.py +0 -0
  352. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/components/tags/tagless.py +0 -0
  353. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/config.py +0 -0
  354. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/constants/__init__.py +0 -0
  355. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/constants/base.py +0 -0
  356. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/constants/colors.py +0 -0
  357. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/constants/compiler.py +0 -0
  358. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/constants/config.py +0 -0
  359. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/constants/custom_components.py +0 -0
  360. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/constants/event.py +0 -0
  361. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/constants/installer.py +0 -0
  362. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/constants/route.py +0 -0
  363. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/constants/style.py +0 -0
  364. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/custom_components/__init__.py +0 -0
  365. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/experimental/__init__.py +0 -0
  366. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/experimental/assets.py +0 -0
  367. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/experimental/misc.py +0 -0
  368. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/middleware/__init__.py +0 -0
  369. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/model.py +0 -0
  370. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/page.py +0 -0
  371. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/reflex.py +0 -0
  372. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/route.py +0 -0
  373. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/testing.py +0 -0
  374. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/__init__.py +0 -0
  375. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/build.py +0 -0
  376. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/codespaces.py +0 -0
  377. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/compat.py +0 -0
  378. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/console.py +0 -0
  379. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/exec.py +0 -0
  380. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/export.py +0 -0
  381. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/lazy_loader.py +0 -0
  382. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/net.py +0 -0
  383. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/path_ops.py +0 -0
  384. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/processes.py +0 -0
  385. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/redir.py +0 -0
  386. {reflex-0.6.0 → reflex-0.6.0a1}/reflex/utils/registry.py +0 -0
@@ -1,16 +1,17 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflex
3
- Version: 0.6.0
3
+ Version: 0.6.0a1
4
4
  Summary: Web apps in pure Python.
5
5
  Home-page: https://reflex.dev
6
6
  License: Apache-2.0
7
7
  Keywords: web,framework
8
8
  Author: Nikhil Rao
9
9
  Author-email: nikhil@reflex.dev
10
- Requires-Python: >=3.9,<4.0
10
+ Requires-Python: >=3.8,<4.0
11
11
  Classifier: Development Status :: 4 - Beta
12
12
  Classifier: License :: OSI Approved :: Apache Software License
13
13
  Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.8
14
15
  Classifier: Programming Language :: Python :: 3.9
15
16
  Classifier: Programming Language :: Python :: 3.10
16
17
  Classifier: Programming Language :: Python :: 3.11
@@ -33,7 +34,7 @@ Requires-Dist: python-engineio (!=4.6.0)
33
34
  Requires-Dist: python-multipart (>=0.0.5,<0.1)
34
35
  Requires-Dist: python-socketio (>=5.7.0,<6.0)
35
36
  Requires-Dist: redis (>=4.3.5,<6.0)
36
- Requires-Dist: reflex-chakra (>=0.6.0a6)
37
+ Requires-Dist: reflex-chakra (>=0.6.0a)
37
38
  Requires-Dist: reflex-hosting-cli (>=0.1.2,<2.0)
38
39
  Requires-Dist: rich (>=13.0.0,<14.0)
39
40
  Requires-Dist: setuptools (>=69.1.1,<70.2)
@@ -87,7 +88,7 @@ See our [architecture page](https://reflex.dev/blog/2024-03-21-reflex-architectu
87
88
 
88
89
  ## ⚙️ Installation
89
90
 
90
- Open a terminal and run (Requires Python 3.9+):
91
+ Open a terminal and run (Requires Python 3.8+):
91
92
 
92
93
  ```bash
93
94
  pip install reflex
@@ -35,7 +35,7 @@ See our [architecture page](https://reflex.dev/blog/2024-03-21-reflex-architectu
35
35
 
36
36
  ## ⚙️ Installation
37
37
 
38
- Open a terminal and run (Requires Python 3.9+):
38
+ Open a terminal and run (Requires Python 3.8+):
39
39
 
40
40
  ```bash
41
41
  pip install reflex
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "reflex"
3
- version = "0.6.0"
3
+ version = "0.6.0a1"
4
4
  description = "Web apps in pure Python."
5
5
  license = "Apache-2.0"
6
6
  authors = [
@@ -26,7 +26,7 @@ packages = [
26
26
  ]
27
27
 
28
28
  [tool.poetry.dependencies]
29
- python = "^3.9"
29
+ python = "^3.8"
30
30
  dill = ">=0.3.8,<0.4"
31
31
  fastapi = ">=0.96.0,!=0.111.0,!=0.111.1"
32
32
  gunicorn = ">=20.1.0,<24.0"
@@ -59,7 +59,7 @@ httpx = ">=0.25.1,<1.0"
59
59
  twine = ">=4.0.0,<6.0"
60
60
  tomlkit = ">=0.12.4,<1.0"
61
61
  lazy_loader = ">=0.4"
62
- reflex-chakra = ">=0.6.0a6"
62
+ reflex-chakra = ">=0.6.0a"
63
63
 
64
64
  [tool.poetry.group.dev.dependencies]
65
65
  pytest = ">=7.1.2,<8.0"
@@ -70,11 +70,16 @@ toml = ">=0.10.2,<1.0"
70
70
  pytest-asyncio = ">=0.20.1,<0.22.0" # https://github.com/pytest-dev/pytest-asyncio/issues/706
71
71
  pytest-cov = ">=4.0.0,<5.0"
72
72
  ruff = "^0.4.9"
73
- pandas = ">=2.1.1,<3.0"
74
- pillow = ">=10.0.0,<11.0"
73
+ pandas = [
74
+ {version = ">=2.1.1,<3.0", python = ">=3.9,<3.13"},
75
+ {version = ">=1.5.3,<2.0", python = ">=3.8,<3.9"},
76
+ ]
77
+ pillow = [
78
+ {version = ">=10.0.0,<11.0", python = ">=3.8,<4.0"}
79
+ ]
75
80
  plotly = ">=5.13.0,<6.0"
76
81
  asynctest = ">=0.13.0,<1.0"
77
- pre-commit = ">=3.2.1"
82
+ pre-commit = {version = ">=3.2.1", python = ">=3.8,<4.0"}
78
83
  selenium = ">=4.11.0,<5.0"
79
84
  pytest-benchmark = ">=4.0.0,<5.0"
80
85
 
@@ -88,7 +93,7 @@ build-backend = "poetry.core.masonry.api"
88
93
  [tool.pyright]
89
94
 
90
95
  [tool.ruff]
91
- target-version = "py39"
96
+ target-version = "py38"
92
97
  lint.select = ["B", "D", "E", "F", "I", "SIM", "W"]
93
98
  lint.ignore = ["B008", "D203", "D205", "D213", "D401", "D406", "D407", "E501", "F403", "F405", "F541"]
94
99
  lint.pydocstyle.convention = "google"
@@ -8,11 +8,11 @@ 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.8"
12
12
  authors = [{ name = "", email = "YOUREMAIL@domain.com" }]
13
13
  keywords = ["reflex","reflex-custom-components"]
14
14
 
15
- dependencies = ["reflex>={{ reflex_version }}"]
15
+ dependencies = ["reflex>=0.4.2"]
16
16
 
17
17
  classifiers = ["Development Status :: 4 - Beta"]
18
18
 
@@ -27,7 +27,7 @@ function AppWrap({children}) {
27
27
 
28
28
  export default function MyApp({ Component, pageProps }) {
29
29
  return (
30
- <ThemeProvider defaultTheme={ defaultColorMode } attribute="class">
30
+ <ThemeProvider defaultTheme={ defaultColorMode } storageKey="chakra-ui-color-mode" attribute="class">
31
31
  <AppWrap>
32
32
  <StateProvider>
33
33
  <EventLoopProvider>
@@ -85,10 +85,10 @@
85
85
  {% macro render_match_tag(component) %}
86
86
  {
87
87
  (() => {
88
- switch (JSON.stringify({{ component.cond._js_expr }})) {
88
+ switch (JSON.stringify({{ component.cond._var_name }})) {
89
89
  {% for case in component.match_cases %}
90
90
  {% for condition in case[:-1] %}
91
- case JSON.stringify({{ condition._js_expr }}):
91
+ case JSON.stringify({{ condition._var_name }}):
92
92
  {% endfor %}
93
93
  return {{ case[-1] }};
94
94
  break;
@@ -0,0 +1,36 @@
1
+ import { useColorMode as chakraUseColorMode } from "@chakra-ui/react";
2
+ import { useTheme } from "next-themes";
3
+ import { useEffect, useState } from "react";
4
+ import { ColorModeContext, defaultColorMode } from "/utils/context.js";
5
+
6
+ export default function ChakraColorModeProvider({ children }) {
7
+ const { theme, resolvedTheme, setTheme } = useTheme();
8
+ const { colorMode, toggleColorMode } = chakraUseColorMode();
9
+ const [resolvedColorMode, setResolvedColorMode] = useState(colorMode);
10
+
11
+ useEffect(() => {
12
+ if (colorMode != resolvedTheme) {
13
+ toggleColorMode();
14
+ }
15
+ setResolvedColorMode(resolvedTheme);
16
+ }, [theme, resolvedTheme]);
17
+
18
+ const rawColorMode = colorMode;
19
+ const setColorMode = (mode) => {
20
+ const allowedModes = ["light", "dark", "system"];
21
+ if (!allowedModes.includes(mode)) {
22
+ console.error(
23
+ `Invalid color mode "${mode}". Defaulting to "${defaultColorMode}".`
24
+ );
25
+ mode = defaultColorMode;
26
+ }
27
+ setTheme(mode);
28
+ };
29
+ return (
30
+ <ColorModeContext.Provider
31
+ value={{ rawColorMode, resolvedColorMode, toggleColorMode, setColorMode }}
32
+ >
33
+ {children}
34
+ </ColorModeContext.Provider>
35
+ );
36
+ }
@@ -805,9 +805,7 @@ export const useEventLoop = (
805
805
  * @returns True if the value is truthy, false otherwise.
806
806
  */
807
807
  export const isTrue = (val) => {
808
- if (Array.isArray(val)) return val.length > 0;
809
- if (val === Object(val)) return Object.keys(val).length > 0;
810
- return Boolean(val);
808
+ return Array.isArray(val) ? val.length > 0 : !!val;
811
809
  };
812
810
 
813
811
  /**
@@ -206,13 +206,6 @@ RADIX_PRIMITIVES_MAPPING: dict = {
206
206
  "components.radix.primitives.form": [
207
207
  "form",
208
208
  ],
209
- "components.radix.primitives.progress": [
210
- "progress",
211
- ],
212
- }
213
-
214
- RADIX_PRIMITIVES_SHORTCUT_MAPPING: dict = {
215
- k: v for k, v in RADIX_PRIMITIVES_MAPPING.items() if "progress" not in k
216
209
  }
217
210
 
218
211
  COMPONENTS_CORE_MAPPING: dict = {
@@ -255,7 +248,7 @@ RADIX_MAPPING: dict = {
255
248
  **RADIX_THEMES_COMPONENTS_MAPPING,
256
249
  **RADIX_THEMES_TYPOGRAPHY_MAPPING,
257
250
  **RADIX_THEMES_LAYOUT_MAPPING,
258
- **RADIX_PRIMITIVES_SHORTCUT_MAPPING,
251
+ **RADIX_PRIMITIVES_MAPPING,
259
252
  }
260
253
 
261
254
  _MAPPING: dict = {
@@ -345,6 +338,7 @@ _SUBMODULES: set[str] = {
345
338
  "testing",
346
339
  "utils",
347
340
  "vars",
341
+ "ivars",
348
342
  "config",
349
343
  "compiler",
350
344
  }
@@ -12,6 +12,7 @@ from . import compiler as compiler
12
12
  from . import components as components
13
13
  from . import config as config
14
14
  from . import event as event
15
+ from . import ivars as ivars
15
16
  from . import model as model
16
17
  from . import style as style
17
18
  from . import testing as testing
@@ -131,7 +132,6 @@ from .components.radix.themes.layout.container import container as container
131
132
  from .components.radix.themes.layout.flex import flex as flex
132
133
  from .components.radix.themes.layout.grid import grid as grid
133
134
  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
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
@@ -197,7 +197,6 @@ RADIX_THEMES_COMPONENTS_MAPPING: dict
197
197
  RADIX_THEMES_LAYOUT_MAPPING: dict
198
198
  RADIX_THEMES_TYPOGRAPHY_MAPPING: dict
199
199
  RADIX_PRIMITIVES_MAPPING: dict
200
- RADIX_PRIMITIVES_SHORTCUT_MAPPING: dict
201
200
  COMPONENTS_CORE_MAPPING: dict
202
201
  COMPONENTS_BASE_MAPPING: dict
203
202
  RADIX_MAPPING: dict
@@ -9,7 +9,6 @@ import copy
9
9
  import functools
10
10
  import inspect
11
11
  import io
12
- import json
13
12
  import multiprocessing
14
13
  import os
15
14
  import platform
@@ -824,7 +823,7 @@ class App(MiddlewareMixin, LifespanMixin, Base):
824
823
  for dep in deps:
825
824
  if dep not in state.vars and dep not in state.backend_vars:
826
825
  raise exceptions.VarDependencyError(
827
- f"ComputedVar {var._js_expr} on state {state.__name__} has an invalid dependency {dep}"
826
+ f"ComputedVar {var._var_name} on state {state.__name__} has an invalid dependency {dep}"
828
827
  )
829
828
 
830
829
  for substate in state.class_subclasses:
@@ -1532,9 +1531,8 @@ class EventNamespace(AsyncNamespace):
1532
1531
  sid: The Socket.IO session id.
1533
1532
  data: The event data.
1534
1533
  """
1535
- fields = json.loads(data)
1536
1534
  # Get the event.
1537
- event = Event(**{k: v for k, v in fields.items() if k != "handler"})
1535
+ event = Event.parse_raw(data)
1538
1536
 
1539
1537
  self.token_to_sid[event.token] = sid
1540
1538
  self.sid_to_token[sid] = event.token
@@ -15,7 +15,7 @@ if constants.CompileVars.APP != "app":
15
15
  telemetry.send("compile")
16
16
  app_module = get_app(reload=False)
17
17
  app = getattr(app_module, constants.CompileVars.APP)
18
- # For py3.9 compatibility when redis is used, we MUST add any decorator pages
18
+ # For py3.8 and py3.9 compatibility when redis is used, we MUST add any decorator pages
19
19
  # before compiling the app in a thread to avoid event loop error (REF-2172).
20
20
  app._apply_decorated_pages()
21
21
  compile_future = ThreadPoolExecutor(max_workers=1).submit(app._compile)
@@ -110,7 +110,7 @@ class Base(BaseModel): # pyright: ignore [reportUnboundVariable]
110
110
  var: The variable to add a pydantic field for.
111
111
  default_value: The default value of the field
112
112
  """
113
- var_name = var._js_expr.split(".")[-1]
113
+ var_name = var._var_name.split(".")[-1]
114
114
  new_field = ModelField.infer(
115
115
  name=var_name,
116
116
  value=default_value,
@@ -17,12 +17,12 @@ from reflex.components.component import (
17
17
  StatefulComponent,
18
18
  )
19
19
  from reflex.config import get_config
20
+ from reflex.ivars.base import ImmutableVar, LiteralVar
20
21
  from reflex.state import BaseState
21
22
  from reflex.style import SYSTEM_COLOR_MODE
22
23
  from reflex.utils.exec import is_prod_mode
23
24
  from reflex.utils.imports import ImportVar
24
25
  from reflex.utils.prerequisites import get_web_dir
25
- from reflex.vars.base import LiteralVar, Var
26
26
 
27
27
 
28
28
  def _compile_document_root(root: Component) -> str:
@@ -320,7 +320,7 @@ def _compile_tailwind(
320
320
  def compile_document_root(
321
321
  head_components: list[Component],
322
322
  html_lang: Optional[str] = None,
323
- html_custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
323
+ html_custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
324
324
  ) -> tuple[str, str]:
325
325
  """Compile the document root.
326
326
 
@@ -7,8 +7,8 @@ from pathlib import Path
7
7
  from typing import Any, Callable, Dict, Optional, Type, Union
8
8
  from urllib.parse import urlparse
9
9
 
10
+ from reflex.ivars.base import ImmutableVar
10
11
  from reflex.utils.prerequisites import get_web_dir
11
- from reflex.vars.base import Var
12
12
 
13
13
  try:
14
14
  from pydantic.v1.fields import ModelField
@@ -268,7 +268,7 @@ def compile_custom_component(
268
268
  }
269
269
 
270
270
  # Concatenate the props.
271
- props = [prop._js_expr for prop in component.get_prop_vars()]
271
+ props = [prop._var_name for prop in component.get_prop_vars()]
272
272
 
273
273
  # Compile the component.
274
274
  return (
@@ -286,7 +286,7 @@ def compile_custom_component(
286
286
  def create_document_root(
287
287
  head_components: list[Component] | None = None,
288
288
  html_lang: Optional[str] = None,
289
- html_custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
289
+ html_custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
290
290
  ) -> Component:
291
291
  """Create the document root.
292
292
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  from reflex.components.base.fragment import Fragment
4
4
  from reflex.components.component import Component
5
- from reflex.vars.base import Var
5
+ from reflex.ivars.base import ImmutableVar
6
6
 
7
7
 
8
8
  class AppWrap(Fragment):
@@ -15,4 +15,4 @@ class AppWrap(Fragment):
15
15
  Returns:
16
16
  A new AppWrap component containing {children}.
17
17
  """
18
- return super().create(Var(_js_expr="children"))
18
+ return super().create(ImmutableVar.create("children"))
@@ -0,0 +1,77 @@
1
+ """Stub file for reflex/components/base/app_wrap.py"""
2
+
3
+ # ------------------- DO NOT EDIT ----------------------
4
+ # This file was generated by `reflex/utils/pyi_generator.py`!
5
+ # ------------------------------------------------------
6
+ from typing import Any, Callable, Dict, Optional, Union, overload
7
+
8
+ from reflex.components.base.fragment import Fragment
9
+ from reflex.event import EventHandler, EventSpec
10
+ from reflex.ivars.base import ImmutableVar
11
+ from reflex.style import Style
12
+
13
+ class AppWrap(Fragment):
14
+ @overload
15
+ @classmethod
16
+ def create( # type: ignore
17
+ cls,
18
+ *children,
19
+ style: Optional[Style] = None,
20
+ key: Optional[Any] = None,
21
+ id: Optional[Any] = None,
22
+ class_name: Optional[Any] = None,
23
+ autofocus: Optional[bool] = None,
24
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
25
+ on_blur: Optional[
26
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
27
+ ] = None,
28
+ on_click: Optional[
29
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
30
+ ] = None,
31
+ on_context_menu: Optional[
32
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
33
+ ] = None,
34
+ on_double_click: Optional[
35
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
36
+ ] = None,
37
+ on_focus: Optional[
38
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
39
+ ] = None,
40
+ on_mount: Optional[
41
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
42
+ ] = None,
43
+ on_mouse_down: Optional[
44
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
45
+ ] = None,
46
+ on_mouse_enter: Optional[
47
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
48
+ ] = None,
49
+ on_mouse_leave: Optional[
50
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
51
+ ] = None,
52
+ on_mouse_move: Optional[
53
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
54
+ ] = None,
55
+ on_mouse_out: Optional[
56
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
57
+ ] = None,
58
+ on_mouse_over: Optional[
59
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
60
+ ] = None,
61
+ on_mouse_up: Optional[
62
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
63
+ ] = None,
64
+ on_scroll: Optional[
65
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
66
+ ] = None,
67
+ on_unmount: Optional[
68
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
69
+ ] = None,
70
+ **props,
71
+ ) -> "AppWrap":
72
+ """Create a new AppWrap component.
73
+
74
+ Returns:
75
+ A new AppWrap component containing {children}.
76
+ """
77
+ ...
@@ -7,7 +7,8 @@ from typing import Any, Iterator
7
7
  from reflex.components.component import Component
8
8
  from reflex.components.tags import Tag
9
9
  from reflex.components.tags.tagless import Tagless
10
- from reflex.vars.base import Var
10
+ from reflex.ivars.base import ImmutableVar
11
+ from reflex.vars import Var
11
12
 
12
13
 
13
14
  class Bare(Component):
@@ -25,18 +26,18 @@ class Bare(Component):
25
26
  Returns:
26
27
  The component.
27
28
  """
28
- if isinstance(contents, Var):
29
+ if isinstance(contents, ImmutableVar):
29
30
  return cls(contents=contents)
30
31
  else:
31
32
  contents = str(contents) if contents is not None else ""
32
33
  return cls(contents=contents) # type: ignore
33
34
 
34
35
  def _render(self) -> Tag:
35
- if isinstance(self.contents, Var):
36
+ if isinstance(self.contents, ImmutableVar):
36
37
  return Tagless(contents=f"{{{str(self.contents)}}}")
37
38
  return Tagless(contents=str(self.contents))
38
39
 
39
- def _get_vars(self, include_children: bool = False) -> Iterator[Var]:
40
+ def _get_vars(self, include_children: bool = False) -> Iterator[ImmutableVar]:
40
41
  """Walk all Vars used in this component.
41
42
 
42
43
  Args:
@@ -7,8 +7,8 @@ from typing import Any, Callable, Dict, Optional, Union, overload
7
7
 
8
8
  from reflex.components.component import Component
9
9
  from reflex.event import EventHandler, EventSpec
10
+ from reflex.ivars.base import ImmutableVar
10
11
  from reflex.style import Style
11
- from reflex.vars.base import Var
12
12
 
13
13
  class Body(Component):
14
14
  @overload
@@ -21,41 +21,51 @@ class Body(Component):
21
21
  id: Optional[Any] = None,
22
22
  class_name: Optional[Any] = None,
23
23
  autofocus: Optional[bool] = None,
24
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
25
- on_blur: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
26
- on_click: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
24
+ custom_attrs: Optional[Dict[str, Union[ImmutableVar, str]]] = None,
25
+ on_blur: Optional[
26
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
27
+ ] = None,
28
+ on_click: Optional[
29
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
30
+ ] = None,
27
31
  on_context_menu: Optional[
28
- Union[EventHandler, EventSpec, list, Callable, Var]
32
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
29
33
  ] = None,
30
34
  on_double_click: Optional[
31
- Union[EventHandler, EventSpec, list, Callable, Var]
35
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
36
+ ] = None,
37
+ on_focus: Optional[
38
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
39
+ ] = None,
40
+ on_mount: Optional[
41
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
32
42
  ] = None,
33
- on_focus: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
34
- on_mount: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
35
43
  on_mouse_down: Optional[
36
- Union[EventHandler, EventSpec, list, Callable, Var]
44
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
37
45
  ] = None,
38
46
  on_mouse_enter: Optional[
39
- Union[EventHandler, EventSpec, list, Callable, Var]
47
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
40
48
  ] = None,
41
49
  on_mouse_leave: Optional[
42
- Union[EventHandler, EventSpec, list, Callable, Var]
50
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
43
51
  ] = None,
44
52
  on_mouse_move: Optional[
45
- Union[EventHandler, EventSpec, list, Callable, Var]
53
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
46
54
  ] = None,
47
55
  on_mouse_out: Optional[
48
- Union[EventHandler, EventSpec, list, Callable, Var]
56
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
49
57
  ] = None,
50
58
  on_mouse_over: Optional[
51
- Union[EventHandler, EventSpec, list, Callable, Var]
59
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
52
60
  ] = None,
53
61
  on_mouse_up: Optional[
54
- Union[EventHandler, EventSpec, list, Callable, Var]
62
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
63
+ ] = None,
64
+ on_scroll: Optional[
65
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
55
66
  ] = None,
56
- on_scroll: Optional[Union[EventHandler, EventSpec, list, Callable, Var]] = None,
57
67
  on_unmount: Optional[
58
- Union[EventHandler, EventSpec, list, Callable, Var]
68
+ Union[EventHandler, EventSpec, list, Callable, ImmutableVar]
59
69
  ] = None,
60
70
  **props,
61
71
  ) -> "Body":