reflex 0.7.1a3__py3-none-any.whl → 0.7.2__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 +53 -50
  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 +11 -5
  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.1a3.dist-info → reflex-0.7.2.dist-info}/METADATA +3 -6
  223. reflex-0.7.2.dist-info/RECORD +405 -0
  224. {reflex-0.7.1a3.dist-info → reflex-0.7.2.dist-info}/WHEEL +1 -1
  225. reflex-0.7.1a3.dist-info/RECORD +0 -405
  226. {reflex-0.7.1a3.dist-info → reflex-0.7.2.dist-info}/LICENSE +0 -0
  227. {reflex-0.7.1a3.dist-info → reflex-0.7.2.dist-info}/entry_points.txt +0 -0
@@ -3,7 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from enum import Enum
6
- from typing import Any, Dict, List, Literal, Optional, Tuple, TypedDict, Union
6
+ from typing import Any, Dict, Literal, Sequence, TypedDict
7
7
 
8
8
  from reflex.base import Base
9
9
  from reflex.components.component import Component, NoSSRComponent
@@ -52,38 +52,38 @@ class GridColumnIcons(Enum):
52
52
  class DataEditorTheme(Base):
53
53
  """The theme for the DataEditor component."""
54
54
 
55
- accent_color: Optional[str] = None
56
- accent_fg: Optional[str] = None
57
- accent_light: Optional[str] = None
58
- base_font_style: Optional[str] = None
59
- bg_bubble: Optional[str] = None
60
- bg_bubble_selected: Optional[str] = None
61
- bg_cell: Optional[str] = None
62
- bg_cell_medium: Optional[str] = None
63
- bg_header: Optional[str] = None
64
- bg_header_has_focus: Optional[str] = None
65
- bg_header_hovered: Optional[str] = None
66
- bg_icon_header: Optional[str] = None
67
- bg_search_result: Optional[str] = None
68
- border_color: Optional[str] = None
69
- cell_horizontal_padding: Optional[int] = None
70
- cell_vertical_padding: Optional[int] = None
71
- drilldown_border: Optional[str] = None
72
- editor_font_size: Optional[str] = None
73
- fg_icon_header: Optional[str] = None
74
- font_family: Optional[str] = None
75
- header_bottom_border_color: Optional[str] = None
76
- header_font_style: Optional[str] = None
77
- horizontal_border_color: Optional[str] = None
78
- line_height: Optional[int] = None
79
- link_color: Optional[str] = None
80
- text_bubble: Optional[str] = None
81
- text_dark: Optional[str] = None
82
- text_group_header: Optional[str] = None
83
- text_header: Optional[str] = None
84
- text_header_selected: Optional[str] = None
85
- text_light: Optional[str] = None
86
- text_medium: Optional[str] = None
55
+ accent_color: str | None = None
56
+ accent_fg: str | None = None
57
+ accent_light: str | None = None
58
+ base_font_style: str | None = None
59
+ bg_bubble: str | None = None
60
+ bg_bubble_selected: str | None = None
61
+ bg_cell: str | None = None
62
+ bg_cell_medium: str | None = None
63
+ bg_header: str | None = None
64
+ bg_header_has_focus: str | None = None
65
+ bg_header_hovered: str | None = None
66
+ bg_icon_header: str | None = None
67
+ bg_search_result: str | None = None
68
+ border_color: str | None = None
69
+ cell_horizontal_padding: int | None = None
70
+ cell_vertical_padding: int | None = None
71
+ drilldown_border: str | None = None
72
+ editor_font_size: str | None = None
73
+ fg_icon_header: str | None = None
74
+ font_family: str | None = None
75
+ header_bottom_border_color: str | None = None
76
+ header_font_style: str | None = None
77
+ horizontal_border_color: str | None = None
78
+ line_height: int | None = None
79
+ link_color: str | None = None
80
+ text_bubble: str | None = None
81
+ text_dark: str | None = None
82
+ text_group_header: str | None = None
83
+ text_header: str | None = None
84
+ text_header_selected: str | None = None
85
+ text_light: str | None = None
86
+ text_medium: str | None = None
87
87
 
88
88
 
89
89
  class Bounds(TypedDict):
@@ -121,7 +121,7 @@ class GridSelectionCurrent(TypedDict):
121
121
  class GridSelection(TypedDict):
122
122
  """The grid selection."""
123
123
 
124
- current: Optional[GridSelectionCurrent]
124
+ current: GridSelectionCurrent | None
125
125
  columns: CompatSelection
126
126
  rows: CompatSelection
127
127
 
@@ -148,14 +148,14 @@ class GroupHeaderClickedEventArgs(TypedDict):
148
148
  class GridCell(TypedDict):
149
149
  """The grid cell."""
150
150
 
151
- span: Optional[List[int]]
151
+ span: list[int] | None
152
152
 
153
153
 
154
154
  class GridColumn(TypedDict):
155
155
  """The grid column."""
156
156
 
157
157
  title: str
158
- group: Optional[str]
158
+ group: str | None
159
159
 
160
160
 
161
161
  class DataEditor(NoSSRComponent):
@@ -164,7 +164,7 @@ class DataEditor(NoSSRComponent):
164
164
  tag = "DataEditor"
165
165
  is_default = True
166
166
  library: str | None = "@glideapps/glide-data-grid@^6.0.3"
167
- lib_dependencies: List[str] = [
167
+ lib_dependencies: list[str] = [
168
168
  "lodash@^4.17.21",
169
169
  "react-responsive-carousel@^3.2.7",
170
170
  ]
@@ -173,10 +173,10 @@ class DataEditor(NoSSRComponent):
173
173
  rows: Var[int]
174
174
 
175
175
  # Headers of the columns for the data grid.
176
- columns: Var[List[Dict[str, Any]]]
176
+ columns: Var[Sequence[dict[str, Any]]]
177
177
 
178
178
  # The data.
179
- data: Var[List[List[Any]]]
179
+ data: Var[Sequence[Sequence[Any]]]
180
180
 
181
181
  # The name of the callback used to find the data to display.
182
182
  get_cell_content: Var[str]
@@ -257,23 +257,23 @@ class DataEditor(NoSSRComponent):
257
257
  scroll_offset_y: Var[int]
258
258
 
259
259
  # global theme
260
- theme: Var[Union[DataEditorTheme, Dict]]
260
+ theme: Var[DataEditorTheme | Dict]
261
261
 
262
262
  # Fired when a cell is activated.
263
- on_cell_activated: EventHandler[passthrough_event_spec(Tuple[int, int])]
263
+ on_cell_activated: EventHandler[passthrough_event_spec(tuple[int, int])]
264
264
 
265
265
  # Fired when a cell is clicked.
266
- on_cell_clicked: EventHandler[passthrough_event_spec(Tuple[int, int])]
266
+ on_cell_clicked: EventHandler[passthrough_event_spec(tuple[int, int])]
267
267
 
268
268
  # Fired when a cell is right-clicked.
269
- on_cell_context_menu: EventHandler[passthrough_event_spec(Tuple[int, int])]
269
+ on_cell_context_menu: EventHandler[passthrough_event_spec(tuple[int, int])]
270
270
 
271
271
  # Fired when a cell is edited.
272
- on_cell_edited: EventHandler[passthrough_event_spec(Tuple[int, int], GridCell)]
272
+ on_cell_edited: EventHandler[passthrough_event_spec(tuple[int, int], GridCell)]
273
273
 
274
274
  # Fired when a group header is clicked.
275
275
  on_group_header_clicked: EventHandler[
276
- passthrough_event_spec(Tuple[int, int], GridCell)
276
+ passthrough_event_spec(tuple[int, int], GridCell)
277
277
  ]
278
278
 
279
279
  # Fired when a group header is right-clicked.
@@ -285,23 +285,23 @@ class DataEditor(NoSSRComponent):
285
285
  on_group_header_renamed: EventHandler[passthrough_event_spec(str, str)]
286
286
 
287
287
  # Fired when a header is clicked.
288
- on_header_clicked: EventHandler[passthrough_event_spec(Tuple[int, int])]
288
+ on_header_clicked: EventHandler[passthrough_event_spec(tuple[int, int])]
289
289
 
290
290
  # Fired when a header is right-clicked.
291
- on_header_context_menu: EventHandler[passthrough_event_spec(Tuple[int, int])]
291
+ on_header_context_menu: EventHandler[passthrough_event_spec(tuple[int, int])]
292
292
 
293
293
  # Fired when a header menu item is clicked.
294
294
  on_header_menu_click: EventHandler[passthrough_event_spec(int, Rectangle)]
295
295
 
296
296
  # Fired when an item is hovered.
297
- on_item_hovered: EventHandler[passthrough_event_spec(Tuple[int, int])]
297
+ on_item_hovered: EventHandler[passthrough_event_spec(tuple[int, int])]
298
298
 
299
299
  # Fired when a selection is deleted.
300
300
  on_delete: EventHandler[passthrough_event_spec(GridSelection)]
301
301
 
302
302
  # Fired when editing is finished.
303
303
  on_finished_editing: EventHandler[
304
- passthrough_event_spec(Union[GridCell, None], tuple[int, int])
304
+ passthrough_event_spec(GridCell | None, tuple[int, int])
305
305
  ]
306
306
 
307
307
  # Fired when a row is appended.
@@ -4,7 +4,7 @@
4
4
  # This file was generated by `reflex/utils/pyi_generator.py`!
5
5
  # ------------------------------------------------------
6
6
  from enum import Enum
7
- from typing import Any, Dict, List, Literal, Optional, TypedDict, Union, overload
7
+ from typing import Any, Dict, Literal, Optional, Sequence, TypedDict, Union, overload
8
8
 
9
9
  from reflex.base import Base
10
10
  from reflex.components.component import NoSSRComponent
@@ -43,38 +43,38 @@ class GridColumnIcons(Enum):
43
43
  VideoUri = "video_uri"
44
44
 
45
45
  class DataEditorTheme(Base):
46
- accent_color: Optional[str]
47
- accent_fg: Optional[str]
48
- accent_light: Optional[str]
49
- base_font_style: Optional[str]
50
- bg_bubble: Optional[str]
51
- bg_bubble_selected: Optional[str]
52
- bg_cell: Optional[str]
53
- bg_cell_medium: Optional[str]
54
- bg_header: Optional[str]
55
- bg_header_has_focus: Optional[str]
56
- bg_header_hovered: Optional[str]
57
- bg_icon_header: Optional[str]
58
- bg_search_result: Optional[str]
59
- border_color: Optional[str]
60
- cell_horizontal_padding: Optional[int]
61
- cell_vertical_padding: Optional[int]
62
- drilldown_border: Optional[str]
63
- editor_font_size: Optional[str]
64
- fg_icon_header: Optional[str]
65
- font_family: Optional[str]
66
- header_bottom_border_color: Optional[str]
67
- header_font_style: Optional[str]
68
- horizontal_border_color: Optional[str]
69
- line_height: Optional[int]
70
- link_color: Optional[str]
71
- text_bubble: Optional[str]
72
- text_dark: Optional[str]
73
- text_group_header: Optional[str]
74
- text_header: Optional[str]
75
- text_header_selected: Optional[str]
76
- text_light: Optional[str]
77
- text_medium: Optional[str]
46
+ accent_color: str | None
47
+ accent_fg: str | None
48
+ accent_light: str | None
49
+ base_font_style: str | None
50
+ bg_bubble: str | None
51
+ bg_bubble_selected: str | None
52
+ bg_cell: str | None
53
+ bg_cell_medium: str | None
54
+ bg_header: str | None
55
+ bg_header_has_focus: str | None
56
+ bg_header_hovered: str | None
57
+ bg_icon_header: str | None
58
+ bg_search_result: str | None
59
+ border_color: str | None
60
+ cell_horizontal_padding: int | None
61
+ cell_vertical_padding: int | None
62
+ drilldown_border: str | None
63
+ editor_font_size: str | None
64
+ fg_icon_header: str | None
65
+ font_family: str | None
66
+ header_bottom_border_color: str | None
67
+ header_font_style: str | None
68
+ horizontal_border_color: str | None
69
+ line_height: int | None
70
+ link_color: str | None
71
+ text_bubble: str | None
72
+ text_dark: str | None
73
+ text_group_header: str | None
74
+ text_header: str | None
75
+ text_header_selected: str | None
76
+ text_light: str | None
77
+ text_medium: str | None
78
78
 
79
79
  class Bounds(TypedDict):
80
80
  x: int
@@ -97,7 +97,7 @@ class GridSelectionCurrent(TypedDict):
97
97
  rangeStack: list[Rectangle]
98
98
 
99
99
  class GridSelection(TypedDict):
100
- current: Optional[GridSelectionCurrent]
100
+ current: GridSelectionCurrent | None
101
101
  columns: CompatSelection
102
102
  rows: CompatSelection
103
103
 
@@ -118,11 +118,11 @@ class GroupHeaderClickedEventArgs(TypedDict):
118
118
  scrollEdge: tuple[int, int]
119
119
 
120
120
  class GridCell(TypedDict):
121
- span: Optional[List[int]]
121
+ span: list[int] | None
122
122
 
123
123
  class GridColumn(TypedDict):
124
124
  title: str
125
- group: Optional[str]
125
+ group: str | None
126
126
 
127
127
  class DataEditor(NoSSRComponent):
128
128
  def add_imports(self) -> ImportDict: ...
@@ -132,116 +132,88 @@ class DataEditor(NoSSRComponent):
132
132
  def create( # type: ignore
133
133
  cls,
134
134
  *children,
135
- rows: Optional[Union[Var[int], int]] = None,
136
- columns: Optional[
137
- Union[List[Dict[str, Any]], Var[List[Dict[str, Any]]]]
138
- ] = None,
139
- data: Optional[Union[List[List[Any]], Var[List[List[Any]]]]] = None,
140
- get_cell_content: Optional[Union[Var[str], str]] = None,
141
- get_cells_for_selection: Optional[Union[Var[bool], bool]] = None,
142
- on_paste: Optional[Union[Var[bool], bool]] = None,
143
- draw_focus_ring: Optional[Union[Var[bool], bool]] = None,
144
- fixed_shadow_x: Optional[Union[Var[bool], bool]] = None,
145
- fixed_shadow_y: Optional[Union[Var[bool], bool]] = None,
146
- freeze_columns: Optional[Union[Var[int], int]] = None,
147
- group_header_height: Optional[Union[Var[int], int]] = None,
148
- header_height: Optional[Union[Var[int], int]] = None,
149
- max_column_auto_width: Optional[Union[Var[int], int]] = None,
150
- max_column_width: Optional[Union[Var[int], int]] = None,
151
- min_column_width: Optional[Union[Var[int], int]] = None,
152
- row_height: Optional[Union[Var[int], int]] = None,
153
- row_markers: Optional[
154
- Union[
155
- Literal["both", "checkbox", "clickable-number", "none", "number"],
156
- Var[Literal["both", "checkbox", "clickable-number", "none", "number"]],
157
- ]
158
- ] = None,
159
- row_marker_start_index: Optional[Union[Var[int], int]] = None,
160
- row_marker_width: Optional[Union[Var[int], int]] = None,
161
- smooth_scroll_x: Optional[Union[Var[bool], bool]] = None,
162
- smooth_scroll_y: Optional[Union[Var[bool], bool]] = None,
163
- vertical_border: Optional[Union[Var[bool], bool]] = None,
164
- column_select: Optional[
165
- Union[
166
- Literal["multi", "none", "single"],
167
- Var[Literal["multi", "none", "single"]],
168
- ]
169
- ] = None,
170
- prevent_diagonal_scrolling: Optional[Union[Var[bool], bool]] = None,
171
- overscroll_x: Optional[Union[Var[int], int]] = None,
172
- overscroll_y: Optional[Union[Var[int], int]] = None,
173
- scroll_offset_x: Optional[Union[Var[int], int]] = None,
174
- scroll_offset_y: Optional[Union[Var[int], int]] = None,
175
- theme: Optional[
176
- Union[DataEditorTheme, Dict, Var[Union[DataEditorTheme, Dict]]]
177
- ] = None,
178
- style: Optional[Style] = None,
179
- key: Optional[Any] = None,
180
- id: Optional[Any] = None,
181
- class_name: Optional[Any] = None,
182
- autofocus: Optional[bool] = None,
183
- custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
135
+ rows: Var[int] | int | None = None,
136
+ columns: Sequence[dict[str, Any]] | Var[Sequence[dict[str, Any]]] | None = None,
137
+ data: Sequence[Sequence[Any]] | Var[Sequence[Sequence[Any]]] | None = None,
138
+ get_cell_content: Var[str] | str | None = None,
139
+ get_cells_for_selection: Var[bool] | bool | None = None,
140
+ on_paste: Var[bool] | bool | None = None,
141
+ draw_focus_ring: Var[bool] | bool | None = None,
142
+ fixed_shadow_x: Var[bool] | bool | None = None,
143
+ fixed_shadow_y: Var[bool] | bool | None = None,
144
+ freeze_columns: Var[int] | int | None = None,
145
+ group_header_height: Var[int] | int | None = None,
146
+ header_height: Var[int] | int | None = None,
147
+ max_column_auto_width: Var[int] | int | None = None,
148
+ max_column_width: Var[int] | int | None = None,
149
+ min_column_width: Var[int] | int | None = None,
150
+ row_height: Var[int] | int | None = None,
151
+ row_markers: Literal["both", "checkbox", "clickable-number", "none", "number"]
152
+ | Var[Literal["both", "checkbox", "clickable-number", "none", "number"]]
153
+ | None = None,
154
+ row_marker_start_index: Var[int] | int | None = None,
155
+ row_marker_width: Var[int] | int | None = None,
156
+ smooth_scroll_x: Var[bool] | bool | None = None,
157
+ smooth_scroll_y: Var[bool] | bool | None = None,
158
+ vertical_border: Var[bool] | bool | None = None,
159
+ column_select: Literal["multi", "none", "single"]
160
+ | Var[Literal["multi", "none", "single"]]
161
+ | None = None,
162
+ prevent_diagonal_scrolling: Var[bool] | bool | None = None,
163
+ overscroll_x: Var[int] | int | None = None,
164
+ overscroll_y: Var[int] | int | None = None,
165
+ scroll_offset_x: Var[int] | int | None = None,
166
+ scroll_offset_y: Var[int] | int | None = None,
167
+ theme: DataEditorTheme | Dict | Var[DataEditorTheme | Dict] | None = None,
168
+ style: Style | None = None,
169
+ key: Any | None = None,
170
+ id: Any | None = None,
171
+ class_name: Any | None = None,
172
+ autofocus: bool | None = None,
173
+ custom_attrs: dict[str, Var | Any] | None = None,
184
174
  on_blur: Optional[EventType[()]] = None,
185
- on_cell_activated: Optional[
186
- Union[EventType[()], EventType[tuple[int, int]]]
187
- ] = None,
188
- on_cell_clicked: Optional[
189
- Union[EventType[()], EventType[tuple[int, int]]]
190
- ] = None,
175
+ on_cell_activated: Optional[EventType[()] | EventType[tuple[int, int]]] = None,
176
+ on_cell_clicked: Optional[EventType[()] | EventType[tuple[int, int]]] = None,
191
177
  on_cell_context_menu: Optional[
192
- Union[EventType[()], EventType[tuple[int, int]]]
178
+ EventType[()] | EventType[tuple[int, int]]
193
179
  ] = None,
194
180
  on_cell_edited: Optional[
195
- Union[
196
- EventType[()],
197
- EventType[tuple[int, int]],
198
- EventType[tuple[int, int], GridCell],
199
- ]
181
+ EventType[()]
182
+ | EventType[tuple[int, int]]
183
+ | EventType[tuple[int, int], GridCell]
200
184
  ] = None,
201
185
  on_click: Optional[EventType[()]] = None,
202
186
  on_column_resize: Optional[
203
- Union[EventType[()], EventType[GridColumn], EventType[GridColumn, int]]
187
+ EventType[()] | EventType[GridColumn] | EventType[GridColumn, int]
204
188
  ] = None,
205
189
  on_context_menu: Optional[EventType[()]] = None,
206
- on_delete: Optional[Union[EventType[()], EventType[GridSelection]]] = None,
190
+ on_delete: Optional[EventType[()] | EventType[GridSelection]] = None,
207
191
  on_double_click: Optional[EventType[()]] = None,
208
192
  on_finished_editing: Optional[
209
- Union[
210
- EventType[()],
211
- EventType[Union[GridCell, None]],
212
- EventType[Union[GridCell, None], tuple[int, int]],
213
- ]
193
+ EventType[()]
194
+ | EventType[Union[GridCell, None]]
195
+ | EventType[Union[GridCell, None], tuple[int, int]]
214
196
  ] = None,
215
197
  on_focus: Optional[EventType[()]] = None,
216
198
  on_group_header_clicked: Optional[
217
- Union[
218
- EventType[()],
219
- EventType[tuple[int, int]],
220
- EventType[tuple[int, int], GridCell],
221
- ]
199
+ EventType[()]
200
+ | EventType[tuple[int, int]]
201
+ | EventType[tuple[int, int], GridCell]
222
202
  ] = None,
223
203
  on_group_header_context_menu: Optional[
224
- Union[
225
- EventType[()],
226
- EventType[int],
227
- EventType[int, GroupHeaderClickedEventArgs],
228
- ]
204
+ EventType[()] | EventType[int] | EventType[int, GroupHeaderClickedEventArgs]
229
205
  ] = None,
230
206
  on_group_header_renamed: Optional[
231
- Union[EventType[()], EventType[str], EventType[str, str]]
232
- ] = None,
233
- on_header_clicked: Optional[
234
- Union[EventType[()], EventType[tuple[int, int]]]
207
+ EventType[()] | EventType[str] | EventType[str, str]
235
208
  ] = None,
209
+ on_header_clicked: Optional[EventType[()] | EventType[tuple[int, int]]] = None,
236
210
  on_header_context_menu: Optional[
237
- Union[EventType[()], EventType[tuple[int, int]]]
211
+ EventType[()] | EventType[tuple[int, int]]
238
212
  ] = None,
239
213
  on_header_menu_click: Optional[
240
- Union[EventType[()], EventType[int], EventType[int, Rectangle]]
241
- ] = None,
242
- on_item_hovered: Optional[
243
- Union[EventType[()], EventType[tuple[int, int]]]
214
+ EventType[()] | EventType[int] | EventType[int, Rectangle]
244
215
  ] = None,
216
+ on_item_hovered: Optional[EventType[()] | EventType[tuple[int, int]]] = None,
245
217
  on_mount: Optional[EventType[()]] = None,
246
218
  on_mouse_down: Optional[EventType[()]] = None,
247
219
  on_mouse_enter: Optional[EventType[()]] = None,
@@ -1,12 +1,10 @@
1
1
  """A Reflex logo component."""
2
2
 
3
- from typing import Union
4
-
5
3
  import reflex as rx
6
4
 
7
5
 
8
6
  def svg_logo(
9
- color: Union[str, rx.Var[str]] = rx.color_mode_cond("#110F1F", "white"),
7
+ color: str | rx.Var[str] = rx.color_mode_cond("#110F1F", "white"),
10
8
  **props,
11
9
  ):
12
10
  """A Reflex logo SVG.
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  import re
6
6
  from collections import defaultdict
7
- from typing import Any, Literal, Optional, Union
7
+ from typing import Any, Literal
8
8
 
9
9
  from reflex.base import Base
10
10
  from reflex.components.component import Component, ComponentNamespace
@@ -403,8 +403,8 @@ class Position(NoExtrasAllowedProps):
403
403
  class ShikiDecorations(NoExtrasAllowedProps):
404
404
  """Decorations for the code block."""
405
405
 
406
- start: Union[int, Position]
407
- end: Union[int, Position]
406
+ start: int | Position
407
+ end: int | Position
408
408
  tag_name: str = "span"
409
409
  properties: dict[str, Any] = {}
410
410
  always_wrap: bool = False
@@ -415,7 +415,7 @@ class ShikiBaseTransformers(Base):
415
415
 
416
416
  library: str
417
417
  fns: list[FunctionStringVar]
418
- style: Optional[Style]
418
+ style: Style | None
419
419
 
420
420
 
421
421
  class ShikiJsTransformer(ShikiBaseTransformers):
@@ -425,7 +425,7 @@ class ShikiJsTransformer(ShikiBaseTransformers):
425
425
  fns: list[FunctionStringVar] = [
426
426
  FunctionStringVar.create(fn) for fn in SHIKIJS_TRANSFORMER_FNS
427
427
  ]
428
- style: Optional[Style] = Style(
428
+ style: Style | None = Style(
429
429
  {
430
430
  "code": {"line-height": "1.7", "font-size": "0.875em", "display": "grid"},
431
431
  # Diffs
@@ -547,15 +547,13 @@ class ShikiCodeBlock(Component, MarkdownComponentMap):
547
547
  theme: Var[LiteralCodeTheme] = Var.create("one-light")
548
548
 
549
549
  # The set of themes to use for different modes.
550
- themes: Var[Union[list[dict[str, Any]], dict[str, str]]]
550
+ themes: Var[list[dict[str, Any]] | dict[str, str]]
551
551
 
552
552
  # The code to display.
553
553
  code: Var[str]
554
554
 
555
555
  # The transformers to use for the syntax highlighter.
556
- transformers: Var[list[Union[ShikiBaseTransformers, dict[str, Any]]]] = Var.create(
557
- []
558
- )
556
+ transformers: Var[list[ShikiBaseTransformers | dict[str, Any]]] = Var.create([])
559
557
 
560
558
  # The decorations to use for the syntax highlighter.
561
559
  decorations: Var[list[ShikiDecorations]] = Var.create([])
@@ -717,7 +715,7 @@ class ShikiHighLevelCodeBlock(ShikiCodeBlock):
717
715
  can_copy: bool = False
718
716
 
719
717
  # copy_button: A custom copy button to override the default one.
720
- copy_button: Optional[Union[Component, bool]] = None
718
+ copy_button: Component | bool | None = None
721
719
 
722
720
  @classmethod
723
721
  def create(