reflex 0.7.1a4__py3-none-any.whl → 0.7.2a2__py3-none-any.whl

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 (227) hide show
  1. reflex/.templates/jinja/web/utils/context.js.jinja2 +8 -8
  2. reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js +3 -3
  3. reflex/.templates/web/utils/state.js +18 -18
  4. reflex/admin.py +1 -2
  5. reflex/app.py +46 -49
  6. reflex/app_mixins/lifespan.py +2 -2
  7. reflex/app_mixins/middleware.py +1 -2
  8. reflex/assets.py +1 -2
  9. reflex/base.py +2 -2
  10. reflex/compiler/compiler.py +51 -16
  11. reflex/compiler/utils.py +4 -13
  12. reflex/components/base/app_wrap.pyi +7 -7
  13. reflex/components/base/bare.py +3 -3
  14. reflex/components/base/body.pyi +7 -7
  15. reflex/components/base/document.py +1 -3
  16. reflex/components/base/document.pyi +32 -32
  17. reflex/components/base/error_boundary.py +2 -4
  18. reflex/components/base/error_boundary.pyi +11 -13
  19. reflex/components/base/fragment.pyi +7 -7
  20. reflex/components/base/head.pyi +13 -13
  21. reflex/components/base/link.pyi +22 -22
  22. reflex/components/base/meta.py +5 -7
  23. reflex/components/base/meta.pyi +40 -40
  24. reflex/components/base/script.pyi +11 -14
  25. reflex/components/base/strict_mode.pyi +7 -7
  26. reflex/components/component.py +188 -113
  27. reflex/components/core/auto_scroll.py +8 -1
  28. reflex/components/core/auto_scroll.pyi +183 -210
  29. reflex/components/core/banner.py +2 -4
  30. reflex/components/core/banner.pyi +390 -444
  31. reflex/components/core/breakpoints.py +5 -5
  32. reflex/components/core/client_side_routing.pyi +14 -14
  33. reflex/components/core/clipboard.py +4 -4
  34. reflex/components/core/clipboard.pyi +12 -14
  35. reflex/components/core/cond.py +17 -25
  36. reflex/components/core/debounce.py +3 -3
  37. reflex/components/core/debounce.pyi +14 -14
  38. reflex/components/core/foreach.py +7 -2
  39. reflex/components/core/html.py +1 -3
  40. reflex/components/core/html.pyi +184 -213
  41. reflex/components/core/match.py +15 -19
  42. reflex/components/core/sticky.pyi +930 -1078
  43. reflex/components/core/upload.py +4 -4
  44. reflex/components/core/upload.pyi +62 -62
  45. reflex/components/datadisplay/code.py +6 -6
  46. reflex/components/datadisplay/code.pyi +1159 -1165
  47. reflex/components/datadisplay/dataeditor.py +49 -49
  48. reflex/components/datadisplay/dataeditor.pyi +95 -123
  49. reflex/components/datadisplay/logo.py +1 -3
  50. reflex/components/datadisplay/shiki_code_block.py +8 -10
  51. reflex/components/datadisplay/shiki_code_block.pyi +1678 -1720
  52. reflex/components/el/element.pyi +7 -7
  53. reflex/components/el/elements/base.pyi +183 -210
  54. reflex/components/el/elements/forms.py +24 -24
  55. reflex/components/el/elements/forms.pyi +2572 -2934
  56. reflex/components/el/elements/inline.py +4 -4
  57. reflex/components/el/elements/inline.pyi +5191 -5953
  58. reflex/components/el/elements/media.py +47 -47
  59. reflex/components/el/elements/media.pyi +4802 -5500
  60. reflex/components/el/elements/metadata.py +1 -3
  61. reflex/components/el/elements/metadata.pyi +782 -896
  62. reflex/components/el/elements/other.pyi +1278 -1467
  63. reflex/components/el/elements/scripts.pyi +580 -667
  64. reflex/components/el/elements/sectioning.pyi +2761 -3166
  65. reflex/components/el/elements/tables.pyi +1840 -2119
  66. reflex/components/el/elements/typography.pyi +2772 -3179
  67. reflex/components/gridjs/datatable.py +7 -7
  68. reflex/components/gridjs/datatable.pyi +19 -19
  69. reflex/components/lucide/icon.pyi +21 -21
  70. reflex/components/markdown/markdown.py +2 -2
  71. reflex/components/markdown/markdown.pyi +9 -9
  72. reflex/components/moment/moment.py +11 -12
  73. reflex/components/moment/moment.pyi +44 -47
  74. reflex/components/next/base.pyi +7 -7
  75. reflex/components/next/image.py +3 -3
  76. reflex/components/next/image.pyi +19 -21
  77. reflex/components/next/link.pyi +9 -9
  78. reflex/components/next/video.py +1 -3
  79. reflex/components/next/video.pyi +9 -9
  80. reflex/components/plotly/plotly.py +22 -45
  81. reflex/components/plotly/plotly.pyi +164 -164
  82. reflex/components/radix/primitives/accordion.py +14 -14
  83. reflex/components/radix/primitives/accordion.pyi +439 -487
  84. reflex/components/radix/primitives/base.py +1 -3
  85. reflex/components/radix/primitives/base.pyi +15 -15
  86. reflex/components/radix/primitives/drawer.py +3 -3
  87. reflex/components/radix/primitives/drawer.pyi +110 -116
  88. reflex/components/radix/primitives/form.py +1 -1
  89. reflex/components/radix/primitives/form.pyi +668 -752
  90. reflex/components/radix/primitives/progress.py +6 -6
  91. reflex/components/radix/primitives/progress.pyi +225 -243
  92. reflex/components/radix/primitives/slider.py +6 -6
  93. reflex/components/radix/primitives/slider.pyi +52 -55
  94. reflex/components/radix/themes/base.py +3 -6
  95. reflex/components/radix/themes/base.pyi +197 -303
  96. reflex/components/radix/themes/color_mode.py +5 -5
  97. reflex/components/radix/themes/color_mode.pyi +366 -436
  98. reflex/components/radix/themes/components/alert_dialog.pyi +229 -262
  99. reflex/components/radix/themes/components/aspect_ratio.py +1 -3
  100. reflex/components/radix/themes/components/aspect_ratio.pyi +8 -8
  101. reflex/components/radix/themes/components/avatar.pyi +79 -94
  102. reflex/components/radix/themes/components/badge.pyi +252 -295
  103. reflex/components/radix/themes/components/button.pyi +269 -314
  104. reflex/components/radix/themes/components/callout.py +2 -2
  105. reflex/components/radix/themes/components/callout.pyi +1116 -1290
  106. reflex/components/radix/themes/components/card.pyi +194 -229
  107. reflex/components/radix/themes/components/checkbox.pyi +243 -278
  108. reflex/components/radix/themes/components/checkbox_cards.py +3 -7
  109. reflex/components/radix/themes/components/checkbox_cards.pyi +101 -135
  110. reflex/components/radix/themes/components/checkbox_group.py +2 -2
  111. reflex/components/radix/themes/components/checkbox_group.pyi +83 -96
  112. reflex/components/radix/themes/components/context_menu.py +18 -15
  113. reflex/components/radix/themes/components/context_menu.pyi +408 -458
  114. reflex/components/radix/themes/components/data_list.pyi +122 -147
  115. reflex/components/radix/themes/components/dialog.pyi +231 -264
  116. reflex/components/radix/themes/components/dropdown_menu.py +16 -13
  117. reflex/components/radix/themes/components/dropdown_menu.pyi +223 -246
  118. reflex/components/radix/themes/components/hover_card.py +2 -2
  119. reflex/components/radix/themes/components/hover_card.pyi +237 -282
  120. reflex/components/radix/themes/components/icon_button.pyi +269 -314
  121. reflex/components/radix/themes/components/inset.py +8 -8
  122. reflex/components/radix/themes/components/inset.pyi +232 -292
  123. reflex/components/radix/themes/components/popover.py +2 -2
  124. reflex/components/radix/themes/components/popover.pyi +229 -271
  125. reflex/components/radix/themes/components/progress.pyi +80 -96
  126. reflex/components/radix/themes/components/radio.pyi +73 -86
  127. reflex/components/radix/themes/components/radio_cards.py +4 -8
  128. reflex/components/radix/themes/components/radio_cards.pyi +117 -154
  129. reflex/components/radix/themes/components/radio_group.py +3 -3
  130. reflex/components/radix/themes/components/radio_group.pyi +250 -291
  131. reflex/components/radix/themes/components/scroll_area.pyi +14 -20
  132. reflex/components/radix/themes/components/segmented_control.py +6 -6
  133. reflex/components/radix/themes/components/segmented_control.pyi +89 -108
  134. reflex/components/radix/themes/components/select.py +7 -7
  135. reflex/components/radix/themes/components/select.pyi +376 -444
  136. reflex/components/radix/themes/components/separator.pyi +79 -93
  137. reflex/components/radix/themes/components/skeleton.pyi +32 -26
  138. reflex/components/radix/themes/components/slider.py +8 -8
  139. reflex/components/radix/themes/components/slider.pyi +99 -122
  140. reflex/components/radix/themes/components/spinner.pyi +12 -19
  141. reflex/components/radix/themes/components/switch.pyi +84 -99
  142. reflex/components/radix/themes/components/table.py +9 -9
  143. reflex/components/radix/themes/components/table.pyi +1440 -1794
  144. reflex/components/radix/themes/components/tabs.py +4 -4
  145. reflex/components/radix/themes/components/tabs.pyi +120 -132
  146. reflex/components/radix/themes/components/text_area.pyi +281 -331
  147. reflex/components/radix/themes/components/text_field.py +2 -2
  148. reflex/components/radix/themes/components/text_field.pyi +639 -734
  149. reflex/components/radix/themes/components/tooltip.py +6 -6
  150. reflex/components/radix/themes/components/tooltip.pyi +34 -43
  151. reflex/components/radix/themes/layout/base.pyi +85 -182
  152. reflex/components/radix/themes/layout/box.pyi +183 -210
  153. reflex/components/radix/themes/layout/center.pyi +225 -286
  154. reflex/components/radix/themes/layout/container.pyi +191 -224
  155. reflex/components/radix/themes/layout/flex.py +2 -2
  156. reflex/components/radix/themes/layout/flex.pyi +225 -286
  157. reflex/components/radix/themes/layout/grid.py +2 -2
  158. reflex/components/radix/themes/layout/grid.pyi +245 -315
  159. reflex/components/radix/themes/layout/list.py +2 -2
  160. reflex/components/radix/themes/layout/list.pyi +712 -815
  161. reflex/components/radix/themes/layout/section.pyi +187 -221
  162. reflex/components/radix/themes/layout/spacer.pyi +225 -286
  163. reflex/components/radix/themes/layout/stack.pyi +625 -768
  164. reflex/components/radix/themes/typography/blockquote.pyi +257 -299
  165. reflex/components/radix/themes/typography/code.pyi +259 -304
  166. reflex/components/radix/themes/typography/heading.pyi +272 -324
  167. reflex/components/radix/themes/typography/link.pyi +302 -358
  168. reflex/components/radix/themes/typography/text.pyi +1669 -1945
  169. reflex/components/react_player/audio.pyi +20 -22
  170. reflex/components/react_player/react_player.pyi +19 -19
  171. reflex/components/react_player/video.pyi +20 -22
  172. reflex/components/recharts/cartesian.py +100 -97
  173. reflex/components/recharts/cartesian.pyi +891 -1007
  174. reflex/components/recharts/charts.py +42 -42
  175. reflex/components/recharts/charts.pyi +212 -249
  176. reflex/components/recharts/general.py +22 -21
  177. reflex/components/recharts/general.pyi +198 -223
  178. reflex/components/recharts/polar.py +42 -45
  179. reflex/components/recharts/polar.pyi +254 -288
  180. reflex/components/recharts/recharts.pyi +13 -13
  181. reflex/components/sonner/toast.py +20 -20
  182. reflex/components/sonner/toast.pyi +58 -61
  183. reflex/components/suneditor/editor.py +9 -9
  184. reflex/components/suneditor/editor.pyi +78 -83
  185. reflex/components/tags/cond_tag.py +2 -2
  186. reflex/components/tags/iter_tag.py +10 -14
  187. reflex/components/tags/match_tag.py +2 -2
  188. reflex/components/tags/tag.py +10 -10
  189. reflex/config.py +36 -35
  190. reflex/constants/__init__.py +56 -53
  191. reflex/custom_components/custom_components.py +6 -7
  192. reflex/event.py +38 -42
  193. reflex/experimental/client_state.py +2 -4
  194. reflex/experimental/layout.py +2 -2
  195. reflex/experimental/layout.pyi +579 -663
  196. reflex/istate/data.py +4 -5
  197. reflex/middleware/hydrate_middleware.py +2 -2
  198. reflex/middleware/middleware.py +2 -2
  199. reflex/model.py +3 -5
  200. reflex/page.py +2 -2
  201. reflex/reflex.py +9 -10
  202. reflex/state.py +77 -49
  203. reflex/style.py +9 -3
  204. reflex/testing.py +21 -24
  205. reflex/utils/console.py +1 -1
  206. reflex/utils/decorator.py +26 -1
  207. reflex/utils/exec.py +6 -11
  208. reflex/utils/export.py +2 -3
  209. reflex/utils/format.py +4 -4
  210. reflex/utils/imports.py +12 -12
  211. reflex/utils/prerequisites.py +35 -84
  212. reflex/utils/processes.py +5 -5
  213. reflex/utils/pyi_generator.py +33 -22
  214. reflex/utils/serializers.py +60 -15
  215. reflex/utils/types.py +237 -56
  216. reflex/vars/base.py +122 -72
  217. reflex/vars/datetime.py +2 -2
  218. reflex/vars/function.py +52 -55
  219. reflex/vars/number.py +59 -5
  220. reflex/vars/object.py +57 -26
  221. reflex/vars/sequence.py +983 -958
  222. {reflex-0.7.1a4.dist-info → reflex-0.7.2a2.dist-info}/METADATA +3 -6
  223. reflex-0.7.2a2.dist-info/RECORD +405 -0
  224. {reflex-0.7.1a4.dist-info → reflex-0.7.2a2.dist-info}/WHEEL +1 -1
  225. reflex-0.7.1a4.dist-info/RECORD +0 -405
  226. {reflex-0.7.1a4.dist-info → reflex-0.7.2a2.dist-info}/LICENSE +0 -0
  227. {reflex-0.7.1a4.dist-info → reflex-0.7.2a2.dist-info}/entry_points.txt +0 -0
@@ -3,7 +3,7 @@
3
3
  # ------------------- DO NOT EDIT ----------------------
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
- from typing import Any, Dict, Literal, Optional, Union, overload
6
+ from typing import Any, Literal, Optional, overload
7
7
 
8
8
  from reflex.components.el.elements.typography import Div
9
9
  from reflex.event import EventType
@@ -16,220 +16,191 @@ class Html(Div):
16
16
  def create( # type: ignore
17
17
  cls,
18
18
  *children,
19
- dangerouslySetInnerHTML: Optional[
20
- Union[Dict[str, str], Var[Dict[str, str]]]
21
- ] = None,
22
- access_key: Optional[Union[Var[str], str]] = None,
23
- auto_capitalize: Optional[
24
- Union[
25
- Literal["characters", "none", "off", "on", "sentences", "words"],
26
- Var[Literal["characters", "none", "off", "on", "sentences", "words"]],
19
+ dangerouslySetInnerHTML: Var[dict[str, str]] | dict[str, str] | None = None,
20
+ access_key: Var[str] | str | None = None,
21
+ auto_capitalize: Literal[
22
+ "characters", "none", "off", "on", "sentences", "words"
23
+ ]
24
+ | Var[Literal["characters", "none", "off", "on", "sentences", "words"]]
25
+ | None = None,
26
+ content_editable: Literal["inherit", "plaintext-only", False, True]
27
+ | Var[Literal["inherit", "plaintext-only", False, True]]
28
+ | None = None,
29
+ context_menu: Var[str] | str | None = None,
30
+ dir: Var[str] | str | None = None,
31
+ draggable: Var[bool] | bool | None = None,
32
+ enter_key_hint: Literal[
33
+ "done", "enter", "go", "next", "previous", "search", "send"
34
+ ]
35
+ | Var[Literal["done", "enter", "go", "next", "previous", "search", "send"]]
36
+ | None = None,
37
+ hidden: Var[bool] | bool | None = None,
38
+ input_mode: Literal[
39
+ "decimal", "email", "none", "numeric", "search", "tel", "text", "url"
40
+ ]
41
+ | Var[
42
+ Literal[
43
+ "decimal", "email", "none", "numeric", "search", "tel", "text", "url"
27
44
  ]
28
- ] = None,
29
- content_editable: Optional[
30
- Union[
31
- Literal["inherit", "plaintext-only", False, True],
32
- Var[Literal["inherit", "plaintext-only", False, True]],
45
+ ]
46
+ | None = None,
47
+ item_prop: Var[str] | str | None = None,
48
+ lang: Var[str] | str | None = None,
49
+ role: Literal[
50
+ "alert",
51
+ "alertdialog",
52
+ "application",
53
+ "article",
54
+ "banner",
55
+ "button",
56
+ "cell",
57
+ "checkbox",
58
+ "columnheader",
59
+ "combobox",
60
+ "complementary",
61
+ "contentinfo",
62
+ "definition",
63
+ "dialog",
64
+ "directory",
65
+ "document",
66
+ "feed",
67
+ "figure",
68
+ "form",
69
+ "grid",
70
+ "gridcell",
71
+ "group",
72
+ "heading",
73
+ "img",
74
+ "link",
75
+ "list",
76
+ "listbox",
77
+ "listitem",
78
+ "log",
79
+ "main",
80
+ "marquee",
81
+ "math",
82
+ "menu",
83
+ "menubar",
84
+ "menuitem",
85
+ "menuitemcheckbox",
86
+ "menuitemradio",
87
+ "navigation",
88
+ "none",
89
+ "note",
90
+ "option",
91
+ "presentation",
92
+ "progressbar",
93
+ "radio",
94
+ "radiogroup",
95
+ "region",
96
+ "row",
97
+ "rowgroup",
98
+ "rowheader",
99
+ "scrollbar",
100
+ "search",
101
+ "searchbox",
102
+ "separator",
103
+ "slider",
104
+ "spinbutton",
105
+ "status",
106
+ "switch",
107
+ "tab",
108
+ "table",
109
+ "tablist",
110
+ "tabpanel",
111
+ "term",
112
+ "textbox",
113
+ "timer",
114
+ "toolbar",
115
+ "tooltip",
116
+ "tree",
117
+ "treegrid",
118
+ "treeitem",
119
+ ]
120
+ | Var[
121
+ Literal[
122
+ "alert",
123
+ "alertdialog",
124
+ "application",
125
+ "article",
126
+ "banner",
127
+ "button",
128
+ "cell",
129
+ "checkbox",
130
+ "columnheader",
131
+ "combobox",
132
+ "complementary",
133
+ "contentinfo",
134
+ "definition",
135
+ "dialog",
136
+ "directory",
137
+ "document",
138
+ "feed",
139
+ "figure",
140
+ "form",
141
+ "grid",
142
+ "gridcell",
143
+ "group",
144
+ "heading",
145
+ "img",
146
+ "link",
147
+ "list",
148
+ "listbox",
149
+ "listitem",
150
+ "log",
151
+ "main",
152
+ "marquee",
153
+ "math",
154
+ "menu",
155
+ "menubar",
156
+ "menuitem",
157
+ "menuitemcheckbox",
158
+ "menuitemradio",
159
+ "navigation",
160
+ "none",
161
+ "note",
162
+ "option",
163
+ "presentation",
164
+ "progressbar",
165
+ "radio",
166
+ "radiogroup",
167
+ "region",
168
+ "row",
169
+ "rowgroup",
170
+ "rowheader",
171
+ "scrollbar",
172
+ "search",
173
+ "searchbox",
174
+ "separator",
175
+ "slider",
176
+ "spinbutton",
177
+ "status",
178
+ "switch",
179
+ "tab",
180
+ "table",
181
+ "tablist",
182
+ "tabpanel",
183
+ "term",
184
+ "textbox",
185
+ "timer",
186
+ "toolbar",
187
+ "tooltip",
188
+ "tree",
189
+ "treegrid",
190
+ "treeitem",
33
191
  ]
34
- ] = None,
35
- context_menu: Optional[Union[Var[str], str]] = None,
36
- dir: Optional[Union[Var[str], str]] = None,
37
- draggable: Optional[Union[Var[bool], bool]] = None,
38
- enter_key_hint: Optional[
39
- Union[
40
- Literal["done", "enter", "go", "next", "previous", "search", "send"],
41
- Var[
42
- Literal["done", "enter", "go", "next", "previous", "search", "send"]
43
- ],
44
- ]
45
- ] = None,
46
- hidden: Optional[Union[Var[bool], bool]] = None,
47
- input_mode: Optional[
48
- Union[
49
- Literal[
50
- "decimal",
51
- "email",
52
- "none",
53
- "numeric",
54
- "search",
55
- "tel",
56
- "text",
57
- "url",
58
- ],
59
- Var[
60
- Literal[
61
- "decimal",
62
- "email",
63
- "none",
64
- "numeric",
65
- "search",
66
- "tel",
67
- "text",
68
- "url",
69
- ]
70
- ],
71
- ]
72
- ] = None,
73
- item_prop: Optional[Union[Var[str], str]] = None,
74
- lang: Optional[Union[Var[str], str]] = None,
75
- role: Optional[
76
- Union[
77
- Literal[
78
- "alert",
79
- "alertdialog",
80
- "application",
81
- "article",
82
- "banner",
83
- "button",
84
- "cell",
85
- "checkbox",
86
- "columnheader",
87
- "combobox",
88
- "complementary",
89
- "contentinfo",
90
- "definition",
91
- "dialog",
92
- "directory",
93
- "document",
94
- "feed",
95
- "figure",
96
- "form",
97
- "grid",
98
- "gridcell",
99
- "group",
100
- "heading",
101
- "img",
102
- "link",
103
- "list",
104
- "listbox",
105
- "listitem",
106
- "log",
107
- "main",
108
- "marquee",
109
- "math",
110
- "menu",
111
- "menubar",
112
- "menuitem",
113
- "menuitemcheckbox",
114
- "menuitemradio",
115
- "navigation",
116
- "none",
117
- "note",
118
- "option",
119
- "presentation",
120
- "progressbar",
121
- "radio",
122
- "radiogroup",
123
- "region",
124
- "row",
125
- "rowgroup",
126
- "rowheader",
127
- "scrollbar",
128
- "search",
129
- "searchbox",
130
- "separator",
131
- "slider",
132
- "spinbutton",
133
- "status",
134
- "switch",
135
- "tab",
136
- "table",
137
- "tablist",
138
- "tabpanel",
139
- "term",
140
- "textbox",
141
- "timer",
142
- "toolbar",
143
- "tooltip",
144
- "tree",
145
- "treegrid",
146
- "treeitem",
147
- ],
148
- Var[
149
- Literal[
150
- "alert",
151
- "alertdialog",
152
- "application",
153
- "article",
154
- "banner",
155
- "button",
156
- "cell",
157
- "checkbox",
158
- "columnheader",
159
- "combobox",
160
- "complementary",
161
- "contentinfo",
162
- "definition",
163
- "dialog",
164
- "directory",
165
- "document",
166
- "feed",
167
- "figure",
168
- "form",
169
- "grid",
170
- "gridcell",
171
- "group",
172
- "heading",
173
- "img",
174
- "link",
175
- "list",
176
- "listbox",
177
- "listitem",
178
- "log",
179
- "main",
180
- "marquee",
181
- "math",
182
- "menu",
183
- "menubar",
184
- "menuitem",
185
- "menuitemcheckbox",
186
- "menuitemradio",
187
- "navigation",
188
- "none",
189
- "note",
190
- "option",
191
- "presentation",
192
- "progressbar",
193
- "radio",
194
- "radiogroup",
195
- "region",
196
- "row",
197
- "rowgroup",
198
- "rowheader",
199
- "scrollbar",
200
- "search",
201
- "searchbox",
202
- "separator",
203
- "slider",
204
- "spinbutton",
205
- "status",
206
- "switch",
207
- "tab",
208
- "table",
209
- "tablist",
210
- "tabpanel",
211
- "term",
212
- "textbox",
213
- "timer",
214
- "toolbar",
215
- "tooltip",
216
- "tree",
217
- "treegrid",
218
- "treeitem",
219
- ]
220
- ],
221
- ]
222
- ] = None,
223
- slot: Optional[Union[Var[str], str]] = None,
224
- spell_check: Optional[Union[Var[bool], bool]] = None,
225
- tab_index: Optional[Union[Var[int], int]] = None,
226
- title: Optional[Union[Var[str], str]] = None,
227
- style: Optional[Style] = None,
228
- key: Optional[Any] = None,
229
- id: Optional[Any] = None,
230
- class_name: Optional[Any] = None,
231
- autofocus: Optional[bool] = None,
232
- custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
192
+ ]
193
+ | None = None,
194
+ slot: Var[str] | str | None = None,
195
+ spell_check: Var[bool] | bool | None = None,
196
+ tab_index: Var[int] | int | None = None,
197
+ title: Var[str] | str | None = None,
198
+ style: Style | None = None,
199
+ key: Any | None = None,
200
+ id: Any | None = None,
201
+ class_name: Any | None = None,
202
+ autofocus: bool | None = None,
203
+ custom_attrs: dict[str, Var | Any] | None = None,
233
204
  on_blur: Optional[EventType[()]] = None,
234
205
  on_click: Optional[EventType[()]] = None,
235
206
  on_context_menu: Optional[EventType[()]] = None,
@@ -1,13 +1,13 @@
1
1
  """rx.match."""
2
2
 
3
3
  import textwrap
4
- from typing import Any, Dict, List, Optional, Tuple, Union
4
+ from typing import Any, Dict, List
5
5
 
6
6
  from reflex.components.base import Fragment
7
7
  from reflex.components.component import BaseComponent, Component, MemoizationLeaf
8
8
  from reflex.components.tags import MatchTag, Tag
9
9
  from reflex.style import Style
10
- from reflex.utils import format, types
10
+ from reflex.utils import format
11
11
  from reflex.utils.exceptions import MatchTypeError
12
12
  from reflex.utils.imports import ImportDict
13
13
  from reflex.vars import VarData
@@ -21,13 +21,13 @@ class Match(MemoizationLeaf):
21
21
  cond: Var[Any]
22
22
 
23
23
  # The list of match cases to be matched.
24
- match_cases: List[Any] = []
24
+ match_cases: list[Any] = []
25
25
 
26
26
  # The catchall case to match.
27
27
  default: Any
28
28
 
29
29
  @classmethod
30
- def create(cls, cond: Any, *cases) -> Union[Component, Var]:
30
+ def create(cls, cond: Any, *cases) -> Component | Var:
31
31
  """Create a Match Component.
32
32
 
33
33
  Args:
@@ -46,7 +46,7 @@ class Match(MemoizationLeaf):
46
46
 
47
47
  cls._validate_return_types(match_cases)
48
48
 
49
- if default is None and types._issubclass(type(match_cases[0][-1]), Var):
49
+ if default is None and isinstance(match_cases[0][-1], Var):
50
50
  raise ValueError(
51
51
  "For cases with return types as Vars, a default case must be provided"
52
52
  )
@@ -75,9 +75,7 @@ class Match(MemoizationLeaf):
75
75
  return match_cond_var
76
76
 
77
77
  @classmethod
78
- def _process_cases(
79
- cls, cases: List
80
- ) -> Tuple[List, Optional[Union[Var, BaseComponent]]]:
78
+ def _process_cases(cls, cases: list) -> tuple[list, Var | BaseComponent | None]:
81
79
  """Process the list of match cases and the catchall default case.
82
80
 
83
81
  Args:
@@ -125,7 +123,7 @@ class Match(MemoizationLeaf):
125
123
  return case_element
126
124
 
127
125
  @classmethod
128
- def _process_match_cases(cls, cases: List) -> List[List[Var]]:
126
+ def _process_match_cases(cls, cases: List) -> list[list[Var]]:
129
127
  """Process the individual match cases.
130
128
 
131
129
  Args:
@@ -166,7 +164,7 @@ class Match(MemoizationLeaf):
166
164
  return match_cases
167
165
 
168
166
  @classmethod
169
- def _validate_return_types(cls, match_cases: List[List[Var]]) -> None:
167
+ def _validate_return_types(cls, match_cases: list[list[Var]]) -> None:
170
168
  """Validate that match cases have the same return types.
171
169
 
172
170
  Args:
@@ -184,7 +182,7 @@ class Match(MemoizationLeaf):
184
182
  return_type = Var
185
183
 
186
184
  for index, case in enumerate(match_cases):
187
- if not types._issubclass(type(case[-1]), return_type):
185
+ if not isinstance(case[-1], return_type):
188
186
  raise MatchTypeError(
189
187
  f"Match cases should have the same return types. Case {index} with return "
190
188
  f"value `{case[-1]._js_expr if isinstance(case[-1], Var) else textwrap.shorten(str(case[-1]), width=250)}`"
@@ -195,9 +193,9 @@ class Match(MemoizationLeaf):
195
193
  def _create_match_cond_var_or_component(
196
194
  cls,
197
195
  match_cond_var: Var,
198
- match_cases: List[List[Var]],
199
- default: Optional[Union[Var, BaseComponent]],
200
- ) -> Union[Component, Var]:
196
+ match_cases: list[list[Var]],
197
+ default: Var | BaseComponent | None,
198
+ ) -> Component | Var:
201
199
  """Create and return the match condition var or component.
202
200
 
203
201
  Args:
@@ -211,14 +209,12 @@ class Match(MemoizationLeaf):
211
209
  Raises:
212
210
  ValueError: If the return types are not vars when creating a match var for Var types.
213
211
  """
214
- if default is None and types._issubclass(
215
- type(match_cases[0][-1]), BaseComponent
216
- ):
212
+ if default is None and isinstance(match_cases[0][-1], BaseComponent):
217
213
  default = Fragment.create()
218
214
 
219
- if types._issubclass(type(match_cases[0][-1]), BaseComponent):
215
+ if isinstance(match_cases[0][-1], BaseComponent):
220
216
  return Fragment.create(
221
- cls(
217
+ cls._create(
222
218
  cond=match_cond_var,
223
219
  match_cases=match_cases,
224
220
  default=default,