reflex 0.6.4a2__py3-none-any.whl → 0.6.5__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 (228) hide show
  1. reflex/.templates/jinja/web/pages/custom_component.js.jinja2 +0 -14
  2. reflex/.templates/jinja/web/pages/utils.js.jinja2 +4 -8
  3. reflex/.templates/web/components/shiki/code.js +16 -11
  4. reflex/.templates/web/utils/state.js +29 -21
  5. reflex/__init__.py +4 -0
  6. reflex/__init__.pyi +4 -0
  7. reflex/app.py +148 -154
  8. reflex/app_mixins/lifespan.py +5 -1
  9. reflex/app_mixins/middleware.py +3 -1
  10. reflex/app_mixins/mixin.py +3 -2
  11. reflex/base.py +2 -4
  12. reflex/compiler/compiler.py +111 -37
  13. reflex/components/base/app_wrap.pyi +17 -17
  14. reflex/components/base/bare.py +72 -3
  15. reflex/components/base/body.pyi +17 -17
  16. reflex/components/base/document.pyi +81 -81
  17. reflex/components/base/error_boundary.pyi +25 -18
  18. reflex/components/base/fragment.pyi +17 -17
  19. reflex/components/base/head.pyi +33 -33
  20. reflex/components/base/link.pyi +33 -33
  21. reflex/components/base/meta.pyi +65 -65
  22. reflex/components/base/script.py +4 -4
  23. reflex/components/base/script.pyi +23 -20
  24. reflex/components/component.py +250 -31
  25. reflex/components/core/banner.py +1 -1
  26. reflex/components/core/banner.pyi +81 -81
  27. reflex/components/core/client_side_routing.pyi +33 -33
  28. reflex/components/core/clipboard.py +2 -2
  29. reflex/components/core/clipboard.pyi +24 -18
  30. reflex/components/core/debounce.py +2 -2
  31. reflex/components/core/debounce.pyi +18 -18
  32. reflex/components/core/html.pyi +17 -17
  33. reflex/components/core/upload.py +90 -28
  34. reflex/components/core/upload.pyi +128 -72
  35. reflex/components/datadisplay/code.py +55 -40
  36. reflex/components/datadisplay/code.pyi +46 -44
  37. reflex/components/datadisplay/dataeditor.py +21 -20
  38. reflex/components/datadisplay/dataeditor.pyi +103 -35
  39. reflex/components/datadisplay/shiki_code_block.py +60 -27
  40. reflex/components/datadisplay/shiki_code_block.pyi +86 -65
  41. reflex/components/dynamic.py +9 -5
  42. reflex/components/el/element.pyi +17 -17
  43. reflex/components/el/elements/base.pyi +17 -17
  44. reflex/components/el/elements/forms.py +12 -3
  45. reflex/components/el/elements/forms.pyi +293 -233
  46. reflex/components/el/elements/inline.pyi +449 -449
  47. reflex/components/el/elements/media.pyi +401 -401
  48. reflex/components/el/elements/metadata.pyi +97 -97
  49. reflex/components/el/elements/other.pyi +113 -113
  50. reflex/components/el/elements/scripts.pyi +49 -49
  51. reflex/components/el/elements/sectioning.pyi +241 -241
  52. reflex/components/el/elements/tables.pyi +161 -161
  53. reflex/components/el/elements/typography.pyi +241 -241
  54. reflex/components/gridjs/datatable.pyi +33 -33
  55. reflex/components/lucide/icon.py +1 -1
  56. reflex/components/lucide/icon.pyi +33 -33
  57. reflex/components/markdown/markdown.py +180 -49
  58. reflex/components/markdown/markdown.pyi +36 -19
  59. reflex/components/moment/moment.py +17 -21
  60. reflex/components/moment/moment.pyi +26 -21
  61. reflex/components/next/base.pyi +17 -17
  62. reflex/components/next/image.py +3 -3
  63. reflex/components/next/image.pyi +21 -19
  64. reflex/components/next/link.pyi +17 -17
  65. reflex/components/next/video.pyi +17 -17
  66. reflex/components/plotly/plotly.py +79 -78
  67. reflex/components/plotly/plotly.pyi +91 -41
  68. reflex/components/props.py +34 -0
  69. reflex/components/radix/primitives/accordion.py +15 -8
  70. reflex/components/radix/primitives/accordion.pyi +121 -118
  71. reflex/components/radix/primitives/base.pyi +33 -33
  72. reflex/components/radix/primitives/drawer.py +41 -20
  73. reflex/components/radix/primitives/drawer.pyi +279 -190
  74. reflex/components/radix/primitives/form.py +2 -2
  75. reflex/components/radix/primitives/form.pyi +200 -167
  76. reflex/components/radix/primitives/progress.pyi +81 -81
  77. reflex/components/radix/primitives/slider.pyi +89 -83
  78. reflex/components/radix/themes/base.py +30 -1
  79. reflex/components/radix/themes/base.pyi +286 -113
  80. reflex/components/radix/themes/color_mode.py +17 -9
  81. reflex/components/radix/themes/color_mode.pyi +68 -56
  82. reflex/components/radix/themes/components/alert_dialog.py +8 -5
  83. reflex/components/radix/themes/components/alert_dialog.pyi +125 -117
  84. reflex/components/radix/themes/components/aspect_ratio.pyi +17 -17
  85. reflex/components/radix/themes/components/avatar.py +1 -5
  86. reflex/components/radix/themes/components/avatar.pyi +17 -17
  87. reflex/components/radix/themes/components/badge.py +1 -5
  88. reflex/components/radix/themes/components/badge.pyi +17 -17
  89. reflex/components/radix/themes/components/button.pyi +18 -21
  90. reflex/components/radix/themes/components/callout.py +1 -4
  91. reflex/components/radix/themes/components/callout.pyi +81 -81
  92. reflex/components/radix/themes/components/card.py +1 -3
  93. reflex/components/radix/themes/components/card.pyi +17 -17
  94. reflex/components/radix/themes/components/checkbox.py +4 -8
  95. reflex/components/radix/themes/components/checkbox.pyi +61 -52
  96. reflex/components/radix/themes/components/checkbox_cards.pyi +33 -33
  97. reflex/components/radix/themes/components/checkbox_group.pyi +33 -33
  98. reflex/components/radix/themes/components/context_menu.py +121 -28
  99. reflex/components/radix/themes/components/context_menu.pyi +250 -147
  100. reflex/components/radix/themes/components/data_list.pyi +65 -65
  101. reflex/components/radix/themes/components/dialog.py +11 -11
  102. reflex/components/radix/themes/components/dialog.pyi +135 -120
  103. reflex/components/radix/themes/components/dropdown_menu.py +14 -25
  104. reflex/components/radix/themes/components/dropdown_menu.pyi +157 -145
  105. reflex/components/radix/themes/components/hover_card.py +19 -7
  106. reflex/components/radix/themes/components/hover_card.pyi +102 -67
  107. reflex/components/radix/themes/components/icon_button.pyi +18 -21
  108. reflex/components/radix/themes/components/inset.py +1 -3
  109. reflex/components/radix/themes/components/inset.pyi +17 -17
  110. reflex/components/radix/themes/components/popover.py +22 -13
  111. reflex/components/radix/themes/components/popover.pyi +98 -72
  112. reflex/components/radix/themes/components/progress.pyi +17 -17
  113. reflex/components/radix/themes/components/radio.pyi +17 -17
  114. reflex/components/radix/themes/components/radio_cards.py +2 -2
  115. reflex/components/radix/themes/components/radio_cards.pyi +37 -34
  116. reflex/components/radix/themes/components/radio_group.py +3 -7
  117. reflex/components/radix/themes/components/radio_group.pyi +69 -66
  118. reflex/components/radix/themes/components/scroll_area.py +1 -3
  119. reflex/components/radix/themes/components/scroll_area.pyi +17 -17
  120. reflex/components/radix/themes/components/segmented_control.pyi +37 -34
  121. reflex/components/radix/themes/components/select.py +7 -11
  122. reflex/components/radix/themes/components/select.pyi +175 -154
  123. reflex/components/radix/themes/components/separator.py +1 -4
  124. reflex/components/radix/themes/components/separator.pyi +17 -17
  125. reflex/components/radix/themes/components/skeleton.pyi +17 -17
  126. reflex/components/radix/themes/components/slider.py +12 -21
  127. reflex/components/radix/themes/components/slider.pyi +47 -25
  128. reflex/components/radix/themes/components/spinner.py +1 -4
  129. reflex/components/radix/themes/components/spinner.pyi +17 -17
  130. reflex/components/radix/themes/components/switch.py +3 -6
  131. reflex/components/radix/themes/components/switch.pyi +21 -18
  132. reflex/components/radix/themes/components/table.py +21 -5
  133. reflex/components/radix/themes/components/table.pyi +392 -116
  134. reflex/components/radix/themes/components/tabs.py +3 -6
  135. reflex/components/radix/themes/components/tabs.pyi +89 -83
  136. reflex/components/radix/themes/components/text_area.py +1 -5
  137. reflex/components/radix/themes/components/text_area.pyi +43 -20
  138. reflex/components/radix/themes/components/text_field.py +1 -5
  139. reflex/components/radix/themes/components/text_field.pyi +101 -55
  140. reflex/components/radix/themes/components/tooltip.py +5 -7
  141. reflex/components/radix/themes/components/tooltip.pyi +25 -22
  142. reflex/components/radix/themes/layout/base.py +2 -27
  143. reflex/components/radix/themes/layout/base.pyi +82 -82
  144. reflex/components/radix/themes/layout/box.pyi +17 -17
  145. reflex/components/radix/themes/layout/center.pyi +17 -17
  146. reflex/components/radix/themes/layout/container.pyi +17 -17
  147. reflex/components/radix/themes/layout/flex.py +1 -6
  148. reflex/components/radix/themes/layout/flex.pyi +17 -17
  149. reflex/components/radix/themes/layout/grid.py +1 -6
  150. reflex/components/radix/themes/layout/grid.pyi +17 -17
  151. reflex/components/radix/themes/layout/list.py +20 -15
  152. reflex/components/radix/themes/layout/list.pyi +175 -92
  153. reflex/components/radix/themes/layout/section.pyi +17 -17
  154. reflex/components/radix/themes/layout/spacer.pyi +17 -17
  155. reflex/components/radix/themes/layout/stack.py +6 -6
  156. reflex/components/radix/themes/layout/stack.pyi +91 -62
  157. reflex/components/radix/themes/typography/blockquote.py +2 -8
  158. reflex/components/radix/themes/typography/blockquote.pyi +17 -17
  159. reflex/components/radix/themes/typography/code.py +4 -10
  160. reflex/components/radix/themes/typography/code.pyi +19 -18
  161. reflex/components/radix/themes/typography/heading.py +4 -11
  162. reflex/components/radix/themes/typography/heading.pyi +19 -18
  163. reflex/components/radix/themes/typography/link.py +4 -10
  164. reflex/components/radix/themes/typography/link.pyi +19 -18
  165. reflex/components/radix/themes/typography/text.py +4 -11
  166. reflex/components/radix/themes/typography/text.pyi +115 -114
  167. reflex/components/react_player/audio.pyi +58 -33
  168. reflex/components/react_player/react_player.py +17 -17
  169. reflex/components/react_player/react_player.pyi +55 -33
  170. reflex/components/react_player/video.pyi +58 -33
  171. reflex/components/recharts/cartesian.py +45 -45
  172. reflex/components/recharts/cartesian.pyi +389 -304
  173. reflex/components/recharts/charts.py +22 -22
  174. reflex/components/recharts/charts.pyi +226 -179
  175. reflex/components/recharts/general.py +26 -27
  176. reflex/components/recharts/general.pyi +106 -99
  177. reflex/components/recharts/polar.py +33 -33
  178. reflex/components/recharts/polar.pyi +70 -64
  179. reflex/components/recharts/recharts.pyi +33 -33
  180. reflex/components/sonner/toast.py +9 -36
  181. reflex/components/sonner/toast.pyi +20 -24
  182. reflex/components/suneditor/editor.py +8 -8
  183. reflex/components/suneditor/editor.pyi +50 -25
  184. reflex/components/tags/iter_tag.py +1 -10
  185. reflex/components/tags/tag.py +1 -4
  186. reflex/config.py +252 -41
  187. reflex/constants/__init__.py +4 -16
  188. reflex/constants/base.py +7 -14
  189. reflex/constants/colors.py +0 -1
  190. reflex/constants/installer.py +12 -7
  191. reflex/constants/state.py +4 -0
  192. reflex/custom_components/custom_components.py +6 -6
  193. reflex/event.py +486 -241
  194. reflex/experimental/client_state.py +9 -9
  195. reflex/experimental/layout.py +2 -2
  196. reflex/experimental/layout.pyi +95 -87
  197. reflex/experimental/misc.py +1 -1
  198. reflex/istate/__init__.py +1 -0
  199. reflex/istate/proxy.py +33 -0
  200. reflex/istate/wrappers.py +27 -0
  201. reflex/model.py +7 -7
  202. reflex/page.py +2 -1
  203. reflex/reflex.py +142 -8
  204. reflex/state.py +133 -46
  205. reflex/testing.py +9 -7
  206. reflex/utils/console.py +0 -1
  207. reflex/utils/exceptions.py +31 -3
  208. reflex/utils/exec.py +33 -14
  209. reflex/utils/format.py +15 -12
  210. reflex/utils/net.py +1 -1
  211. reflex/utils/path_ops.py +2 -2
  212. reflex/utils/prerequisites.py +82 -46
  213. reflex/utils/pyi_generator.py +63 -20
  214. reflex/utils/registry.py +1 -1
  215. reflex/utils/serializers.py +75 -36
  216. reflex/utils/telemetry.py +3 -2
  217. reflex/utils/types.py +125 -10
  218. reflex/vars/base.py +131 -119
  219. reflex/vars/function.py +59 -12
  220. reflex/vars/number.py +3 -1
  221. reflex/vars/object.py +30 -24
  222. reflex/vars/sequence.py +7 -7
  223. {reflex-0.6.4a2.dist-info → reflex-0.6.5.dist-info}/METADATA +3 -3
  224. reflex-0.6.5.dist-info/RECORD +394 -0
  225. reflex-0.6.4a2.dist-info/RECORD +0 -391
  226. {reflex-0.6.4a2.dist-info → reflex-0.6.5.dist-info}/LICENSE +0 -0
  227. {reflex-0.6.4a2.dist-info → reflex-0.6.5.dist-info}/WHEEL +0 -0
  228. {reflex-0.6.4a2.dist-info → reflex-0.6.5.dist-info}/entry_points.txt +0 -0
@@ -6,7 +6,7 @@
6
6
  from typing import Any, Dict, Optional, Union, overload
7
7
 
8
8
  from reflex.components.component import Component
9
- from reflex.event import EventType
9
+ from reflex.event import BASE_STATE, EventType
10
10
  from reflex.style import Style
11
11
  from reflex.vars.base import Var
12
12
 
@@ -22,22 +22,22 @@ class RadixPrimitiveComponent(Component):
22
22
  id: Optional[Any] = None,
23
23
  class_name: Optional[Any] = None,
24
24
  autofocus: Optional[bool] = None,
25
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
26
- on_blur: Optional[EventType[[]]] = None,
27
- on_click: Optional[EventType[[]]] = None,
28
- on_context_menu: Optional[EventType[[]]] = None,
29
- on_double_click: Optional[EventType[[]]] = None,
30
- on_focus: Optional[EventType[[]]] = None,
31
- on_mount: Optional[EventType[[]]] = None,
32
- on_mouse_down: Optional[EventType[[]]] = None,
33
- on_mouse_enter: Optional[EventType[[]]] = None,
34
- on_mouse_leave: Optional[EventType[[]]] = None,
35
- on_mouse_move: Optional[EventType[[]]] = None,
36
- on_mouse_out: Optional[EventType[[]]] = None,
37
- on_mouse_over: Optional[EventType[[]]] = None,
38
- on_mouse_up: Optional[EventType[[]]] = None,
39
- on_scroll: Optional[EventType[[]]] = None,
40
- on_unmount: Optional[EventType[[]]] = None,
25
+ custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
26
+ on_blur: Optional[EventType[[], BASE_STATE]] = None,
27
+ on_click: Optional[EventType[[], BASE_STATE]] = None,
28
+ on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
29
+ on_double_click: Optional[EventType[[], BASE_STATE]] = None,
30
+ on_focus: Optional[EventType[[], BASE_STATE]] = None,
31
+ on_mount: Optional[EventType[[], BASE_STATE]] = None,
32
+ on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
33
+ on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
34
+ on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
35
+ on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
36
+ on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
37
+ on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
38
+ on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
39
+ on_scroll: Optional[EventType[[], BASE_STATE]] = None,
40
+ on_unmount: Optional[EventType[[], BASE_STATE]] = None,
41
41
  **props,
42
42
  ) -> "RadixPrimitiveComponent":
43
43
  """Create the component.
@@ -70,22 +70,22 @@ class RadixPrimitiveComponentWithClassName(RadixPrimitiveComponent):
70
70
  id: Optional[Any] = None,
71
71
  class_name: Optional[Any] = None,
72
72
  autofocus: Optional[bool] = None,
73
- custom_attrs: Optional[Dict[str, Union[Var, str]]] = None,
74
- on_blur: Optional[EventType[[]]] = None,
75
- on_click: Optional[EventType[[]]] = None,
76
- on_context_menu: Optional[EventType[[]]] = None,
77
- on_double_click: Optional[EventType[[]]] = None,
78
- on_focus: Optional[EventType[[]]] = None,
79
- on_mount: Optional[EventType[[]]] = None,
80
- on_mouse_down: Optional[EventType[[]]] = None,
81
- on_mouse_enter: Optional[EventType[[]]] = None,
82
- on_mouse_leave: Optional[EventType[[]]] = None,
83
- on_mouse_move: Optional[EventType[[]]] = None,
84
- on_mouse_out: Optional[EventType[[]]] = None,
85
- on_mouse_over: Optional[EventType[[]]] = None,
86
- on_mouse_up: Optional[EventType[[]]] = None,
87
- on_scroll: Optional[EventType[[]]] = None,
88
- on_unmount: Optional[EventType[[]]] = None,
73
+ custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
74
+ on_blur: Optional[EventType[[], BASE_STATE]] = None,
75
+ on_click: Optional[EventType[[], BASE_STATE]] = None,
76
+ on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
77
+ on_double_click: Optional[EventType[[], BASE_STATE]] = None,
78
+ on_focus: Optional[EventType[[], BASE_STATE]] = None,
79
+ on_mount: Optional[EventType[[], BASE_STATE]] = None,
80
+ on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
81
+ on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
82
+ on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
83
+ on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
84
+ on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
85
+ on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
86
+ on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
87
+ on_scroll: Optional[EventType[[], BASE_STATE]] = None,
88
+ on_unmount: Optional[EventType[[], BASE_STATE]] = None,
89
89
  **props,
90
90
  ) -> "RadixPrimitiveComponentWithClassName":
91
91
  """Create the component.
@@ -10,7 +10,7 @@ from reflex.components.component import Component, ComponentNamespace
10
10
  from reflex.components.radix.primitives.base import RadixPrimitiveComponent
11
11
  from reflex.components.radix.themes.base import Theme
12
12
  from reflex.components.radix.themes.layout.flex import Flex
13
- from reflex.event import EventHandler, empty_event, identity_event
13
+ from reflex.event import EventHandler, no_args_event_spec, passthrough_event_spec
14
14
  from reflex.utils import console
15
15
  from reflex.vars.base import Var
16
16
 
@@ -33,14 +33,29 @@ class DrawerRoot(DrawerComponent):
33
33
 
34
34
  alias = "Vaul" + tag
35
35
 
36
+ # The open state of the drawer when it is initially rendered. Use when you do not need to control its open state.
37
+ default_open: Var[bool]
38
+
36
39
  # Whether the drawer is open or not.
37
40
  open: Var[bool]
38
41
 
39
- # Enable background scaling, it requires an element with [vaul-drawer-wrapper] data attribute to scale its background.
40
- should_scale_background: Var[bool]
42
+ # Fires when the drawer is opened or closed.
43
+ on_open_change: EventHandler[passthrough_event_spec(bool)]
41
44
 
42
- # Number between 0 and 1 that determines when the drawer should be closed.
43
- close_threshold: Var[float]
45
+ # When `False`, it allows interaction with elements outside of the drawer without closing it. Defaults to `True`.
46
+ modal: Var[bool]
47
+
48
+ # Direction of the drawer. This adjusts the animations and the drag direction. Defaults to `"bottom"`
49
+ direction: Var[LiteralDirectionType]
50
+
51
+ # Gets triggered after the open or close animation ends, it receives an open argument with the open state of the drawer by the time the function was triggered.
52
+ on_animation_end: EventHandler[passthrough_event_spec(bool)]
53
+
54
+ # When `False`, dragging, clicking outside, pressing esc, etc. will not close the drawer. Use this in combination with the open prop, otherwise you won't be able to open/close the drawer.
55
+ dismissible: Var[bool]
56
+
57
+ # When `True`, dragging will only be possible by the handle.
58
+ handle_only: Var[bool]
44
59
 
45
60
  # Array of numbers from 0 to 100 that corresponds to % of the screen a given snap point should take up. Should go from least visible. Also Accept px values, which doesn't take screen height into account.
46
61
  snap_points: Optional[List[Union[str, float]]]
@@ -51,17 +66,14 @@ class DrawerRoot(DrawerComponent):
51
66
  # Duration for which the drawer is not draggable after scrolling content inside of the drawer. Defaults to 500ms
52
67
  scroll_lock_timeout: Var[int]
53
68
 
54
- # When `False`, it allows to interact with elements outside of the drawer without closing it. Defaults to `True`.
55
- modal: Var[bool]
56
-
57
- # Direction of the drawer. Defaults to `"bottom"`
58
- direction: Var[LiteralDirectionType]
59
-
60
69
  # When `True`, it prevents scroll restoration. Defaults to `True`.
61
70
  preventScrollRestoration: Var[bool]
62
71
 
63
- # Fires when the drawer is opened.
64
- on_open_change: EventHandler[identity_event(bool)]
72
+ # Enable background scaling, it requires container element with `vaul-drawer-wrapper` attribute to scale its background.
73
+ should_scale_background: Var[bool]
74
+
75
+ # Number between 0 and 1 that determines when the drawer should be closed.
76
+ close_threshold: Var[float]
65
77
 
66
78
 
67
79
  class DrawerTrigger(DrawerComponent):
@@ -79,8 +91,8 @@ class DrawerTrigger(DrawerComponent):
79
91
  """Create a new DrawerTrigger instance.
80
92
 
81
93
  Args:
82
- children: The children of the element.
83
- props: The properties of the element.
94
+ *children: The children of the element.
95
+ **props: The properties of the element.
84
96
 
85
97
  Returns:
86
98
  The new DrawerTrigger instance.
@@ -129,19 +141,19 @@ class DrawerContent(DrawerComponent):
129
141
  return {"css": base_style}
130
142
 
131
143
  # Fired when the drawer content is opened. Deprecated.
132
- on_open_auto_focus: EventHandler[empty_event]
144
+ on_open_auto_focus: EventHandler[no_args_event_spec]
133
145
 
134
146
  # Fired when the drawer content is closed. Deprecated.
135
- on_close_auto_focus: EventHandler[empty_event]
147
+ on_close_auto_focus: EventHandler[no_args_event_spec]
136
148
 
137
149
  # Fired when the escape key is pressed. Deprecated.
138
- on_escape_key_down: EventHandler[empty_event]
150
+ on_escape_key_down: EventHandler[no_args_event_spec]
139
151
 
140
152
  # Fired when the pointer is down outside the drawer content. Deprecated.
141
- on_pointer_down_outside: EventHandler[empty_event]
153
+ on_pointer_down_outside: EventHandler[no_args_event_spec]
142
154
 
143
155
  # Fired when interacting outside the drawer content. Deprecated.
144
- on_interact_outside: EventHandler[empty_event]
156
+ on_interact_outside: EventHandler[no_args_event_spec]
145
157
 
146
158
  @classmethod
147
159
  def create(cls, *children, **props):
@@ -263,6 +275,14 @@ class DrawerDescription(DrawerComponent):
263
275
  return {"css": base_style}
264
276
 
265
277
 
278
+ class DrawerHandle(DrawerComponent):
279
+ """A description for the drawer."""
280
+
281
+ tag = "Drawer.Handle"
282
+
283
+ alias = "Vaul" + tag
284
+
285
+
266
286
  class Drawer(ComponentNamespace):
267
287
  """A namespace for Drawer components."""
268
288
 
@@ -274,6 +294,7 @@ class Drawer(ComponentNamespace):
274
294
  close = staticmethod(DrawerClose.create)
275
295
  title = staticmethod(DrawerTitle.create)
276
296
  description = staticmethod(DrawerDescription.create)
297
+ handle = staticmethod(DrawerHandle.create)
277
298
 
278
299
 
279
300
  drawer = Drawer()