reflex 0.3.6__tar.gz → 0.3.7__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 (472) hide show
  1. {reflex-0.3.6 → reflex-0.3.7}/PKG-INFO +3 -2
  2. {reflex-0.3.6 → reflex-0.3.7}/pyproject.toml +3 -2
  3. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/jinja/web/pages/base_page.js.jinja2 +2 -0
  4. {reflex-0.3.6 → reflex-0.3.7}/reflex/__init__.py +29 -6
  5. {reflex-0.3.6 → reflex-0.3.7}/reflex/__init__.pyi +2 -0
  6. {reflex-0.3.6 → reflex-0.3.7}/reflex/app.py +3 -0
  7. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/__init__.py +2 -0
  8. reflex-0.3.7/reflex/components/chakra/__init__.py +23 -0
  9. {reflex-0.3.6/reflex/components → reflex-0.3.7/reflex/components/chakra}/media/image.py +1 -28
  10. reflex-0.3.7/reflex/components/chakra/media/image.pyi +120 -0
  11. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/component.py +27 -2
  12. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/datatable.py +1 -37
  13. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/datatable.pyi +1 -11
  14. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/forms.py +43 -1
  15. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/forms.pyi +26 -1
  16. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/graphing/plotly.py +0 -22
  17. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/graphing/plotly.pyi +0 -12
  18. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/media/__init__.py +0 -1
  19. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/media/image.pyi +0 -9
  20. reflex-0.3.7/reflex/components/next/__init__.py +8 -0
  21. reflex-0.3.7/reflex/components/next/base.py +8 -0
  22. reflex-0.3.7/reflex/components/next/base.pyi +91 -0
  23. reflex-0.3.7/reflex/components/next/image.py +114 -0
  24. reflex-0.3.7/reflex/components/next/image.pyi +122 -0
  25. reflex-0.3.7/reflex/components/next/video.py +33 -0
  26. reflex-0.3.7/reflex/components/next/video.pyi +92 -0
  27. reflex-0.3.7/reflex/components/radix/primitives/__init__.py +3 -0
  28. reflex-0.3.7/reflex/components/radix/primitives/accordion.py +279 -0
  29. reflex-0.3.7/reflex/components/radix/primitives/accordion.pyi +619 -0
  30. reflex-0.3.7/reflex/components/radix/themes/__init__.py +8 -0
  31. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/radix/themes/base.py +7 -7
  32. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/radix/themes/base.pyi +21 -21
  33. reflex-0.3.7/reflex/components/radix/themes/components/__init__.py +193 -0
  34. reflex-0.3.7/reflex/components/radix/themes/components/alertdialog.py +72 -0
  35. reflex-0.3.7/reflex/components/radix/themes/components/alertdialog.pyi +733 -0
  36. reflex-0.3.7/reflex/components/radix/themes/components/aspectratio.py +20 -0
  37. reflex-0.3.7/reflex/components/radix/themes/components/aspectratio.pyi +144 -0
  38. reflex-0.3.7/reflex/components/radix/themes/components/avatar.py +38 -0
  39. reflex-0.3.7/reflex/components/radix/themes/components/avatar.pyi +233 -0
  40. reflex-0.3.7/reflex/components/radix/themes/components/badge.py +38 -0
  41. reflex-0.3.7/reflex/components/radix/themes/components/badge.pyi +291 -0
  42. reflex-0.3.7/reflex/components/radix/themes/components/button.py +39 -0
  43. reflex-0.3.7/reflex/components/radix/themes/components/button.pyi +330 -0
  44. reflex-0.3.7/reflex/components/radix/themes/components/callout.py +49 -0
  45. reflex-0.3.7/reflex/components/radix/themes/components/callout.pyi +668 -0
  46. reflex-0.3.7/reflex/components/radix/themes/components/card.py +25 -0
  47. reflex-0.3.7/reflex/components/radix/themes/components/card.pyi +214 -0
  48. reflex-0.3.7/reflex/components/radix/themes/components/checkbox.py +67 -0
  49. reflex-0.3.7/reflex/components/radix/themes/components/checkbox.pyi +249 -0
  50. reflex-0.3.7/reflex/components/radix/themes/components/contextmenu.py +134 -0
  51. reflex-0.3.6/reflex/components/radix/themes/typography.pyi → reflex-0.3.7/reflex/components/radix/themes/components/contextmenu.pyi +182 -602
  52. reflex-0.3.7/reflex/components/radix/themes/components/dialog.py +75 -0
  53. reflex-0.3.7/reflex/components/radix/themes/components/dialog.pyi +739 -0
  54. reflex-0.3.7/reflex/components/radix/themes/components/dropdownmenu.py +101 -0
  55. reflex-0.3.7/reflex/components/radix/themes/components/dropdownmenu.pyi +1065 -0
  56. reflex-0.3.7/reflex/components/radix/themes/components/hovercard.py +63 -0
  57. reflex-0.3.7/reflex/components/radix/themes/components/hovercard.pyi +487 -0
  58. reflex-0.3.7/reflex/components/radix/themes/components/iconbutton.py +39 -0
  59. reflex-0.3.7/reflex/components/radix/themes/components/iconbutton.pyi +332 -0
  60. reflex-0.3.7/reflex/components/radix/themes/components/icons.py +400 -0
  61. reflex-0.3.7/reflex/components/radix/themes/components/icons.pyi +185 -0
  62. reflex-0.3.7/reflex/components/radix/themes/components/inset.py +44 -0
  63. reflex-0.3.7/reflex/components/radix/themes/components/inset.pyi +230 -0
  64. reflex-0.3.7/reflex/components/radix/themes/components/popover.py +85 -0
  65. reflex-0.3.7/reflex/components/radix/themes/components/popover.pyi +634 -0
  66. reflex-0.3.7/reflex/components/radix/themes/components/radiogroup.py +72 -0
  67. reflex-0.3.7/reflex/components/radix/themes/components/radiogroup.pyi +369 -0
  68. reflex-0.3.7/reflex/components/radix/themes/components/scrollarea.py +31 -0
  69. reflex-0.3.7/reflex/components/radix/themes/components/scrollarea.pyi +165 -0
  70. reflex-0.3.7/reflex/components/radix/themes/components/select.py +137 -0
  71. reflex-0.3.6/reflex/components/radix/themes/layout.pyi → reflex-0.3.7/reflex/components/radix/themes/components/select.pyi +422 -418
  72. reflex-0.3.7/reflex/components/radix/themes/components/separator.py +30 -0
  73. reflex-0.3.7/reflex/components/radix/themes/components/separator.pyi +218 -0
  74. reflex-0.3.7/reflex/components/radix/themes/components/slider.py +68 -0
  75. reflex-0.3.7/reflex/components/radix/themes/components/slider.pyi +254 -0
  76. reflex-0.3.7/reflex/components/radix/themes/components/switch.py +68 -0
  77. reflex-0.3.7/reflex/components/radix/themes/components/switch.pyi +250 -0
  78. reflex-0.3.7/reflex/components/radix/themes/components/table.py +79 -0
  79. reflex-0.3.7/reflex/components/radix/themes/components/table.pyi +1485 -0
  80. reflex-0.3.7/reflex/components/radix/themes/components/tabs.py +65 -0
  81. reflex-0.3.7/reflex/components/radix/themes/components/tabs.pyi +549 -0
  82. reflex-0.3.7/reflex/components/radix/themes/components/textarea.py +68 -0
  83. reflex-0.3.7/reflex/components/radix/themes/components/textarea.pyi +333 -0
  84. reflex-0.3.6/reflex/components/radix/themes/components.py → reflex-0.3.7/reflex/components/radix/themes/components/textfield.py +3 -87
  85. reflex-0.3.6/reflex/components/radix/themes/components.pyi → reflex-0.3.7/reflex/components/radix/themes/components/textfield.pyi +202 -591
  86. reflex-0.3.7/reflex/components/radix/themes/layout/__init__.py +13 -0
  87. reflex-0.3.7/reflex/components/radix/themes/layout/base.py +48 -0
  88. reflex-0.3.7/reflex/components/radix/themes/layout/base.pyi +195 -0
  89. reflex-0.3.7/reflex/components/radix/themes/layout/box.py +12 -0
  90. reflex-0.3.7/reflex/components/radix/themes/layout/box.pyi +252 -0
  91. reflex-0.3.7/reflex/components/radix/themes/layout/container.py +23 -0
  92. reflex-0.3.7/reflex/components/radix/themes/layout/container.pyi +260 -0
  93. reflex-0.3.7/reflex/components/radix/themes/layout/flex.py +45 -0
  94. reflex-0.3.7/reflex/components/radix/themes/layout/flex.pyi +303 -0
  95. reflex-0.3.7/reflex/components/radix/themes/layout/grid.py +53 -0
  96. reflex-0.3.7/reflex/components/radix/themes/layout/grid.pyi +203 -0
  97. reflex-0.3.7/reflex/components/radix/themes/layout/section.py +20 -0
  98. reflex-0.3.7/reflex/components/radix/themes/layout/section.pyi +260 -0
  99. reflex-0.3.7/reflex/components/radix/themes/typography/__init__.py +21 -0
  100. reflex-0.3.7/reflex/components/radix/themes/typography/base.py +12 -0
  101. reflex-0.3.7/reflex/components/radix/themes/typography/blockquote.py +36 -0
  102. reflex-0.3.7/reflex/components/radix/themes/typography/blockquote.pyi +282 -0
  103. reflex-0.3.7/reflex/components/radix/themes/typography/code.py +40 -0
  104. reflex-0.3.7/reflex/components/radix/themes/typography/code.pyi +292 -0
  105. reflex-0.3.7/reflex/components/radix/themes/typography/em.py +18 -0
  106. reflex-0.3.7/reflex/components/radix/themes/typography/em.pyi +199 -0
  107. reflex-0.3.7/reflex/components/radix/themes/typography/heading.py +50 -0
  108. reflex-0.3.7/reflex/components/radix/themes/typography/heading.pyi +298 -0
  109. reflex-0.3.7/reflex/components/radix/themes/typography/kbd.py +25 -0
  110. reflex-0.3.7/reflex/components/radix/themes/typography/kbd.pyi +208 -0
  111. reflex-0.3.7/reflex/components/radix/themes/typography/link.py +49 -0
  112. reflex-0.3.7/reflex/components/radix/themes/typography/link.pyi +238 -0
  113. reflex-0.3.7/reflex/components/radix/themes/typography/quote.py +18 -0
  114. reflex-0.3.7/reflex/components/radix/themes/typography/quote.pyi +200 -0
  115. reflex-0.3.7/reflex/components/radix/themes/typography/strong.py +18 -0
  116. reflex-0.3.7/reflex/components/radix/themes/typography/strong.pyi +199 -0
  117. reflex-0.3.7/reflex/components/radix/themes/typography/text.py +50 -0
  118. reflex-0.3.7/reflex/components/radix/themes/typography/text.pyi +298 -0
  119. {reflex-0.3.6 → reflex-0.3.7}/reflex/constants/__init__.py +1 -0
  120. {reflex-0.3.6 → reflex-0.3.7}/reflex/constants/base.py +7 -0
  121. {reflex-0.3.6 → reflex-0.3.7}/reflex/constants/config.py +1 -1
  122. {reflex-0.3.6 → reflex-0.3.7}/reflex/model.py +2 -1
  123. {reflex-0.3.6 → reflex-0.3.7}/reflex/reflex.py +5 -0
  124. {reflex-0.3.6 → reflex-0.3.7}/reflex/state.py +11 -0
  125. reflex-0.3.7/reflex/style.py +222 -0
  126. {reflex-0.3.6 → reflex-0.3.7}/reflex/testing.py +4 -4
  127. {reflex-0.3.6 → reflex-0.3.7}/reflex/utils/format.py +9 -5
  128. {reflex-0.3.6 → reflex-0.3.7}/reflex/utils/prerequisites.py +49 -6
  129. {reflex-0.3.6 → reflex-0.3.7}/reflex/utils/processes.py +8 -1
  130. {reflex-0.3.6 → reflex-0.3.7}/reflex/utils/serializers.py +83 -0
  131. {reflex-0.3.6 → reflex-0.3.7}/reflex/utils/types.py +22 -1
  132. {reflex-0.3.6 → reflex-0.3.7}/reflex/vars.py +24 -1
  133. reflex-0.3.6/reflex/components/radix/themes/__init__.py +0 -77
  134. reflex-0.3.6/reflex/components/radix/themes/layout.py +0 -155
  135. reflex-0.3.6/reflex/style.py +0 -112
  136. {reflex-0.3.6 → reflex-0.3.7}/LICENSE +0 -0
  137. {reflex-0.3.6 → reflex-0.3.7}/README.md +0 -0
  138. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  139. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  140. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/blank/code/blank.py +0 -0
  141. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/.gitignore +0 -0
  142. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/assets/favicon.ico +0 -0
  143. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/assets/github.svg +0 -0
  144. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/assets/icon.svg +0 -0
  145. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/assets/logo.svg +0 -0
  146. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/assets/paneleft.svg +0 -0
  147. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/__init__.py +0 -0
  148. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/demo.py +0 -0
  149. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/pages/__init__.py +0 -0
  150. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/pages/chatapp.py +0 -0
  151. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/pages/datatable.py +0 -0
  152. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/pages/forms.py +0 -0
  153. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/pages/graphing.py +0 -0
  154. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/pages/home.py +0 -0
  155. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/sidebar.py +0 -0
  156. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/state.py +0 -0
  157. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/states/form_state.py +0 -0
  158. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/states/pie_state.py +0 -0
  159. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/styles.py +0 -0
  160. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/webui/__init__.py +0 -0
  161. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/webui/components/__init__.py +0 -0
  162. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/webui/components/chat.py +0 -0
  163. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/webui/components/loading_icon.py +0 -0
  164. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/webui/components/modal.py +0 -0
  165. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/webui/components/navbar.py +0 -0
  166. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/webui/components/sidebar.py +0 -0
  167. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/webui/state.py +0 -0
  168. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/demo/code/webui/styles.py +0 -0
  169. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/README.md +0 -0
  170. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/assets/favicon.ico +0 -0
  171. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/assets/github.svg +0 -0
  172. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/assets/icon.svg +0 -0
  173. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/assets/logo.svg +0 -0
  174. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/assets/paneleft.svg +0 -0
  175. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/code/__init__.py +0 -0
  176. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/code/components/__init__.py +0 -0
  177. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/code/components/sidebar.py +0 -0
  178. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/code/pages/__init__.py +0 -0
  179. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/code/pages/dashboard.py +0 -0
  180. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/code/pages/index.py +0 -0
  181. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/code/pages/settings.py +0 -0
  182. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/code/sidebar.py +0 -0
  183. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/code/styles.py +0 -0
  184. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/code/templates/__init__.py +0 -0
  185. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/apps/sidebar/code/templates/template.py +0 -0
  186. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/jinja/app/rxconfig.py.jinja2 +0 -0
  187. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/jinja/web/package.json.jinja2 +0 -0
  188. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/jinja/web/pages/_app.js.jinja2 +0 -0
  189. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/jinja/web/pages/_document.js.jinja2 +0 -0
  190. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/jinja/web/pages/component.js.jinja2 +0 -0
  191. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -0
  192. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/jinja/web/pages/index.js.jinja2 +0 -0
  193. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/jinja/web/pages/stateful_component.js.jinja2 +0 -0
  194. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/jinja/web/pages/stateful_components.js.jinja2 +0 -0
  195. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/jinja/web/pages/utils.js.jinja2 +0 -0
  196. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/jinja/web/styles/styles.css.jinja2 +0 -0
  197. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/jinja/web/tailwind.config.js.jinja2 +0 -0
  198. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/jinja/web/utils/context.js.jinja2 +0 -0
  199. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/jinja/web/utils/theme.js.jinja2 +0 -0
  200. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/web/.gitignore +0 -0
  201. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/web/components/reflex/chakra_color_mode_provider.js +0 -0
  202. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  203. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/web/jsconfig.json +0 -0
  204. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/web/next.config.js +0 -0
  205. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/web/postcss.config.js +0 -0
  206. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/web/styles/tailwind.css +0 -0
  207. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/web/utils/client_side_routing.js +0 -0
  208. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  209. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/web/utils/helpers/range.js +0 -0
  210. {reflex-0.3.6 → reflex-0.3.7}/reflex/.templates/web/utils/state.js +0 -0
  211. {reflex-0.3.6 → reflex-0.3.7}/reflex/__main__.py +0 -0
  212. {reflex-0.3.6 → reflex-0.3.7}/reflex/admin.py +0 -0
  213. {reflex-0.3.6 → reflex-0.3.7}/reflex/app.pyi +0 -0
  214. {reflex-0.3.6 → reflex-0.3.7}/reflex/base.py +0 -0
  215. {reflex-0.3.6 → reflex-0.3.7}/reflex/compiler/__init__.py +0 -0
  216. {reflex-0.3.6 → reflex-0.3.7}/reflex/compiler/compiler.py +0 -0
  217. {reflex-0.3.6 → reflex-0.3.7}/reflex/compiler/templates.py +0 -0
  218. {reflex-0.3.6 → reflex-0.3.7}/reflex/compiler/utils.py +0 -0
  219. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/__init__.py +0 -0
  220. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/app_wrap.py +0 -0
  221. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/app_wrap.pyi +0 -0
  222. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/bare.py +0 -0
  223. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/body.py +0 -0
  224. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/body.pyi +0 -0
  225. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/document.py +0 -0
  226. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/document.pyi +0 -0
  227. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/head.py +0 -0
  228. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/head.pyi +0 -0
  229. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/link.py +0 -0
  230. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/link.pyi +0 -0
  231. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/meta.py +0 -0
  232. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/meta.pyi +0 -0
  233. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/script.py +0 -0
  234. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/base/script.pyi +0 -0
  235. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/__init__.py +0 -0
  236. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/badge.py +0 -0
  237. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/badge.pyi +0 -0
  238. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/code.py +0 -0
  239. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/code.pyi +0 -0
  240. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/dataeditor.py +0 -0
  241. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/dataeditor.pyi +0 -0
  242. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/divider.py +0 -0
  243. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/divider.pyi +0 -0
  244. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/keyboard_key.py +0 -0
  245. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/keyboard_key.pyi +0 -0
  246. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/list.py +0 -0
  247. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/list.pyi +0 -0
  248. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/moment.py +0 -0
  249. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/moment.pyi +0 -0
  250. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/stat.py +0 -0
  251. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/stat.pyi +0 -0
  252. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/table.py +0 -0
  253. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/table.pyi +0 -0
  254. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/tag.py +0 -0
  255. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/datadisplay/tag.pyi +0 -0
  256. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/disclosure/__init__.py +0 -0
  257. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/disclosure/accordion.py +0 -0
  258. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/disclosure/accordion.pyi +0 -0
  259. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/disclosure/tabs.py +0 -0
  260. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/disclosure/tabs.pyi +0 -0
  261. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/disclosure/transition.py +0 -0
  262. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/disclosure/transition.pyi +0 -0
  263. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/disclosure/visuallyhidden.py +0 -0
  264. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/disclosure/visuallyhidden.pyi +0 -0
  265. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/__init__.py +0 -0
  266. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/constants/__init__.py +0 -0
  267. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/constants/html.py +0 -0
  268. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/constants/react.py +0 -0
  269. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/constants/reflex.py +0 -0
  270. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/element.py +0 -0
  271. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/element.pyi +0 -0
  272. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/__init__.py +0 -0
  273. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/base.py +0 -0
  274. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/base.pyi +0 -0
  275. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/inline.py +0 -0
  276. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/inline.pyi +0 -0
  277. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/media.py +0 -0
  278. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/media.pyi +0 -0
  279. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/metadata.py +0 -0
  280. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/metadata.pyi +0 -0
  281. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/other.py +0 -0
  282. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/other.pyi +0 -0
  283. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/scripts.py +0 -0
  284. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/scripts.pyi +0 -0
  285. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/sectioning.py +0 -0
  286. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/sectioning.pyi +0 -0
  287. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/tables.py +0 -0
  288. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/tables.pyi +0 -0
  289. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/typography.py +0 -0
  290. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/el/elements/typography.pyi +0 -0
  291. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/feedback/__init__.py +0 -0
  292. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/feedback/alert.py +0 -0
  293. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/feedback/alert.pyi +0 -0
  294. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/feedback/circularprogress.py +0 -0
  295. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/feedback/circularprogress.pyi +0 -0
  296. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/feedback/progress.py +0 -0
  297. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/feedback/progress.pyi +0 -0
  298. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/feedback/skeleton.py +0 -0
  299. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/feedback/skeleton.pyi +0 -0
  300. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/feedback/spinner.py +0 -0
  301. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/feedback/spinner.pyi +0 -0
  302. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/__init__.py +0 -0
  303. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/button.py +0 -0
  304. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/button.pyi +0 -0
  305. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/checkbox.py +0 -0
  306. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/checkbox.pyi +0 -0
  307. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/colormodeswitch.py +0 -0
  308. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/colormodeswitch.pyi +0 -0
  309. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/date_picker.py +0 -0
  310. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/date_picker.pyi +0 -0
  311. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/date_time_picker.py +0 -0
  312. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/date_time_picker.pyi +0 -0
  313. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/debounce.py +0 -0
  314. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/debounce.pyi +0 -0
  315. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/editable.py +0 -0
  316. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/editable.pyi +0 -0
  317. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/editor.py +0 -0
  318. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/editor.pyi +0 -0
  319. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/email.py +0 -0
  320. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/email.pyi +0 -0
  321. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/form.py +0 -0
  322. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/form.pyi +0 -0
  323. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/iconbutton.py +0 -0
  324. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/iconbutton.pyi +0 -0
  325. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/input.py +0 -0
  326. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/input.pyi +0 -0
  327. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/multiselect.py +0 -0
  328. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/numberinput.py +0 -0
  329. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/numberinput.pyi +0 -0
  330. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/password.py +0 -0
  331. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/password.pyi +0 -0
  332. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/pininput.py +0 -0
  333. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/pininput.pyi +0 -0
  334. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/radio.py +0 -0
  335. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/radio.pyi +0 -0
  336. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/rangeslider.py +0 -0
  337. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/rangeslider.pyi +0 -0
  338. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/select.py +0 -0
  339. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/select.pyi +0 -0
  340. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/slider.py +0 -0
  341. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/slider.pyi +0 -0
  342. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/switch.py +0 -0
  343. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/switch.pyi +0 -0
  344. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/textarea.py +0 -0
  345. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/textarea.pyi +0 -0
  346. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/upload.py +0 -0
  347. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/forms/upload.pyi +0 -0
  348. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/graphing/__init__.py +0 -0
  349. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/graphing/recharts/__init__.py +0 -0
  350. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/graphing/recharts/cartesian.py +0 -0
  351. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/graphing/recharts/cartesian.pyi +0 -0
  352. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/graphing/recharts/charts.py +0 -0
  353. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/graphing/recharts/charts.pyi +0 -0
  354. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/graphing/recharts/general.py +0 -0
  355. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/graphing/recharts/general.pyi +0 -0
  356. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/graphing/recharts/polar.py +0 -0
  357. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/graphing/recharts/polar.pyi +0 -0
  358. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/graphing/recharts/recharts.py +0 -0
  359. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/graphing/recharts/recharts.pyi +0 -0
  360. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/__init__.py +0 -0
  361. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/aspect_ratio.py +0 -0
  362. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/aspect_ratio.pyi +0 -0
  363. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/box.py +0 -0
  364. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/box.pyi +0 -0
  365. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/card.py +0 -0
  366. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/card.pyi +0 -0
  367. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/center.py +0 -0
  368. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/center.pyi +0 -0
  369. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/cond.py +0 -0
  370. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/container.py +0 -0
  371. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/container.pyi +0 -0
  372. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/flex.py +0 -0
  373. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/flex.pyi +0 -0
  374. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/foreach.py +0 -0
  375. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/fragment.py +0 -0
  376. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/fragment.pyi +0 -0
  377. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/grid.py +0 -0
  378. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/grid.pyi +0 -0
  379. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/html.py +0 -0
  380. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/html.pyi +0 -0
  381. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/responsive.py +0 -0
  382. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/spacer.py +0 -0
  383. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/spacer.pyi +0 -0
  384. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/stack.py +0 -0
  385. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/stack.pyi +0 -0
  386. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/wrap.py +0 -0
  387. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/layout/wrap.pyi +0 -0
  388. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/libs/__init__.py +0 -0
  389. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/libs/chakra.py +0 -0
  390. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/libs/chakra.pyi +0 -0
  391. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/libs/react_player.py +0 -0
  392. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/libs/react_player.pyi +0 -0
  393. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/literals.py +0 -0
  394. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/media/audio.py +0 -0
  395. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/media/audio.pyi +0 -0
  396. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/media/avatar.py +0 -0
  397. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/media/avatar.pyi +0 -0
  398. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/media/icon.py +0 -0
  399. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/media/icon.pyi +0 -0
  400. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/media/video.py +0 -0
  401. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/media/video.pyi +0 -0
  402. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/navigation/__init__.py +0 -0
  403. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/navigation/breadcrumb.py +0 -0
  404. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/navigation/breadcrumb.pyi +0 -0
  405. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/navigation/client_side_routing.py +0 -0
  406. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/navigation/client_side_routing.pyi +0 -0
  407. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/navigation/link.py +0 -0
  408. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/navigation/link.pyi +0 -0
  409. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/navigation/linkoverlay.py +0 -0
  410. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/navigation/linkoverlay.pyi +0 -0
  411. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/navigation/nextlink.py +0 -0
  412. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/navigation/nextlink.pyi +0 -0
  413. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/navigation/stepper.py +0 -0
  414. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/navigation/stepper.pyi +0 -0
  415. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/overlay/__init__.py +0 -0
  416. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/overlay/alertdialog.py +0 -0
  417. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/overlay/alertdialog.pyi +0 -0
  418. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/overlay/banner.py +0 -0
  419. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/overlay/banner.pyi +0 -0
  420. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/overlay/drawer.py +0 -0
  421. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/overlay/drawer.pyi +0 -0
  422. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/overlay/menu.py +0 -0
  423. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/overlay/menu.pyi +0 -0
  424. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/overlay/modal.py +0 -0
  425. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/overlay/modal.pyi +0 -0
  426. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/overlay/popover.py +0 -0
  427. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/overlay/popover.pyi +0 -0
  428. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/overlay/tooltip.py +0 -0
  429. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/overlay/tooltip.pyi +0 -0
  430. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/radix/__init__.py +0 -0
  431. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/radix/themes/typography.py +0 -0
  432. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/tags/__init__.py +0 -0
  433. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/tags/cond_tag.py +0 -0
  434. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/tags/iter_tag.py +0 -0
  435. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/tags/tag.py +0 -0
  436. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/tags/tagless.py +0 -0
  437. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/typography/__init__.py +0 -0
  438. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/typography/heading.py +0 -0
  439. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/typography/heading.pyi +0 -0
  440. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/typography/highlight.py +0 -0
  441. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/typography/highlight.pyi +0 -0
  442. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/typography/markdown.py +0 -0
  443. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/typography/markdown.pyi +0 -0
  444. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/typography/span.py +0 -0
  445. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/typography/span.pyi +0 -0
  446. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/typography/text.py +0 -0
  447. {reflex-0.3.6 → reflex-0.3.7}/reflex/components/typography/text.pyi +0 -0
  448. {reflex-0.3.6 → reflex-0.3.7}/reflex/config.py +0 -0
  449. {reflex-0.3.6 → reflex-0.3.7}/reflex/config.pyi +0 -0
  450. {reflex-0.3.6 → reflex-0.3.7}/reflex/constants/compiler.py +0 -0
  451. {reflex-0.3.6 → reflex-0.3.7}/reflex/constants/event.py +0 -0
  452. {reflex-0.3.6 → reflex-0.3.7}/reflex/constants/installer.py +0 -0
  453. {reflex-0.3.6 → reflex-0.3.7}/reflex/constants/route.py +0 -0
  454. {reflex-0.3.6 → reflex-0.3.7}/reflex/constants/style.py +0 -0
  455. {reflex-0.3.6 → reflex-0.3.7}/reflex/event.py +0 -0
  456. {reflex-0.3.6 → reflex-0.3.7}/reflex/middleware/__init__.py +0 -0
  457. {reflex-0.3.6 → reflex-0.3.7}/reflex/middleware/hydrate_middleware.py +0 -0
  458. {reflex-0.3.6 → reflex-0.3.7}/reflex/middleware/middleware.py +0 -0
  459. {reflex-0.3.6 → reflex-0.3.7}/reflex/page.py +0 -0
  460. {reflex-0.3.6 → reflex-0.3.7}/reflex/page.pyi +0 -0
  461. {reflex-0.3.6 → reflex-0.3.7}/reflex/route.py +0 -0
  462. {reflex-0.3.6 → reflex-0.3.7}/reflex/utils/__init__.py +0 -0
  463. {reflex-0.3.6 → reflex-0.3.7}/reflex/utils/build.py +0 -0
  464. {reflex-0.3.6 → reflex-0.3.7}/reflex/utils/console.py +0 -0
  465. {reflex-0.3.6 → reflex-0.3.7}/reflex/utils/exceptions.py +0 -0
  466. {reflex-0.3.6 → reflex-0.3.7}/reflex/utils/exec.py +0 -0
  467. {reflex-0.3.6 → reflex-0.3.7}/reflex/utils/export.py +0 -0
  468. {reflex-0.3.6 → reflex-0.3.7}/reflex/utils/imports.py +0 -0
  469. {reflex-0.3.6 → reflex-0.3.7}/reflex/utils/path_ops.py +0 -0
  470. {reflex-0.3.6 → reflex-0.3.7}/reflex/utils/telemetry.py +0 -0
  471. {reflex-0.3.6 → reflex-0.3.7}/reflex/utils/watch.py +0 -0
  472. {reflex-0.3.6 → reflex-0.3.7}/reflex/vars.pyi +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflex
3
- Version: 0.3.6
3
+ Version: 0.3.7
4
4
  Summary: Web apps in pure Python.
5
5
  Home-page: https://reflex.dev
6
6
  License: Apache-2.0
@@ -16,6 +16,7 @@ Classifier: Programming Language :: Python :: 3.9
16
16
  Classifier: Programming Language :: Python :: 3.10
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  Requires-Dist: alembic (>=1.11.1,<2.0.0)
19
+ Requires-Dist: charset-normalizer (>=3.3.2,<4.0.0)
19
20
  Requires-Dist: cloudpickle (>=2.2.1,<3.0.0)
20
21
  Requires-Dist: distro (>=1.8.0,<2.0.0) ; sys_platform == "linux"
21
22
  Requires-Dist: fastapi (>=0.96.0,<0.97.0)
@@ -33,7 +34,7 @@ Requires-Dist: python-socketio (>=5.7.0,<6.0.0)
33
34
  Requires-Dist: redis (>=4.3.5,<5.0.0)
34
35
  Requires-Dist: reflex-hosting-cli (>=0.1.2)
35
36
  Requires-Dist: rich (>=13.0.0,<14.0.0)
36
- Requires-Dist: sqlmodel (>=0.0.8,<0.0.9)
37
+ Requires-Dist: sqlmodel (>=0.0.14,<0.0.15)
37
38
  Requires-Dist: starlette-admin (>=0.9.0,<0.10.0)
38
39
  Requires-Dist: typer (>=0.4.2,<1)
39
40
  Requires-Dist: uvicorn (>=0.20.0,<0.21.0) ; python_version < "3.12"
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "reflex"
3
- version = "0.3.6"
3
+ version = "0.3.7"
4
4
  description = "Web apps in pure Python."
5
5
  license = "Apache-2.0"
6
6
  authors = [
@@ -38,7 +38,7 @@ python-multipart = "^0.0.5"
38
38
  python-socketio = "^5.7.0"
39
39
  redis = "^4.3.5"
40
40
  rich = "^13.0.0"
41
- sqlmodel = "^0.0.8"
41
+ sqlmodel = "^0.0.14"
42
42
  typer = ">=0.4.2,<1"
43
43
  uvicorn = [
44
44
  {version = "^0.24.0", python = ">=3.12"},
@@ -58,6 +58,7 @@ wrapt = [
58
58
  packaging = "^23.1"
59
59
  pipdeptree = "^2.13.0"
60
60
  reflex-hosting-cli = ">=0.1.2"
61
+ charset-normalizer = "^3.3.2"
61
62
 
62
63
  [tool.poetry.group.dev.dependencies]
63
64
  pytest = "^7.1.2"
@@ -1,5 +1,7 @@
1
1
  {% import 'web/pages/utils.js.jinja2' as utils %}
2
2
 
3
+ /** @jsxImportSource @emotion/react */
4
+
3
5
  {%- block imports_libs %}
4
6
  {% for module in imports%}
5
7
  {{- utils.get_import(module) }}
@@ -4,10 +4,13 @@ Anything imported here will be available in the default Reflex import as `rx.*`.
4
4
  To signal to typecheckers that something should be reexported,
5
5
  we use the Flask "import name as name" syntax.
6
6
  """
7
+ from __future__ import annotations
8
+
7
9
  import importlib
8
10
  from typing import Type
9
11
 
10
12
  from reflex.page import page as page
13
+ from reflex.utils import console
11
14
  from reflex.utils.format import to_snake_case
12
15
 
13
16
  _ALL_COMPONENTS = [
@@ -181,10 +184,6 @@ _ALL_COMPONENTS = [
181
184
  "StatGroup",
182
185
  "StatHelpText",
183
186
  "StatLabel",
184
- "StatArrow",
185
- "StatGroup",
186
- "StatHelpText",
187
- "StatLabel",
188
187
  "StatNumber",
189
188
  "Step",
190
189
  "StepDescription",
@@ -250,7 +249,7 @@ _MAPPING = {
250
249
  "reflex.base": ["base", "Base"],
251
250
  "reflex.compiler": ["compiler"],
252
251
  "reflex.compiler.utils": ["get_asset_path"],
253
- "reflex.components": _ALL_COMPONENTS,
252
+ "reflex.components": _ALL_COMPONENTS + ["chakra", "next"],
254
253
  "reflex.components.component": ["memo"],
255
254
  "reflex.components.graphing": ["recharts"],
256
255
  "reflex.components.datadisplay.moment": ["MomentDelta"],
@@ -286,7 +285,31 @@ _MAPPING = {
286
285
  "reflex.utils": ["utils"],
287
286
  "reflex.vars": ["vars", "cached_var", "Var"],
288
287
  }
289
- _MAPPING = {value: key for key, values in _MAPPING.items() for value in values}
288
+
289
+
290
+ def _reverse_mapping(mapping: dict[str, list]) -> dict[str, str]:
291
+ """Reverse the mapping used to lazy loading, and check for conflicting name.
292
+
293
+ Args:
294
+ mapping: The mapping to reverse.
295
+
296
+ Returns:
297
+ The reversed mapping.
298
+ """
299
+ reversed_mapping = {}
300
+ for key, values in mapping.items():
301
+ for value in values:
302
+ if value not in reversed_mapping:
303
+ reversed_mapping[value] = key
304
+ else:
305
+ console.warn(
306
+ f"Key {value} is present multiple times in the imports _MAPPING: {key} / {reversed_mapping[value]}"
307
+ )
308
+ return reversed_mapping
309
+
310
+
311
+ # _MAPPING = {value: key for key, values in _MAPPING.items() for value in values}
312
+ _MAPPING = _reverse_mapping(_MAPPING)
290
313
 
291
314
 
292
315
  def _removeprefix(text, prefix):
@@ -440,6 +440,8 @@ from reflex.components import clear_selected_files as clear_selected_files
440
440
  from reflex.components import EditorButtonList as EditorButtonList
441
441
  from reflex.components import EditorOptions as EditorOptions
442
442
  from reflex.components import NoSSRComponent as NoSSRComponent
443
+ from reflex.components import chakra as chakra
444
+ from reflex.components import next as next
443
445
  from reflex.components.component import memo as memo
444
446
  from reflex.components.graphing import recharts as recharts
445
447
  from reflex.components.datadisplay.moment import MomentDelta as MomentDelta
@@ -667,6 +667,9 @@ class App(Base):
667
667
  # Merge the component style with the app style.
668
668
  component.add_style(self.style)
669
669
 
670
+ if self.theme is not None:
671
+ component.apply_theme(self.theme)
672
+
670
673
  # Add component.get_imports() to all_imports.
671
674
  all_imports.update(component.get_imports())
672
675
 
@@ -1,7 +1,9 @@
1
1
  """Import all the components."""
2
2
  from __future__ import annotations
3
3
 
4
+ from . import next as next
4
5
  from .base import Script
6
+ from .chakra import *
5
7
  from .component import Component
6
8
  from .component import NoSSRComponent as NoSSRComponent
7
9
  from .datadisplay import *
@@ -0,0 +1,23 @@
1
+ """Chakra components."""
2
+
3
+
4
+ import importlib
5
+ from typing import Type
6
+
7
+ from .media.image import Image
8
+
9
+ image = Image.create
10
+
11
+ # _MAPPING = {
12
+ # "image": "media",
13
+ # }
14
+
15
+
16
+ # def __getattr__(name: str) -> Type:
17
+ # print(f"importing {name}")
18
+ # if name not in _MAPPING:
19
+ # return importlib.import_module(name)
20
+
21
+ # module = importlib.import_module(_MAPPING[name], package=".")
22
+
23
+ # return getattr(module, name) if name != _MAPPING[name].rsplit(".")[-1] else module
@@ -1,13 +1,10 @@
1
1
  """An image component."""
2
2
  from __future__ import annotations
3
3
 
4
- import base64
5
- import io
6
4
  from typing import Any, Optional, Union
7
5
 
8
6
  from reflex.components.component import Component
9
7
  from reflex.components.libs.chakra import ChakraComponent, LiteralImageLoading
10
- from reflex.utils.serializers import serializer
11
8
  from reflex.vars import Var
12
9
 
13
10
 
@@ -15,7 +12,7 @@ class Image(ChakraComponent):
15
12
  """Display an image."""
16
13
 
17
14
  tag = "Image"
18
-
15
+ alias = "ChakraImage"
19
16
  # How to align the image within its bounds. It maps to css `object-position` property.
20
17
  align: Var[str]
21
18
 
@@ -79,27 +76,3 @@ class Image(ChakraComponent):
79
76
  if src is not None and not isinstance(src, (Var)):
80
77
  props["src"] = Var.create(value=src, _var_is_string=True)
81
78
  return super().create(*children, **props)
82
-
83
-
84
- try:
85
- from PIL.Image import Image as Img
86
-
87
- @serializer
88
- def serialize_image(image: Img) -> str:
89
- """Serialize a plotly figure.
90
-
91
- Args:
92
- image: The image to serialize.
93
-
94
- Returns:
95
- The serialized image.
96
- """
97
- buff = io.BytesIO()
98
- image.save(buff, format=getattr(image, "format", None) or "PNG")
99
- image_bytes = buff.getvalue()
100
- base64_image = base64.b64encode(image_bytes).decode("utf-8")
101
- mime_type = getattr(image, "get_format_mimetype", lambda: "image/png")()
102
- return f"data:{mime_type};base64,{base64_image}"
103
-
104
- except ImportError:
105
- pass
@@ -0,0 +1,120 @@
1
+ """Stub file for reflex/components/chakra/media/image.py"""
2
+ # ------------------- DO NOT EDIT ----------------------
3
+ # This file was generated by `scripts/pyi_generator.py`!
4
+ # ------------------------------------------------------
5
+
6
+ from typing import Any, Dict, Literal, Optional, Union, overload
7
+ from reflex.vars import Var, BaseVar, ComputedVar
8
+ from reflex.event import EventChain, EventHandler, EventSpec
9
+ from reflex.style import Style
10
+ from typing import Any, Optional, Union
11
+ from reflex.components.component import Component
12
+ from reflex.components.libs.chakra import ChakraComponent, LiteralImageLoading
13
+ from reflex.vars import Var
14
+
15
+ class Image(ChakraComponent):
16
+ def get_event_triggers(self) -> dict[str, Union[Var, Any]]: ...
17
+ @overload
18
+ @classmethod
19
+ def create( # type: ignore
20
+ cls,
21
+ *children,
22
+ align: Optional[Union[Var[str], str]] = None,
23
+ fallback: Optional[Component] = None,
24
+ fallback_src: Optional[Union[Var[str], str]] = None,
25
+ fit: Optional[Union[Var[str], str]] = None,
26
+ html_height: Optional[Union[Var[str], str]] = None,
27
+ html_width: Optional[Union[Var[str], str]] = None,
28
+ ignore_fallback: Optional[Union[Var[bool], bool]] = None,
29
+ loading: Optional[
30
+ Union[Var[Literal["eager", "lazy"]], Literal["eager", "lazy"]]
31
+ ] = None,
32
+ src: Optional[Union[Var[Any], Any]] = None,
33
+ alt: Optional[Union[Var[str], str]] = None,
34
+ src_set: Optional[Union[Var[str], str]] = None,
35
+ style: Optional[Style] = None,
36
+ key: Optional[Any] = None,
37
+ id: Optional[Any] = None,
38
+ class_name: Optional[Any] = None,
39
+ autofocus: Optional[bool] = None,
40
+ custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
41
+ on_blur: Optional[
42
+ Union[EventHandler, EventSpec, list, function, BaseVar]
43
+ ] = None,
44
+ on_click: Optional[
45
+ Union[EventHandler, EventSpec, list, function, BaseVar]
46
+ ] = None,
47
+ on_context_menu: Optional[
48
+ Union[EventHandler, EventSpec, list, function, BaseVar]
49
+ ] = None,
50
+ on_double_click: Optional[
51
+ Union[EventHandler, EventSpec, list, function, BaseVar]
52
+ ] = None,
53
+ on_error: Optional[
54
+ Union[EventHandler, EventSpec, list, function, BaseVar]
55
+ ] = None,
56
+ on_focus: Optional[
57
+ Union[EventHandler, EventSpec, list, function, BaseVar]
58
+ ] = None,
59
+ on_load: Optional[
60
+ Union[EventHandler, EventSpec, list, function, BaseVar]
61
+ ] = None,
62
+ on_mount: Optional[
63
+ Union[EventHandler, EventSpec, list, function, BaseVar]
64
+ ] = None,
65
+ on_mouse_down: Optional[
66
+ Union[EventHandler, EventSpec, list, function, BaseVar]
67
+ ] = None,
68
+ on_mouse_enter: Optional[
69
+ Union[EventHandler, EventSpec, list, function, BaseVar]
70
+ ] = None,
71
+ on_mouse_leave: Optional[
72
+ Union[EventHandler, EventSpec, list, function, BaseVar]
73
+ ] = None,
74
+ on_mouse_move: Optional[
75
+ Union[EventHandler, EventSpec, list, function, BaseVar]
76
+ ] = None,
77
+ on_mouse_out: Optional[
78
+ Union[EventHandler, EventSpec, list, function, BaseVar]
79
+ ] = None,
80
+ on_mouse_over: Optional[
81
+ Union[EventHandler, EventSpec, list, function, BaseVar]
82
+ ] = None,
83
+ on_mouse_up: Optional[
84
+ Union[EventHandler, EventSpec, list, function, BaseVar]
85
+ ] = None,
86
+ on_scroll: Optional[
87
+ Union[EventHandler, EventSpec, list, function, BaseVar]
88
+ ] = None,
89
+ on_unmount: Optional[
90
+ Union[EventHandler, EventSpec, list, function, BaseVar]
91
+ ] = None,
92
+ **props
93
+ ) -> "Image":
94
+ """Create an Image component.
95
+
96
+ Args:
97
+ *children: The children of the image.
98
+ align: How to align the image within its bounds. It maps to css `object-position` property.
99
+ fallback: Fallback Reflex component to show if image is loading or image fails.
100
+ fallback_src: Fallback image src to show if image is loading or image fails.
101
+ fit: How the image to fit within its bounds. It maps to css `object-fit` property.
102
+ html_height: The native HTML height attribute to the passed to the img.
103
+ html_width: The native HTML width attribute to the passed to the img.
104
+ ignore_fallback: If true, opt out of the fallbackSrc logic and use as img.
105
+ loading: "eager" | "lazy"
106
+ src: The path/url to the image or PIL image object.
107
+ alt: The alt text of the image.
108
+ src_set: Provide multiple sources for an image, allowing the browser to select the most appropriate source based on factors like screen resolution and device capabilities. Learn more _[here](https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images)_
109
+ style: The style of the component.
110
+ key: A unique key for the component.
111
+ id: The id for the component.
112
+ class_name: The class name for the component.
113
+ autofocus: Whether the component should take the focus once the page is loaded
114
+ custom_attrs: custom attribute
115
+ **props: The props of the image.
116
+
117
+ Returns:
118
+ The Image component.
119
+ """
120
+ ...
@@ -40,7 +40,7 @@ from reflex.event import (
40
40
  call_event_handler,
41
41
  get_handler_args,
42
42
  )
43
- from reflex.style import Style
43
+ from reflex.style import Style, format_as_emotion
44
44
  from reflex.utils import console, format, imports, types
45
45
  from reflex.utils.imports import ImportVar
46
46
  from reflex.utils.serializers import serializer
@@ -288,6 +288,7 @@ class Component(BaseComponent, ABC):
288
288
 
289
289
  kwargs["style"] = Style(
290
290
  {
291
+ **self.get_fields()["style"].default,
291
292
  **style,
292
293
  **{attr: value for attr, value in kwargs.items() if attr not in fields},
293
294
  }
@@ -445,6 +446,26 @@ class Component(BaseComponent, ABC):
445
446
 
446
447
  return _compile_component(self)
447
448
 
449
+ def _apply_theme(self, theme: Component):
450
+ """Apply the theme to this component.
451
+
452
+ Args:
453
+ theme: The theme to apply.
454
+ """
455
+ pass
456
+
457
+ def apply_theme(self, theme: Component):
458
+ """Apply a theme to the component and its children.
459
+
460
+ Args:
461
+ theme: The theme to apply.
462
+ """
463
+ self._apply_theme(theme)
464
+ for child in self.children:
465
+ if not isinstance(child, Component):
466
+ continue
467
+ child.apply_theme(theme)
468
+
448
469
  def _render(self, props: dict[str, Any] | None = None) -> Tag:
449
470
  """Define how to render the component in React.
450
471
 
@@ -603,7 +624,7 @@ class Component(BaseComponent, ABC):
603
624
  Returns:
604
625
  The dictionary of the component style as value and the style notation as key.
605
626
  """
606
- return {"style": self.style}
627
+ return {"css": Var.create(format_as_emotion(self.style))}
607
628
 
608
629
  def render(self) -> Dict:
609
630
  """Render the component.
@@ -785,6 +806,10 @@ class Component(BaseComponent, ABC):
785
806
  for child in self.children:
786
807
  dynamic_imports |= child.get_dynamic_imports()
787
808
 
809
+ for prop in self.get_component_props():
810
+ if getattr(self, prop) is not None:
811
+ dynamic_imports |= getattr(self, prop).get_dynamic_imports()
812
+
788
813
  # Return the dynamic imports
789
814
  return dynamic_imports
790
815
 
@@ -7,7 +7,7 @@ from typing import Any, Dict, List, Union
7
7
  from reflex.components.component import Component
8
8
  from reflex.components.tags import Tag
9
9
  from reflex.utils import imports, types
10
- from reflex.utils.serializers import serialize, serializer
10
+ from reflex.utils.serializers import serialize
11
11
  from reflex.vars import BaseVar, ComputedVar, Var
12
12
 
13
13
 
@@ -129,39 +129,3 @@ class DataTable(Gridjs):
129
129
 
130
130
  # Render the table.
131
131
  return super()._render()
132
-
133
-
134
- try:
135
- from pandas import DataFrame
136
-
137
- def format_dataframe_values(df: DataFrame) -> List[List[Any]]:
138
- """Format dataframe values to a list of lists.
139
-
140
- Args:
141
- df: The dataframe to format.
142
-
143
- Returns:
144
- The dataframe as a list of lists.
145
- """
146
- return [
147
- [str(d) if isinstance(d, (list, tuple)) else d for d in data]
148
- for data in list(df.values.tolist())
149
- ]
150
-
151
- @serializer
152
- def serialize_dataframe(df: DataFrame) -> dict:
153
- """Serialize a pandas dataframe.
154
-
155
- Args:
156
- df: The dataframe to serialize.
157
-
158
- Returns:
159
- The serialized dataframe.
160
- """
161
- return {
162
- "columns": df.columns.tolist(),
163
- "data": format_dataframe_values(df),
164
- }
165
-
166
- except ImportError:
167
- pass
@@ -11,7 +11,7 @@ from typing import Any, Dict, List, Union
11
11
  from reflex.components.component import Component
12
12
  from reflex.components.tags import Tag
13
13
  from reflex.utils import imports, types
14
- from reflex.utils.serializers import serialize, serializer
14
+ from reflex.utils.serializers import serialize
15
15
  from reflex.vars import BaseVar, ComputedVar, Var
16
16
 
17
17
  class Gridjs(Component):
@@ -183,13 +183,3 @@ class DataTable(Gridjs):
183
183
  ValueError: If a pandas dataframe is passed in and columns are also provided.
184
184
  """
185
185
  ...
186
-
187
- try:
188
- from pandas import DataFrame
189
-
190
- def format_dataframe_values(df: DataFrame) -> List[List[Any]]: ...
191
- @serializer
192
- def serialize_dataframe(df: DataFrame) -> dict: ...
193
-
194
- except ImportError:
195
- pass
@@ -1,7 +1,8 @@
1
1
  """Element classes. This is an auto-generated file. Do not edit. See ../generate.py."""
2
- from typing import Union
2
+ from typing import Any, Dict, Union
3
3
 
4
4
  from reflex.components.el.element import Element
5
+ from reflex.constants.event import EventTriggers
5
6
  from reflex.vars import Var
6
7
 
7
8
  from .base import BaseHTML
@@ -205,6 +206,21 @@ class Input(BaseHTML):
205
206
  # The width of the input (only for type="image")
206
207
  width: Var[Union[str, int, bool]]
207
208
 
209
+ def get_event_triggers(self) -> Dict[str, Any]:
210
+ """Get the event triggers that pass the component's value to the handler.
211
+
212
+ Returns:
213
+ A dict mapping the event trigger to the var that is passed to the handler.
214
+ """
215
+ return {
216
+ **super().get_event_triggers(),
217
+ EventTriggers.ON_CHANGE: lambda e0: [e0.target.value],
218
+ EventTriggers.ON_FOCUS: lambda e0: [e0.target.value],
219
+ EventTriggers.ON_BLUR: lambda e0: [e0.target.value],
220
+ EventTriggers.ON_KEY_DOWN: lambda e0: [e0.key],
221
+ EventTriggers.ON_KEY_UP: lambda e0: [e0.key],
222
+ }
223
+
208
224
 
209
225
  class Label(BaseHTML):
210
226
  """Display the label element."""
@@ -341,6 +357,17 @@ class Select(BaseHTML):
341
357
  # Number of visible options in a drop-down list
342
358
  size: Var[Union[str, int, bool]]
343
359
 
360
+ def get_event_triggers(self) -> Dict[str, Any]:
361
+ """Get the event triggers that pass the component's value to the handler.
362
+
363
+ Returns:
364
+ A dict mapping the event trigger to the var that is passed to the handler.
365
+ """
366
+ return {
367
+ **super().get_event_triggers(),
368
+ EventTriggers.ON_CHANGE: lambda e0: [e0.target.value],
369
+ }
370
+
344
371
 
345
372
  class Textarea(BaseHTML):
346
373
  """Display the textarea element."""
@@ -388,3 +415,18 @@ class Textarea(BaseHTML):
388
415
 
389
416
  # How the text in the textarea is to be wrapped when submitting the form
390
417
  wrap: Var[Union[str, int, bool]]
418
+
419
+ def get_event_triggers(self) -> Dict[str, Any]:
420
+ """Get the event triggers that pass the component's value to the handler.
421
+
422
+ Returns:
423
+ A dict mapping the event trigger to the var that is passed to the handler.
424
+ """
425
+ return {
426
+ **super().get_event_triggers(),
427
+ EventTriggers.ON_CHANGE: lambda e0: [e0.target.value],
428
+ EventTriggers.ON_FOCUS: lambda e0: [e0.target.value],
429
+ EventTriggers.ON_BLUR: lambda e0: [e0.target.value],
430
+ EventTriggers.ON_KEY_DOWN: lambda e0: [e0.key],
431
+ EventTriggers.ON_KEY_UP: lambda e0: [e0.key],
432
+ }
@@ -7,8 +7,9 @@ from typing import Any, Dict, Literal, Optional, Union, overload
7
7
  from reflex.vars import Var, BaseVar, ComputedVar
8
8
  from reflex.event import EventChain, EventHandler, EventSpec
9
9
  from reflex.style import Style
10
- from typing import Union
10
+ from typing import Any, Dict, Union
11
11
  from reflex.components.el.element import Element
12
+ from reflex.constants.event import EventTriggers
12
13
  from reflex.vars import Var
13
14
  from .base import BaseHTML
14
15
 
@@ -589,6 +590,7 @@ class Form(BaseHTML):
589
590
  ...
590
591
 
591
592
  class Input(BaseHTML):
593
+ def get_event_triggers(self) -> Dict[str, Any]: ...
592
594
  @overload
593
595
  @classmethod
594
596
  def create( # type: ignore
@@ -725,6 +727,9 @@ class Input(BaseHTML):
725
727
  on_blur: Optional[
726
728
  Union[EventHandler, EventSpec, list, function, BaseVar]
727
729
  ] = None,
730
+ on_change: Optional[
731
+ Union[EventHandler, EventSpec, list, function, BaseVar]
732
+ ] = None,
728
733
  on_click: Optional[
729
734
  Union[EventHandler, EventSpec, list, function, BaseVar]
730
735
  ] = None,
@@ -737,6 +742,12 @@ class Input(BaseHTML):
737
742
  on_focus: Optional[
738
743
  Union[EventHandler, EventSpec, list, function, BaseVar]
739
744
  ] = None,
745
+ on_key_down: Optional[
746
+ Union[EventHandler, EventSpec, list, function, BaseVar]
747
+ ] = None,
748
+ on_key_up: Optional[
749
+ Union[EventHandler, EventSpec, list, function, BaseVar]
750
+ ] = None,
740
751
  on_mount: Optional[
741
752
  Union[EventHandler, EventSpec, list, function, BaseVar]
742
753
  ] = None,
@@ -1877,6 +1888,7 @@ class Progress(BaseHTML):
1877
1888
  ...
1878
1889
 
1879
1890
  class Select(BaseHTML):
1891
+ def get_event_triggers(self) -> Dict[str, Any]: ...
1880
1892
  @overload
1881
1893
  @classmethod
1882
1894
  def create( # type: ignore
@@ -1952,6 +1964,9 @@ class Select(BaseHTML):
1952
1964
  on_blur: Optional[
1953
1965
  Union[EventHandler, EventSpec, list, function, BaseVar]
1954
1966
  ] = None,
1967
+ on_change: Optional[
1968
+ Union[EventHandler, EventSpec, list, function, BaseVar]
1969
+ ] = None,
1955
1970
  on_click: Optional[
1956
1971
  Union[EventHandler, EventSpec, list, function, BaseVar]
1957
1972
  ] = None,
@@ -2042,6 +2057,7 @@ class Select(BaseHTML):
2042
2057
  ...
2043
2058
 
2044
2059
  class Textarea(BaseHTML):
2060
+ def get_event_triggers(self) -> Dict[str, Any]: ...
2045
2061
  @overload
2046
2062
  @classmethod
2047
2063
  def create( # type: ignore
@@ -2131,6 +2147,9 @@ class Textarea(BaseHTML):
2131
2147
  on_blur: Optional[
2132
2148
  Union[EventHandler, EventSpec, list, function, BaseVar]
2133
2149
  ] = None,
2150
+ on_change: Optional[
2151
+ Union[EventHandler, EventSpec, list, function, BaseVar]
2152
+ ] = None,
2134
2153
  on_click: Optional[
2135
2154
  Union[EventHandler, EventSpec, list, function, BaseVar]
2136
2155
  ] = None,
@@ -2143,6 +2162,12 @@ class Textarea(BaseHTML):
2143
2162
  on_focus: Optional[
2144
2163
  Union[EventHandler, EventSpec, list, function, BaseVar]
2145
2164
  ] = None,
2165
+ on_key_down: Optional[
2166
+ Union[EventHandler, EventSpec, list, function, BaseVar]
2167
+ ] = None,
2168
+ on_key_up: Optional[
2169
+ Union[EventHandler, EventSpec, list, function, BaseVar]
2170
+ ] = None,
2146
2171
  on_mount: Optional[
2147
2172
  Union[EventHandler, EventSpec, list, function, BaseVar]
2148
2173
  ] = None,
@@ -1,10 +1,8 @@
1
1
  """Component for displaying a plotly graph."""
2
2
 
3
- import json
4
3
  from typing import Any, Dict, List
5
4
 
6
5
  from reflex.components.component import NoSSRComponent
7
- from reflex.utils.serializers import serializer
8
6
  from reflex.vars import Var
9
7
 
10
8
  try:
@@ -42,23 +40,3 @@ class Plotly(PlotlyLib):
42
40
 
43
41
  # If true, the graph will resize when the window is resized.
44
42
  use_resize_handler: Var[bool]
45
-
46
-
47
- try:
48
- from plotly.graph_objects import Figure
49
- from plotly.io import to_json
50
-
51
- @serializer
52
- def serialize_figure(figure: Figure) -> list:
53
- """Serialize a plotly figure.
54
-
55
- Args:
56
- figure: The figure to serialize.
57
-
58
- Returns:
59
- The serialized figure.
60
- """
61
- return json.loads(str(to_json(figure)))["data"]
62
-
63
- except ImportError:
64
- pass