reflex 0.8.15a2__tar.gz → 0.8.16__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 (441) hide show
  1. {reflex-0.8.15a2 → reflex-0.8.16}/PKG-INFO +1 -1
  2. {reflex-0.8.15a2 → reflex-0.8.16}/pyproject.toml +10 -7
  3. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/app.py +40 -46
  4. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/app_mixins/lifespan.py +12 -5
  5. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/base.py +1 -0
  6. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/compiler/compiler.py +4 -6
  7. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/compiler/templates.py +25 -31
  8. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/compiler/utils.py +6 -5
  9. reflex-0.8.16/reflex/components/base/body.pyi +61 -0
  10. reflex-0.8.16/reflex/components/base/link.pyi +110 -0
  11. reflex-0.8.16/reflex/components/base/meta.pyi +165 -0
  12. reflex-0.8.16/reflex/components/base/script.pyi +66 -0
  13. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/component.py +41 -46
  14. reflex-0.8.16/reflex/components/core/auto_scroll.pyi +67 -0
  15. reflex-0.8.16/reflex/components/core/banner.pyi +330 -0
  16. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/breakpoints.py +14 -18
  17. reflex-0.8.16/reflex/components/core/html.pyi +66 -0
  18. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/match.py +2 -2
  19. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/sticky.py +11 -15
  20. reflex-0.8.16/reflex/components/core/sticky.pyi +313 -0
  21. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/upload.py +1 -3
  22. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/window_events.pyi +6 -5
  23. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/datadisplay/code.pyi +1 -0
  24. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/datadisplay/dataeditor.py +4 -6
  25. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/datadisplay/shiki_code_block.py +106 -110
  26. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/dynamic.py +4 -6
  27. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/elements/__init__.py +5 -7
  28. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/elements/__init__.pyi +5 -7
  29. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/elements/base.py +1 -1
  30. reflex-0.8.16/reflex/components/el/elements/base.pyi +139 -0
  31. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/elements/forms.py +7 -9
  32. reflex-0.8.16/reflex/components/el/elements/forms.pyi +1594 -0
  33. reflex-0.8.16/reflex/components/el/elements/inline.pyi +1426 -0
  34. reflex-0.8.16/reflex/components/el/elements/media.pyi +2550 -0
  35. reflex-0.8.16/reflex/components/el/elements/metadata.pyi +315 -0
  36. reflex-0.8.16/reflex/components/el/elements/other.pyi +364 -0
  37. reflex-0.8.16/reflex/components/el/elements/scripts.pyi +164 -0
  38. reflex-0.8.16/reflex/components/el/elements/sectioning.pyi +764 -0
  39. reflex-0.8.16/reflex/components/el/elements/tables.pyi +514 -0
  40. reflex-0.8.16/reflex/components/el/elements/typography.pyi +813 -0
  41. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/lucide/icon.py +4 -4
  42. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/lucide/icon.pyi +0 -4
  43. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/markdown/markdown.py +15 -19
  44. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/markdown/markdown.pyi +1 -0
  45. reflex-0.8.16/reflex/components/moment/moment.pyi +78 -0
  46. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/props.py +3 -3
  47. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/accordion.py +4 -6
  48. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/accordion.pyi +0 -14
  49. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/base.pyi +0 -5
  50. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/dialog.py +2 -0
  51. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/dialog.pyi +1 -233
  52. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/drawer.pyi +0 -18
  53. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/form.pyi +30 -632
  54. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/progress.pyi +0 -10
  55. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/slider.pyi +0 -10
  56. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/color_mode.pyi +1 -284
  57. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/alert_dialog.pyi +0 -207
  58. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/aspect_ratio.pyi +0 -2
  59. reflex-0.8.16/reflex/components/radix/themes/components/avatar.pyi +68 -0
  60. reflex-0.8.16/reflex/components/radix/themes/components/badge.pyi +67 -0
  61. reflex-0.8.15a2/reflex/components/radix/themes/components/skeleton.pyi → reflex-0.8.16/reflex/components/radix/themes/components/button.pyi +32 -35
  62. reflex-0.8.16/reflex/components/radix/themes/components/callout.pyi +275 -0
  63. reflex-0.8.16/reflex/components/radix/themes/components/card.pyi +67 -0
  64. reflex-0.8.16/reflex/components/radix/themes/components/checkbox.pyi +173 -0
  65. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/checkbox_cards.pyi +1 -96
  66. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/checkbox_group.pyi +1 -80
  67. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/context_menu.pyi +13 -321
  68. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/data_list.pyi +1 -107
  69. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/dialog.pyi +1 -210
  70. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/dropdown_menu.pyi +0 -209
  71. reflex-0.8.16/reflex/components/radix/themes/components/hover_card.pyi +225 -0
  72. reflex-0.8.16/reflex/components/radix/themes/components/icon_button.pyi +177 -0
  73. reflex-0.8.16/reflex/components/radix/themes/components/inset.pyi +69 -0
  74. reflex-0.8.16/reflex/components/radix/themes/components/popover.pyi +229 -0
  75. reflex-0.8.16/reflex/components/radix/themes/components/progress.pyi +63 -0
  76. reflex-0.8.16/reflex/components/radix/themes/components/radio.pyi +66 -0
  77. reflex-0.8.16/reflex/components/radix/themes/components/radio_cards.pyi +125 -0
  78. reflex-0.8.16/reflex/components/radix/themes/components/scroll_area.pyi +66 -0
  79. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/select.pyi +1 -376
  80. reflex-0.8.16/reflex/components/radix/themes/components/separator.pyi +68 -0
  81. reflex-0.8.16/reflex/components/radix/themes/components/skeleton.pyi +68 -0
  82. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/slider.py +3 -5
  83. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/spinner.pyi +0 -5
  84. reflex-0.8.16/reflex/components/radix/themes/components/switch.pyi +70 -0
  85. reflex-0.8.16/reflex/components/radix/themes/components/table.pyi +501 -0
  86. reflex-0.8.16/reflex/components/radix/themes/components/text_area.pyi +119 -0
  87. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/text_field.pyi +6 -392
  88. reflex-0.8.16/reflex/components/radix/themes/components/tooltip.pyi +76 -0
  89. reflex-0.8.16/reflex/components/radix/themes/layout/box.pyi +67 -0
  90. reflex-0.8.15a2/reflex/components/radix/themes/components/separator.pyi → reflex-0.8.16/reflex/components/radix/themes/layout/center.pyi +44 -73
  91. reflex-0.8.16/reflex/components/radix/themes/layout/container.pyi +70 -0
  92. reflex-0.8.16/reflex/components/radix/themes/layout/flex.pyi +118 -0
  93. reflex-0.8.16/reflex/components/radix/themes/layout/grid.pyi +141 -0
  94. reflex-0.8.16/reflex/components/radix/themes/layout/list.pyi +448 -0
  95. reflex-0.8.15a2/reflex/components/radix/themes/components/scroll_area.pyi → reflex-0.8.16/reflex/components/radix/themes/layout/section.pyi +11 -13
  96. reflex-0.8.16/reflex/components/radix/themes/layout/spacer.pyi +116 -0
  97. reflex-0.8.16/reflex/components/radix/themes/layout/stack.pyi +308 -0
  98. reflex-0.8.15a2/reflex/components/radix/themes/components/avatar.pyi → reflex-0.8.16/reflex/components/radix/themes/typography/blockquote.pyi +16 -19
  99. reflex-0.8.15a2/reflex/components/radix/themes/components/radio.pyi → reflex-0.8.16/reflex/components/radix/themes/typography/code.pyi +26 -13
  100. reflex-0.8.15a2/reflex/components/radix/themes/components/switch.pyi → reflex-0.8.16/reflex/components/radix/themes/typography/heading.pyi +40 -33
  101. reflex-0.8.15a2/reflex/components/radix/themes/components/progress.pyi → reflex-0.8.16/reflex/components/radix/themes/typography/link.pyi +51 -28
  102. reflex-0.8.16/reflex/components/radix/themes/typography/text.pyi +831 -0
  103. reflex-0.8.16/reflex/components/react_router/dom.pyi +82 -0
  104. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/recharts/cartesian.py +12 -18
  105. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/recharts/general.py +12 -18
  106. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/constants/installer.py +5 -5
  107. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/custom_components/custom_components.py +6 -5
  108. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/environment.py +30 -7
  109. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/event.py +14 -12
  110. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/experimental/client_state.py +11 -12
  111. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/istate/data.py +8 -10
  112. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/istate/manager/__init__.py +3 -0
  113. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/istate/manager/disk.py +151 -5
  114. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/model.py +1 -1
  115. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/plugins/_screenshot.py +2 -2
  116. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/plugins/shared_tailwind.py +9 -14
  117. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/reflex.py +7 -9
  118. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/state.py +30 -37
  119. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/style.py +6 -6
  120. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/testing.py +54 -30
  121. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/codespaces.py +1 -1
  122. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/compat.py +1 -0
  123. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/decorator.py +3 -3
  124. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/format.py +18 -22
  125. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/prerequisites.py +1 -1
  126. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/pyi_generator.py +51 -57
  127. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/serializers.py +1 -1
  128. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/telemetry.py +1 -1
  129. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/templates.py +4 -4
  130. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/types.py +3 -3
  131. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/vars/base.py +26 -29
  132. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/vars/color.py +6 -8
  133. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/vars/dep_tracking.py +5 -3
  134. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/vars/function.py +3 -3
  135. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/vars/object.py +9 -13
  136. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/vars/sequence.py +18 -24
  137. reflex-0.8.15a2/reflex/components/base/body.pyi +0 -255
  138. reflex-0.8.15a2/reflex/components/base/link.pyi +0 -516
  139. reflex-0.8.15a2/reflex/components/base/meta.pyi +0 -569
  140. reflex-0.8.15a2/reflex/components/base/script.pyi +0 -302
  141. reflex-0.8.15a2/reflex/components/core/auto_scroll.pyi +0 -261
  142. reflex-0.8.15a2/reflex/components/core/banner.pyi +0 -720
  143. reflex-0.8.15a2/reflex/components/core/html.pyi +0 -262
  144. reflex-0.8.15a2/reflex/components/core/sticky.pyi +0 -1101
  145. reflex-0.8.15a2/reflex/components/el/elements/base.pyi +0 -333
  146. reflex-0.8.15a2/reflex/components/el/elements/forms.pyi +0 -4694
  147. reflex-0.8.15a2/reflex/components/el/elements/inline.pyi +0 -6907
  148. reflex-0.8.15a2/reflex/components/el/elements/media.pyi +0 -12830
  149. reflex-0.8.15a2/reflex/components/el/elements/metadata.pyi +0 -1149
  150. reflex-0.8.15a2/reflex/components/el/elements/other.pyi +0 -1728
  151. reflex-0.8.15a2/reflex/components/el/elements/scripts.pyi +0 -788
  152. reflex-0.8.15a2/reflex/components/el/elements/sectioning.pyi +0 -3674
  153. reflex-0.8.15a2/reflex/components/el/elements/tables.pyi +0 -2486
  154. reflex-0.8.15a2/reflex/components/el/elements/typography.pyi +0 -3937
  155. reflex-0.8.15a2/reflex/components/moment/moment.pyi +0 -127
  156. reflex-0.8.15a2/reflex/components/radix/themes/components/badge.pyi +0 -336
  157. reflex-0.8.15a2/reflex/components/radix/themes/components/button.pyi +0 -368
  158. reflex-0.8.15a2/reflex/components/radix/themes/components/callout.pyi +0 -1472
  159. reflex-0.8.15a2/reflex/components/radix/themes/components/card.pyi +0 -275
  160. reflex-0.8.15a2/reflex/components/radix/themes/components/checkbox.pyi +0 -434
  161. reflex-0.8.15a2/reflex/components/radix/themes/components/hover_card.pyi +0 -470
  162. reflex-0.8.15a2/reflex/components/radix/themes/components/icon_button.pyi +0 -371
  163. reflex-0.8.15a2/reflex/components/radix/themes/components/inset.pyi +0 -321
  164. reflex-0.8.15a2/reflex/components/radix/themes/components/popover.pyi +0 -462
  165. reflex-0.8.15a2/reflex/components/radix/themes/components/radio_cards.pyi +0 -247
  166. reflex-0.8.15a2/reflex/components/radix/themes/components/table.pyi +0 -1954
  167. reflex-0.8.15a2/reflex/components/radix/themes/components/text_area.pyi +0 -394
  168. reflex-0.8.15a2/reflex/components/radix/themes/components/tooltip.pyi +0 -118
  169. reflex-0.8.15a2/reflex/components/radix/themes/layout/box.pyi +0 -261
  170. reflex-0.8.15a2/reflex/components/radix/themes/layout/center.pyi +0 -310
  171. reflex-0.8.15a2/reflex/components/radix/themes/layout/container.pyi +0 -248
  172. reflex-0.8.15a2/reflex/components/radix/themes/layout/flex.pyi +0 -312
  173. reflex-0.8.15a2/reflex/components/radix/themes/layout/grid.pyi +0 -335
  174. reflex-0.8.15a2/reflex/components/radix/themes/layout/list.pyi +0 -1426
  175. reflex-0.8.15a2/reflex/components/radix/themes/layout/section.pyi +0 -268
  176. reflex-0.8.15a2/reflex/components/radix/themes/layout/spacer.pyi +0 -310
  177. reflex-0.8.15a2/reflex/components/radix/themes/layout/stack.pyi +0 -890
  178. reflex-0.8.15a2/reflex/components/radix/themes/typography/blockquote.pyi +0 -341
  179. reflex-0.8.15a2/reflex/components/radix/themes/typography/code.pyi +0 -344
  180. reflex-0.8.15a2/reflex/components/radix/themes/typography/heading.pyi +0 -360
  181. reflex-0.8.15a2/reflex/components/radix/themes/typography/link.pyi +0 -406
  182. reflex-0.8.15a2/reflex/components/radix/themes/typography/text.pyi +0 -2191
  183. reflex-0.8.15a2/reflex/components/react_router/dom.pyi +0 -319
  184. {reflex-0.8.15a2 → reflex-0.8.16}/.gitignore +0 -0
  185. {reflex-0.8.15a2 → reflex-0.8.16}/LICENSE +0 -0
  186. {reflex-0.8.15a2 → reflex-0.8.16}/README.md +0 -0
  187. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/apps/blank/assets/favicon.ico +0 -0
  188. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/apps/blank/code/__init__.py +0 -0
  189. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/apps/blank/code/blank.py +0 -0
  190. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/.gitignore +0 -0
  191. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/app/entry.client.js +0 -0
  192. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/app/routes.js +0 -0
  193. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +0 -0
  194. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/components/shiki/code.js +0 -0
  195. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/jsconfig.json +0 -0
  196. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/postcss.config.js +0 -0
  197. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/react-router.config.js +0 -0
  198. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/styles/__reflex_style_reset.css +0 -0
  199. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/utils/helpers/dataeditor.js +0 -0
  200. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/utils/helpers/debounce.js +0 -0
  201. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/utils/helpers/paste.js +0 -0
  202. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/utils/helpers/range.js +0 -0
  203. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/utils/helpers/throttle.js +0 -0
  204. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/utils/helpers/upload.js +0 -0
  205. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/utils/react-theme.js +0 -0
  206. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/utils/state.js +0 -0
  207. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/.templates/web/vite-plugin-safari-cachebust.js +0 -0
  208. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/__init__.py +0 -0
  209. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/__init__.pyi +0 -0
  210. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/__main__.py +0 -0
  211. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/admin.py +0 -0
  212. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/app_mixins/__init__.py +0 -0
  213. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/app_mixins/middleware.py +0 -0
  214. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/app_mixins/mixin.py +0 -0
  215. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/assets.py +0 -0
  216. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/compiler/__init__.py +0 -0
  217. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/__init__.py +0 -0
  218. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/__init__.pyi +0 -0
  219. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/__init__.py +0 -0
  220. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/__init__.pyi +0 -0
  221. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/app_wrap.py +0 -0
  222. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/app_wrap.pyi +0 -0
  223. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/bare.py +0 -0
  224. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/body.py +0 -0
  225. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/document.py +0 -0
  226. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/document.pyi +0 -0
  227. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/error_boundary.py +0 -0
  228. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/error_boundary.pyi +0 -0
  229. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/fragment.py +0 -0
  230. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/fragment.pyi +0 -0
  231. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/link.py +0 -0
  232. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/meta.py +0 -0
  233. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/script.py +0 -0
  234. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/strict_mode.py +0 -0
  235. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/base/strict_mode.pyi +0 -0
  236. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/__init__.py +0 -0
  237. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/__init__.pyi +0 -0
  238. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/auto_scroll.py +0 -0
  239. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/banner.py +0 -0
  240. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/clipboard.py +0 -0
  241. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/clipboard.pyi +0 -0
  242. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/colors.py +0 -0
  243. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/cond.py +0 -0
  244. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/debounce.py +0 -0
  245. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/debounce.pyi +0 -0
  246. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/foreach.py +0 -0
  247. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/helmet.py +0 -0
  248. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/helmet.pyi +0 -0
  249. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/html.py +0 -0
  250. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/layout/__init__.py +0 -0
  251. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/responsive.py +0 -0
  252. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/upload.pyi +0 -0
  253. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/core/window_events.py +0 -0
  254. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/datadisplay/__init__.py +0 -0
  255. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/datadisplay/__init__.pyi +0 -0
  256. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/datadisplay/code.py +0 -0
  257. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/datadisplay/dataeditor.pyi +0 -0
  258. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/datadisplay/logo.py +0 -0
  259. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/datadisplay/shiki_code_block.pyi +0 -0
  260. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/__init__.py +0 -0
  261. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/__init__.pyi +0 -0
  262. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/element.py +0 -0
  263. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/element.pyi +0 -0
  264. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/elements/inline.py +0 -0
  265. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/elements/media.py +0 -0
  266. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/elements/metadata.py +0 -0
  267. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/elements/other.py +0 -0
  268. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/elements/scripts.py +0 -0
  269. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/elements/sectioning.py +0 -0
  270. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/elements/tables.py +0 -0
  271. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/el/elements/typography.py +0 -0
  272. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/field.py +0 -0
  273. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/gridjs/__init__.py +0 -0
  274. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/gridjs/datatable.py +0 -0
  275. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/gridjs/datatable.pyi +0 -0
  276. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/literals.py +0 -0
  277. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/lucide/__init__.py +0 -0
  278. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/markdown/__init__.py +0 -0
  279. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/moment/__init__.py +0 -0
  280. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/moment/moment.py +0 -0
  281. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/plotly/__init__.py +0 -0
  282. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/plotly/plotly.py +0 -0
  283. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/plotly/plotly.pyi +0 -0
  284. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/__init__.py +0 -0
  285. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/__init__.pyi +0 -0
  286. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/__init__.py +0 -0
  287. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/__init__.pyi +0 -0
  288. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/base.py +0 -0
  289. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/drawer.py +0 -0
  290. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/form.py +0 -0
  291. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/progress.py +0 -0
  292. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/primitives/slider.py +0 -0
  293. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/__init__.py +0 -0
  294. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/__init__.pyi +0 -0
  295. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/base.py +0 -0
  296. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/base.pyi +0 -0
  297. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/color_mode.py +0 -0
  298. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/__init__.py +0 -0
  299. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/__init__.pyi +0 -0
  300. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/alert_dialog.py +0 -0
  301. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/aspect_ratio.py +0 -0
  302. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/avatar.py +0 -0
  303. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/badge.py +0 -0
  304. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/button.py +0 -0
  305. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/callout.py +0 -0
  306. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/card.py +0 -0
  307. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/checkbox.py +0 -0
  308. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/checkbox_cards.py +0 -0
  309. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/checkbox_group.py +0 -0
  310. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/context_menu.py +0 -0
  311. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/data_list.py +0 -0
  312. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/dialog.py +0 -0
  313. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/dropdown_menu.py +0 -0
  314. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/hover_card.py +0 -0
  315. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/icon_button.py +0 -0
  316. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/inset.py +0 -0
  317. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/popover.py +0 -0
  318. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/progress.py +0 -0
  319. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/radio.py +0 -0
  320. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/radio_cards.py +0 -0
  321. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/radio_group.py +0 -0
  322. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/radio_group.pyi +0 -0
  323. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/scroll_area.py +0 -0
  324. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/segmented_control.py +0 -0
  325. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/segmented_control.pyi +0 -0
  326. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/select.py +0 -0
  327. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/separator.py +0 -0
  328. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/skeleton.py +0 -0
  329. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/slider.pyi +0 -0
  330. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/spinner.py +0 -0
  331. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/switch.py +0 -0
  332. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/table.py +0 -0
  333. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/tabs.py +0 -0
  334. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/tabs.pyi +0 -0
  335. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/text_area.py +0 -0
  336. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/text_field.py +0 -0
  337. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/components/tooltip.py +0 -0
  338. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/layout/__init__.py +0 -0
  339. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/layout/__init__.pyi +0 -0
  340. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/layout/base.py +0 -0
  341. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/layout/base.pyi +0 -0
  342. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/layout/box.py +0 -0
  343. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/layout/center.py +0 -0
  344. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/layout/container.py +0 -0
  345. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/layout/flex.py +0 -0
  346. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/layout/grid.py +0 -0
  347. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/layout/list.py +0 -0
  348. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/layout/section.py +0 -0
  349. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/layout/spacer.py +0 -0
  350. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/layout/stack.py +0 -0
  351. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/typography/__init__.py +0 -0
  352. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/typography/__init__.pyi +0 -0
  353. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/typography/base.py +0 -0
  354. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/typography/blockquote.py +0 -0
  355. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/typography/code.py +0 -0
  356. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/typography/heading.py +0 -0
  357. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/typography/link.py +0 -0
  358. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/radix/themes/typography/text.py +0 -0
  359. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/react_player/__init__.py +0 -0
  360. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/react_player/audio.py +0 -0
  361. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/react_player/audio.pyi +0 -0
  362. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/react_player/react_player.py +0 -0
  363. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/react_player/react_player.pyi +0 -0
  364. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/react_player/video.py +0 -0
  365. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/react_player/video.pyi +0 -0
  366. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/react_router/__init__.py +0 -0
  367. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/react_router/dom.py +0 -0
  368. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/recharts/__init__.py +0 -0
  369. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/recharts/__init__.pyi +0 -0
  370. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/recharts/cartesian.pyi +0 -0
  371. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/recharts/charts.py +0 -0
  372. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/recharts/charts.pyi +0 -0
  373. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/recharts/general.pyi +0 -0
  374. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/recharts/polar.py +0 -0
  375. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/recharts/polar.pyi +0 -0
  376. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/recharts/recharts.py +0 -0
  377. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/recharts/recharts.pyi +0 -0
  378. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/sonner/__init__.py +0 -0
  379. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/sonner/toast.py +0 -0
  380. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/sonner/toast.pyi +0 -0
  381. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/tags/__init__.py +0 -0
  382. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/tags/cond_tag.py +0 -0
  383. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/tags/iter_tag.py +0 -0
  384. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/tags/match_tag.py +0 -0
  385. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/tags/tag.py +0 -0
  386. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/components/tags/tagless.py +0 -0
  387. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/config.py +0 -0
  388. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/constants/__init__.py +0 -0
  389. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/constants/base.py +0 -0
  390. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/constants/colors.py +0 -0
  391. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/constants/compiler.py +0 -0
  392. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/constants/config.py +0 -0
  393. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/constants/custom_components.py +0 -0
  394. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/constants/event.py +0 -0
  395. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/constants/route.py +0 -0
  396. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/constants/state.py +0 -0
  397. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/constants/utils.py +0 -0
  398. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/custom_components/__init__.py +0 -0
  399. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/experimental/__init__.py +0 -0
  400. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/experimental/hooks.py +0 -0
  401. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/istate/__init__.py +0 -0
  402. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/istate/dynamic.py +0 -0
  403. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/istate/manager/memory.py +0 -0
  404. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/istate/manager/redis.py +0 -0
  405. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/istate/proxy.py +0 -0
  406. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/istate/storage.py +0 -0
  407. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/istate/wrappers.py +0 -0
  408. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/middleware/__init__.py +0 -0
  409. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/middleware/hydrate_middleware.py +0 -0
  410. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/middleware/middleware.py +0 -0
  411. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/page.py +0 -0
  412. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/plugins/__init__.py +0 -0
  413. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/plugins/base.py +0 -0
  414. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/plugins/sitemap.py +0 -0
  415. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/plugins/tailwind_v3.py +0 -0
  416. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/plugins/tailwind_v4.py +0 -0
  417. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/py.typed +0 -0
  418. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/route.py +0 -0
  419. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/__init__.py +0 -0
  420. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/build.py +0 -0
  421. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/console.py +0 -0
  422. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/exceptions.py +0 -0
  423. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/exec.py +0 -0
  424. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/export.py +0 -0
  425. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/frontend_skeleton.py +0 -0
  426. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/imports.py +0 -0
  427. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/js_runtimes.py +0 -0
  428. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/lazy_loader.py +0 -0
  429. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/misc.py +0 -0
  430. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/monitoring.py +0 -0
  431. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/net.py +0 -0
  432. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/path_ops.py +0 -0
  433. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/processes.py +0 -0
  434. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/redir.py +0 -0
  435. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/registry.py +0 -0
  436. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/rename.py +0 -0
  437. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/utils/token_manager.py +0 -0
  438. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/vars/__init__.py +0 -0
  439. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/vars/datetime.py +0 -0
  440. {reflex-0.8.15a2 → reflex-0.8.16}/reflex/vars/number.py +0 -0
  441. {reflex-0.8.15a2 → reflex-0.8.16}/scripts/hatch_build.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reflex
3
- Version: 0.8.15a2
3
+ Version: 0.8.16
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.15a2"
3
+ version = "0.8.16"
4
4
  description = "Web apps in pure Python."
5
5
  license.text = "Apache-2.0"
6
6
  authors = [
@@ -123,6 +123,7 @@ reportIncompatibleMethodOverride = false
123
123
  target-version = "py310"
124
124
  output-format = "concise"
125
125
  lint.isort.split-on-trailing-comma = false
126
+ preview = true
126
127
  lint.select = ["ALL"]
127
128
  lint.ignore = [
128
129
  "A",
@@ -134,12 +135,18 @@ lint.ignore = [
134
135
  "BLE",
135
136
  "C901",
136
137
  "COM",
138
+ "CPY001",
137
139
  "D205",
140
+ "DOC202",
141
+ "DOC501",
142
+ "DOC502",
138
143
  "DTZ",
139
144
  "E501",
140
145
  "F403",
141
146
  "FBT",
142
147
  "FIX",
148
+ "FURB189",
149
+ "FURB140",
143
150
  "G004",
144
151
  "ISC003",
145
152
  "PLC",
@@ -180,6 +187,7 @@ lint.flake8-bugbear.extend-immutable-calls = [
180
187
  "*.pyi" = ["D301", "D415", "D417", "D418", "E742", "N", "PGH"]
181
188
  "pyi_generator.py" = ["N802"]
182
189
  "reflex/constants/*.py" = ["N"]
190
+ "reflex/.templates/apps/blank/code/*" = ["INP001"]
183
191
  "*/blank.py" = ["I001"]
184
192
 
185
193
  [tool.pytest.ini_options]
@@ -235,7 +243,7 @@ fail_fast = true
235
243
 
236
244
  [[tool.pre-commit.repos]]
237
245
  repo = "https://github.com/astral-sh/ruff-pre-commit"
238
- rev = "v0.13.3"
246
+ rev = "v0.14.0"
239
247
  hooks = [
240
248
  { id = "ruff-format", args = [
241
249
  "reflex",
@@ -270,11 +278,6 @@ repo = "https://github.com/RobertCraigie/pyright-python"
270
278
  rev = "v1.1.406"
271
279
  hooks = [{ id = "pyright", args = ["reflex", "tests"], language = "system" }]
272
280
 
273
- [[tool.pre-commit.repos]]
274
- repo = "https://github.com/terrencepreilly/darglint"
275
- rev = "v1.8.1"
276
- hooks = [{ id = "darglint", exclude = "^reflex/reflex.py" }]
277
-
278
281
  [[tool.pre-commit.repos]]
279
282
  repo = "https://github.com/pre-commit/mirrors-prettier"
280
283
  rev = "f62a70a3a7114896b062de517d72829ea1c884b6"
@@ -11,6 +11,7 @@ import functools
11
11
  import inspect
12
12
  import io
13
13
  import json
14
+ import operator
14
15
  import sys
15
16
  import time
16
17
  import traceback
@@ -118,6 +119,7 @@ from reflex.utils.exec import (
118
119
  should_prerender_routes,
119
120
  )
120
121
  from reflex.utils.imports import ImportVar
122
+ from reflex.utils.misc import run_in_thread
121
123
  from reflex.utils.token_manager import TokenManager
122
124
  from reflex.utils.types import ASGIApp, Message, Receive, Scope, Send
123
125
 
@@ -849,7 +851,7 @@ class App(MiddlewareMixin, LifespanMixin):
849
851
 
850
852
  # Setup dynamic args for the route.
851
853
  # this state assignment is only required for tests using the deprecated state kwarg for App
852
- state = self._state if self._state else State
854
+ state = self._state or State
853
855
  state.setup_dynamic_args(get_route_args(route))
854
856
 
855
857
  self._load_events[route] = (
@@ -969,14 +971,10 @@ class App(MiddlewareMixin, LifespanMixin):
969
971
 
970
972
  if admin_dash and admin_dash.models:
971
973
  # Build the admin dashboard
972
- admin = (
973
- admin_dash.admin
974
- if admin_dash.admin
975
- else Admin(
976
- engine=Model.get_db_engine(),
977
- title="Reflex Admin Dashboard",
978
- logo_url="https://reflex.dev/Reflex.svg",
979
- )
974
+ admin = admin_dash.admin or Admin(
975
+ engine=Model.get_db_engine(),
976
+ title="Reflex Admin Dashboard",
977
+ logo_url="https://reflex.dev/Reflex.svg",
980
978
  )
981
979
 
982
980
  for model in admin_dash.models:
@@ -1009,21 +1007,21 @@ class App(MiddlewareMixin, LifespanMixin):
1009
1007
  page_imports = {i for i in page_imports if i not in pinned}
1010
1008
 
1011
1009
  frontend_packages = get_config().frontend_packages
1012
- _frontend_packages = []
1010
+ filtered_frontend_packages = []
1013
1011
  for package in frontend_packages:
1014
1012
  if package in page_imports:
1015
1013
  console.warn(
1016
1014
  f"React packages and their dependencies are inferred from Component.library and Component.lib_dependencies, remove `{package}` from `frontend_packages`"
1017
1015
  )
1018
1016
  continue
1019
- _frontend_packages.append(package)
1020
- page_imports.update(_frontend_packages)
1017
+ filtered_frontend_packages.append(package)
1018
+ page_imports.update(filtered_frontend_packages)
1021
1019
  js_runtimes.install_frontend_packages(page_imports, get_config())
1022
1020
 
1023
1021
  def _app_root(self, app_wrappers: dict[tuple[int, str], Component]) -> Component:
1024
1022
  for component in tuple(app_wrappers.values()):
1025
1023
  app_wrappers.update(component._get_all_app_wrap_components())
1026
- order = sorted(app_wrappers, key=lambda k: k[0], reverse=True)
1024
+ order = sorted(app_wrappers, key=operator.itemgetter(0), reverse=True)
1027
1025
  root = copy.deepcopy(app_wrappers[order[0]])
1028
1026
 
1029
1027
  def reducer(parent: Component, key: tuple[int, str]) -> Component:
@@ -1095,7 +1093,7 @@ class App(MiddlewareMixin, LifespanMixin):
1095
1093
  sticky_badge._add_style_recursive({})
1096
1094
  return sticky_badge
1097
1095
 
1098
- self.app_wraps[(0, "StickyBadge")] = lambda _: memoized_badge()
1096
+ self.app_wraps[0, "StickyBadge"] = lambda _: memoized_badge()
1099
1097
 
1100
1098
  def _apply_decorated_pages(self):
1101
1099
  """Add @rx.page decorated pages to the app."""
@@ -1190,13 +1188,13 @@ class App(MiddlewareMixin, LifespanMixin):
1190
1188
 
1191
1189
  if self.theme is not None:
1192
1190
  # If a theme component was provided, wrap the app with it
1193
- app_wrappers[(20, "Theme")] = self.theme
1191
+ app_wrappers[20, "Theme"] = self.theme
1194
1192
 
1195
1193
  # Get the env mode.
1196
1194
  config = get_config()
1197
1195
 
1198
1196
  if config.react_strict_mode:
1199
- app_wrappers[(200, "StrictMode")] = StrictMode.create()
1197
+ app_wrappers[200, "StrictMode"] = StrictMode.create()
1200
1198
 
1201
1199
  if not should_compile and not dry_run:
1202
1200
  with console.timing("Evaluate Pages (Backend)"):
@@ -1251,7 +1249,7 @@ class App(MiddlewareMixin, LifespanMixin):
1251
1249
  + "\n".join(
1252
1250
  f"{route}: {time * 1000:.1f}ms"
1253
1251
  for route, time in sorted(
1254
- performance_metrics, key=lambda x: x[1], reverse=True
1252
+ performance_metrics, key=operator.itemgetter(1), reverse=True
1255
1253
  )[:10]
1256
1254
  )
1257
1255
  )
@@ -1295,7 +1293,7 @@ class App(MiddlewareMixin, LifespanMixin):
1295
1293
 
1296
1294
  toast_provider = Fragment.create(memoized_toast_provider())
1297
1295
 
1298
- app_wrappers[(44, "ToasterProvider")] = toast_provider
1296
+ app_wrappers[44, "ToasterProvider"] = toast_provider
1299
1297
 
1300
1298
  # Add the app wraps to the app.
1301
1299
  for key, app_wrap in chain(
@@ -1427,12 +1425,10 @@ class App(MiddlewareMixin, LifespanMixin):
1427
1425
  plugin.pre_compile(
1428
1426
  add_save_task=_submit_work_without_advancing,
1429
1427
  add_modify_task=(
1430
- lambda *args, plugin=plugin: modify_files_tasks.append(
1431
- (
1432
- plugin.__class__.__module__ + plugin.__class__.__name__,
1433
- *args,
1434
- )
1435
- )
1428
+ lambda *args, plugin=plugin: modify_files_tasks.append((
1429
+ plugin.__class__.__module__ + plugin.__class__.__name__,
1430
+ *args,
1431
+ ))
1436
1432
  ),
1437
1433
  unevaluated_pages=list(self._unevaluated_pages.values()),
1438
1434
  )
@@ -1552,7 +1548,7 @@ class App(MiddlewareMixin, LifespanMixin):
1552
1548
  if not self._api:
1553
1549
  return
1554
1550
 
1555
- async def all_routes(_request: Request) -> Response:
1551
+ def all_routes(_request: Request) -> Response:
1556
1552
  return JSONResponse(list(self._unevaluated_pages.keys()))
1557
1553
 
1558
1554
  self._api.add_route(
@@ -1663,21 +1659,21 @@ class App(MiddlewareMixin, LifespanMixin):
1663
1659
  strict=True,
1664
1660
  ):
1665
1661
  if hasattr(handler_fn, "__name__"):
1666
- _fn_name = handler_fn.__name__
1662
+ fn_name_ = handler_fn.__name__
1667
1663
  else:
1668
- _fn_name = type(handler_fn).__name__
1664
+ fn_name_ = type(handler_fn).__name__
1669
1665
 
1670
1666
  if isinstance(handler_fn, functools.partial):
1671
- msg = f"Provided custom {handler_domain} exception handler `{_fn_name}` is a partial function. Please provide a named function instead."
1667
+ msg = f"Provided custom {handler_domain} exception handler `{fn_name_}` is a partial function. Please provide a named function instead."
1672
1668
  raise ValueError(msg)
1673
1669
 
1674
1670
  if not callable(handler_fn):
1675
- msg = f"Provided custom {handler_domain} exception handler `{_fn_name}` is not a function."
1671
+ msg = f"Provided custom {handler_domain} exception handler `{fn_name_}` is not a function."
1676
1672
  raise ValueError(msg)
1677
1673
 
1678
1674
  # Allow named functions only as lambda functions cannot be introspected
1679
- if _fn_name == "<lambda>":
1680
- msg = f"Provided custom {handler_domain} exception handler `{_fn_name}` is a lambda function. Please use a named function instead."
1675
+ if fn_name_ == "<lambda>":
1676
+ msg = f"Provided custom {handler_domain} exception handler `{fn_name_}` is a lambda function. Please use a named function instead."
1681
1677
  raise ValueError(msg)
1682
1678
 
1683
1679
  # Check if the function has the necessary annotations and types in the right order
@@ -1690,18 +1686,18 @@ class App(MiddlewareMixin, LifespanMixin):
1690
1686
 
1691
1687
  for required_arg_index, required_arg in enumerate(handler_spec):
1692
1688
  if required_arg not in arg_annotations:
1693
- msg = f"Provided custom {handler_domain} exception handler `{_fn_name}` does not take the required argument `{required_arg}`"
1689
+ msg = f"Provided custom {handler_domain} exception handler `{fn_name_}` does not take the required argument `{required_arg}`"
1694
1690
  raise ValueError(msg)
1695
1691
  if list(arg_annotations.keys())[required_arg_index] != required_arg:
1696
1692
  msg = (
1697
- f"Provided custom {handler_domain} exception handler `{_fn_name}` has the wrong argument order."
1693
+ f"Provided custom {handler_domain} exception handler `{fn_name_}` has the wrong argument order."
1698
1694
  f"Expected `{required_arg}` as the {required_arg_index + 1} argument but got `{list(arg_annotations.keys())[required_arg_index]}`"
1699
1695
  )
1700
1696
  raise ValueError(msg)
1701
1697
 
1702
1698
  if not issubclass(arg_annotations[required_arg], Exception):
1703
1699
  msg = (
1704
- f"Provided custom {handler_domain} exception handler `{_fn_name}` has the wrong type for {required_arg} argument."
1700
+ f"Provided custom {handler_domain} exception handler `{fn_name_}` has the wrong type for {required_arg} argument."
1705
1701
  f"Expected to be `Exception` but got `{arg_annotations[required_arg]}`"
1706
1702
  )
1707
1703
  raise ValueError(msg)
@@ -1725,7 +1721,7 @@ class App(MiddlewareMixin, LifespanMixin):
1725
1721
 
1726
1722
  if not valid:
1727
1723
  msg = (
1728
- f"Provided custom {handler_domain} exception handler `{_fn_name}` has the wrong return type."
1724
+ f"Provided custom {handler_domain} exception handler `{fn_name_}` has the wrong return type."
1729
1725
  f"Expected `EventSpec | list[EventSpec] | None` but got `{return_type}`"
1730
1726
  )
1731
1727
  raise ValueError(msg)
@@ -1754,15 +1750,13 @@ async def process(
1754
1750
  try:
1755
1751
  # Add request data to the state.
1756
1752
  router_data = event.router_data
1757
- router_data.update(
1758
- {
1759
- constants.RouteVar.QUERY: format.format_query_params(event.router_data),
1760
- constants.RouteVar.CLIENT_TOKEN: event.token,
1761
- constants.RouteVar.SESSION_ID: sid,
1762
- constants.RouteVar.HEADERS: headers,
1763
- constants.RouteVar.CLIENT_IP: client_ip,
1764
- }
1765
- )
1753
+ router_data.update({
1754
+ constants.RouteVar.QUERY: format.format_query_params(event.router_data),
1755
+ constants.RouteVar.CLIENT_TOKEN: event.token,
1756
+ constants.RouteVar.SESSION_ID: sid,
1757
+ constants.RouteVar.HEADERS: headers,
1758
+ constants.RouteVar.CLIENT_IP: client_ip,
1759
+ })
1766
1760
  # Get the state for the session exclusively.
1767
1761
  async with app.state_manager.modify_state(event.substate_token) as state:
1768
1762
  # When this is a brand new instance of the state, signal the
@@ -1820,7 +1814,7 @@ async def process(
1820
1814
  raise
1821
1815
 
1822
1816
 
1823
- async def ping(_request: Request) -> Response:
1817
+ def ping(_request: Request) -> Response:
1824
1818
  """Test API endpoint.
1825
1819
 
1826
1820
  Args:
@@ -1852,7 +1846,7 @@ async def health(_request: Request) -> JSONResponse:
1852
1846
  if prerequisites.check_db_used():
1853
1847
  from reflex.model import get_db_status
1854
1848
 
1855
- tasks.append(get_db_status())
1849
+ tasks.append(run_in_thread(get_db_status))
1856
1850
  if prerequisites.check_redis_used():
1857
1851
  tasks.append(prerequisites.get_redis_status())
1858
1852
 
@@ -41,13 +41,13 @@ class LifespanMixin(AppMixin):
41
41
  signature = inspect.signature(task)
42
42
  if "app" in signature.parameters:
43
43
  task = functools.partial(task, app=app)
44
- _t = task()
45
- if isinstance(_t, contextlib._AsyncGeneratorContextManager):
46
- await stack.enter_async_context(_t)
44
+ t_ = task()
45
+ if isinstance(t_, contextlib._AsyncGeneratorContextManager):
46
+ await stack.enter_async_context(t_)
47
47
  console.debug(run_msg.format(type="asynccontextmanager"))
48
- elif isinstance(_t, Coroutine):
48
+ elif isinstance(t_, Coroutine):
49
49
  task_ = asyncio.create_task(
50
- _t,
50
+ t_,
51
51
  name=f"reflex_lifespan_task|{task_name}|{time.time()}",
52
52
  )
53
53
  task_.add_done_callback(lambda t: t.result())
@@ -71,6 +71,13 @@ class LifespanMixin(AppMixin):
71
71
  await event_namespace._token_manager.disconnect_all()
72
72
  except Exception as e:
73
73
  console.error(f"Error during lifespan cleanup: {e}")
74
+ # Flush any pending writes from the state manager.
75
+ try:
76
+ state_manager = self.state_manager # pyright: ignore[reportAttributeAccessIssue]
77
+ except AttributeError:
78
+ pass
79
+ else:
80
+ await state_manager.close()
74
81
 
75
82
  def register_lifespan_task(self, task: Callable | asyncio.Task, **task_kwargs):
76
83
  """Register a task to run during the lifespan of the app.
@@ -48,6 +48,7 @@ if find_spec("pydantic") and find_spec("pydantic.v1"):
48
48
  self.dict(),
49
49
  default=serialize,
50
50
  )
51
+
51
52
  else:
52
53
 
53
54
  class PydanticNotFoundFallback:
@@ -758,12 +758,10 @@ def into_component(component: Component | ComponentCallable) -> Component:
758
758
  raise TypeError(
759
759
  "Cannot pass a Var to a built-in function. Consider using .length() for accessing the length of an iterable Var."
760
760
  ).with_traceback(e.__traceback__) from None
761
- if message.endswith(
762
- (
763
- "indices must be integers or slices, not NumberCastedVar",
764
- "indices must be integers or slices, not BooleanCastedVar",
765
- )
766
- ):
761
+ if message.endswith((
762
+ "indices must be integers or slices, not NumberCastedVar",
763
+ "indices must be integers or slices, not BooleanCastedVar",
764
+ )):
767
765
  raise TypeError(
768
766
  "Cannot index into a primitive sequence with a Var. Consider calling rx.Var.create() on the sequence."
769
767
  ).with_traceback(e.__traceback__) from None
@@ -83,9 +83,9 @@ class _RenderUtils:
83
83
 
84
84
  @staticmethod
85
85
  def render_iterable_tag(component: Any) -> str:
86
- children_rendered = "".join(
87
- [_RenderUtils.render(child) for child in component.get("children", [])]
88
- )
86
+ children_rendered = "".join([
87
+ _RenderUtils.render(child) for child in component.get("children", [])
88
+ ])
89
89
  return f"Array.prototype.map.call({component['iterable_state']} ?? [],(({component['arg_name']},{component['arg_index']})=>({children_rendered})))"
90
90
 
91
91
  @staticmethod
@@ -189,16 +189,14 @@ def app_root_template(
189
189
 
190
190
  custom_code_str = "\n".join(custom_codes)
191
191
 
192
- import_window_libraries = "\n".join(
193
- [
194
- f'import * as {lib_alias} from "{lib_path}";'
195
- for lib_alias, lib_path in window_libraries
196
- ]
197
- )
192
+ import_window_libraries = "\n".join([
193
+ f'import * as {lib_alias} from "{lib_path}";'
194
+ for lib_alias, lib_path in window_libraries
195
+ ])
198
196
 
199
- window_imports_str = "\n".join(
200
- [f' "{lib_path}": {lib_alias},' for lib_alias, lib_path in window_libraries]
201
- )
197
+ window_imports_str = "\n".join([
198
+ f' "{lib_path}": {lib_alias},' for lib_alias, lib_path in window_libraries
199
+ ])
202
200
 
203
201
  return f"""
204
202
  {imports_str}
@@ -277,12 +275,10 @@ def context_template(
277
275
  Rendered context file content as string.
278
276
  """
279
277
  initial_state = initial_state or {}
280
- state_contexts_str = "".join(
281
- [
282
- f"{format_state_name(state_name)}: createContext(null),"
283
- for state_name in initial_state
284
- ]
285
- )
278
+ state_contexts_str = "".join([
279
+ f"{format_state_name(state_name)}: createContext(null),"
280
+ for state_name in initial_state
281
+ ])
286
282
 
287
283
  state_str = (
288
284
  rf"""
@@ -486,16 +482,14 @@ def package_json_template(
486
482
  Returns:
487
483
  Rendered package.json content as string.
488
484
  """
489
- return json.dumps(
490
- {
491
- "name": "reflex",
492
- "type": "module",
493
- "scripts": scripts,
494
- "dependencies": dependencies,
495
- "devDependencies": dev_dependencies,
496
- "overrides": overrides,
497
- }
498
- )
485
+ return json.dumps({
486
+ "name": "reflex",
487
+ "type": "module",
488
+ "scripts": scripts,
489
+ "dependencies": dependencies,
490
+ "devDependencies": dev_dependencies,
491
+ "overrides": overrides,
492
+ })
499
493
 
500
494
 
501
495
  def vite_config_template(base: str, hmr: bool, force_full_reload: bool):
@@ -693,9 +687,9 @@ def styles_template(stylesheets: list[str]) -> str:
693
687
  Returns:
694
688
  Rendered styles.css content as string.
695
689
  """
696
- return "@layer __reflex_base;\n" + "\n".join(
697
- [f"@import url('{sheet_name}');" for sheet_name in stylesheets]
698
- )
690
+ return "@layer __reflex_base;\n" + "\n".join([
691
+ f"@import url('{sheet_name}');" for sheet_name in stylesheets
692
+ ])
699
693
 
700
694
 
701
695
  def _render_hooks(hooks: dict[str, VarData | None], memo: list | None = None) -> str:
@@ -4,6 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  import asyncio
6
6
  import concurrent.futures
7
+ import operator
7
8
  import traceback
8
9
  from collections.abc import Mapping, Sequence
9
10
  from datetime import datetime
@@ -161,7 +162,7 @@ def get_import_dict(
161
162
  return _ImportDict(
162
163
  lib=lib,
163
164
  default=default,
164
- rest=rest if rest else [],
165
+ rest=rest or [],
165
166
  )
166
167
 
167
168
 
@@ -190,7 +191,7 @@ def _sorted_keys(d: Mapping[str, Any]) -> dict[str, Any]:
190
191
  Returns:
191
192
  A new dictionary with sorted keys.
192
193
  """
193
- return dict(sorted(d.items(), key=lambda kv: kv[0]))
194
+ return dict(sorted(d.items(), key=operator.itemgetter(0)))
194
195
 
195
196
 
196
197
  def compile_state(state: type[BaseState]) -> dict:
@@ -442,9 +443,9 @@ def create_theme(style: ComponentStyle) -> dict:
442
443
 
443
444
  root_style = {
444
445
  # Root styles.
445
- ":root": Style(
446
- {f"*{k}": v for k, v in style_rules.items() if k.startswith(":")}
447
- ),
446
+ ":root": Style({
447
+ f"*{k}": v for k, v in style_rules.items() if k.startswith(":")
448
+ }),
448
449
  # Body styles.
449
450
  "body": Style(
450
451
  {k: v for k, v in style_rules.items() if not k.startswith(":")},
@@ -0,0 +1,61 @@
1
+ """Stub file for reflex/components/base/body.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.el import elements
11
+ from reflex.event import EventType, PointerEventInfo
12
+ from reflex.vars.base import Var
13
+
14
+ class Body(elements.Body):
15
+ @classmethod
16
+ def create(
17
+ cls,
18
+ *children,
19
+ style: Sequence[Mapping[str, Any]]
20
+ | Mapping[str, Any]
21
+ | Var[Mapping[str, Any]]
22
+ | Breakpoints
23
+ | None = None,
24
+ key: Any | None = None,
25
+ id: Any | None = None,
26
+ ref: Var | None = None,
27
+ class_name: Any | None = None,
28
+ custom_attrs: dict[str, Var | Any] | None = None,
29
+ on_blur: EventType[()] | None = None,
30
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
31
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
32
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
33
+ on_focus: EventType[()] | None = None,
34
+ on_mount: EventType[()] | None = None,
35
+ on_mouse_down: EventType[()] | None = None,
36
+ on_mouse_enter: EventType[()] | None = None,
37
+ on_mouse_leave: EventType[()] | None = None,
38
+ on_mouse_move: EventType[()] | None = None,
39
+ on_mouse_out: EventType[()] | None = None,
40
+ on_mouse_over: EventType[()] | None = None,
41
+ on_mouse_up: EventType[()] | None = None,
42
+ on_scroll: EventType[()] | None = None,
43
+ on_scroll_end: EventType[()] | None = None,
44
+ on_unmount: EventType[()] | None = None,
45
+ **props,
46
+ ) -> Body:
47
+ """Create the component.
48
+
49
+ Args:
50
+ *children: The children of the component.
51
+ style: The style of the component.
52
+ key: A unique key for the component.
53
+ id: The id for the component.
54
+ ref: The Var to pass as the ref to the component.
55
+ class_name: The class name for the component.
56
+ custom_attrs: custom attribute
57
+ **props: The props of the component.
58
+
59
+ Returns:
60
+ The component.
61
+ """
@@ -0,0 +1,110 @@
1
+ """Stub file for reflex/components/base/link.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.el.elements.base import BaseHTML
11
+ from reflex.event import EventType, PointerEventInfo
12
+ from reflex.vars.base import Var
13
+
14
+ class RawLink(BaseHTML):
15
+ @classmethod
16
+ def create(
17
+ cls,
18
+ *children,
19
+ style: Sequence[Mapping[str, Any]]
20
+ | Mapping[str, Any]
21
+ | Var[Mapping[str, Any]]
22
+ | Breakpoints
23
+ | None = None,
24
+ key: Any | None = None,
25
+ id: Any | None = None,
26
+ ref: Var | None = None,
27
+ class_name: Any | None = None,
28
+ custom_attrs: dict[str, Var | Any] | None = None,
29
+ on_blur: EventType[()] | None = None,
30
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
31
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
32
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
33
+ on_focus: EventType[()] | None = None,
34
+ on_mount: EventType[()] | None = None,
35
+ on_mouse_down: EventType[()] | None = None,
36
+ on_mouse_enter: EventType[()] | None = None,
37
+ on_mouse_leave: EventType[()] | None = None,
38
+ on_mouse_move: EventType[()] | None = None,
39
+ on_mouse_out: EventType[()] | None = None,
40
+ on_mouse_over: EventType[()] | None = None,
41
+ on_mouse_up: EventType[()] | None = None,
42
+ on_scroll: EventType[()] | None = None,
43
+ on_scroll_end: EventType[()] | None = None,
44
+ on_unmount: EventType[()] | None = None,
45
+ **props,
46
+ ) -> RawLink:
47
+ """Create the component.
48
+
49
+ Args:
50
+ *children: The children of the component.
51
+ style: The style of the component.
52
+ key: A unique key for the component.
53
+ id: The id for the component.
54
+ ref: The Var to pass as the ref to the component.
55
+ class_name: The class name for the component.
56
+ custom_attrs: custom attribute
57
+ **props: The props of the component.
58
+
59
+ Returns:
60
+ The component.
61
+ """
62
+
63
+ class ScriptTag(BaseHTML):
64
+ @classmethod
65
+ def create(
66
+ cls,
67
+ *children,
68
+ style: Sequence[Mapping[str, Any]]
69
+ | Mapping[str, Any]
70
+ | Var[Mapping[str, Any]]
71
+ | Breakpoints
72
+ | None = None,
73
+ key: Any | None = None,
74
+ id: Any | None = None,
75
+ ref: Var | None = None,
76
+ class_name: Any | None = None,
77
+ custom_attrs: dict[str, Var | Any] | None = None,
78
+ on_blur: EventType[()] | None = None,
79
+ on_click: EventType[()] | EventType[PointerEventInfo] | None = None,
80
+ on_context_menu: EventType[()] | EventType[PointerEventInfo] | None = None,
81
+ on_double_click: EventType[()] | EventType[PointerEventInfo] | None = None,
82
+ on_focus: EventType[()] | None = None,
83
+ on_mount: EventType[()] | None = None,
84
+ on_mouse_down: EventType[()] | None = None,
85
+ on_mouse_enter: EventType[()] | None = None,
86
+ on_mouse_leave: EventType[()] | None = None,
87
+ on_mouse_move: EventType[()] | None = None,
88
+ on_mouse_out: EventType[()] | None = None,
89
+ on_mouse_over: EventType[()] | None = None,
90
+ on_mouse_up: EventType[()] | None = None,
91
+ on_scroll: EventType[()] | None = None,
92
+ on_scroll_end: EventType[()] | None = None,
93
+ on_unmount: EventType[()] | None = None,
94
+ **props,
95
+ ) -> ScriptTag:
96
+ """Create the component.
97
+
98
+ Args:
99
+ *children: The children of the component.
100
+ style: The style of the component.
101
+ key: A unique key for the component.
102
+ id: The id for the component.
103
+ ref: The Var to pass as the ref to the component.
104
+ class_name: The class name for the component.
105
+ custom_attrs: custom attribute
106
+ **props: The props of the component.
107
+
108
+ Returns:
109
+ The component.
110
+ """