@nuykon/basecoat-svelte 0.0.0-stage → 1.0.2

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.
Files changed (205) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/Accordion.svelte +59 -0
  3. package/dist/Accordion.svelte.d.ts +13 -0
  4. package/dist/AccordionRoot.svelte +20 -0
  5. package/dist/AccordionRoot.svelte.d.ts +8 -0
  6. package/dist/Alert.svelte +33 -0
  7. package/dist/Alert.svelte.d.ts +13 -0
  8. package/dist/AlertDescription.svelte +33 -0
  9. package/dist/AlertDescription.svelte.d.ts +13 -0
  10. package/dist/AlertDialog.svelte +7 -0
  11. package/dist/AlertDialog.svelte.d.ts +17 -0
  12. package/dist/AlertDialogRoot.svelte +20 -0
  13. package/dist/AlertDialogRoot.svelte.d.ts +8 -0
  14. package/dist/AlertTitle.svelte +33 -0
  15. package/dist/AlertTitle.svelte.d.ts +13 -0
  16. package/dist/Avatar.svelte +33 -0
  17. package/dist/Avatar.svelte.d.ts +13 -0
  18. package/dist/AvatarFallback.svelte +33 -0
  19. package/dist/AvatarFallback.svelte.d.ts +13 -0
  20. package/dist/AvatarImage.svelte +31 -0
  21. package/dist/AvatarImage.svelte.d.ts +13 -0
  22. package/dist/Badge.svelte +33 -0
  23. package/dist/Badge.svelte.d.ts +13 -0
  24. package/dist/Breadcrumb.svelte +33 -0
  25. package/dist/Breadcrumb.svelte.d.ts +13 -0
  26. package/dist/BreadcrumbItem.svelte +33 -0
  27. package/dist/BreadcrumbItem.svelte.d.ts +13 -0
  28. package/dist/BreadcrumbLink.svelte +33 -0
  29. package/dist/BreadcrumbLink.svelte.d.ts +13 -0
  30. package/dist/BreadcrumbList.svelte +33 -0
  31. package/dist/BreadcrumbList.svelte.d.ts +13 -0
  32. package/dist/BreadcrumbSeparator.svelte +33 -0
  33. package/dist/BreadcrumbSeparator.svelte.d.ts +13 -0
  34. package/dist/Button.svelte +33 -0
  35. package/dist/Button.svelte.d.ts +13 -0
  36. package/dist/ButtonGroup.svelte +33 -0
  37. package/dist/ButtonGroup.svelte.d.ts +13 -0
  38. package/dist/Card.svelte +33 -0
  39. package/dist/Card.svelte.d.ts +13 -0
  40. package/dist/CardAction.svelte +33 -0
  41. package/dist/CardAction.svelte.d.ts +13 -0
  42. package/dist/CardContent.svelte +33 -0
  43. package/dist/CardContent.svelte.d.ts +13 -0
  44. package/dist/CardDescription.svelte +33 -0
  45. package/dist/CardDescription.svelte.d.ts +13 -0
  46. package/dist/CardFooter.svelte +33 -0
  47. package/dist/CardFooter.svelte.d.ts +13 -0
  48. package/dist/CardHeader.svelte +33 -0
  49. package/dist/CardHeader.svelte.d.ts +13 -0
  50. package/dist/CardTitle.svelte +33 -0
  51. package/dist/CardTitle.svelte.d.ts +13 -0
  52. package/dist/Chart.svelte +39 -0
  53. package/dist/Chart.svelte.d.ts +9 -0
  54. package/dist/ChartRoot.svelte +9 -0
  55. package/dist/ChartRoot.svelte.d.ts +4 -0
  56. package/dist/Checkbox.svelte +43 -0
  57. package/dist/Checkbox.svelte.d.ts +10 -0
  58. package/dist/Collapsible.svelte +36 -0
  59. package/dist/Collapsible.svelte.d.ts +11 -0
  60. package/dist/Combobox.svelte +7 -0
  61. package/dist/Combobox.svelte.d.ts +17 -0
  62. package/dist/ComboboxRoot.svelte +20 -0
  63. package/dist/ComboboxRoot.svelte.d.ts +8 -0
  64. package/dist/Command.svelte +79 -0
  65. package/dist/Command.svelte.d.ts +11 -0
  66. package/dist/CommandRoot.svelte +20 -0
  67. package/dist/CommandRoot.svelte.d.ts +8 -0
  68. package/dist/Dialog.svelte +104 -0
  69. package/dist/Dialog.svelte.d.ts +20 -0
  70. package/dist/DialogContent.svelte +33 -0
  71. package/dist/DialogContent.svelte.d.ts +13 -0
  72. package/dist/DialogDescription.svelte +33 -0
  73. package/dist/DialogDescription.svelte.d.ts +13 -0
  74. package/dist/DialogFooter.svelte +33 -0
  75. package/dist/DialogFooter.svelte.d.ts +13 -0
  76. package/dist/DialogHeader.svelte +33 -0
  77. package/dist/DialogHeader.svelte.d.ts +13 -0
  78. package/dist/DialogRoot.svelte +20 -0
  79. package/dist/DialogRoot.svelte.d.ts +8 -0
  80. package/dist/DialogTitle.svelte +33 -0
  81. package/dist/DialogTitle.svelte.d.ts +13 -0
  82. package/dist/Drawer.svelte +7 -0
  83. package/dist/Drawer.svelte.d.ts +17 -0
  84. package/dist/DrawerRoot.svelte +20 -0
  85. package/dist/DrawerRoot.svelte.d.ts +8 -0
  86. package/dist/DropdownMenu.svelte +133 -0
  87. package/dist/DropdownMenu.svelte.d.ts +15 -0
  88. package/dist/DropdownMenuRoot.svelte +20 -0
  89. package/dist/DropdownMenuRoot.svelte.d.ts +8 -0
  90. package/dist/Empty.svelte +33 -0
  91. package/dist/Empty.svelte.d.ts +13 -0
  92. package/dist/EmptyContent.svelte +33 -0
  93. package/dist/EmptyContent.svelte.d.ts +13 -0
  94. package/dist/EmptyDescription.svelte +33 -0
  95. package/dist/EmptyDescription.svelte.d.ts +13 -0
  96. package/dist/EmptyHeader.svelte +33 -0
  97. package/dist/EmptyHeader.svelte.d.ts +13 -0
  98. package/dist/EmptyTitle.svelte +33 -0
  99. package/dist/EmptyTitle.svelte.d.ts +13 -0
  100. package/dist/Field.svelte +33 -0
  101. package/dist/Field.svelte.d.ts +13 -0
  102. package/dist/FieldDescription.svelte +33 -0
  103. package/dist/FieldDescription.svelte.d.ts +13 -0
  104. package/dist/FieldError.svelte +33 -0
  105. package/dist/FieldError.svelte.d.ts +13 -0
  106. package/dist/FieldLabel.svelte +33 -0
  107. package/dist/FieldLabel.svelte.d.ts +13 -0
  108. package/dist/Input.svelte +31 -0
  109. package/dist/Input.svelte.d.ts +13 -0
  110. package/dist/InputGroup.svelte +33 -0
  111. package/dist/InputGroup.svelte.d.ts +13 -0
  112. package/dist/InputGroupAddon.svelte +33 -0
  113. package/dist/InputGroupAddon.svelte.d.ts +13 -0
  114. package/dist/Item.svelte +33 -0
  115. package/dist/Item.svelte.d.ts +13 -0
  116. package/dist/ItemActions.svelte +33 -0
  117. package/dist/ItemActions.svelte.d.ts +13 -0
  118. package/dist/ItemContent.svelte +33 -0
  119. package/dist/ItemContent.svelte.d.ts +13 -0
  120. package/dist/ItemDescription.svelte +33 -0
  121. package/dist/ItemDescription.svelte.d.ts +13 -0
  122. package/dist/ItemTitle.svelte +33 -0
  123. package/dist/ItemTitle.svelte.d.ts +13 -0
  124. package/dist/Kbd.svelte +33 -0
  125. package/dist/Kbd.svelte.d.ts +13 -0
  126. package/dist/Label.svelte +33 -0
  127. package/dist/Label.svelte.d.ts +13 -0
  128. package/dist/NativeSelect.svelte +33 -0
  129. package/dist/NativeSelect.svelte.d.ts +13 -0
  130. package/dist/Pagination.svelte +37 -0
  131. package/dist/Pagination.svelte.d.ts +9 -0
  132. package/dist/Popover.svelte +80 -0
  133. package/dist/Popover.svelte.d.ts +15 -0
  134. package/dist/PopoverRoot.svelte +20 -0
  135. package/dist/PopoverRoot.svelte.d.ts +8 -0
  136. package/dist/Progress.svelte +20 -0
  137. package/dist/Progress.svelte.d.ts +8 -0
  138. package/dist/RadioGroup.svelte +49 -0
  139. package/dist/RadioGroup.svelte.d.ts +14 -0
  140. package/dist/ScrollArea.svelte +33 -0
  141. package/dist/ScrollArea.svelte.d.ts +13 -0
  142. package/dist/Select.svelte +236 -0
  143. package/dist/Select.svelte.d.ts +20 -0
  144. package/dist/SelectRoot.svelte +20 -0
  145. package/dist/SelectRoot.svelte.d.ts +8 -0
  146. package/dist/Separator.svelte +31 -0
  147. package/dist/Separator.svelte.d.ts +13 -0
  148. package/dist/Sidebar.svelte +35 -0
  149. package/dist/Sidebar.svelte.d.ts +11 -0
  150. package/dist/SidebarContent.svelte +33 -0
  151. package/dist/SidebarContent.svelte.d.ts +13 -0
  152. package/dist/SidebarFooter.svelte +33 -0
  153. package/dist/SidebarFooter.svelte.d.ts +13 -0
  154. package/dist/SidebarGroup.svelte +33 -0
  155. package/dist/SidebarGroup.svelte.d.ts +13 -0
  156. package/dist/SidebarHeader.svelte +33 -0
  157. package/dist/SidebarHeader.svelte.d.ts +13 -0
  158. package/dist/SidebarItem.svelte +33 -0
  159. package/dist/SidebarItem.svelte.d.ts +13 -0
  160. package/dist/SidebarRoot.svelte +20 -0
  161. package/dist/SidebarRoot.svelte.d.ts +8 -0
  162. package/dist/Skeleton.svelte +33 -0
  163. package/dist/Skeleton.svelte.d.ts +13 -0
  164. package/dist/Slider.svelte +47 -0
  165. package/dist/Slider.svelte.d.ts +12 -0
  166. package/dist/Spinner.svelte +33 -0
  167. package/dist/Spinner.svelte.d.ts +13 -0
  168. package/dist/Switch.svelte +7 -0
  169. package/dist/Switch.svelte.d.ts +8 -0
  170. package/dist/Table.svelte +33 -0
  171. package/dist/Table.svelte.d.ts +13 -0
  172. package/dist/TableBody.svelte +33 -0
  173. package/dist/TableBody.svelte.d.ts +13 -0
  174. package/dist/TableCaption.svelte +33 -0
  175. package/dist/TableCaption.svelte.d.ts +13 -0
  176. package/dist/TableCell.svelte +33 -0
  177. package/dist/TableCell.svelte.d.ts +13 -0
  178. package/dist/TableFooter.svelte +33 -0
  179. package/dist/TableFooter.svelte.d.ts +13 -0
  180. package/dist/TableHead.svelte +33 -0
  181. package/dist/TableHead.svelte.d.ts +13 -0
  182. package/dist/TableHeader.svelte +33 -0
  183. package/dist/TableHeader.svelte.d.ts +13 -0
  184. package/dist/TableRow.svelte +33 -0
  185. package/dist/TableRow.svelte.d.ts +13 -0
  186. package/dist/Tabs.svelte +79 -0
  187. package/dist/Tabs.svelte.d.ts +17 -0
  188. package/dist/TabsRoot.svelte +20 -0
  189. package/dist/TabsRoot.svelte.d.ts +8 -0
  190. package/dist/Textarea.svelte +33 -0
  191. package/dist/Textarea.svelte.d.ts +13 -0
  192. package/dist/ThemeSwitcher.svelte +31 -0
  193. package/dist/ThemeSwitcher.svelte.d.ts +9 -0
  194. package/dist/Toast.svelte +52 -0
  195. package/dist/Toast.svelte.d.ts +8 -0
  196. package/dist/Toaster.svelte +23 -0
  197. package/dist/Toaster.svelte.d.ts +9 -0
  198. package/dist/Tooltip.svelte +54 -0
  199. package/dist/Tooltip.svelte.d.ts +11 -0
  200. package/dist/core.d.ts +145 -0
  201. package/dist/core.js +832 -0
  202. package/dist/index.d.ts +99 -0
  203. package/dist/index.js +98 -0
  204. package/package.json +46 -4
  205. package/README.md +0 -3
@@ -0,0 +1,36 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ let {
4
+ open = $bindable(undefined),
5
+ defaultOpen = false,
6
+ onOpenChange,
7
+ trigger = 'Toggle',
8
+ children,
9
+ }: {
10
+ open?: boolean;
11
+ defaultOpen?: boolean;
12
+ onOpenChange?: (open: boolean) => void;
13
+ trigger?: string;
14
+ children?: Snippet;
15
+ } = $props();
16
+ const id = $props.id();
17
+ let internal = $state((() => defaultOpen)()),
18
+ current = $derived(open === undefined ? internal : open);
19
+ function set(next: boolean) {
20
+ if (open === undefined) internal = next;
21
+ else if (!onOpenChange) open = next;
22
+ onOpenChange?.(next);
23
+ }
24
+ </script>
25
+
26
+ <div class="collapsible">
27
+ <button
28
+ type="button"
29
+ class="btn"
30
+ data-variant="ghost"
31
+ aria-expanded={current}
32
+ aria-controls={id}
33
+ onclick={() => set(!current)}>{trigger}</button
34
+ >
35
+ <div {id} hidden={!current}>{@render children?.()}</div>
36
+ </div>
@@ -0,0 +1,11 @@
1
+ import type { Snippet } from 'svelte';
2
+ type $$ComponentProps = {
3
+ open?: boolean;
4
+ defaultOpen?: boolean;
5
+ onOpenChange?: (open: boolean) => void;
6
+ trigger?: string;
7
+ children?: Snippet;
8
+ };
9
+ declare const Collapsible: import("svelte").Component<$$ComponentProps, {}, "open">;
10
+ type Collapsible = ReturnType<typeof Collapsible>;
11
+ export default Collapsible;
@@ -0,0 +1,7 @@
1
+ <script lang="ts">
2
+ import Select from './Select.svelte';
3
+ import type { ComponentProps } from 'svelte';
4
+ let { value = $bindable(undefined), ...rest }: ComponentProps<typeof Select> = $props();
5
+ </script>
6
+
7
+ <Select {...rest} bind:value searchable />
@@ -0,0 +1,17 @@
1
+ declare const Combobox: import("svelte").Component<{
2
+ options: readonly import("./core.js").Option[];
3
+ value?: string | string[];
4
+ defaultValue?: string | string[];
5
+ onValueChange?: (value: string | string[]) => void;
6
+ multiple?: boolean;
7
+ disabled?: boolean;
8
+ required?: boolean;
9
+ name?: string;
10
+ label: string;
11
+ placeholder?: string;
12
+ searchable?: boolean;
13
+ searchPlaceholder?: string;
14
+ emptyLabel?: string;
15
+ }, {}, "value">;
16
+ type Combobox = ReturnType<typeof Combobox>;
17
+ export default Combobox;
@@ -0,0 +1,20 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import type { SvelteHTMLElements } from 'svelte/elements';
4
+ import { attachWidget, cx } from './core.js';
5
+ let {
6
+ children,
7
+ class: className,
8
+ ...rest
9
+ }: SvelteHTMLElements['div'] & { children?: Snippet } = $props();
10
+ let element: HTMLElement;
11
+ $effect(() => attachWidget(element));
12
+ </script>
13
+
14
+ <div
15
+ {...rest}
16
+ bind:this={element}
17
+ class={cx('combobox', typeof className === 'string' ? className : undefined)}
18
+ >
19
+ {@render children?.()}
20
+ </div>
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { SvelteHTMLElements } from 'svelte/elements';
3
+ type $$ComponentProps = SvelteHTMLElements['div'] & {
4
+ children?: Snippet;
5
+ };
6
+ declare const ComboboxRoot: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type ComboboxRoot = ReturnType<typeof ComboboxRoot>;
8
+ export default ComboboxRoot;
@@ -0,0 +1,79 @@
1
+ <script lang="ts">
2
+ import { nextIndex, type MenuItem } from './core.js';
3
+ let {
4
+ items,
5
+ onSelect,
6
+ label = 'Commands',
7
+ placeholder = 'Search commands…',
8
+ emptyLabel = 'No results',
9
+ }: {
10
+ items: readonly MenuItem[];
11
+ onSelect?: (value: string) => void;
12
+ label?: string;
13
+ placeholder?: string;
14
+ emptyLabel?: string;
15
+ } = $props();
16
+ const id = $props.id();
17
+ let query = $state(''),
18
+ active = $state(0),
19
+ visible = $derived(
20
+ items.filter(
21
+ (item) =>
22
+ !item.separator && item.label.toLocaleLowerCase().includes(query.toLocaleLowerCase()),
23
+ ),
24
+ );
25
+ function choose(index: number) {
26
+ const item = visible[index];
27
+ if (item && !item.disabled) {
28
+ item.onSelect?.();
29
+ onSelect?.(item.value);
30
+ }
31
+ }
32
+ </script>
33
+
34
+ <div class="command">
35
+ <header>
36
+ <input
37
+ class="input"
38
+ role="combobox"
39
+ aria-label={label}
40
+ aria-autocomplete="list"
41
+ aria-expanded="true"
42
+ aria-controls={id}
43
+ aria-activedescendant={visible[active] ? `${id}-${active}` : undefined}
44
+ value={query}
45
+ {placeholder}
46
+ oninput={(event) => {
47
+ query = event.currentTarget.value;
48
+ active = 0;
49
+ }}
50
+ onkeydown={(event) => {
51
+ if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {
52
+ event.preventDefault();
53
+ active = nextIndex(visible, active, event.key);
54
+ } else if (event.key === 'Enter') {
55
+ event.preventDefault();
56
+ choose(active);
57
+ }
58
+ }}
59
+ />
60
+ </header>
61
+ <div {id} role="listbox" aria-label={label}>
62
+ {#each visible as item, index (item.value)}
63
+ <!-- svelte-ignore a11y_click_events_have_key_events a11y_no_noninteractive_element_interactions -->
64
+ <div
65
+ id={`${id}-${index}`}
66
+ role="option"
67
+ tabindex="-1"
68
+ aria-selected={active === index}
69
+ aria-disabled={item.disabled || undefined}
70
+ class:active={active === index}
71
+ onpointermove={() => {
72
+ if (!item.disabled) active = index;
73
+ }}
74
+ onclick={() => choose(index)}
75
+ >
76
+ {item.label}
77
+ </div>{/each}{#if !visible.length}<p role="status">{emptyLabel}</p>{/if}
78
+ </div>
79
+ </div>
@@ -0,0 +1,11 @@
1
+ import { type MenuItem } from './core.js';
2
+ type $$ComponentProps = {
3
+ items: readonly MenuItem[];
4
+ onSelect?: (value: string) => void;
5
+ label?: string;
6
+ placeholder?: string;
7
+ emptyLabel?: string;
8
+ };
9
+ declare const Command: import("svelte").Component<$$ComponentProps, {}, "">;
10
+ type Command = ReturnType<typeof Command>;
11
+ export default Command;
@@ -0,0 +1,20 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import type { SvelteHTMLElements } from 'svelte/elements';
4
+ import { attachWidget, cx } from './core.js';
5
+ let {
6
+ children,
7
+ class: className,
8
+ ...rest
9
+ }: SvelteHTMLElements['div'] & { children?: Snippet } = $props();
10
+ let element: HTMLElement;
11
+ $effect(() => attachWidget(element));
12
+ </script>
13
+
14
+ <div
15
+ {...rest}
16
+ bind:this={element}
17
+ class={cx('command', typeof className === 'string' ? className : undefined)}
18
+ >
19
+ {@render children?.()}
20
+ </div>
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { SvelteHTMLElements } from 'svelte/elements';
3
+ type $$ComponentProps = SvelteHTMLElements['div'] & {
4
+ children?: Snippet;
5
+ };
6
+ declare const CommandRoot: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type CommandRoot = ReturnType<typeof CommandRoot>;
8
+ export default CommandRoot;
@@ -0,0 +1,104 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import { tick } from 'svelte';
4
+ import { lockScroll, type Side } from './core.js';
5
+ type Props = {
6
+ open?: boolean;
7
+ defaultOpen?: boolean;
8
+ onOpenChange?: (open: boolean) => void;
9
+ trigger?: string;
10
+ title: string;
11
+ description?: string;
12
+ children?: Snippet;
13
+ footer?: Snippet;
14
+ closeOnOutside?: boolean;
15
+ closeOnEscape?: boolean;
16
+ closeLabel?: string;
17
+ kind?: 'dialog' | 'alert-dialog' | 'drawer';
18
+ side?: Side;
19
+ };
20
+ let {
21
+ open = $bindable(undefined),
22
+ defaultOpen = false,
23
+ onOpenChange,
24
+ trigger,
25
+ title,
26
+ description,
27
+ children,
28
+ footer,
29
+ closeOnOutside = true,
30
+ closeOnEscape = true,
31
+ closeLabel = 'Close',
32
+ kind = 'dialog',
33
+ side = 'right',
34
+ }: Props = $props();
35
+ const id = $props.id();
36
+ let internal = $state((() => defaultOpen)()),
37
+ current = $derived(open === undefined ? internal : open),
38
+ element: HTMLDialogElement;
39
+ function set(next: boolean) {
40
+ if (open === undefined) internal = next;
41
+ else if (!onOpenChange) open = next;
42
+ onOpenChange?.(next);
43
+ }
44
+ $effect(() => {
45
+ if (!current) {
46
+ if (element.open) element.close();
47
+ return;
48
+ }
49
+ if (!element.open) element.showModal();
50
+ const unlock = lockScroll(element.ownerDocument);
51
+ return () => {
52
+ unlock();
53
+ if (element.open) element.close();
54
+ };
55
+ });
56
+ </script>
57
+
58
+ {#if trigger !== undefined}<button
59
+ type="button"
60
+ class="btn"
61
+ data-variant="outline"
62
+ onclick={() => set(true)}>{trigger}</button
63
+ >{/if}
64
+ <!-- svelte-ignore a11y_click_events_have_key_events a11y_no_noninteractive_element_interactions -->
65
+ <dialog
66
+ bind:this={element}
67
+ class={kind}
68
+ role={kind === 'alert-dialog' ? 'alertdialog' : undefined}
69
+ data-side={kind === 'drawer' ? side : undefined}
70
+ aria-labelledby={`${id}-title`}
71
+ aria-describedby={description ? `${id}-description` : undefined}
72
+ oncancel={(event) => {
73
+ event.preventDefault();
74
+ if (closeOnEscape) set(false);
75
+ }}
76
+ onclose={() => {
77
+ if (current) {
78
+ set(false);
79
+ void tick().then(() => {
80
+ if (current && element.isConnected && !element.open) element.showModal();
81
+ });
82
+ }
83
+ }}
84
+ onclick={(event) => {
85
+ if (closeOnOutside && kind !== 'alert-dialog' && event.target === event.currentTarget)
86
+ set(false);
87
+ }}
88
+ >
89
+ <div class={kind === 'drawer' ? 'bc-drawer-surface' : 'bc-dialog-surface'}>
90
+ <header>
91
+ <h2 id={`${id}-title`}>{title}</h2>
92
+ {#if description}<p id={`${id}-description`}>{description}</p>{/if}
93
+ </header>
94
+ <section>{@render children?.()}</section>
95
+ {#if footer}<footer>{@render footer()}</footer>{/if}{#if kind !== 'alert-dialog'}<button
96
+ type="button"
97
+ class="btn"
98
+ data-variant="ghost"
99
+ data-size="icon-sm"
100
+ aria-label={closeLabel}
101
+ onclick={() => set(false)}>×</button
102
+ >{/if}
103
+ </div>
104
+ </dialog>
@@ -0,0 +1,20 @@
1
+ import type { Snippet } from 'svelte';
2
+ import { type Side } from './core.js';
3
+ type Props = {
4
+ open?: boolean;
5
+ defaultOpen?: boolean;
6
+ onOpenChange?: (open: boolean) => void;
7
+ trigger?: string;
8
+ title: string;
9
+ description?: string;
10
+ children?: Snippet;
11
+ footer?: Snippet;
12
+ closeOnOutside?: boolean;
13
+ closeOnEscape?: boolean;
14
+ closeLabel?: string;
15
+ kind?: 'dialog' | 'alert-dialog' | 'drawer';
16
+ side?: Side;
17
+ };
18
+ declare const Dialog: import("svelte").Component<Props, {}, "open">;
19
+ type Dialog = ReturnType<typeof Dialog>;
20
+ export default Dialog;
@@ -0,0 +1,33 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import type { SvelteHTMLElements } from 'svelte/elements';
4
+ import { cx, type Variant, type Size } from './core.js';
5
+ type Props = Omit<SvelteHTMLElements['section'], 'children' | 'size'> & {
6
+ children?: Snippet;
7
+ variant?: Variant;
8
+ size?: Size;
9
+ as?: keyof HTMLElementTagNameMap;
10
+ element?: HTMLElement | null;
11
+ };
12
+ let {
13
+ children,
14
+ variant,
15
+ size,
16
+ as = 'section',
17
+ element = $bindable(null),
18
+ class: className,
19
+ ...rest
20
+ }: Props = $props();
21
+ </script>
22
+
23
+ <svelte:element
24
+ this={as}
25
+ {...{}}
26
+ bind:this={element}
27
+ class={cx('', typeof className === 'string' ? className : undefined)}
28
+ data-variant={variant}
29
+ data-size={size}
30
+ {...rest}
31
+ >
32
+ {@render children?.()}
33
+ </svelte:element>
@@ -0,0 +1,13 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { SvelteHTMLElements } from 'svelte/elements';
3
+ import { type Variant, type Size } from './core.js';
4
+ type Props = Omit<SvelteHTMLElements['section'], 'children' | 'size'> & {
5
+ children?: Snippet;
6
+ variant?: Variant;
7
+ size?: Size;
8
+ as?: keyof HTMLElementTagNameMap;
9
+ element?: HTMLElement | null;
10
+ };
11
+ declare const DialogContent: import("svelte").Component<Props, {}, "element">;
12
+ type DialogContent = ReturnType<typeof DialogContent>;
13
+ export default DialogContent;
@@ -0,0 +1,33 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import type { SvelteHTMLElements } from 'svelte/elements';
4
+ import { cx, type Variant, type Size } from './core.js';
5
+ type Props = Omit<SvelteHTMLElements['p'], 'children' | 'size'> & {
6
+ children?: Snippet;
7
+ variant?: Variant;
8
+ size?: Size;
9
+ as?: keyof HTMLElementTagNameMap;
10
+ element?: HTMLElement | null;
11
+ };
12
+ let {
13
+ children,
14
+ variant,
15
+ size,
16
+ as = 'p',
17
+ element = $bindable(null),
18
+ class: className,
19
+ ...rest
20
+ }: Props = $props();
21
+ </script>
22
+
23
+ <svelte:element
24
+ this={as}
25
+ {...{}}
26
+ bind:this={element}
27
+ class={cx('', typeof className === 'string' ? className : undefined)}
28
+ data-variant={variant}
29
+ data-size={size}
30
+ {...rest}
31
+ >
32
+ {@render children?.()}
33
+ </svelte:element>
@@ -0,0 +1,13 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { SvelteHTMLElements } from 'svelte/elements';
3
+ import { type Variant, type Size } from './core.js';
4
+ type Props = Omit<SvelteHTMLElements['p'], 'children' | 'size'> & {
5
+ children?: Snippet;
6
+ variant?: Variant;
7
+ size?: Size;
8
+ as?: keyof HTMLElementTagNameMap;
9
+ element?: HTMLElement | null;
10
+ };
11
+ declare const DialogDescription: import("svelte").Component<Props, {}, "element">;
12
+ type DialogDescription = ReturnType<typeof DialogDescription>;
13
+ export default DialogDescription;
@@ -0,0 +1,33 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import type { SvelteHTMLElements } from 'svelte/elements';
4
+ import { cx, type Variant, type Size } from './core.js';
5
+ type Props = Omit<SvelteHTMLElements['footer'], 'children' | 'size'> & {
6
+ children?: Snippet;
7
+ variant?: Variant;
8
+ size?: Size;
9
+ as?: keyof HTMLElementTagNameMap;
10
+ element?: HTMLElement | null;
11
+ };
12
+ let {
13
+ children,
14
+ variant,
15
+ size,
16
+ as = 'footer',
17
+ element = $bindable(null),
18
+ class: className,
19
+ ...rest
20
+ }: Props = $props();
21
+ </script>
22
+
23
+ <svelte:element
24
+ this={as}
25
+ {...{}}
26
+ bind:this={element}
27
+ class={cx('', typeof className === 'string' ? className : undefined)}
28
+ data-variant={variant}
29
+ data-size={size}
30
+ {...rest}
31
+ >
32
+ {@render children?.()}
33
+ </svelte:element>
@@ -0,0 +1,13 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { SvelteHTMLElements } from 'svelte/elements';
3
+ import { type Variant, type Size } from './core.js';
4
+ type Props = Omit<SvelteHTMLElements['footer'], 'children' | 'size'> & {
5
+ children?: Snippet;
6
+ variant?: Variant;
7
+ size?: Size;
8
+ as?: keyof HTMLElementTagNameMap;
9
+ element?: HTMLElement | null;
10
+ };
11
+ declare const DialogFooter: import("svelte").Component<Props, {}, "element">;
12
+ type DialogFooter = ReturnType<typeof DialogFooter>;
13
+ export default DialogFooter;
@@ -0,0 +1,33 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import type { SvelteHTMLElements } from 'svelte/elements';
4
+ import { cx, type Variant, type Size } from './core.js';
5
+ type Props = Omit<SvelteHTMLElements['header'], 'children' | 'size'> & {
6
+ children?: Snippet;
7
+ variant?: Variant;
8
+ size?: Size;
9
+ as?: keyof HTMLElementTagNameMap;
10
+ element?: HTMLElement | null;
11
+ };
12
+ let {
13
+ children,
14
+ variant,
15
+ size,
16
+ as = 'header',
17
+ element = $bindable(null),
18
+ class: className,
19
+ ...rest
20
+ }: Props = $props();
21
+ </script>
22
+
23
+ <svelte:element
24
+ this={as}
25
+ {...{}}
26
+ bind:this={element}
27
+ class={cx('', typeof className === 'string' ? className : undefined)}
28
+ data-variant={variant}
29
+ data-size={size}
30
+ {...rest}
31
+ >
32
+ {@render children?.()}
33
+ </svelte:element>
@@ -0,0 +1,13 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { SvelteHTMLElements } from 'svelte/elements';
3
+ import { type Variant, type Size } from './core.js';
4
+ type Props = Omit<SvelteHTMLElements['header'], 'children' | 'size'> & {
5
+ children?: Snippet;
6
+ variant?: Variant;
7
+ size?: Size;
8
+ as?: keyof HTMLElementTagNameMap;
9
+ element?: HTMLElement | null;
10
+ };
11
+ declare const DialogHeader: import("svelte").Component<Props, {}, "element">;
12
+ type DialogHeader = ReturnType<typeof DialogHeader>;
13
+ export default DialogHeader;
@@ -0,0 +1,20 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import type { SvelteHTMLElements } from 'svelte/elements';
4
+ import { attachWidget, cx } from './core.js';
5
+ let {
6
+ children,
7
+ class: className,
8
+ ...rest
9
+ }: SvelteHTMLElements['dialog'] & { children?: Snippet } = $props();
10
+ let element: HTMLElement;
11
+ $effect(() => attachWidget(element));
12
+ </script>
13
+
14
+ <dialog
15
+ {...rest}
16
+ bind:this={element}
17
+ class={cx('dialog', typeof className === 'string' ? className : undefined)}
18
+ >
19
+ {@render children?.()}
20
+ </dialog>
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { SvelteHTMLElements } from 'svelte/elements';
3
+ type $$ComponentProps = SvelteHTMLElements['dialog'] & {
4
+ children?: Snippet;
5
+ };
6
+ declare const DialogRoot: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type DialogRoot = ReturnType<typeof DialogRoot>;
8
+ export default DialogRoot;
@@ -0,0 +1,33 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import type { SvelteHTMLElements } from 'svelte/elements';
4
+ import { cx, type Variant, type Size } from './core.js';
5
+ type Props = Omit<SvelteHTMLElements['h2'], 'children' | 'size'> & {
6
+ children?: Snippet;
7
+ variant?: Variant;
8
+ size?: Size;
9
+ as?: keyof HTMLElementTagNameMap;
10
+ element?: HTMLElement | null;
11
+ };
12
+ let {
13
+ children,
14
+ variant,
15
+ size,
16
+ as = 'h2',
17
+ element = $bindable(null),
18
+ class: className,
19
+ ...rest
20
+ }: Props = $props();
21
+ </script>
22
+
23
+ <svelte:element
24
+ this={as}
25
+ {...{}}
26
+ bind:this={element}
27
+ class={cx('', typeof className === 'string' ? className : undefined)}
28
+ data-variant={variant}
29
+ data-size={size}
30
+ {...rest}
31
+ >
32
+ {@render children?.()}
33
+ </svelte:element>
@@ -0,0 +1,13 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { SvelteHTMLElements } from 'svelte/elements';
3
+ import { type Variant, type Size } from './core.js';
4
+ type Props = Omit<SvelteHTMLElements['h2'], 'children' | 'size'> & {
5
+ children?: Snippet;
6
+ variant?: Variant;
7
+ size?: Size;
8
+ as?: keyof HTMLElementTagNameMap;
9
+ element?: HTMLElement | null;
10
+ };
11
+ declare const DialogTitle: import("svelte").Component<Props, {}, "element">;
12
+ type DialogTitle = ReturnType<typeof DialogTitle>;
13
+ export default DialogTitle;
@@ -0,0 +1,7 @@
1
+ <script lang="ts">
2
+ import Dialog from './Dialog.svelte';
3
+ import type { ComponentProps } from 'svelte';
4
+ let { open = $bindable(undefined), ...rest }: ComponentProps<typeof Dialog> = $props();
5
+ </script>
6
+
7
+ <Dialog {...rest} bind:open kind="drawer" />
@@ -0,0 +1,17 @@
1
+ declare const Drawer: import("svelte").Component<{
2
+ open?: boolean;
3
+ defaultOpen?: boolean;
4
+ onOpenChange?: (open: boolean) => void;
5
+ trigger?: string;
6
+ title: string;
7
+ description?: string;
8
+ children?: import("svelte").Snippet;
9
+ footer?: import("svelte").Snippet;
10
+ closeOnOutside?: boolean;
11
+ closeOnEscape?: boolean;
12
+ closeLabel?: string;
13
+ kind?: "dialog" | "alert-dialog" | "drawer";
14
+ side?: import("./core.js").Side;
15
+ }, {}, "open">;
16
+ type Drawer = ReturnType<typeof Drawer>;
17
+ export default Drawer;