reflex 0.8.12a2__tar.gz → 0.8.13__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 (394) hide show
  1. {reflex-0.8.12a2 → reflex-0.8.13}/PKG-INFO +1 -1
  2. {reflex-0.8.12a2 → reflex-0.8.13}/pyproject.toml +2 -2
  3. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/app.py +7 -2
  4. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/upload.pyi +8 -0
  5. reflex-0.8.13/reflex/components/react_player/audio.pyi +87 -0
  6. reflex-0.8.13/reflex/components/react_player/react_player.py +259 -0
  7. reflex-0.8.13/reflex/components/react_player/react_player.pyi +108 -0
  8. reflex-0.8.13/reflex/components/react_player/video.pyi +87 -0
  9. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/recharts/recharts.py +2 -2
  10. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/constants/colors.py +3 -1
  11. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/constants/installer.py +2 -2
  12. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/environment.py +3 -0
  13. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/plugins/shared_tailwind.py +1 -1
  14. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/reflex.py +36 -3
  15. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/state.py +13 -3
  16. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/build.py +10 -4
  17. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/exec.py +11 -0
  18. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/export.py +3 -1
  19. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/prerequisites.py +82 -7
  20. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/serializers.py +8 -4
  21. reflex-0.8.13/reflex/vars/__init__.py +58 -0
  22. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/vars/base.py +20 -113
  23. reflex-0.8.13/reflex/vars/color.py +214 -0
  24. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/vars/number.py +2 -2
  25. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/vars/sequence.py +0 -136
  26. reflex-0.8.12a2/reflex/components/react_player/audio.pyi +0 -110
  27. reflex-0.8.12a2/reflex/components/react_player/react_player.py +0 -119
  28. reflex-0.8.12a2/reflex/components/react_player/react_player.pyi +0 -113
  29. reflex-0.8.12a2/reflex/components/react_player/video.pyi +0 -110
  30. reflex-0.8.12a2/reflex/vars/__init__.py +0 -28
  31. {reflex-0.8.12a2 → reflex-0.8.13}/.gitignore +0 -0
  32. {reflex-0.8.12a2 → reflex-0.8.13}/LICENSE +0 -0
  33. {reflex-0.8.12a2 → reflex-0.8.13}/README.md +0 -0
  34. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  35. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  36. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/apps/blank/code/blank.py +0 -0
  37. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/.gitignore +0 -0
  38. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/app/entry.client.js +0 -0
  39. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/app/routes.js +0 -0
  40. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  41. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/components/shiki/code.js +0 -0
  42. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/jsconfig.json +0 -0
  43. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/postcss.config.js +0 -0
  44. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/react-router.config.js +0 -0
  45. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/styles/__reflex_style_reset.css +0 -0
  46. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  47. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  48. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/utils/helpers/paste.js +0 -0
  49. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/utils/helpers/range.js +0 -0
  50. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  51. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/utils/helpers/upload.js +0 -0
  52. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/utils/react-theme.js +0 -0
  53. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/utils/state.js +0 -0
  54. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/.templates/web/vite-plugin-safari-cachebust.js +0 -0
  55. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/__init__.py +0 -0
  56. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/__init__.pyi +0 -0
  57. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/__main__.py +0 -0
  58. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/admin.py +0 -0
  59. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/app_mixins/__init__.py +0 -0
  60. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/app_mixins/lifespan.py +0 -0
  61. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/app_mixins/middleware.py +0 -0
  62. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/app_mixins/mixin.py +0 -0
  63. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/assets.py +0 -0
  64. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/base.py +0 -0
  65. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/compiler/__init__.py +0 -0
  66. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/compiler/compiler.py +0 -0
  67. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/compiler/templates.py +0 -0
  68. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/compiler/utils.py +0 -0
  69. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/__init__.py +0 -0
  70. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/__init__.pyi +0 -0
  71. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/__init__.py +0 -0
  72. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/__init__.pyi +0 -0
  73. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/app_wrap.py +0 -0
  74. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/app_wrap.pyi +0 -0
  75. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/bare.py +0 -0
  76. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/body.py +0 -0
  77. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/body.pyi +0 -0
  78. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/document.py +0 -0
  79. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/document.pyi +0 -0
  80. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/error_boundary.py +0 -0
  81. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/error_boundary.pyi +0 -0
  82. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/fragment.py +0 -0
  83. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/fragment.pyi +0 -0
  84. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/link.py +0 -0
  85. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/link.pyi +0 -0
  86. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/meta.py +0 -0
  87. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/meta.pyi +0 -0
  88. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/script.py +0 -0
  89. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/script.pyi +0 -0
  90. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/strict_mode.py +0 -0
  91. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/base/strict_mode.pyi +0 -0
  92. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/component.py +0 -0
  93. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/__init__.py +0 -0
  94. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/__init__.pyi +0 -0
  95. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/auto_scroll.py +0 -0
  96. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/auto_scroll.pyi +0 -0
  97. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/banner.py +0 -0
  98. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/banner.pyi +0 -0
  99. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/breakpoints.py +0 -0
  100. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/clipboard.py +0 -0
  101. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/clipboard.pyi +0 -0
  102. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/colors.py +0 -0
  103. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/cond.py +0 -0
  104. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/debounce.py +0 -0
  105. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/debounce.pyi +0 -0
  106. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/foreach.py +0 -0
  107. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/helmet.py +0 -0
  108. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/helmet.pyi +0 -0
  109. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/html.py +0 -0
  110. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/html.pyi +0 -0
  111. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/layout/__init__.py +0 -0
  112. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/match.py +0 -0
  113. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/responsive.py +0 -0
  114. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/sticky.py +0 -0
  115. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/sticky.pyi +0 -0
  116. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/upload.py +0 -0
  117. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/window_events.py +0 -0
  118. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/core/window_events.pyi +0 -0
  119. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/datadisplay/__init__.py +0 -0
  120. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/datadisplay/__init__.pyi +0 -0
  121. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/datadisplay/code.py +0 -0
  122. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/datadisplay/code.pyi +0 -0
  123. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/datadisplay/dataeditor.py +0 -0
  124. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/datadisplay/dataeditor.pyi +0 -0
  125. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/datadisplay/logo.py +0 -0
  126. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/datadisplay/shiki_code_block.py +0 -0
  127. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
  128. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/dynamic.py +0 -0
  129. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/__init__.py +0 -0
  130. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/__init__.pyi +0 -0
  131. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/element.py +0 -0
  132. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/element.pyi +0 -0
  133. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/__init__.py +0 -0
  134. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/__init__.pyi +0 -0
  135. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/base.py +0 -0
  136. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/base.pyi +0 -0
  137. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/forms.py +0 -0
  138. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/forms.pyi +0 -0
  139. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/inline.py +0 -0
  140. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/inline.pyi +0 -0
  141. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/media.py +0 -0
  142. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/media.pyi +0 -0
  143. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/metadata.py +0 -0
  144. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/metadata.pyi +0 -0
  145. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/other.py +0 -0
  146. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/other.pyi +0 -0
  147. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/scripts.py +0 -0
  148. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/scripts.pyi +0 -0
  149. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/sectioning.py +0 -0
  150. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/sectioning.pyi +0 -0
  151. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/tables.py +0 -0
  152. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/tables.pyi +0 -0
  153. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/typography.py +0 -0
  154. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/el/elements/typography.pyi +0 -0
  155. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/field.py +0 -0
  156. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/gridjs/__init__.py +0 -0
  157. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/gridjs/datatable.py +0 -0
  158. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/gridjs/datatable.pyi +0 -0
  159. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/literals.py +0 -0
  160. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/lucide/__init__.py +0 -0
  161. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/lucide/icon.py +0 -0
  162. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/lucide/icon.pyi +0 -0
  163. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/markdown/__init__.py +0 -0
  164. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/markdown/markdown.py +0 -0
  165. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/markdown/markdown.pyi +0 -0
  166. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/moment/__init__.py +0 -0
  167. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/moment/moment.py +0 -0
  168. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/moment/moment.pyi +0 -0
  169. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/plotly/__init__.py +0 -0
  170. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/plotly/plotly.py +0 -0
  171. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/plotly/plotly.pyi +0 -0
  172. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/props.py +0 -0
  173. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/__init__.py +0 -0
  174. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/__init__.pyi +0 -0
  175. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/primitives/__init__.py +0 -0
  176. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/primitives/__init__.pyi +0 -0
  177. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/primitives/accordion.py +0 -0
  178. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/primitives/accordion.pyi +0 -0
  179. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/primitives/base.py +0 -0
  180. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/primitives/base.pyi +0 -0
  181. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/primitives/drawer.py +0 -0
  182. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/primitives/drawer.pyi +0 -0
  183. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/primitives/form.py +0 -0
  184. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/primitives/form.pyi +0 -0
  185. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/primitives/progress.py +0 -0
  186. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/primitives/progress.pyi +0 -0
  187. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/primitives/slider.py +0 -0
  188. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/primitives/slider.pyi +0 -0
  189. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/__init__.py +0 -0
  190. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/__init__.pyi +0 -0
  191. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/base.py +0 -0
  192. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/base.pyi +0 -0
  193. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/color_mode.py +0 -0
  194. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/color_mode.pyi +0 -0
  195. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/__init__.py +0 -0
  196. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/__init__.pyi +0 -0
  197. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
  198. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -0
  199. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  200. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -0
  201. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/avatar.py +0 -0
  202. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/avatar.pyi +0 -0
  203. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/badge.py +0 -0
  204. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/badge.pyi +0 -0
  205. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/button.py +0 -0
  206. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/button.pyi +0 -0
  207. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/callout.py +0 -0
  208. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/callout.pyi +0 -0
  209. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/card.py +0 -0
  210. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/card.pyi +0 -0
  211. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/checkbox.py +0 -0
  212. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/checkbox.pyi +0 -0
  213. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
  214. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/checkbox_cards.pyi +0 -0
  215. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
  216. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/checkbox_group.pyi +0 -0
  217. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/context_menu.py +0 -0
  218. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/context_menu.pyi +0 -0
  219. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/data_list.py +0 -0
  220. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/data_list.pyi +0 -0
  221. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/dialog.py +0 -0
  222. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/dialog.pyi +0 -0
  223. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
  224. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -0
  225. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/hover_card.py +0 -0
  226. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/hover_card.pyi +0 -0
  227. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/icon_button.py +0 -0
  228. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/icon_button.pyi +0 -0
  229. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/inset.py +0 -0
  230. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/inset.pyi +0 -0
  231. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/popover.py +0 -0
  232. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/popover.pyi +0 -0
  233. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/progress.py +0 -0
  234. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/progress.pyi +0 -0
  235. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/radio.py +0 -0
  236. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/radio.pyi +0 -0
  237. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/radio_cards.py +0 -0
  238. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/radio_cards.pyi +0 -0
  239. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/radio_group.py +0 -0
  240. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
  241. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  242. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/scroll_area.pyi +0 -0
  243. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/segmented_control.py +0 -0
  244. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
  245. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/select.py +0 -0
  246. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/select.pyi +0 -0
  247. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/separator.py +0 -0
  248. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/separator.pyi +0 -0
  249. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/skeleton.py +0 -0
  250. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/skeleton.pyi +0 -0
  251. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/slider.py +0 -0
  252. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/slider.pyi +0 -0
  253. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/spinner.py +0 -0
  254. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/spinner.pyi +0 -0
  255. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/switch.py +0 -0
  256. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/switch.pyi +0 -0
  257. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/table.py +0 -0
  258. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/table.pyi +0 -0
  259. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/tabs.py +0 -0
  260. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/tabs.pyi +0 -0
  261. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/text_area.py +0 -0
  262. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/text_area.pyi +0 -0
  263. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/text_field.py +0 -0
  264. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/text_field.pyi +0 -0
  265. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/tooltip.py +0 -0
  266. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/components/tooltip.pyi +0 -0
  267. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/__init__.py +0 -0
  268. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
  269. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/base.py +0 -0
  270. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/base.pyi +0 -0
  271. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/box.py +0 -0
  272. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/box.pyi +0 -0
  273. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/center.py +0 -0
  274. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/center.pyi +0 -0
  275. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/container.py +0 -0
  276. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/container.pyi +0 -0
  277. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/flex.py +0 -0
  278. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/flex.pyi +0 -0
  279. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/grid.py +0 -0
  280. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/grid.pyi +0 -0
  281. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/list.py +0 -0
  282. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/list.pyi +0 -0
  283. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/section.py +0 -0
  284. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/section.pyi +0 -0
  285. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/spacer.py +0 -0
  286. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/spacer.pyi +0 -0
  287. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/stack.py +0 -0
  288. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/layout/stack.pyi +0 -0
  289. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/typography/__init__.py +0 -0
  290. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
  291. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/typography/base.py +0 -0
  292. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  293. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/typography/blockquote.pyi +0 -0
  294. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/typography/code.py +0 -0
  295. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/typography/code.pyi +0 -0
  296. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/typography/heading.py +0 -0
  297. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/typography/heading.pyi +0 -0
  298. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/typography/link.py +0 -0
  299. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/typography/link.pyi +0 -0
  300. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/typography/text.py +0 -0
  301. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/radix/themes/typography/text.pyi +0 -0
  302. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/react_player/__init__.py +0 -0
  303. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/react_player/audio.py +0 -0
  304. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/react_player/video.py +0 -0
  305. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/react_router/__init__.py +0 -0
  306. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/react_router/dom.py +0 -0
  307. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/react_router/dom.pyi +0 -0
  308. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/recharts/__init__.py +0 -0
  309. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/recharts/__init__.pyi +0 -0
  310. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/recharts/cartesian.py +0 -0
  311. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/recharts/cartesian.pyi +0 -0
  312. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/recharts/charts.py +0 -0
  313. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/recharts/charts.pyi +0 -0
  314. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/recharts/general.py +0 -0
  315. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/recharts/general.pyi +0 -0
  316. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/recharts/polar.py +0 -0
  317. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/recharts/polar.pyi +0 -0
  318. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/recharts/recharts.pyi +0 -0
  319. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/sonner/__init__.py +0 -0
  320. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/sonner/toast.py +0 -0
  321. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/sonner/toast.pyi +0 -0
  322. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/tags/__init__.py +0 -0
  323. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/tags/cond_tag.py +0 -0
  324. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/tags/iter_tag.py +0 -0
  325. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/tags/match_tag.py +0 -0
  326. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/tags/tag.py +0 -0
  327. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/components/tags/tagless.py +0 -0
  328. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/config.py +0 -0
  329. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/constants/__init__.py +0 -0
  330. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/constants/base.py +0 -0
  331. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/constants/compiler.py +0 -0
  332. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/constants/config.py +0 -0
  333. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/constants/custom_components.py +0 -0
  334. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/constants/event.py +0 -0
  335. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/constants/route.py +0 -0
  336. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/constants/state.py +0 -0
  337. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/constants/utils.py +0 -0
  338. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/custom_components/__init__.py +0 -0
  339. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/custom_components/custom_components.py +0 -0
  340. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/event.py +0 -0
  341. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/experimental/__init__.py +0 -0
  342. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/experimental/client_state.py +0 -0
  343. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/experimental/hooks.py +0 -0
  344. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/istate/__init__.py +0 -0
  345. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/istate/data.py +0 -0
  346. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/istate/dynamic.py +0 -0
  347. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/istate/manager.py +0 -0
  348. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/istate/proxy.py +0 -0
  349. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/istate/storage.py +0 -0
  350. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/istate/wrappers.py +0 -0
  351. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/middleware/__init__.py +0 -0
  352. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/middleware/hydrate_middleware.py +0 -0
  353. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/middleware/middleware.py +0 -0
  354. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/model.py +0 -0
  355. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/page.py +0 -0
  356. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/plugins/__init__.py +0 -0
  357. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/plugins/_screenshot.py +0 -0
  358. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/plugins/base.py +0 -0
  359. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/plugins/sitemap.py +0 -0
  360. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/plugins/tailwind_v3.py +0 -0
  361. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/plugins/tailwind_v4.py +0 -0
  362. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/py.typed +0 -0
  363. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/route.py +0 -0
  364. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/style.py +0 -0
  365. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/testing.py +0 -0
  366. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/__init__.py +0 -0
  367. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/codespaces.py +0 -0
  368. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/compat.py +0 -0
  369. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/console.py +0 -0
  370. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/decorator.py +0 -0
  371. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/exceptions.py +0 -0
  372. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/format.py +0 -0
  373. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/frontend_skeleton.py +0 -0
  374. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/imports.py +0 -0
  375. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/js_runtimes.py +0 -0
  376. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/lazy_loader.py +0 -0
  377. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/misc.py +0 -0
  378. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/monitoring.py +0 -0
  379. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/net.py +0 -0
  380. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/path_ops.py +0 -0
  381. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/processes.py +0 -0
  382. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/pyi_generator.py +0 -0
  383. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/redir.py +0 -0
  384. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/registry.py +0 -0
  385. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/rename.py +0 -0
  386. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/telemetry.py +0 -0
  387. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/templates.py +0 -0
  388. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/token_manager.py +0 -0
  389. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/utils/types.py +0 -0
  390. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/vars/datetime.py +0 -0
  391. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/vars/dep_tracking.py +0 -0
  392. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/vars/function.py +0 -0
  393. {reflex-0.8.12a2 → reflex-0.8.13}/reflex/vars/object.py +0 -0
  394. {reflex-0.8.12a2 → reflex-0.8.13}/scripts/hatch_build.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reflex
3
- Version: 0.8.12a2
3
+ Version: 0.8.13
4
4
  Summary: Web apps in pure Python.
5
5
  Project-URL: homepage, https://reflex.dev
6
6
  Project-URL: repository, https://github.com/reflex-dev/reflex
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "reflex"
3
- version = "0.8.12a2"
3
+ version = "0.8.13"
4
4
  description = "Web apps in pure Python."
5
5
  license.text = "Apache-2.0"
6
6
  authors = [
@@ -229,7 +229,7 @@ fail_fast = true
229
229
 
230
230
  [[tool.pre-commit.repos]]
231
231
  repo = "https://github.com/astral-sh/ruff-pre-commit"
232
- rev = "v0.13.0"
232
+ rev = "v0.13.1"
233
233
  hooks = [
234
234
  { id = "ruff-format", args = [
235
235
  "reflex",
@@ -113,7 +113,12 @@ from reflex.utils import (
113
113
  prerequisites,
114
114
  types,
115
115
  )
116
- from reflex.utils.exec import get_compile_context, is_prod_mode, is_testing_env
116
+ from reflex.utils.exec import (
117
+ get_compile_context,
118
+ is_prod_mode,
119
+ is_testing_env,
120
+ should_prerender_routes,
121
+ )
117
122
  from reflex.utils.imports import ImportVar
118
123
  from reflex.utils.token_manager import TokenManager
119
124
  from reflex.utils.types import ASGIApp, Message, Receive, Scope, Send
@@ -607,7 +612,7 @@ class App(MiddlewareMixin, LifespanMixin):
607
612
  """
608
613
  from reflex.vars.base import GLOBAL_CACHE
609
614
 
610
- self._compile(prerender_routes=is_prod_mode())
615
+ self._compile(prerender_routes=should_prerender_routes())
611
616
 
612
617
  config = get_config()
613
618
 
@@ -108,6 +108,7 @@ class GhostUpload(Fragment):
108
108
  on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
109
109
  on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
110
110
  on_drop: EventType[()] | EventType[Any] | None = None,
111
+ on_drop_rejected: EventType[()] | EventType[Any] | None = None,
111
112
  on_focus: EventType[()] | None = None,
112
113
  on_mount: EventType[()] | None = None,
113
114
  on_mouse_down: EventType[()] | None = None,
@@ -127,6 +128,7 @@ class GhostUpload(Fragment):
127
128
  Args:
128
129
  *children: The children of the component.
129
130
  on_drop: Fired when files are dropped.
131
+ on_drop_rejected: Fired when dropped files do not meet the specified criteria.
130
132
  style: The style of the component.
131
133
  key: A unique key for the component.
132
134
  id: The id for the component.
@@ -171,6 +173,7 @@ class Upload(MemoizationLeaf):
171
173
  on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
172
174
  on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
173
175
  on_drop: EventType[()] | EventType[Any] | None = None,
176
+ on_drop_rejected: EventType[()] | EventType[Any] | None = None,
174
177
  on_focus: EventType[()] | None = None,
175
178
  on_mount: EventType[()] | None = None,
176
179
  on_mouse_down: EventType[()] | None = None,
@@ -199,6 +202,7 @@ class Upload(MemoizationLeaf):
199
202
  no_drag: Whether to disable drag and drop.
200
203
  no_keyboard: Whether to disable using the space/enter keys to upload.
201
204
  on_drop: Fired when files are dropped.
205
+ on_drop_rejected: Fired when dropped files do not meet the specified criteria.
202
206
  drag_active_style: Style rules to apply when actively dragging.
203
207
  style: The style of the component.
204
208
  key: A unique key for the component.
@@ -242,6 +246,7 @@ class StyledUpload(Upload):
242
246
  on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
243
247
  on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
244
248
  on_drop: EventType[()] | EventType[Any] | None = None,
249
+ on_drop_rejected: EventType[()] | EventType[Any] | None = None,
245
250
  on_focus: EventType[()] | None = None,
246
251
  on_mount: EventType[()] | None = None,
247
252
  on_mouse_down: EventType[()] | None = None,
@@ -270,6 +275,7 @@ class StyledUpload(Upload):
270
275
  no_drag: Whether to disable drag and drop.
271
276
  no_keyboard: Whether to disable using the space/enter keys to upload.
272
277
  on_drop: Fired when files are dropped.
278
+ on_drop_rejected: Fired when dropped files do not meet the specified criteria.
273
279
  drag_active_style: Style rules to apply when actively dragging.
274
280
  style: The style of the component.
275
281
  key: A unique key for the component.
@@ -314,6 +320,7 @@ class UploadNamespace(ComponentNamespace):
314
320
  on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
315
321
  on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
316
322
  on_drop: EventType[()] | EventType[Any] | None = None,
323
+ on_drop_rejected: EventType[()] | EventType[Any] | None = None,
317
324
  on_focus: EventType[()] | None = None,
318
325
  on_mount: EventType[()] | None = None,
319
326
  on_mouse_down: EventType[()] | None = None,
@@ -342,6 +349,7 @@ class UploadNamespace(ComponentNamespace):
342
349
  no_drag: Whether to disable drag and drop.
343
350
  no_keyboard: Whether to disable using the space/enter keys to upload.
344
351
  on_drop: Fired when files are dropped.
352
+ on_drop_rejected: Fired when dropped files do not meet the specified criteria.
345
353
  drag_active_style: Style rules to apply when actively dragging.
346
354
  style: The style of the component.
347
355
  key: A unique key for the component.
@@ -0,0 +1,87 @@
1
+ """Stub file for reflex/components/react_player/audio.py"""
2
+
3
+ # ------------------- DO NOT EDIT ----------------------
4
+ # This file was generated by `reflex/utils/pyi_generator.py`!
5
+ # ------------------------------------------------------
6
+ from collections.abc import Mapping, Sequence
7
+ from typing import Any
8
+
9
+ from reflex.components.core.breakpoints import Breakpoints
10
+ from reflex.components.react_player.react_player import ReactPlayer
11
+ from reflex.event import EventType, PointerEventInfo
12
+ from reflex.vars.base import Var
13
+
14
+ class Audio(ReactPlayer):
15
+ @classmethod
16
+ def create(
17
+ cls,
18
+ *children,
19
+ src: Var[list[dict[str, str]] | list[str] | str]
20
+ | list[dict[str, str]]
21
+ | list[str]
22
+ | str
23
+ | None = None,
24
+ playing: Var[bool] | bool | None = None,
25
+ loop: Var[bool] | bool | None = None,
26
+ controls: Var[bool] | bool | None = None,
27
+ light: Var[bool] | bool | None = None,
28
+ volume: Var[float] | float | None = None,
29
+ muted: Var[bool] | bool | None = None,
30
+ config: Var[dict[str, Any]] | dict[str, Any] | None = None,
31
+ style: Sequence[Mapping[str, Any]]
32
+ | Mapping[str, Any]
33
+ | Var[Mapping[str, Any]]
34
+ | Breakpoints
35
+ | None = None,
36
+ key: Any | None = None,
37
+ id: Any | None = None,
38
+ ref: Var | None = None,
39
+ class_name: Any | None = None,
40
+ custom_attrs: dict[str, Var | Any] | None = None,
41
+ on_blur: EventType[()] | None = None,
42
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
43
+ on_click_preview: EventType[()] | None = None,
44
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
45
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
46
+ on_duration_change: EventType[Any] | None = None,
47
+ on_ended: EventType[()] | None = None,
48
+ on_enter_picture_in_picture: EventType[()] | None = None,
49
+ on_error: EventType[()] | None = None,
50
+ on_focus: EventType[()] | None = None,
51
+ on_leave_picture_in_picture: EventType[()] | None = None,
52
+ on_mount: EventType[()] | None = None,
53
+ on_mouse_down: EventType[()] | None = None,
54
+ on_mouse_enter: EventType[()] | None = None,
55
+ on_mouse_leave: EventType[()] | None = None,
56
+ on_mouse_move: EventType[()] | None = None,
57
+ on_mouse_out: EventType[()] | None = None,
58
+ on_mouse_over: EventType[()] | None = None,
59
+ on_mouse_up: EventType[()] | None = None,
60
+ on_pause: EventType[()] | None = None,
61
+ on_play: EventType[()] | None = None,
62
+ on_playing: EventType[()] | None = None,
63
+ on_progress: EventType[Any] | None = None,
64
+ on_rate_change: EventType[Any] | None = None,
65
+ on_ready: EventType[()] | None = None,
66
+ on_scroll: EventType[()] | None = None,
67
+ on_scroll_end: EventType[()] | None = None,
68
+ on_seeked: EventType[Any] | None = None,
69
+ on_seeking: EventType[()] | None = None,
70
+ on_start: EventType[()] | None = None,
71
+ on_time_update: EventType[Any] | None = None,
72
+ on_unmount: EventType[()] | None = None,
73
+ on_waiting: EventType[()] | None = None,
74
+ **props,
75
+ ) -> Audio:
76
+ """Create a component.
77
+
78
+ Args:
79
+ children: The children of the component.
80
+ props: The props of the component.
81
+
82
+ Returns:
83
+ The created component.
84
+
85
+ Raises:
86
+ ValueError: If both a deprecated prop and its replacement are both passed.
87
+ """
@@ -0,0 +1,259 @@
1
+ """React-Player component."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any, TypedDict
6
+
7
+ from reflex.components.component import Component
8
+ from reflex.components.core.cond import cond
9
+ from reflex.event import EventHandler, no_args_event_spec
10
+ from reflex.utils import console
11
+ from reflex.vars.base import Var
12
+ from reflex.vars.object import ObjectVar
13
+
14
+ ReactPlayerEvent = ObjectVar[dict[str, dict[str, dict[str, Any]]]]
15
+
16
+
17
+ class Progress(TypedDict):
18
+ """Callback containing played and loaded progress as a fraction, and playedSeconds and loadedSeconds in seconds."""
19
+
20
+ played: float
21
+ playedSeconds: float
22
+ loaded: float
23
+ loadedSeconds: float
24
+ duration: float
25
+
26
+
27
+ def _on_progress_signature(event: ReactPlayerEvent) -> list[Var[Progress]]:
28
+ """Type signature for on_progress event.
29
+
30
+ Args:
31
+ event: The event variable.
32
+
33
+ Returns:
34
+ The progress information extracted from the event.
35
+ """
36
+ player_info = event["target"]["api"]["playerInfo"].to(dict)
37
+ progress_state = player_info["progressState"].to(dict)
38
+ current = progress_state["current"].to(float)
39
+ loaded = progress_state["loaded"].to(float)
40
+ duration = progress_state["duration"].to(float)
41
+ return [
42
+ cond(
43
+ progress_state,
44
+ {
45
+ "played": cond(duration, current / duration, 0.0),
46
+ "playedSeconds": current,
47
+ "loaded": cond(duration, loaded / duration, 0.0),
48
+ "loadedSeconds": loaded,
49
+ "duration": duration,
50
+ },
51
+ {
52
+ "played": 0.0,
53
+ "playedSeconds": 0.0,
54
+ "loaded": 0.0,
55
+ "loadedSeconds": 0.0,
56
+ "duration": 0.0,
57
+ },
58
+ ).to(Progress)
59
+ ]
60
+
61
+
62
+ def _player_info_key_or_zero(event: ReactPlayerEvent, key: str) -> Var[float]:
63
+ """Helper to extract a value from playerInfo or return 0.0 if not available.
64
+
65
+ Args:
66
+ event: The event variable.
67
+ key: The key to extract from playerInfo.
68
+
69
+ Returns:
70
+ The extracted value or 0.0 if not available.
71
+ """
72
+ player_info = event["target"]["api"]["playerInfo"].to(dict)
73
+ return cond(
74
+ player_info[key],
75
+ player_info[key],
76
+ 0.0,
77
+ ).to(float)
78
+
79
+
80
+ def _on_time_update_signature(event: ReactPlayerEvent) -> list[Var[float]]:
81
+ """Type signature for on_time_update event.
82
+
83
+ Args:
84
+ event: The event variable.
85
+
86
+ Returns:
87
+ The current timestamp in seconds.
88
+ """
89
+ return [_player_info_key_or_zero(event, "currentTime")]
90
+
91
+
92
+ def _on_duration_change_signature(event: ReactPlayerEvent) -> list[Var[float]]:
93
+ """Type signature for on_duration_change event.
94
+
95
+ Args:
96
+ event: The event variable.
97
+
98
+ Returns:
99
+ The active media's duration in seconds.
100
+ """
101
+ return [_player_info_key_or_zero(event, "duration")]
102
+
103
+
104
+ def _on_rate_change_signature(event: ReactPlayerEvent) -> list[Var[float]]:
105
+ """Type signature for on_rate_change event.
106
+
107
+ Args:
108
+ event: The event variable.
109
+
110
+ Returns:
111
+ The current playback rate.
112
+ """
113
+ return [_player_info_key_or_zero(event, "playbackRate")]
114
+
115
+
116
+ _DEPRECATED_PROP_MAP = {
117
+ "url": "src",
118
+ "on_duration": "on_duration_change",
119
+ "on_playback_rate_change": "on_rate_change",
120
+ "on_seek": "on_seeked",
121
+ "on_buffer": "on_waiting",
122
+ "on_buffer_end": "on_playing",
123
+ "on_enable_pip": "on_enter_picture_in_picture",
124
+ "on_disable_pip": "on_leave_picture_in_picture",
125
+ }
126
+
127
+
128
+ class ReactPlayer(Component):
129
+ """Using react-player and not implement all props and callback yet.
130
+ reference: https://github.com/cookpete/react-player.
131
+ """
132
+
133
+ library = "react-player@3.3.3"
134
+
135
+ tag = "ReactPlayer"
136
+
137
+ is_default = True
138
+
139
+ # The url of a video or song to play
140
+ src: Var[str | list[str] | list[dict[str, str]]]
141
+
142
+ # Set to true or false to pause or play the media
143
+ playing: Var[bool]
144
+
145
+ # Set to true or false to loop the media
146
+ loop: Var[bool]
147
+
148
+ # Set to true or false to display native player controls.
149
+ controls: Var[bool] = Var.create(True)
150
+
151
+ # Set to true to show just the video thumbnail, which loads the full player on click
152
+ light: Var[bool]
153
+
154
+ # Set the volume of the player, between 0 and 1
155
+ volume: Var[float]
156
+
157
+ # Mutes the player
158
+ muted: Var[bool]
159
+
160
+ # Player-specific configuration parameters.
161
+ config: Var[dict[str, Any]]
162
+
163
+ # Called when media is loaded and ready to play. If playing is set to true, media will play immediately.
164
+ on_ready: EventHandler[no_args_event_spec]
165
+
166
+ # Called when media starts playing.
167
+ on_start: EventHandler[no_args_event_spec]
168
+
169
+ # Called when playing is set to true.
170
+ on_play: EventHandler[no_args_event_spec]
171
+
172
+ # Called when media starts or resumes playing after pausing or buffering.
173
+ on_playing: EventHandler[no_args_event_spec]
174
+
175
+ # Called while the video is loading only. Contains played and loaded progress as a fraction, and playedSeconds and loadedSeconds in seconds. eg { played: 0.12, playedSeconds: 11.3, loaded: 0.34, loadedSeconds: 16.7 }
176
+ on_progress: EventHandler[_on_progress_signature]
177
+
178
+ # Called when the media's current time changes (~4Hz, use .throttle to limit calls to backend).
179
+ on_time_update: EventHandler[_on_time_update_signature]
180
+
181
+ # Callback containing duration of the media, in seconds.
182
+ on_duration_change: EventHandler[_on_duration_change_signature]
183
+
184
+ # Called when media is paused.
185
+ on_pause: EventHandler[no_args_event_spec]
186
+
187
+ # Called when media starts buffering.
188
+ on_waiting: EventHandler[no_args_event_spec]
189
+
190
+ # Called when the media is seeking.
191
+ on_seeking: EventHandler[no_args_event_spec]
192
+
193
+ # Called when media seeks with seconds parameter.
194
+ on_seeked: EventHandler[_on_time_update_signature]
195
+
196
+ # Called when playback rate of the player changed. Only supported by YouTube, Vimeo (if enabled), Wistia, and file paths.
197
+ on_rate_change: EventHandler[_on_rate_change_signature]
198
+
199
+ # Called when media finishes playing. Does not fire when loop is set to true.
200
+ on_ended: EventHandler[no_args_event_spec]
201
+
202
+ # Called when an error occurs whilst attempting to play media.
203
+ on_error: EventHandler[no_args_event_spec]
204
+
205
+ # Called when user clicks the light mode preview.
206
+ on_click_preview: EventHandler[no_args_event_spec]
207
+
208
+ # Called when picture-in-picture mode is enabled.
209
+ on_enter_picture_in_picture: EventHandler[no_args_event_spec]
210
+
211
+ # Called when picture-in-picture mode is disabled.
212
+ on_leave_picture_in_picture: EventHandler[no_args_event_spec]
213
+
214
+ @classmethod
215
+ def create(cls, *children, **props) -> ReactPlayer:
216
+ """Create a component.
217
+
218
+ Args:
219
+ children: The children of the component.
220
+ props: The props of the component.
221
+
222
+ Returns:
223
+ The created component.
224
+
225
+ Raises:
226
+ ValueError: If both a deprecated prop and its replacement are both passed.
227
+ """
228
+ for prop, new_prop in _DEPRECATED_PROP_MAP.items():
229
+ if prop in props:
230
+ if new_prop in props:
231
+ msg = (
232
+ f"The prop {prop!r} is deprecated, but the replacement {new_prop!r} is also passed. Please remove {prop!r}.",
233
+ )
234
+ raise ValueError(msg)
235
+ console.warn(
236
+ f"The prop {prop!r} has been replaced by {new_prop!r}, please update your code.",
237
+ )
238
+ props[new_prop] = props.pop(prop)
239
+ return super().create(*children, **props) # type: ignore[return-value]
240
+
241
+ def _render(self, props: dict[str, Any] | None = None):
242
+ """Render the component. Adds width and height set to None because
243
+ react-player will set them to some random value that overrides the
244
+ css width and height.
245
+
246
+ Args:
247
+ props: The props to pass to the component.
248
+
249
+ Returns:
250
+ The rendered component.
251
+ """
252
+ return (
253
+ super()
254
+ ._render(props)
255
+ .add_props(
256
+ width=Var.create(None),
257
+ height=Var.create(None),
258
+ )
259
+ )
@@ -0,0 +1,108 @@
1
+ """Stub file for reflex/components/react_player/react_player.py"""
2
+
3
+ # ------------------- DO NOT EDIT ----------------------
4
+ # This file was generated by `reflex/utils/pyi_generator.py`!
5
+ # ------------------------------------------------------
6
+ from collections.abc import Mapping, Sequence
7
+ from typing import Any, TypedDict
8
+
9
+ from reflex.components.component import Component
10
+ from reflex.components.core.breakpoints import Breakpoints
11
+ from reflex.event import EventType, PointerEventInfo
12
+ from reflex.vars.base import Var
13
+ from reflex.vars.object import ObjectVar
14
+
15
+ ReactPlayerEvent = ObjectVar[dict[str, dict[str, dict[str, Any]]]]
16
+
17
+ class Progress(TypedDict):
18
+ played: float
19
+ playedSeconds: float
20
+ loaded: float
21
+ loadedSeconds: float
22
+ duration: float
23
+
24
+ _DEPRECATED_PROP_MAP = {
25
+ "url": "src",
26
+ "on_duration": "on_duration_change",
27
+ "on_playback_rate_change": "on_rate_change",
28
+ "on_seek": "on_seeked",
29
+ "on_buffer": "on_waiting",
30
+ "on_buffer_end": "on_playing",
31
+ "on_enable_pip": "on_enter_picture_in_picture",
32
+ "on_disable_pip": "on_leave_picture_in_picture",
33
+ }
34
+
35
+ class ReactPlayer(Component):
36
+ @classmethod
37
+ def create(
38
+ cls,
39
+ *children,
40
+ src: Var[list[dict[str, str]] | list[str] | str]
41
+ | list[dict[str, str]]
42
+ | list[str]
43
+ | str
44
+ | None = None,
45
+ playing: Var[bool] | bool | None = None,
46
+ loop: Var[bool] | bool | None = None,
47
+ controls: Var[bool] | bool | None = None,
48
+ light: Var[bool] | bool | None = None,
49
+ volume: Var[float] | float | None = None,
50
+ muted: Var[bool] | bool | None = None,
51
+ config: Var[dict[str, Any]] | dict[str, Any] | None = None,
52
+ style: Sequence[Mapping[str, Any]]
53
+ | Mapping[str, Any]
54
+ | Var[Mapping[str, Any]]
55
+ | Breakpoints
56
+ | None = None,
57
+ key: Any | None = None,
58
+ id: Any | None = None,
59
+ ref: Var | None = None,
60
+ class_name: Any | None = None,
61
+ custom_attrs: dict[str, Var | Any] | None = None,
62
+ on_blur: EventType[()] | None = None,
63
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
64
+ on_click_preview: EventType[()] | None = None,
65
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
66
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
67
+ on_duration_change: EventType[Any] | None = None,
68
+ on_ended: EventType[()] | None = None,
69
+ on_enter_picture_in_picture: EventType[()] | None = None,
70
+ on_error: EventType[()] | None = None,
71
+ on_focus: EventType[()] | None = None,
72
+ on_leave_picture_in_picture: EventType[()] | None = None,
73
+ on_mount: EventType[()] | None = None,
74
+ on_mouse_down: EventType[()] | None = None,
75
+ on_mouse_enter: EventType[()] | None = None,
76
+ on_mouse_leave: EventType[()] | None = None,
77
+ on_mouse_move: EventType[()] | None = None,
78
+ on_mouse_out: EventType[()] | None = None,
79
+ on_mouse_over: EventType[()] | None = None,
80
+ on_mouse_up: EventType[()] | None = None,
81
+ on_pause: EventType[()] | None = None,
82
+ on_play: EventType[()] | None = None,
83
+ on_playing: EventType[()] | None = None,
84
+ on_progress: EventType[Any] | None = None,
85
+ on_rate_change: EventType[Any] | None = None,
86
+ on_ready: EventType[()] | None = None,
87
+ on_scroll: EventType[()] | None = None,
88
+ on_scroll_end: EventType[()] | None = None,
89
+ on_seeked: EventType[Any] | None = None,
90
+ on_seeking: EventType[()] | None = None,
91
+ on_start: EventType[()] | None = None,
92
+ on_time_update: EventType[Any] | None = None,
93
+ on_unmount: EventType[()] | None = None,
94
+ on_waiting: EventType[()] | None = None,
95
+ **props,
96
+ ) -> ReactPlayer:
97
+ """Create a component.
98
+
99
+ Args:
100
+ children: The children of the component.
101
+ props: The props of the component.
102
+
103
+ Returns:
104
+ The created component.
105
+
106
+ Raises:
107
+ ValueError: If both a deprecated prop and its replacement are both passed.
108
+ """
@@ -0,0 +1,87 @@
1
+ """Stub file for reflex/components/react_player/video.py"""
2
+
3
+ # ------------------- DO NOT EDIT ----------------------
4
+ # This file was generated by `reflex/utils/pyi_generator.py`!
5
+ # ------------------------------------------------------
6
+ from collections.abc import Mapping, Sequence
7
+ from typing import Any
8
+
9
+ from reflex.components.core.breakpoints import Breakpoints
10
+ from reflex.components.react_player.react_player import ReactPlayer
11
+ from reflex.event import EventType, PointerEventInfo
12
+ from reflex.vars.base import Var
13
+
14
+ class Video(ReactPlayer):
15
+ @classmethod
16
+ def create(
17
+ cls,
18
+ *children,
19
+ src: Var[list[dict[str, str]] | list[str] | str]
20
+ | list[dict[str, str]]
21
+ | list[str]
22
+ | str
23
+ | None = None,
24
+ playing: Var[bool] | bool | None = None,
25
+ loop: Var[bool] | bool | None = None,
26
+ controls: Var[bool] | bool | None = None,
27
+ light: Var[bool] | bool | None = None,
28
+ volume: Var[float] | float | None = None,
29
+ muted: Var[bool] | bool | None = None,
30
+ config: Var[dict[str, Any]] | dict[str, Any] | None = None,
31
+ style: Sequence[Mapping[str, Any]]
32
+ | Mapping[str, Any]
33
+ | Var[Mapping[str, Any]]
34
+ | Breakpoints
35
+ | None = None,
36
+ key: Any | None = None,
37
+ id: Any | None = None,
38
+ ref: Var | None = None,
39
+ class_name: Any | None = None,
40
+ custom_attrs: dict[str, Var | Any] | None = None,
41
+ on_blur: EventType[()] | None = None,
42
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
43
+ on_click_preview: EventType[()] | None = None,
44
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
45
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
46
+ on_duration_change: EventType[Any] | None = None,
47
+ on_ended: EventType[()] | None = None,
48
+ on_enter_picture_in_picture: EventType[()] | None = None,
49
+ on_error: EventType[()] | None = None,
50
+ on_focus: EventType[()] | None = None,
51
+ on_leave_picture_in_picture: EventType[()] | None = None,
52
+ on_mount: EventType[()] | None = None,
53
+ on_mouse_down: EventType[()] | None = None,
54
+ on_mouse_enter: EventType[()] | None = None,
55
+ on_mouse_leave: EventType[()] | None = None,
56
+ on_mouse_move: EventType[()] | None = None,
57
+ on_mouse_out: EventType[()] | None = None,
58
+ on_mouse_over: EventType[()] | None = None,
59
+ on_mouse_up: EventType[()] | None = None,
60
+ on_pause: EventType[()] | None = None,
61
+ on_play: EventType[()] | None = None,
62
+ on_playing: EventType[()] | None = None,
63
+ on_progress: EventType[Any] | None = None,
64
+ on_rate_change: EventType[Any] | None = None,
65
+ on_ready: EventType[()] | None = None,
66
+ on_scroll: EventType[()] | None = None,
67
+ on_scroll_end: EventType[()] | None = None,
68
+ on_seeked: EventType[Any] | None = None,
69
+ on_seeking: EventType[()] | None = None,
70
+ on_start: EventType[()] | None = None,
71
+ on_time_update: EventType[Any] | None = None,
72
+ on_unmount: EventType[()] | None = None,
73
+ on_waiting: EventType[()] | None = None,
74
+ **props,
75
+ ) -> Video:
76
+ """Create a component.
77
+
78
+ Args:
79
+ children: The children of the component.
80
+ props: The props of the component.
81
+
82
+ Returns:
83
+ The created component.
84
+
85
+ Raises:
86
+ ValueError: If both a deprecated prop and its replacement are both passed.
87
+ """
@@ -8,7 +8,7 @@ from reflex.components.component import Component, MemoizationLeaf, NoSSRCompone
8
8
  class Recharts(Component):
9
9
  """A component that wraps a recharts lib."""
10
10
 
11
- library = "recharts@3.2.0"
11
+ library = "recharts@3.2.1"
12
12
 
13
13
  def _get_style(self) -> dict:
14
14
  return {"wrapperStyle": self.style}
@@ -17,7 +17,7 @@ class Recharts(Component):
17
17
  class RechartsCharts(NoSSRComponent, MemoizationLeaf):
18
18
  """A component that wraps a recharts lib."""
19
19
 
20
- library = "recharts@3.2.0"
20
+ library = "recharts@3.2.1"
21
21
 
22
22
 
23
23
  LiteralAnimationEasing = Literal["ease", "ease-in", "ease-out", "ease-in-out", "linear"]
@@ -96,4 +96,6 @@ class Color:
96
96
  Returns:
97
97
  The formatted color.
98
98
  """
99
- return format_color(self.color, self.shade, self.alpha)
99
+ from reflex.vars import LiteralColorVar
100
+
101
+ return LiteralColorVar.create(self).__format__(format_spec)