@pathscale/ui 1.1.54 → 1.1.55

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.
@@ -0,0 +1,11 @@
1
+ export type DrawerPlacement = "top" | "bottom" | "left" | "right";
2
+ export type DrawerSize = "sm" | "md" | "lg" | "full";
3
+ export type DrawerBackdropVariant = "opaque" | "blur" | "transparent";
4
+ export type DrawerScrollBehavior = "inside" | "outside";
5
+ export type DrawerAnimState = "entering" | "open" | "exiting" | "closed";
6
+ export type DrawerCloseReason = "escape" | "backdrop" | "trigger" | "api";
7
+ export declare const isSidePlacement: (placement: DrawerPlacement) => placement is "left" | "right";
8
+ export declare const isVisibleState: (state: DrawerAnimState) => state is "open" | "entering";
9
+ export declare const getFocusable: (container: HTMLElement) => HTMLElement[];
10
+ export declare const focusFirst: (container: HTMLElement) => void;
11
+ export declare const trapFocus: (event: KeyboardEvent, container: HTMLElement) => void;
@@ -0,0 +1,32 @@
1
+ const isSidePlacement = (placement)=>"left" === placement || "right" === placement;
2
+ const isVisibleState = (state)=>"entering" === state || "open" === state;
3
+ const FOCUSABLE_SELECTOR = "a[href],area[href],button:not([disabled]),input:not([disabled]):not([type='hidden']),select:not([disabled]),textarea:not([disabled]),[contenteditable='true'],[tabindex]:not([tabindex='-1'])";
4
+ const getFocusable = (container)=>Array.from(container.querySelectorAll(FOCUSABLE_SELECTOR)).filter((el)=>!el.hidden && el.tabIndex >= 0 && "true" !== el.getAttribute("aria-hidden"));
5
+ const focusFirst = (container)=>{
6
+ const autofocus = container.querySelector("[autofocus]");
7
+ if (autofocus) return void autofocus.focus();
8
+ const nodes = getFocusable(container);
9
+ if (nodes.length > 0) return void nodes[0].focus();
10
+ container.focus();
11
+ };
12
+ const trapFocus = (event, container)=>{
13
+ const nodes = getFocusable(container);
14
+ if (0 === nodes.length) {
15
+ event.preventDefault();
16
+ container.focus();
17
+ return;
18
+ }
19
+ const first = nodes[0];
20
+ const last = nodes[nodes.length - 1];
21
+ const active = document.activeElement;
22
+ if (!event.shiftKey && active === last) {
23
+ event.preventDefault();
24
+ first.focus();
25
+ return;
26
+ }
27
+ if (event.shiftKey && (active === first || active === container)) {
28
+ event.preventDefault();
29
+ last.focus();
30
+ }
31
+ };
32
+ export { focusFirst, getFocusable, isSidePlacement, isVisibleState, trapFocus };
@@ -1,28 +1,90 @@
1
1
  export declare const CLASSES: {
2
- readonly slot: {
3
- readonly trigger: "drawer__trigger";
4
- readonly backdrop: "drawer__backdrop";
5
- readonly content: "drawer__content";
6
- readonly dialog: "drawer__dialog";
7
- readonly header: "drawer__header";
8
- readonly heading: "drawer__heading";
9
- readonly body: "drawer__body";
10
- readonly footer: "drawer__footer";
11
- readonly handle: "drawer__handle";
12
- readonly closeTrigger: "drawer__close-trigger";
13
- readonly closeIcon: "drawer__close-icon";
14
- };
15
- readonly backdrop: {
16
- readonly opaque: "drawer__backdrop--opaque";
17
- readonly blur: "drawer__backdrop--blur";
18
- readonly transparent: "drawer__backdrop--transparent";
19
- };
20
- readonly placement: {
21
- readonly top: "drawer__content--top";
22
- readonly bottom: "drawer__content--bottom";
23
- readonly left: "drawer__content--left";
24
- readonly right: "drawer__content--right";
25
- };
26
- readonly closeIconStart: "drawer__close-icon--start";
27
- readonly closeIconEnd: "drawer__close-icon--end";
2
+ readonly Root: {
3
+ readonly base: "drawer";
4
+ readonly state: {
5
+ readonly open: "drawer--open";
6
+ readonly entering: "drawer--entering";
7
+ readonly exiting: "drawer--exiting";
8
+ readonly closed: "drawer--closed";
9
+ };
10
+ };
11
+ readonly Trigger: {
12
+ readonly base: "drawer__trigger";
13
+ };
14
+ readonly Backdrop: {
15
+ readonly base: "drawer__backdrop";
16
+ readonly variant: {
17
+ readonly opaque: "drawer__backdrop--opaque";
18
+ readonly blur: "drawer__backdrop--blur";
19
+ readonly transparent: "drawer__backdrop--transparent";
20
+ };
21
+ readonly state: {
22
+ readonly entering: "drawer__backdrop--entering";
23
+ readonly exiting: "drawer__backdrop--exiting";
24
+ };
25
+ };
26
+ readonly Content: {
27
+ readonly base: "drawer__content";
28
+ readonly placement: {
29
+ readonly top: "drawer__content--top";
30
+ readonly bottom: "drawer__content--bottom";
31
+ readonly left: "drawer__content--left";
32
+ readonly right: "drawer__content--right";
33
+ };
34
+ readonly scroll: {
35
+ readonly inside: "drawer__content--scroll-inside";
36
+ readonly outside: "drawer__content--scroll-outside";
37
+ };
38
+ readonly state: {
39
+ readonly entering: "drawer__content--entering";
40
+ readonly exiting: "drawer__content--exiting";
41
+ };
42
+ };
43
+ readonly Dialog: {
44
+ readonly base: "drawer__dialog";
45
+ readonly axis: {
46
+ readonly side: "drawer__dialog--axis-side";
47
+ readonly edge: "drawer__dialog--axis-edge";
48
+ };
49
+ readonly size: {
50
+ readonly side: {
51
+ readonly sm: "drawer__dialog--side-sm";
52
+ readonly md: "drawer__dialog--side-md";
53
+ readonly lg: "drawer__dialog--side-lg";
54
+ readonly full: "drawer__dialog--side-full";
55
+ };
56
+ readonly edge: {
57
+ readonly sm: "drawer__dialog--edge-sm";
58
+ readonly md: "drawer__dialog--edge-md";
59
+ readonly lg: "drawer__dialog--edge-lg";
60
+ readonly full: "drawer__dialog--edge-full";
61
+ };
62
+ };
63
+ readonly state: {
64
+ readonly entering: "drawer__dialog--entering";
65
+ readonly exiting: "drawer__dialog--exiting";
66
+ };
67
+ };
68
+ readonly Header: {
69
+ readonly base: "drawer__header";
70
+ };
71
+ readonly Heading: {
72
+ readonly base: "drawer__heading";
73
+ };
74
+ readonly Body: {
75
+ readonly base: "drawer__body";
76
+ };
77
+ readonly Footer: {
78
+ readonly base: "drawer__footer";
79
+ };
80
+ readonly Handle: {
81
+ readonly base: "drawer__handle";
82
+ readonly bar: "drawer__handle-bar";
83
+ };
84
+ readonly CloseTrigger: {
85
+ readonly base: "drawer__close-trigger";
86
+ readonly icon: "drawer__close-icon";
87
+ readonly iconStart: "drawer__close-icon--start";
88
+ readonly iconEnd: "drawer__close-icon--end";
89
+ };
28
90
  };
@@ -1,29 +1,91 @@
1
1
  const CLASSES = {
2
- slot: {
3
- trigger: "drawer__trigger",
4
- backdrop: "drawer__backdrop",
5
- content: "drawer__content",
6
- dialog: "drawer__dialog",
7
- header: "drawer__header",
8
- heading: "drawer__heading",
9
- body: "drawer__body",
10
- footer: "drawer__footer",
11
- handle: "drawer__handle",
12
- closeTrigger: "drawer__close-trigger",
13
- closeIcon: "drawer__close-icon"
14
- },
15
- backdrop: {
16
- opaque: "drawer__backdrop--opaque",
17
- blur: "drawer__backdrop--blur",
18
- transparent: "drawer__backdrop--transparent"
19
- },
20
- placement: {
21
- top: "drawer__content--top",
22
- bottom: "drawer__content--bottom",
23
- left: "drawer__content--left",
24
- right: "drawer__content--right"
25
- },
26
- closeIconStart: "drawer__close-icon--start",
27
- closeIconEnd: "drawer__close-icon--end"
2
+ Root: {
3
+ base: "drawer",
4
+ state: {
5
+ open: "drawer--open",
6
+ entering: "drawer--entering",
7
+ exiting: "drawer--exiting",
8
+ closed: "drawer--closed"
9
+ }
10
+ },
11
+ Trigger: {
12
+ base: "drawer__trigger"
13
+ },
14
+ Backdrop: {
15
+ base: "drawer__backdrop",
16
+ variant: {
17
+ opaque: "drawer__backdrop--opaque",
18
+ blur: "drawer__backdrop--blur",
19
+ transparent: "drawer__backdrop--transparent"
20
+ },
21
+ state: {
22
+ entering: "drawer__backdrop--entering",
23
+ exiting: "drawer__backdrop--exiting"
24
+ }
25
+ },
26
+ Content: {
27
+ base: "drawer__content",
28
+ placement: {
29
+ top: "drawer__content--top",
30
+ bottom: "drawer__content--bottom",
31
+ left: "drawer__content--left",
32
+ right: "drawer__content--right"
33
+ },
34
+ scroll: {
35
+ inside: "drawer__content--scroll-inside",
36
+ outside: "drawer__content--scroll-outside"
37
+ },
38
+ state: {
39
+ entering: "drawer__content--entering",
40
+ exiting: "drawer__content--exiting"
41
+ }
42
+ },
43
+ Dialog: {
44
+ base: "drawer__dialog",
45
+ axis: {
46
+ side: "drawer__dialog--axis-side",
47
+ edge: "drawer__dialog--axis-edge"
48
+ },
49
+ size: {
50
+ side: {
51
+ sm: "drawer__dialog--side-sm",
52
+ md: "drawer__dialog--side-md",
53
+ lg: "drawer__dialog--side-lg",
54
+ full: "drawer__dialog--side-full"
55
+ },
56
+ edge: {
57
+ sm: "drawer__dialog--edge-sm",
58
+ md: "drawer__dialog--edge-md",
59
+ lg: "drawer__dialog--edge-lg",
60
+ full: "drawer__dialog--edge-full"
61
+ }
62
+ },
63
+ state: {
64
+ entering: "drawer__dialog--entering",
65
+ exiting: "drawer__dialog--exiting"
66
+ }
67
+ },
68
+ Header: {
69
+ base: "drawer__header"
70
+ },
71
+ Heading: {
72
+ base: "drawer__heading"
73
+ },
74
+ Body: {
75
+ base: "drawer__body"
76
+ },
77
+ Footer: {
78
+ base: "drawer__footer"
79
+ },
80
+ Handle: {
81
+ base: "drawer__handle",
82
+ bar: "drawer__handle-bar"
83
+ },
84
+ CloseTrigger: {
85
+ base: "drawer__close-trigger",
86
+ icon: "drawer__close-icon",
87
+ iconStart: "drawer__close-icon--start",
88
+ iconEnd: "drawer__close-icon--end"
89
+ }
28
90
  };
29
91
  export { CLASSES };
@@ -0,0 +1,27 @@
1
+ import type { DrawerAnimState, DrawerBackdropVariant, DrawerCloseReason, DrawerPlacement, DrawerScrollBehavior, DrawerSize } from "./Drawer.a11y";
2
+ export type DrawerContextValue = {
3
+ isOpen: () => boolean;
4
+ setIsOpen: (next: boolean) => void;
5
+ requestClose: (reason: DrawerCloseReason) => void;
6
+ animState: () => DrawerAnimState;
7
+ placement: () => DrawerPlacement;
8
+ size: () => DrawerSize;
9
+ backdrop: () => DrawerBackdropVariant;
10
+ scrollBehavior: () => DrawerScrollBehavior;
11
+ isDismissable: () => boolean;
12
+ shouldCloseOnEsc: () => boolean;
13
+ shouldCloseOnBackdropClick: () => boolean;
14
+ trapFocus: () => boolean;
15
+ restoreFocus: () => boolean;
16
+ dialogRef: () => HTMLDivElement | undefined;
17
+ setDialogRef: (node: HTMLDivElement | undefined) => void;
18
+ labelledBy: () => string | undefined;
19
+ setLabelledBy: (id: string | undefined) => void;
20
+ describedBy: () => string | undefined;
21
+ setDescribedBy: (id: string | undefined) => void;
22
+ setPlacementOverride: (value: DrawerPlacement | undefined) => void;
23
+ setBackdropDismissableOverride: (value: boolean | undefined) => void;
24
+ setBackdropCloseOnClickOverride: (value: boolean | undefined) => void;
25
+ };
26
+ export declare const DrawerContext: import("solid-js").Context<DrawerContextValue | undefined>;
27
+ export declare const useDrawerContext: () => DrawerContextValue;
@@ -0,0 +1,8 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
2
+ const DrawerContext = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createContext)();
3
+ const useDrawerContext = ()=>{
4
+ const ctx = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.useContext)(DrawerContext);
5
+ if (!ctx) throw new Error("Drawer compound components must be used within <Drawer.Root>.");
6
+ return ctx;
7
+ };
8
+ export { DrawerContext, useDrawerContext };
@@ -1,4 +1,8 @@
1
1
  @layer components {
2
+ .drawer {
3
+ position: relative;
4
+ }
5
+
2
6
  /* -------------------------------------------------------------------------------------------------
3
7
  * Trigger
4
8
  * -----------------------------------------------------------------------------------------------*/
@@ -34,6 +38,15 @@
34
38
  transition: opacity 250ms cubic-bezier(0.32, 0.72, 0, 1);
35
39
  }
36
40
 
41
+ .drawer__backdrop--entering {
42
+ opacity: 0;
43
+ }
44
+
45
+ .drawer__backdrop--exiting {
46
+ opacity: 0;
47
+ transition-duration: 200ms;
48
+ }
49
+
37
50
  .drawer__backdrop[data-entering="true"] {
38
51
  opacity: 0;
39
52
  }
@@ -77,6 +90,42 @@
77
90
  height: 100dvh;
78
91
  }
79
92
 
93
+ .drawer__content--scroll-inside .drawer__dialog {
94
+ overflow: hidden;
95
+ }
96
+
97
+ .drawer__content--scroll-inside .drawer__body {
98
+ overflow-y: auto;
99
+ }
100
+
101
+ .drawer__content--scroll-outside {
102
+ overflow-y: auto;
103
+ }
104
+
105
+ .drawer__content--scroll-outside .drawer__dialog {
106
+ margin-block: auto;
107
+ }
108
+
109
+ .drawer__content--entering[data-placement="left"] .drawer__dialog,
110
+ .drawer__content--exiting[data-placement="left"] .drawer__dialog {
111
+ translate: -100% 0;
112
+ }
113
+
114
+ .drawer__content--entering[data-placement="right"] .drawer__dialog,
115
+ .drawer__content--exiting[data-placement="right"] .drawer__dialog {
116
+ translate: 100% 0;
117
+ }
118
+
119
+ .drawer__content--entering[data-placement="top"] .drawer__dialog,
120
+ .drawer__content--exiting[data-placement="top"] .drawer__dialog {
121
+ translate: 0 -100%;
122
+ }
123
+
124
+ .drawer__content--entering[data-placement="bottom"] .drawer__dialog,
125
+ .drawer__content--exiting[data-placement="bottom"] .drawer__dialog {
126
+ translate: 0 100%;
127
+ }
128
+
80
129
  .drawer__content--bottom {
81
130
  align-items: flex-end;
82
131
  }
@@ -117,6 +166,57 @@
117
166
  transition: translate var(--drawer-enter-duration) var(--drawer-ease);
118
167
  }
119
168
 
169
+ .drawer__dialog--axis-side {
170
+ height: 100%;
171
+ border-radius: 0;
172
+ }
173
+
174
+ .drawer__dialog--axis-edge {
175
+ width: 100%;
176
+ }
177
+
178
+ .drawer__dialog--side-sm {
179
+ width: 18rem;
180
+ max-width: 85vw;
181
+ }
182
+
183
+ .drawer__dialog--side-md {
184
+ width: 20rem;
185
+ max-width: 85vw;
186
+ }
187
+
188
+ .drawer__dialog--side-lg {
189
+ width: 24rem;
190
+ max-width: 90vw;
191
+ }
192
+
193
+ .drawer__dialog--side-full {
194
+ width: 100vw;
195
+ max-width: 100vw;
196
+ }
197
+
198
+ .drawer__dialog--edge-sm {
199
+ max-height: min(40vh, 24rem);
200
+ }
201
+
202
+ .drawer__dialog--edge-md {
203
+ max-height: min(60vh, 36rem);
204
+ }
205
+
206
+ .drawer__dialog--edge-lg {
207
+ max-height: 85vh;
208
+ }
209
+
210
+ .drawer__dialog--edge-full {
211
+ max-height: 100vh;
212
+ border-radius: 0;
213
+ }
214
+
215
+ .drawer__dialog--entering,
216
+ .drawer__dialog--exiting {
217
+ transition-duration: var(--drawer-exit-duration);
218
+ }
219
+
120
220
  [data-exiting="true"] .drawer__dialog {
121
221
  transition-duration: var(--drawer-exit-duration);
122
222
  }
@@ -192,7 +292,6 @@
192
292
  .drawer__dialog--custom-bg {
193
293
  background-color: var(--drawer-dialog-bg, var(--color-base-100));
194
294
  }
195
-
196
295
  /* Slide transitions — open state */
197
296
  .drawer__content--left .drawer__dialog,
198
297
  .drawer__content--right .drawer__dialog,
@@ -201,7 +300,7 @@
201
300
  translate: 0 0;
202
301
  }
203
302
 
204
- /* Entering/exiting slide transforms */
303
+ /* Entering/exiting slide transforms (legacy data-attrs support) */
205
304
  .drawer__content--left[data-entering="true"] .drawer__dialog,
206
305
  .drawer__content--left[data-exiting="true"] .drawer__dialog {
207
306
  translate: -100% 0;
@@ -285,6 +384,7 @@
285
384
  padding-bottom: 0.5rem;
286
385
  }
287
386
 
387
+ .drawer__handle-bar,
288
388
  .drawer__handle > [data-slot="drawer-handle-bar"] {
289
389
  height: 0.25rem;
290
390
  width: 2.25rem;
@@ -1,25 +1,39 @@
1
1
  import "./Drawer.css";
2
2
  import { type Component, type JSX, type ParentComponent } from "solid-js";
3
3
  import type { IComponentBaseProps } from "../types";
4
- export type DrawerPlacement = "top" | "bottom" | "left" | "right";
5
- export type DrawerBackdropVariant = "opaque" | "blur" | "transparent";
6
- export type DrawerRootProps = IComponentBaseProps & {
4
+ import { type DrawerBackdropVariant, type DrawerPlacement, type DrawerScrollBehavior, type DrawerSize } from "./Drawer.a11y";
5
+ export type { DrawerPlacement, DrawerSize, DrawerBackdropVariant, DrawerScrollBehavior, } from "./Drawer.a11y";
6
+ export type DrawerRootProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> & IComponentBaseProps & {
7
7
  children: JSX.Element;
8
8
  isOpen?: boolean;
9
9
  defaultOpen?: boolean;
10
10
  onOpenChange?: (isOpen: boolean) => void;
11
+ placement?: DrawerPlacement;
12
+ size?: DrawerSize;
13
+ backdrop?: DrawerBackdropVariant;
14
+ scrollBehavior?: DrawerScrollBehavior;
15
+ isDismissable?: boolean;
16
+ shouldCloseOnEsc?: boolean;
17
+ shouldCloseOnBackdropClick?: boolean;
18
+ trapFocus?: boolean;
19
+ restoreFocus?: boolean;
11
20
  };
12
- export type DrawerTriggerProps = Omit<JSX.HTMLAttributes<HTMLButtonElement>, "children"> & IComponentBaseProps & {
21
+ export type DrawerTriggerProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, "children"> & IComponentBaseProps & {
13
22
  children: JSX.Element;
14
23
  };
15
24
  export type DrawerBackdropProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> & IComponentBaseProps & {
16
25
  children: JSX.Element;
17
26
  variant?: DrawerBackdropVariant;
27
+ /** @deprecated Configure dismissability at Drawer.Root `isDismissable` */
18
28
  isDismissable?: boolean;
29
+ /** @deprecated Configure backdrop closing at Drawer.Root `shouldCloseOnBackdropClick` */
30
+ shouldCloseOnBackdropClick?: boolean;
19
31
  };
20
32
  export type DrawerContentProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> & IComponentBaseProps & {
21
33
  children: JSX.Element;
34
+ /** @deprecated Configure placement at Drawer.Root `placement` */
22
35
  placement?: DrawerPlacement;
36
+ scrollBehavior?: DrawerScrollBehavior;
23
37
  };
24
38
  export type DrawerDialogSide = "left" | "right";
25
39
  export type DrawerDialogProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> & IComponentBaseProps & {
@@ -31,29 +45,35 @@ export type DrawerDialogProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "childr
31
45
  padding?: string;
32
46
  borderWidth?: string;
33
47
  borderColor?: string;
48
+ size?: DrawerSize;
34
49
  };
35
50
  export type DrawerHeaderProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> & IComponentBaseProps & {
36
51
  children: JSX.Element;
37
52
  };
38
53
  export type DrawerHeadingProps = Omit<JSX.HTMLAttributes<HTMLHeadingElement>, "children"> & IComponentBaseProps & {
39
54
  children: JSX.Element;
55
+ id?: string;
40
56
  };
41
57
  export type DrawerBodyProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> & IComponentBaseProps & {
42
58
  children: JSX.Element;
59
+ id?: string;
43
60
  };
44
61
  export type DrawerFooterProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> & IComponentBaseProps & {
45
62
  children: JSX.Element;
46
63
  };
47
64
  export type DrawerHandleProps = JSX.HTMLAttributes<HTMLDivElement> & IComponentBaseProps;
48
- export type DrawerCloseTriggerProps = Omit<JSX.HTMLAttributes<HTMLButtonElement>, "children"> & IComponentBaseProps & {
65
+ export type DrawerCloseTriggerProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, "children"> & IComponentBaseProps & {
49
66
  children?: JSX.Element;
50
67
  startIcon?: JSX.Element;
51
68
  endIcon?: JSX.Element;
52
69
  };
70
+ export type DrawerCloseProps = {
71
+ children: JSX.Element;
72
+ };
53
73
  declare const DrawerRoot: ParentComponent<DrawerRootProps>;
54
74
  declare const DrawerTrigger: Component<DrawerTriggerProps>;
55
- declare const DrawerBackdrop: ParentComponent<DrawerBackdropProps>;
56
75
  declare const DrawerContent: ParentComponent<DrawerContentProps>;
76
+ declare const DrawerBackdrop: ParentComponent<DrawerBackdropProps>;
57
77
  declare const DrawerDialog: ParentComponent<DrawerDialogProps>;
58
78
  declare const DrawerHeader: ParentComponent<DrawerHeaderProps>;
59
79
  declare const DrawerHeading: ParentComponent<DrawerHeadingProps>;
@@ -61,9 +81,6 @@ declare const DrawerBody: ParentComponent<DrawerBodyProps>;
61
81
  declare const DrawerFooter: ParentComponent<DrawerFooterProps>;
62
82
  declare const DrawerHandle: Component<DrawerHandleProps>;
63
83
  declare const DrawerCloseTrigger: Component<DrawerCloseTriggerProps>;
64
- export type DrawerCloseProps = {
65
- children: JSX.Element;
66
- };
67
84
  declare const DrawerClose: ParentComponent<DrawerCloseProps>;
68
85
  declare const Drawer: ParentComponent<DrawerRootProps> & {
69
86
  Root: ParentComponent<DrawerRootProps>;