@urbicon-ui/blocks 6.19.3 → 6.21.1
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.
- package/dist/components/Calendar/Calendar.svelte +3 -0
- package/dist/components/Calendar/calendar.variants.d.ts +132 -419
- package/dist/components/CommandPalette/commandPalette.variants.d.ts +24 -51
- package/dist/components/CompositionBar/CompositionBar.svelte +6 -1
- package/dist/components/CompositionBar/composition-bar.variants.d.ts +23 -83
- package/dist/components/CompositionBar/composition-bar.variants.js +9 -3
- package/dist/components/EmptyState/emptyState.variants.d.ts +11 -27
- package/dist/components/FileUpload/fileUpload.variants.d.ts +24 -93
- package/dist/components/Guide/GuidePanel.svelte +38 -0
- package/dist/components/Guide/guide.variants.d.ts +69 -124
- package/dist/components/Guide/guide.variants.js +6 -1
- package/dist/components/Planner/planner.variants.d.ts +23 -94
- package/dist/components/Sankey/sankey.variants.d.ts +15 -48
- package/dist/components/SidebarLayout/sidebar-layout.variants.d.ts +10 -38
- package/dist/components/SidebarLayout/sidebar-layout.variants.js +12 -2
- package/dist/components/ThemeSwitcher/themeSwitcher.variants.d.ts +9 -36
- package/dist/i18n/index.d.ts +2 -372
- package/dist/icons/IconProvider.svelte +3 -0
- package/dist/internal/charts/variants.d.ts +18 -31
- package/dist/mint/styles.css +1 -1
- package/dist/primitives/Accordion/Accordion.svelte +14 -0
- package/dist/primitives/Accordion/AccordionItem.svelte +9 -3
- package/dist/primitives/Accordion/accordion.variants.d.ts +12 -43
- package/dist/primitives/Accordion/accordion.variants.js +6 -2
- package/dist/primitives/Accordion/index.d.ts +12 -0
- package/dist/primitives/Alert/alert.variants.d.ts +21 -62
- package/dist/primitives/Avatar/Avatar.svelte +74 -48
- package/dist/primitives/Avatar/avatar.variants.d.ts +34 -128
- package/dist/primitives/Avatar/avatar.variants.js +43 -18
- package/dist/primitives/Avatar/index.d.ts +6 -1
- package/dist/primitives/Badge/badge.variants.d.ts +19 -92
- package/dist/primitives/Badge/badge.variants.js +11 -4
- package/dist/primitives/Breadcrumb/breadcrumb.variants.d.ts +13 -40
- package/dist/primitives/Button/button.variants.d.ts +19 -98
- package/dist/primitives/Button/button.variants.js +13 -9
- package/dist/primitives/ButtonGroup/buttongroup.variants.d.ts +9 -29
- package/dist/primitives/ButtonGroup/buttongroup.variants.js +3 -1
- package/dist/primitives/Card/card.variants.d.ts +14 -81
- package/dist/primitives/Checkbox/checkbox.variants.d.ts +18 -77
- package/dist/primitives/Collapsible/Collapsible.svelte +13 -0
- package/dist/primitives/Collapsible/collapsible.variants.d.ts +11 -40
- package/dist/primitives/Collapsible/collapsible.variants.js +7 -2
- package/dist/primitives/Collapsible/index.d.ts +16 -0
- package/dist/primitives/Combobox/combobox.variants.d.ts +24 -78
- package/dist/primitives/ConfirmDialog/index.d.ts +12 -0
- package/dist/primitives/Dialog/Dialog.svelte +23 -10
- package/dist/primitives/Dialog/dialog.variants.d.ts +15 -54
- package/dist/primitives/Drawer/Drawer.svelte +24 -11
- package/dist/primitives/Drawer/drawer.variants.d.ts +14 -49
- package/dist/primitives/Input/input.variants.d.ts +32 -139
- package/dist/primitives/Input/input.variants.js +12 -10
- package/dist/primitives/JourneyTimeline/journey-timeline.variants.d.ts +55 -197
- package/dist/primitives/JourneyTimeline/journey-timeline.variants.js +4 -1
- package/dist/primitives/Menu/MenuSubmenu.svelte +1 -0
- package/dist/primitives/Menu/menu.variants.d.ts +29 -93
- package/dist/primitives/Pagination/pagination.variants.d.ts +16 -54
- package/dist/primitives/Pagination/pagination.variants.js +16 -14
- package/dist/primitives/Popover/Popover.svelte +1 -1
- package/dist/primitives/Popover/popover.variants.d.ts +4 -2
- package/dist/primitives/Progress/progress.variants.d.ts +19 -83
- package/dist/primitives/Progress/progress.variants.js +2 -1
- package/dist/primitives/RadioGroup/radioGroup.variants.d.ts +28 -109
- package/dist/primitives/SegmentGroup/SegmentGroup.svelte +14 -6
- package/dist/primitives/SegmentGroup/segmentgroup.variants.d.ts +12 -53
- package/dist/primitives/SegmentGroup/segmentgroup.variants.js +10 -10
- package/dist/primitives/Select/Select.svelte +1 -1
- package/dist/primitives/Select/select.variants.d.ts +45 -134
- package/dist/primitives/Select/select.variants.js +6 -4
- package/dist/primitives/Separator/separator.variants.d.ts +4 -2
- package/dist/primitives/Sidebar/Sidebar.svelte +10 -15
- package/dist/primitives/Sidebar/sidebar.variants.d.ts +11 -29
- package/dist/primitives/Skeleton/skeleton.variants.d.ts +9 -36
- package/dist/primitives/Slider/slider.variants.d.ts +37 -136
- package/dist/primitives/Slider/slider.variants.js +8 -5
- package/dist/primitives/Spinner/spinner.variants.d.ts +38 -135
- package/dist/primitives/Stepper/stepper.variants.d.ts +32 -130
- package/dist/primitives/Tab/Tab.svelte +17 -6
- package/dist/primitives/Tab/tab.variants.d.ts +17 -78
- package/dist/primitives/Textarea/textarea.variants.d.ts +27 -112
- package/dist/primitives/Textarea/textarea.variants.js +12 -10
- package/dist/primitives/Toast/Toaster.svelte +16 -3
- package/dist/primitives/Toast/index.d.ts +9 -0
- package/dist/primitives/Toast/toast.variants.d.ts +22 -78
- package/dist/primitives/Toggle/toggle.variants.d.ts +17 -71
- package/dist/primitives/Toolbar/toolbar.variants.d.ts +9 -60
- package/dist/primitives/Tooltip/Tooltip.svelte +11 -0
- package/dist/primitives/Tooltip/index.d.ts +14 -0
- package/dist/primitives/Tooltip/tooltip.variants.d.ts +11 -50
- package/dist/primitives/Tooltip/tooltip.variants.js +7 -1
- package/dist/style/foundation.css +4 -1
- package/dist/style/interaction.css +40 -12
- package/dist/style/semantic.css +2 -2
- package/dist/style/themes/index.css +1 -1
- package/dist/system/attachments/ContextIsolation.svelte +2 -0
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.js +5 -0
- package/dist/utils/overlay.d.ts +33 -4
- package/dist/utils/overlay.js +61 -18
- package/dist/utils/roving.d.ts +15 -0
- package/dist/utils/roving.js +44 -0
- package/dist/utils/use-floating-panel.svelte.d.ts +4 -1
- package/dist/utils/use-floating-panel.svelte.js +23 -1
- package/dist/utils/variants.d.ts +60 -16
- package/dist/utils/variants.js +424 -123
- package/package.json +9 -6
|
@@ -74,6 +74,18 @@ export interface ConfirmDialogProps {
|
|
|
74
74
|
closeOnBackdropClick?: boolean;
|
|
75
75
|
/** Whether Escape cancels. @default true */
|
|
76
76
|
closeOnEscape?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Override the enter/exit animation duration in milliseconds, forwarded to
|
|
79
|
+
* the underlying {@link Dialog}. Defaults to the overlay token
|
|
80
|
+
* `--blocks-overlay-enter-duration` / `--blocks-overlay-exit-duration`
|
|
81
|
+
* (200ms / 180ms). Respects `prefers-reduced-motion`.
|
|
82
|
+
*/
|
|
83
|
+
transitionDuration?: number;
|
|
84
|
+
/**
|
|
85
|
+
* Override the enter/exit easing function, forwarded to the underlying
|
|
86
|
+
* {@link Dialog}. Defaults to the overlay token easing (`quintOut`).
|
|
87
|
+
*/
|
|
88
|
+
transitionEasing?: (t: number) => number;
|
|
77
89
|
/** Optional richer markup rendered below `description`. */
|
|
78
90
|
children?: Snippet;
|
|
79
91
|
}
|
|
@@ -3,14 +3,9 @@
|
|
|
3
3
|
import { getBlocksConfig, resolveSlotClasses } from '../../provider';
|
|
4
4
|
import { resolveIcon } from '../../icons';
|
|
5
5
|
import CloseIconDefault from '../../icons/CloseIcon.svelte';
|
|
6
|
-
import { onDestroy } from 'svelte';
|
|
6
|
+
import { onDestroy, tick } from 'svelte';
|
|
7
7
|
import { fade, scale } from 'svelte/transition';
|
|
8
|
-
import {
|
|
9
|
-
trapFocus,
|
|
10
|
-
showDialogModal,
|
|
11
|
-
closeDialogModal,
|
|
12
|
-
unlockBodyScroll
|
|
13
|
-
} from '../../utils/overlay';
|
|
8
|
+
import { trapFocus, showDialogModal, closeDialogModal } from '../../utils/overlay';
|
|
14
9
|
import { overlayStack, getOverlayMotion } from '../../utils';
|
|
15
10
|
import Button from '../Button/Button.svelte';
|
|
16
11
|
import type { DialogProps } from './index';
|
|
@@ -41,6 +36,8 @@
|
|
|
41
36
|
...restProps
|
|
42
37
|
}: DialogProps = $props();
|
|
43
38
|
|
|
39
|
+
// One-shot DEV sanity check on the initial close-path configuration.
|
|
40
|
+
// svelte-ignore state_referenced_locally
|
|
44
41
|
if (
|
|
45
42
|
import.meta.env?.DEV &&
|
|
46
43
|
hideCloseButton &&
|
|
@@ -67,6 +64,9 @@
|
|
|
67
64
|
let panelEl = $state<HTMLElement>();
|
|
68
65
|
let isVisible = $state(false);
|
|
69
66
|
let previouslyFocused: HTMLElement | null = null;
|
|
67
|
+
// Release for the body-scroll lock this instance holds while modal — set by
|
|
68
|
+
// showDialogModal, idempotent, so both teardown paths below may call it.
|
|
69
|
+
let releaseScrollLock: (() => void) | undefined;
|
|
70
70
|
|
|
71
71
|
const structured = $derived(!!title);
|
|
72
72
|
|
|
@@ -118,7 +118,8 @@
|
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
function handleOutroEnd() {
|
|
121
|
-
closeDialogModal(dialogEl, previouslyFocused);
|
|
121
|
+
closeDialogModal(dialogEl, previouslyFocused, releaseScrollLock);
|
|
122
|
+
releaseScrollLock = undefined;
|
|
122
123
|
isVisible = false;
|
|
123
124
|
previouslyFocused = null;
|
|
124
125
|
}
|
|
@@ -127,7 +128,15 @@
|
|
|
127
128
|
if (open && !isVisible) {
|
|
128
129
|
isVisible = true;
|
|
129
130
|
previouslyFocused = document.activeElement as HTMLElement;
|
|
130
|
-
|
|
131
|
+
// Defer until the `{#if isVisible}` block has rendered so `bind:this` has
|
|
132
|
+
// assigned dialogEl/panelEl — showDialogModal captures the refs by value,
|
|
133
|
+
// so promoting before the bind would silently no-op (never actually modal).
|
|
134
|
+
// The guard covers same-flush teardown: if the component unmounts before
|
|
135
|
+
// the tick resolves, bind:this has nulled dialogEl and onDestroy has
|
|
136
|
+
// already run — a lock taken now could never be released.
|
|
137
|
+
tick().then(() => {
|
|
138
|
+
if (dialogEl) releaseScrollLock = showDialogModal(dialogEl, panelEl);
|
|
139
|
+
});
|
|
131
140
|
}
|
|
132
141
|
});
|
|
133
142
|
|
|
@@ -137,7 +146,11 @@
|
|
|
137
146
|
});
|
|
138
147
|
|
|
139
148
|
onDestroy(() => {
|
|
140
|
-
|
|
149
|
+
// Safety net for destroy-while-open, where no outro runs. Releasing is
|
|
150
|
+
// idempotent and scoped to this instance's own lock, so a regular close
|
|
151
|
+
// (already released in handleOutroEnd) or a never-opened instance make
|
|
152
|
+
// this a no-op — it can never free another overlay's lock.
|
|
153
|
+
releaseScrollLock?.();
|
|
141
154
|
});
|
|
142
155
|
</script>
|
|
143
156
|
|
|
@@ -1,106 +1,67 @@
|
|
|
1
1
|
import { type SlotNames, type VariantProps } from '../../utils/variants.js';
|
|
2
|
-
export declare const dialogVariants: (props?:
|
|
3
|
-
size
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
md: {
|
|
8
|
-
panel: string;
|
|
9
|
-
};
|
|
10
|
-
lg: {
|
|
11
|
-
panel: string;
|
|
12
|
-
};
|
|
13
|
-
xl: {
|
|
14
|
-
panel: string;
|
|
15
|
-
};
|
|
16
|
-
full: {
|
|
17
|
-
panel: string[];
|
|
18
|
-
};
|
|
19
|
-
fullscreen: {
|
|
20
|
-
panel: string[];
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
placement: {
|
|
24
|
-
center: {
|
|
25
|
-
dialog: string;
|
|
26
|
-
};
|
|
27
|
-
top: {
|
|
28
|
-
dialog: string;
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
intent: {
|
|
32
|
-
neutral: {};
|
|
33
|
-
primary: {};
|
|
34
|
-
secondary: {};
|
|
35
|
-
success: {};
|
|
36
|
-
warning: {};
|
|
37
|
-
danger: {};
|
|
38
|
-
};
|
|
39
|
-
}> | undefined) => {
|
|
2
|
+
export declare const dialogVariants: ((props?: {
|
|
3
|
+
size?: "sm" | "md" | "lg" | "xl" | "full" | "fullscreen" | undefined;
|
|
4
|
+
placement?: "top" | "center" | undefined;
|
|
5
|
+
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
6
|
+
} | undefined) => {
|
|
40
7
|
dialog: (props?: ({
|
|
41
8
|
size?: "sm" | "md" | "lg" | "xl" | "full" | "fullscreen" | undefined;
|
|
42
9
|
placement?: "top" | "center" | undefined;
|
|
43
10
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
44
11
|
} & {
|
|
45
|
-
class?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
46
|
-
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
12
|
+
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
47
13
|
}) | undefined) => string;
|
|
48
14
|
backdrop: (props?: ({
|
|
49
15
|
size?: "sm" | "md" | "lg" | "xl" | "full" | "fullscreen" | undefined;
|
|
50
16
|
placement?: "top" | "center" | undefined;
|
|
51
17
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
52
18
|
} & {
|
|
53
|
-
class?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
54
|
-
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
19
|
+
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
55
20
|
}) | undefined) => string;
|
|
56
21
|
panel: (props?: ({
|
|
57
22
|
size?: "sm" | "md" | "lg" | "xl" | "full" | "fullscreen" | undefined;
|
|
58
23
|
placement?: "top" | "center" | undefined;
|
|
59
24
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
60
25
|
} & {
|
|
61
|
-
class?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
62
|
-
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
26
|
+
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
63
27
|
}) | undefined) => string;
|
|
64
28
|
content: (props?: ({
|
|
65
29
|
size?: "sm" | "md" | "lg" | "xl" | "full" | "fullscreen" | undefined;
|
|
66
30
|
placement?: "top" | "center" | undefined;
|
|
67
31
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
68
32
|
} & {
|
|
69
|
-
class?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
70
|
-
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
33
|
+
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
71
34
|
}) | undefined) => string;
|
|
72
35
|
header: (props?: ({
|
|
73
36
|
size?: "sm" | "md" | "lg" | "xl" | "full" | "fullscreen" | undefined;
|
|
74
37
|
placement?: "top" | "center" | undefined;
|
|
75
38
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
76
39
|
} & {
|
|
77
|
-
class?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
78
|
-
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
40
|
+
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
79
41
|
}) | undefined) => string;
|
|
80
42
|
title: (props?: ({
|
|
81
43
|
size?: "sm" | "md" | "lg" | "xl" | "full" | "fullscreen" | undefined;
|
|
82
44
|
placement?: "top" | "center" | undefined;
|
|
83
45
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
84
46
|
} & {
|
|
85
|
-
class?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
86
|
-
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
47
|
+
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
87
48
|
}) | undefined) => string;
|
|
88
49
|
body: (props?: ({
|
|
89
50
|
size?: "sm" | "md" | "lg" | "xl" | "full" | "fullscreen" | undefined;
|
|
90
51
|
placement?: "top" | "center" | undefined;
|
|
91
52
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
92
53
|
} & {
|
|
93
|
-
class?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
94
|
-
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
54
|
+
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
95
55
|
}) | undefined) => string;
|
|
96
56
|
footer: (props?: ({
|
|
97
57
|
size?: "sm" | "md" | "lg" | "xl" | "full" | "fullscreen" | undefined;
|
|
98
58
|
placement?: "top" | "center" | undefined;
|
|
99
59
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
100
60
|
} & {
|
|
101
|
-
class?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
102
|
-
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
61
|
+
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
103
62
|
}) | undefined) => string;
|
|
63
|
+
}) & {
|
|
64
|
+
readonly config: import("../../utils/variants.js").TVConfig;
|
|
104
65
|
};
|
|
105
66
|
export type DialogVariants = VariantProps<typeof dialogVariants>;
|
|
106
67
|
/** Slot names derived from the `tv()` config above — single source of truth for `slotClasses`. */
|
|
@@ -3,14 +3,9 @@
|
|
|
3
3
|
import { getBlocksConfig, resolveSlotClasses } from '../../provider';
|
|
4
4
|
import { resolveIcon } from '../../icons';
|
|
5
5
|
import CloseIconDefault from '../../icons/CloseIcon.svelte';
|
|
6
|
-
import { onDestroy } from 'svelte';
|
|
6
|
+
import { onDestroy, tick } from 'svelte';
|
|
7
7
|
import { fade, fly } from 'svelte/transition';
|
|
8
|
-
import {
|
|
9
|
-
trapFocus,
|
|
10
|
-
showDialogModal,
|
|
11
|
-
closeDialogModal,
|
|
12
|
-
unlockBodyScroll
|
|
13
|
-
} from '../../utils/overlay';
|
|
8
|
+
import { trapFocus, showDialogModal, closeDialogModal } from '../../utils/overlay';
|
|
14
9
|
import { overlayStack, getOverlayMotion } from '../../utils';
|
|
15
10
|
import Button from '../Button/Button.svelte';
|
|
16
11
|
import type { DrawerProps } from './index';
|
|
@@ -41,6 +36,8 @@
|
|
|
41
36
|
...restProps
|
|
42
37
|
}: DrawerProps = $props();
|
|
43
38
|
|
|
39
|
+
// One-shot DEV sanity check on the initial close-path configuration.
|
|
40
|
+
// svelte-ignore state_referenced_locally
|
|
44
41
|
if (
|
|
45
42
|
import.meta.env?.DEV &&
|
|
46
43
|
hideCloseButton &&
|
|
@@ -59,9 +56,12 @@
|
|
|
59
56
|
let panelElement = $state<HTMLElement>();
|
|
60
57
|
let isVisible = $state(false);
|
|
61
58
|
let previouslyFocused: HTMLElement | null = null;
|
|
59
|
+
// Release for the body-scroll lock this instance holds while modal — set by
|
|
60
|
+
// showDialogModal, idempotent, so both teardown paths below may call it.
|
|
61
|
+
let releaseScrollLock: (() => void) | undefined;
|
|
62
62
|
|
|
63
63
|
const uid = $props.id();
|
|
64
|
-
const titleId = title ? `drawer-title-${uid}` : undefined;
|
|
64
|
+
const titleId = $derived(title ? `drawer-title-${uid}` : undefined);
|
|
65
65
|
const bodyId = `drawer-body-${uid}`;
|
|
66
66
|
const overlayId = `drawer-${uid}`;
|
|
67
67
|
|
|
@@ -120,7 +120,15 @@
|
|
|
120
120
|
if (open && !isVisible) {
|
|
121
121
|
isVisible = true;
|
|
122
122
|
previouslyFocused = document.activeElement as HTMLElement;
|
|
123
|
-
|
|
123
|
+
// Defer until the `{#if isVisible}` block has rendered so `bind:this` has
|
|
124
|
+
// assigned dialogElement/panelElement — showDialogModal captures the refs
|
|
125
|
+
// by value, so promoting before the bind would silently no-op (never modal).
|
|
126
|
+
// The guard covers same-flush teardown: if the component unmounts before
|
|
127
|
+
// the tick resolves, bind:this has nulled dialogElement and onDestroy has
|
|
128
|
+
// already run — a lock taken now could never be released.
|
|
129
|
+
tick().then(() => {
|
|
130
|
+
if (dialogElement) releaseScrollLock = showDialogModal(dialogElement, panelElement);
|
|
131
|
+
});
|
|
124
132
|
}
|
|
125
133
|
});
|
|
126
134
|
|
|
@@ -130,7 +138,11 @@
|
|
|
130
138
|
});
|
|
131
139
|
|
|
132
140
|
onDestroy(() => {
|
|
133
|
-
|
|
141
|
+
// Safety net for destroy-while-open, where no outro runs. Releasing is
|
|
142
|
+
// idempotent and scoped to this instance's own lock, so a regular close
|
|
143
|
+
// (already released in handleOutroEnd) or a never-opened instance make
|
|
144
|
+
// this a no-op — it can never free another overlay's lock.
|
|
145
|
+
releaseScrollLock?.();
|
|
134
146
|
});
|
|
135
147
|
|
|
136
148
|
function handleBackdropDirectClick() {
|
|
@@ -147,7 +159,8 @@
|
|
|
147
159
|
}
|
|
148
160
|
|
|
149
161
|
function handleOutroEnd() {
|
|
150
|
-
closeDialogModal(dialogElement, previouslyFocused);
|
|
162
|
+
closeDialogModal(dialogElement, previouslyFocused, releaseScrollLock);
|
|
163
|
+
releaseScrollLock = undefined;
|
|
151
164
|
isVisible = false;
|
|
152
165
|
previouslyFocused = null;
|
|
153
166
|
}
|
|
@@ -1,95 +1,60 @@
|
|
|
1
1
|
import { type SlotNames, type VariantProps } from '../../utils/variants.js';
|
|
2
|
-
export declare const drawerVariants: (props?:
|
|
3
|
-
placement
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
};
|
|
8
|
-
right: {
|
|
9
|
-
dialog: string;
|
|
10
|
-
panel: string;
|
|
11
|
-
};
|
|
12
|
-
top: {
|
|
13
|
-
dialog: string;
|
|
14
|
-
panel: string;
|
|
15
|
-
};
|
|
16
|
-
bottom: {
|
|
17
|
-
dialog: string;
|
|
18
|
-
panel: string;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
size: {
|
|
22
|
-
sm: {};
|
|
23
|
-
md: {};
|
|
24
|
-
lg: {};
|
|
25
|
-
xl: {};
|
|
26
|
-
full: {};
|
|
27
|
-
};
|
|
28
|
-
intent: {
|
|
29
|
-
neutral: {};
|
|
30
|
-
primary: {};
|
|
31
|
-
secondary: {};
|
|
32
|
-
success: {};
|
|
33
|
-
warning: {};
|
|
34
|
-
danger: {};
|
|
35
|
-
};
|
|
36
|
-
}> | undefined) => {
|
|
2
|
+
export declare const drawerVariants: ((props?: {
|
|
3
|
+
placement?: "top" | "right" | "bottom" | "left" | undefined;
|
|
4
|
+
size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
5
|
+
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
6
|
+
} | undefined) => {
|
|
37
7
|
dialog: (props?: ({
|
|
38
8
|
placement?: "top" | "right" | "bottom" | "left" | undefined;
|
|
39
9
|
size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
40
10
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
41
11
|
} & {
|
|
42
|
-
class?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
43
|
-
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
12
|
+
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
44
13
|
}) | undefined) => string;
|
|
45
14
|
backdrop: (props?: ({
|
|
46
15
|
placement?: "top" | "right" | "bottom" | "left" | undefined;
|
|
47
16
|
size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
48
17
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
49
18
|
} & {
|
|
50
|
-
class?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
51
|
-
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
19
|
+
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
52
20
|
}) | undefined) => string;
|
|
53
21
|
panel: (props?: ({
|
|
54
22
|
placement?: "top" | "right" | "bottom" | "left" | undefined;
|
|
55
23
|
size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
56
24
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
57
25
|
} & {
|
|
58
|
-
class?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
59
|
-
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
26
|
+
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
60
27
|
}) | undefined) => string;
|
|
61
28
|
header: (props?: ({
|
|
62
29
|
placement?: "top" | "right" | "bottom" | "left" | undefined;
|
|
63
30
|
size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
64
31
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
65
32
|
} & {
|
|
66
|
-
class?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
67
|
-
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
33
|
+
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
68
34
|
}) | undefined) => string;
|
|
69
35
|
title: (props?: ({
|
|
70
36
|
placement?: "top" | "right" | "bottom" | "left" | undefined;
|
|
71
37
|
size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
72
38
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
73
39
|
} & {
|
|
74
|
-
class?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
75
|
-
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
40
|
+
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
76
41
|
}) | undefined) => string;
|
|
77
42
|
body: (props?: ({
|
|
78
43
|
placement?: "top" | "right" | "bottom" | "left" | undefined;
|
|
79
44
|
size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
80
45
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
81
46
|
} & {
|
|
82
|
-
class?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
83
|
-
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
47
|
+
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
84
48
|
}) | undefined) => string;
|
|
85
49
|
footer: (props?: ({
|
|
86
50
|
placement?: "top" | "right" | "bottom" | "left" | undefined;
|
|
87
51
|
size?: "sm" | "md" | "lg" | "xl" | "full" | undefined;
|
|
88
52
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | undefined;
|
|
89
53
|
} & {
|
|
90
|
-
class?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
91
|
-
className?: string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | (string | false | /*elided*/ any | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined)[] | null | undefined;
|
|
54
|
+
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
92
55
|
}) | undefined) => string;
|
|
56
|
+
}) & {
|
|
57
|
+
readonly config: import("../../utils/variants.js").TVConfig;
|
|
93
58
|
};
|
|
94
59
|
export type DrawerVariants = VariantProps<typeof drawerVariants>;
|
|
95
60
|
/** Slot names derived from the `tv()` config above — single source of truth for `slotClasses`. */
|