@sveltia/ui 0.16.0 → 0.17.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.
Files changed (156) hide show
  1. package/package/components/alert/alert.svelte +22 -7
  2. package/package/components/alert/alert.svelte.d.ts +32 -28
  3. package/package/components/button/button-group.svelte +16 -6
  4. package/package/components/button/button-group.svelte.d.ts +23 -23
  5. package/package/components/button/button.svelte +41 -136
  6. package/package/components/button/button.svelte.d.ts +5 -146
  7. package/package/components/button/select-button-group.svelte +31 -37
  8. package/package/components/button/select-button-group.svelte.d.ts +76 -34
  9. package/package/components/button/select-button.svelte +19 -62
  10. package/package/components/button/select-button.svelte.d.ts +17 -73
  11. package/package/components/button/split-button.svelte +37 -47
  12. package/package/components/button/split-button.svelte.d.ts +40 -47
  13. package/package/components/calendar/calendar.svelte +80 -55
  14. package/package/components/calendar/calendar.svelte.d.ts +13 -10
  15. package/package/components/checkbox/checkbox-group.svelte +23 -20
  16. package/package/components/checkbox/checkbox-group.svelte.d.ts +49 -27
  17. package/package/components/checkbox/checkbox.svelte +57 -67
  18. package/package/components/checkbox/checkbox.svelte.d.ts +67 -55
  19. package/package/components/dialog/alert-dialog.svelte +9 -36
  20. package/package/components/dialog/alert-dialog.svelte.d.ts +5 -44
  21. package/package/components/dialog/confirmation-dialog.svelte +9 -41
  22. package/package/components/dialog/confirmation-dialog.svelte.d.ts +5 -46
  23. package/package/components/dialog/dialog.svelte +60 -105
  24. package/package/components/dialog/dialog.svelte.d.ts +5 -102
  25. package/package/components/dialog/prompt-dialog.svelte +32 -61
  26. package/package/components/dialog/prompt-dialog.svelte.d.ts +38 -62
  27. package/package/components/disclosure/disclosure.svelte +39 -34
  28. package/package/components/disclosure/disclosure.svelte.d.ts +74 -56
  29. package/package/components/divider/divider.svelte +18 -14
  30. package/package/components/divider/divider.svelte.d.ts +31 -10
  31. package/package/components/divider/spacer.svelte +13 -8
  32. package/package/components/divider/spacer.svelte.d.ts +20 -9
  33. package/package/components/drawer/drawer.svelte +63 -76
  34. package/package/components/drawer/drawer.svelte.d.ts +102 -84
  35. package/package/components/grid/grid-body.svelte +15 -10
  36. package/package/components/grid/grid-body.svelte.d.ts +30 -24
  37. package/package/components/grid/grid-cell.svelte +16 -6
  38. package/package/components/grid/grid-cell.svelte.d.ts +23 -23
  39. package/package/components/grid/grid-col-header.svelte +16 -6
  40. package/package/components/grid/grid-col-header.svelte.d.ts +23 -23
  41. package/package/components/grid/grid-foot.svelte +16 -6
  42. package/package/components/grid/grid-foot.svelte.d.ts +23 -23
  43. package/package/components/grid/grid-head.svelte +16 -6
  44. package/package/components/grid/grid-head.svelte.d.ts +23 -23
  45. package/package/components/grid/grid-row-header.svelte +16 -6
  46. package/package/components/grid/grid-row-header.svelte.d.ts +23 -23
  47. package/package/components/grid/grid-row.svelte +19 -23
  48. package/package/components/grid/grid-row.svelte.d.ts +48 -38
  49. package/package/components/grid/grid.svelte +28 -25
  50. package/package/components/grid/grid.svelte.d.ts +56 -32
  51. package/package/components/icon/icon.svelte +14 -9
  52. package/package/components/icon/icon.svelte.d.ts +20 -9
  53. package/package/components/listbox/listbox.svelte +46 -52
  54. package/package/components/listbox/listbox.svelte.d.ts +102 -40
  55. package/package/components/listbox/option-group.svelte +23 -19
  56. package/package/components/listbox/option-group.svelte.d.ts +49 -27
  57. package/package/components/listbox/option.svelte +44 -57
  58. package/package/components/listbox/option.svelte.d.ts +54 -84
  59. package/package/components/menu/menu-button.svelte +42 -63
  60. package/package/components/menu/menu-button.svelte.d.ts +18 -72
  61. package/package/components/menu/menu-item-checkbox.svelte +29 -41
  62. package/package/components/menu/menu-item-checkbox.svelte.d.ts +5 -44
  63. package/package/components/menu/menu-item-group.svelte +22 -19
  64. package/package/components/menu/menu-item-group.svelte.d.ts +41 -27
  65. package/package/components/menu/menu-item-radio.svelte +29 -41
  66. package/package/components/menu/menu-item-radio.svelte.d.ts +5 -44
  67. package/package/components/menu/menu-item.svelte +66 -75
  68. package/package/components/menu/menu-item.svelte.d.ts +5 -80
  69. package/package/components/menu/menu.svelte +27 -22
  70. package/package/components/menu/menu.svelte.d.ts +50 -30
  71. package/package/components/radio/radio-group.svelte +38 -42
  72. package/package/components/radio/radio-group.svelte.d.ts +85 -35
  73. package/package/components/radio/radio.svelte +45 -48
  74. package/package/components/radio/radio.svelte.d.ts +96 -42
  75. package/package/components/select/combobox.svelte +76 -101
  76. package/package/components/select/combobox.svelte.d.ts +5 -56
  77. package/package/components/select/select-tags.svelte +48 -59
  78. package/package/components/select/select-tags.svelte.d.ts +109 -28
  79. package/package/components/select/select.svelte +18 -37
  80. package/package/components/select/select.svelte.d.ts +5 -40
  81. package/package/components/slider/slider.svelte +71 -68
  82. package/package/components/slider/slider.svelte.d.ts +142 -31
  83. package/package/components/switch/switch.svelte +36 -46
  84. package/package/components/switch/switch.svelte.d.ts +83 -37
  85. package/package/components/table/table-body.svelte +15 -11
  86. package/package/components/table/table-body.svelte.d.ts +30 -24
  87. package/package/components/table/table-cell.svelte +16 -6
  88. package/package/components/table/table-cell.svelte.d.ts +23 -23
  89. package/package/components/table/table-col-header.svelte +16 -6
  90. package/package/components/table/table-col-header.svelte.d.ts +23 -23
  91. package/package/components/table/table-foot.svelte +16 -6
  92. package/package/components/table/table-foot.svelte.d.ts +23 -23
  93. package/package/components/table/table-head.svelte +16 -6
  94. package/package/components/table/table-head.svelte.d.ts +23 -23
  95. package/package/components/table/table-row-header.svelte +16 -6
  96. package/package/components/table/table-row-header.svelte.d.ts +23 -23
  97. package/package/components/table/table-row.svelte +16 -6
  98. package/package/components/table/table-row.svelte.d.ts +23 -23
  99. package/package/components/table/table.svelte +16 -6
  100. package/package/components/table/table.svelte.d.ts +23 -23
  101. package/package/components/tabs/tab-box.svelte +16 -9
  102. package/package/components/tabs/tab-box.svelte.d.ts +32 -22
  103. package/package/components/tabs/tab-list.svelte +36 -35
  104. package/package/components/tabs/tab-list.svelte.d.ts +65 -33
  105. package/package/components/tabs/tab-panel.svelte +16 -6
  106. package/package/components/tabs/tab-panel.svelte.d.ts +23 -23
  107. package/package/components/tabs/tab-panels.svelte +16 -6
  108. package/package/components/tabs/tab-panels.svelte.d.ts +23 -21
  109. package/package/components/tabs/tab.svelte +28 -25
  110. package/package/components/tabs/tab.svelte.d.ts +17 -63
  111. package/package/components/text-editor/lexical-root.svelte +38 -32
  112. package/package/components/text-editor/lexical-root.svelte.d.ts +74 -13
  113. package/package/components/text-editor/text-editor.svelte +63 -79
  114. package/package/components/text-editor/text-editor.svelte.d.ts +97 -20
  115. package/package/components/text-editor/toolbar/editor-toolbar.svelte +41 -24
  116. package/package/components/text-editor/toolbar/editor-toolbar.svelte.d.ts +32 -7
  117. package/package/components/text-editor/toolbar/format-text-button.svelte +15 -5
  118. package/package/components/text-editor/toolbar/format-text-button.svelte.d.ts +13 -6
  119. package/package/components/text-editor/toolbar/insert-link-button.svelte +18 -16
  120. package/package/components/text-editor/toolbar/insert-link-button.svelte.d.ts +4 -8
  121. package/package/components/text-editor/toolbar/toggle-block-menu-item.svelte +19 -7
  122. package/package/components/text-editor/toolbar/toggle-block-menu-item.svelte.d.ts +13 -6
  123. package/package/components/text-field/number-input.svelte +63 -81
  124. package/package/components/text-field/number-input.svelte.d.ts +48 -55
  125. package/package/components/text-field/password-input.svelte +38 -57
  126. package/package/components/text-field/password-input.svelte.d.ts +16 -45
  127. package/package/components/text-field/search-bar.svelte +45 -62
  128. package/package/components/text-field/search-bar.svelte.d.ts +25 -66
  129. package/package/components/text-field/text-area.svelte +38 -54
  130. package/package/components/text-field/text-area.svelte.d.ts +100 -35
  131. package/package/components/text-field/text-input.svelte +28 -86
  132. package/package/components/text-field/text-input.svelte.d.ts +4 -78
  133. package/package/components/toast/toast.svelte +36 -30
  134. package/package/components/toast/toast.svelte.d.ts +50 -28
  135. package/package/components/toolbar/toolbar.svelte +25 -25
  136. package/package/components/toolbar/toolbar.svelte.d.ts +57 -29
  137. package/package/components/util/app-shell.svelte +22 -10
  138. package/package/components/util/app-shell.svelte.d.ts +25 -29
  139. package/package/components/util/group.svelte +20 -15
  140. package/package/components/util/group.svelte.d.ts +40 -26
  141. package/package/components/util/modal.svelte +89 -105
  142. package/package/components/util/modal.svelte.d.ts +6 -71
  143. package/package/components/util/placeholder.svelte +21 -0
  144. package/package/components/util/{portal.svelte.d.ts → placeholder.svelte.d.ts} +17 -25
  145. package/package/components/util/popup.svelte +65 -62
  146. package/package/components/util/popup.svelte.d.ts +89 -77
  147. package/package/services/{group.js → group.svelte.js} +11 -12
  148. package/package/services/{popup.js → popup.svelte.js} +6 -5
  149. package/package/typedefs.d.ts +545 -0
  150. package/package/typedefs.js +202 -0
  151. package/package.json +12 -19
  152. package/package/components/util/portal.svelte +0 -36
  153. /package/package/services/{events.d.ts → events.svelte.d.ts} +0 -0
  154. /package/package/services/{events.js → events.svelte.js} +0 -0
  155. /package/package/services/{group.d.ts → group.svelte.d.ts} +0 -0
  156. /package/package/services/{popup.d.ts → popup.svelte.d.ts} +0 -0
@@ -1,91 +1,17 @@
1
1
  export default TextInput;
2
- type TextInput = SvelteComponent<{
3
- [x: string]: any;
4
- class?: string | undefined;
5
- name?: string | undefined;
6
- disabled?: boolean | undefined;
7
- invalid?: boolean | undefined;
8
- required?: boolean | undefined;
9
- value?: any;
10
- role?: "textbox" | "searchbox" | "combobox" | "spinbutton" | undefined;
11
- hidden?: boolean | undefined;
12
- element?: HTMLInputElement | undefined;
13
- readonly?: boolean | undefined;
14
- keyShortcuts?: string | undefined;
15
- flex?: boolean | undefined;
16
- showInlineLabel?: boolean | undefined;
17
- inputmode?: "search" | "text" | "email" | "tel" | "numeric" | "decimal" | "url" | undefined;
18
- }, {
19
- keydown: KeyboardEvent;
20
- keyup: KeyboardEvent;
21
- keypress: KeyboardEvent;
22
- input: Event;
23
- change: Event;
24
- } & {
2
+ type TextInput = SvelteComponent<TextInputProps & KeyboardEventHandlers & MouseEventHandlers & FocusEventHandlers & DragEventHandlers & InputEventHandlers & Record<string, any>, {
25
3
  [evt: string]: CustomEvent<any>;
26
4
  }, {}> & {
27
- $$bindings?: string | undefined;
28
- } & {
29
- element: HTMLInputElement | undefined;
30
- class: string;
31
- flex: boolean;
32
- role: "textbox" | "searchbox" | "combobox" | "spinbutton";
33
- hidden: boolean | undefined;
34
- disabled: boolean;
35
- readonly: boolean;
36
- required: boolean;
37
- invalid: boolean;
38
- keyShortcuts: string | undefined;
39
- name: string | undefined;
40
- value: any;
41
- showInlineLabel: boolean;
42
- inputmode: "search" | "text" | "email" | "tel" | "numeric" | "decimal" | "url";
5
+ $$bindings?: "value" | "element" | undefined;
43
6
  };
44
7
  /**
45
8
  * A generic, single-line text field. The equivalent of the HTML `<input type="text">` element.
46
9
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/text
47
10
  * @see https://w3c.github.io/aria/#textbox
48
11
  */
49
- declare const TextInput: $$__sveltets_2_IsomorphicComponent<{
50
- [x: string]: any;
51
- class?: string | undefined;
52
- name?: string | undefined;
53
- disabled?: boolean | undefined;
54
- invalid?: boolean | undefined;
55
- required?: boolean | undefined;
56
- value?: any;
57
- role?: "textbox" | "searchbox" | "combobox" | "spinbutton" | undefined;
58
- hidden?: boolean | undefined;
59
- element?: HTMLInputElement | undefined;
60
- readonly?: boolean | undefined;
61
- keyShortcuts?: string | undefined;
62
- flex?: boolean | undefined;
63
- showInlineLabel?: boolean | undefined;
64
- inputmode?: "search" | "text" | "email" | "tel" | "numeric" | "decimal" | "url" | undefined;
65
- }, {
66
- keydown: KeyboardEvent;
67
- keyup: KeyboardEvent;
68
- keypress: KeyboardEvent;
69
- input: Event;
70
- change: Event;
71
- } & {
12
+ declare const TextInput: $$__sveltets_2_IsomorphicComponent<import("../../typedefs").TextInputProps & import("../../typedefs").KeyboardEventHandlers & import("../../typedefs").MouseEventHandlers & import("../../typedefs").FocusEventHandlers & import("../../typedefs").DragEventHandlers & import("../../typedefs").InputEventHandlers & Record<string, any>, {
72
13
  [evt: string]: CustomEvent<any>;
73
- }, {}, {
74
- element: HTMLInputElement | undefined;
75
- class: string;
76
- flex: boolean;
77
- role: "textbox" | "searchbox" | "combobox" | "spinbutton";
78
- hidden: boolean | undefined;
79
- disabled: boolean;
80
- readonly: boolean;
81
- required: boolean;
82
- invalid: boolean;
83
- keyShortcuts: string | undefined;
84
- name: string | undefined;
85
- value: any;
86
- showInlineLabel: boolean;
87
- inputmode: "search" | "text" | "email" | "tel" | "numeric" | "decimal" | "url";
88
- }, string>;
14
+ }, {}, {}, "value" | "element">;
89
15
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
90
16
  new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
91
17
  $$bindings?: Bindings;
@@ -5,46 +5,49 @@
5
5
  @see https://developer.chrome.com/blog/introducing-popover-api/
6
6
  -->
7
7
  <script>
8
- import { onMount } from 'svelte';
8
+ import { onMount, untrack } from 'svelte';
9
9
 
10
10
  /**
11
- * The toast ID. If updated, the timer that hides the toast will be reset, meaning the same toast
12
- * can be displayed for a longer period of time.
13
- * @type {number | undefined}
11
+ * @typedef {object} Props
12
+ * @property {string | number | undefined} [id] - The toast ID. If updated, the timer that hides
13
+ * the toast will be reset, meaning the same toast can be displayed for a longer period of time.
14
+ * @property {boolean} [show] - Whether to show the toast.
15
+ * @property {number} [duration] - Duration to automatically hide the toast. Use `0` to hide it
16
+ * manually from the consumer.
17
+ * @property {import('../../typedefs').ToastPosition} [position] - Position of the toast.
18
+ * @property {import('svelte').Snippet} [children] - Primary slot content.
14
19
  */
15
- export let id = undefined;
16
- /**
17
- * Whether to show the toast.
18
- * @type {boolean}
19
- */
20
- export let show = false;
21
- /**
22
- * Duration to automatically hide the toast. Use `0` to hide it manually from the consumer.
23
- * @type {number}
24
- */
25
- export let duration = 5000;
20
+
26
21
  /**
27
- * Position of the toast.
28
- * @type {import('../../typedefs').ToastPosition}
22
+ * @type {Props & Record<string, any>}
29
23
  */
30
- export let position = 'bottom-right';
24
+ let {
25
+ /* eslint-disable prefer-const */
26
+ show = $bindable(false),
27
+ id = undefined,
28
+ duration = 5000,
29
+ position = 'bottom-right',
30
+ children,
31
+ ...restProps
32
+ /* eslint-enable prefer-const */
33
+ } = $props();
31
34
 
32
35
  /**
33
36
  * @type {HTMLElement | undefined}
34
37
  */
35
- let popoverBase;
38
+ let popoverBase = $state();
36
39
  /**
37
40
  * @type {HTMLElement | undefined}
38
41
  */
39
- let popover;
42
+ let popover = $state();
40
43
  /**
41
44
  * @type {HTMLElement | undefined}
42
45
  */
43
- let toast;
46
+ let toast = $state();
44
47
  /**
45
48
  * @type {number}
46
49
  */
47
- let timerId = 0;
50
+ let timerId = $state(0);
48
51
 
49
52
  onMount(() => {
50
53
  popover =
@@ -72,30 +75,33 @@
72
75
  };
73
76
  });
74
77
 
75
- $: {
78
+ $effect(() => {
76
79
  if (popover && toast) {
77
80
  popover.appendChild(toast);
78
81
  }
79
- }
82
+ });
80
83
 
81
- $: {
84
+ $effect(() => {
82
85
  void id;
83
86
  void show;
84
87
  void duration;
85
- globalThis.clearTimeout(timerId);
88
+
89
+ untrack(() => {
90
+ globalThis.clearTimeout(timerId);
91
+ });
86
92
 
87
93
  if (show && duration) {
88
94
  timerId = globalThis.setTimeout(() => {
89
95
  show = false;
90
96
  }, duration);
91
97
  }
92
- }
98
+ });
93
99
  </script>
94
100
 
95
- <div role="none" class="sui toast-base" bind:this={popoverBase}></div>
101
+ <div bind:this={popoverBase} role="none" class="sui toast-base"></div>
96
102
 
97
- <div class="sui toast {position}" aria-hidden={!show} bind:this={toast} {...$$restProps}>
98
- <slot />
103
+ <div {...restProps} bind:this={toast} class="sui toast {position}" aria-hidden={!show}>
104
+ {@render children?.()}
99
105
  </div>
100
106
 
101
107
  <style>.toast-base {
@@ -1,42 +1,64 @@
1
1
  export default Toast;
2
- type Toast = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
- [x: string]: any;
4
- id?: number | undefined;
5
- position?: ToastPosition | undefined;
6
- show?: boolean | undefined;
7
- duration?: number | undefined;
8
- }, {
9
- default: {};
10
- }>, {
2
+ type Toast = SvelteComponent<Props & Record<string, any>, {
11
3
  [evt: string]: CustomEvent<any>;
12
- }, {
13
- default: {};
14
- }> & {
15
- $$bindings?: string | undefined;
4
+ }, {}> & {
5
+ $$bindings?: "show" | undefined;
16
6
  };
17
7
  /**
18
8
  * Toast/snackbar notification. Use the Popover API if possible to acquire a non-modal top layer.
19
9
  * @see https://w3c.github.io/aria/#alert
20
10
  * @see https://developer.chrome.com/blog/introducing-popover-api/
21
11
  */
22
- declare const Toast: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
23
- [x: string]: any;
24
- id?: number | undefined;
25
- position?: import("../../typedefs").ToastPosition | undefined;
12
+ declare const Toast: $$__sveltets_2_IsomorphicComponent<{
13
+ /**
14
+ * - The toast ID. If updated, the timer that hides
15
+ * the toast will be reset, meaning the same toast can be displayed for a longer period of time.
16
+ */
17
+ id?: string | number | undefined;
18
+ /**
19
+ * - Whether to show the toast.
20
+ */
26
21
  show?: boolean | undefined;
22
+ /**
23
+ * - Duration to automatically hide the toast. Use `0` to hide it
24
+ * manually from the consumer.
25
+ */
27
26
  duration?: number | undefined;
28
- }, {
29
- default: {};
30
- }>, {
27
+ /**
28
+ * - Position of the toast.
29
+ */
30
+ position?: import("../../typedefs").ToastPosition | undefined;
31
+ /**
32
+ * - Primary slot content.
33
+ */
34
+ children?: import("svelte").Snippet<[]> | undefined;
35
+ } & Record<string, any>, {
31
36
  [evt: string]: CustomEvent<any>;
32
- }, {
33
- default: {};
34
- }, {}, string>;
35
- type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
36
- default: any;
37
- } ? Props extends Record<string, never> ? any : {
38
- children?: any;
39
- } : {});
37
+ }, {}, {}, "show">;
38
+ type Props = {
39
+ /**
40
+ * - The toast ID. If updated, the timer that hides
41
+ * the toast will be reset, meaning the same toast can be displayed for a longer period of time.
42
+ */
43
+ id?: string | number | undefined;
44
+ /**
45
+ * - Whether to show the toast.
46
+ */
47
+ show?: boolean | undefined;
48
+ /**
49
+ * - Duration to automatically hide the toast. Use `0` to hide it
50
+ * manually from the consumer.
51
+ */
52
+ duration?: number | undefined;
53
+ /**
54
+ * - Position of the toast.
55
+ */
56
+ position?: import("../../typedefs").ToastPosition | undefined;
57
+ /**
58
+ * - Primary slot content.
59
+ */
60
+ children?: import("svelte").Snippet<[]> | undefined;
61
+ };
40
62
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
41
63
  new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
42
64
  $$bindings?: Bindings;
@@ -6,44 +6,44 @@
6
6
  -->
7
7
  <script>
8
8
  /**
9
- * The `class` attribute on the wrapper element.
10
- * @type {string}
9
+ * @typedef {object} Props
10
+ * @property {string} [class] - The `class` attribute on the wrapper element.
11
+ * @property {boolean} [hidden] - Whether to hide the widget.
12
+ * @property {boolean} [disabled] - Whether to disable the widget. An alias of the `aria-disabled`
13
+ * attribute.
14
+ * @property {'horizontal' | 'vertical'} [orientation] - Orientation of the widget. An alias of
15
+ * the `aria-orientation` attribute.
16
+ * @property {'primary' | 'secondary' | undefined} [variant] - The style variant of the toolbar.
17
+ * @property {import('svelte').Snippet} [children] - Primary slot content.
11
18
  */
12
- let className = '';
13
- export { className as class };
14
- /**
15
- * Whether to hide the widget. An alias of the `aria-hidden` attribute.
16
- * @type {boolean | undefined}
17
- */
18
- export let hidden = undefined;
19
- /**
20
- * Whether to disable the widget. An alias of the `aria-disabled` attribute.
21
- * @type {boolean}
22
- */
23
- export let disabled = false;
24
- /**
25
- * Orientation of the widget. An alias of the `aria-orientation` attribute.
26
- * @type {'horizontal' | 'vertical'}
27
- */
28
- export let orientation = 'horizontal';
19
+
29
20
  /**
30
- * The style variant of the toolbar.
31
- * @type {'primary' | 'secondary' | undefined}
21
+ * @type {Props & Record<string, any>}
32
22
  */
33
- export let variant = undefined;
23
+ let {
24
+ /* eslint-disable prefer-const */
25
+ class: className,
26
+ hidden = false,
27
+ disabled = false,
28
+ orientation = 'horizontal',
29
+ variant = undefined,
30
+ children,
31
+ ...restProps
32
+ /* eslint-enable prefer-const */
33
+ } = $props();
34
34
  </script>
35
35
 
36
36
  <div
37
+ {...restProps}
37
38
  role="toolbar"
38
39
  class="sui toolbar {orientation} {variant ?? ''} {className}"
39
- hidden={hidden || undefined}
40
+ {hidden}
40
41
  aria-hidden={hidden}
41
42
  aria-disabled={disabled}
42
43
  aria-orientation={orientation}
43
- {...$$restProps}
44
44
  >
45
45
  <div role="none" class="inner" inert={disabled}>
46
- <slot />
46
+ {@render children?.()}
47
47
  </div>
48
48
  </div>
49
49
 
@@ -1,44 +1,72 @@
1
1
  export default Toolbar;
2
- type Toolbar = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
- [x: string]: any;
4
- class?: string | undefined;
5
- disabled?: boolean | undefined;
6
- hidden?: boolean | undefined;
7
- variant?: "primary" | "secondary" | undefined;
8
- orientation?: "vertical" | "horizontal" | undefined;
9
- }, {
10
- default: {};
11
- }>, {
2
+ type Toolbar = SvelteComponent<Props & Record<string, any>, {
12
3
  [evt: string]: CustomEvent<any>;
13
- }, {
14
- default: {};
15
- }> & {
16
- $$bindings?: string | undefined;
4
+ }, {}> & {
5
+ $$bindings?: "" | undefined;
17
6
  };
18
7
  /**
19
8
  * A toolbar layout that can contain `<Button>`, `<Select>` and other widgets.
20
9
  * @see https://w3c.github.io/aria/#toolbar
21
10
  * @see https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/
22
11
  */
23
- declare const Toolbar: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
24
- [x: string]: any;
12
+ declare const Toolbar: $$__sveltets_2_IsomorphicComponent<{
13
+ /**
14
+ * - The `class` attribute on the wrapper element.
15
+ */
25
16
  class?: string | undefined;
26
- disabled?: boolean | undefined;
17
+ /**
18
+ * - Whether to hide the widget.
19
+ */
27
20
  hidden?: boolean | undefined;
28
- variant?: "primary" | "secondary" | undefined;
21
+ /**
22
+ * - Whether to disable the widget. An alias of the `aria-disabled`
23
+ * attribute.
24
+ */
25
+ disabled?: boolean | undefined;
26
+ /**
27
+ * - Orientation of the widget. An alias of
28
+ * the `aria-orientation` attribute.
29
+ */
29
30
  orientation?: "vertical" | "horizontal" | undefined;
30
- }, {
31
- default: {};
32
- }>, {
31
+ /**
32
+ * - The style variant of the toolbar.
33
+ */
34
+ variant?: "primary" | "secondary" | undefined;
35
+ /**
36
+ * - Primary slot content.
37
+ */
38
+ children?: import("svelte").Snippet<[]> | undefined;
39
+ } & Record<string, any>, {
33
40
  [evt: string]: CustomEvent<any>;
34
- }, {
35
- default: {};
36
- }, {}, string>;
37
- type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
38
- default: any;
39
- } ? Props extends Record<string, never> ? any : {
40
- children?: any;
41
- } : {});
41
+ }, {}, {}, "">;
42
+ type Props = {
43
+ /**
44
+ * - The `class` attribute on the wrapper element.
45
+ */
46
+ class?: string | undefined;
47
+ /**
48
+ * - Whether to hide the widget.
49
+ */
50
+ hidden?: boolean | undefined;
51
+ /**
52
+ * - Whether to disable the widget. An alias of the `aria-disabled`
53
+ * attribute.
54
+ */
55
+ disabled?: boolean | undefined;
56
+ /**
57
+ * - Orientation of the widget. An alias of
58
+ * the `aria-orientation` attribute.
59
+ */
60
+ orientation?: "vertical" | "horizontal" | undefined;
61
+ /**
62
+ * - The style variant of the toolbar.
63
+ */
64
+ variant?: "primary" | "secondary" | undefined;
65
+ /**
66
+ * - Primary slot content.
67
+ */
68
+ children?: import("svelte").Snippet<[]> | undefined;
69
+ };
42
70
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
43
71
  new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
44
72
  $$bindings?: Bindings;
@@ -8,10 +8,22 @@
8
8
  import { onMount } from 'svelte';
9
9
 
10
10
  /**
11
- * Orientation of the app shell’s children.
12
- * @type {'horizontal' | 'vertical' | undefined}
11
+ * @typedef {object} Props
12
+ * @property {'horizontal' | 'vertical' | undefined} [orientation] - Orientation of the app
13
+ * shell’s children..
14
+ * @property {import('svelte').Snippet} [children] - Primary slot content.
13
15
  */
14
- export let orientation = undefined;
16
+
17
+ /**
18
+ * @type {Props & Record<string, any>}
19
+ */
20
+ let {
21
+ /* eslint-disable prefer-const */
22
+ orientation = 'horizontal',
23
+ children,
24
+ ...restProps
25
+ /* eslint-enable prefer-const */
26
+ } = $props();
15
27
 
16
28
  const stylesheets = [
17
29
  // https://fonts.google.com/share?selection.family=Merriweather%20Sans:ital,wght@0,300;0,600;1,300%7CNoto%20Sans%20Mono
@@ -22,7 +34,7 @@
22
34
  ];
23
35
 
24
36
  /** @type {HTMLElement | undefined} */
25
- let fontLoader;
37
+ let fontLoader = $state();
26
38
 
27
39
  onMount(() => {
28
40
  const mediaQuery = globalThis.matchMedia('(prefers-color-scheme: dark)');
@@ -62,18 +74,18 @@
62
74
  </svelte:head>
63
75
 
64
76
  <!-- Preload fonts, including the icons -->
65
- <div class="font-loader" aria-hidden="true" bind:this={fontLoader} style:opacity="0">
77
+ <div bind:this={fontLoader} class="font-loader" aria-hidden="true" style:opacity="0">
66
78
  Loading <strong>Sveltia</strong> <em>UI</em>
67
79
  <span role="none" class="material-symbols-outlined">favorite</span>
68
80
  </div>
69
81
 
70
82
  <div
83
+ {...restProps}
71
84
  role="none"
72
85
  class="sui app-shell {orientation ?? ''}"
73
- {...$$restProps}
74
- on:dragover|preventDefault
75
- on:drop|preventDefault
76
- on:contextmenu={(event) => {
86
+ ondragover={(event) => event.preventDefault()}
87
+ ondrop={(event) => event.preventDefault()}
88
+ oncontextmenu={(event) => {
77
89
  // Enable the native context menu only in the developer mode or on text fields
78
90
  if (
79
91
  !document.documentElement.matches('[data-env="dev"]') &&
@@ -83,7 +95,7 @@
83
95
  }
84
96
  }}
85
97
  >
86
- <slot />
98
+ {@render children?.()}
87
99
  </div>
88
100
 
89
101
  <style global>@import url("https://fonts.googleapis.com/css2?family=Merriweather+Sans:ital,wght@0,300;0,600;1,300;1,600&family=Noto+Sans+Mono&display=swap");
@@ -1,42 +1,38 @@
1
1
  export default AppShell;
2
- type AppShell = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
- [x: string]: any;
4
- orientation?: "vertical" | "horizontal" | undefined;
5
- }, {
6
- default: {};
7
- }>, {
8
- dragover: DragEvent;
9
- drop: DragEvent;
10
- } & {
2
+ type AppShell = SvelteComponent<Props & Record<string, any>, {
11
3
  [evt: string]: CustomEvent<any>;
12
- }, {
13
- default: {};
14
- }> & {
15
- $$bindings?: string | undefined;
4
+ }, {}> & {
5
+ $$bindings?: "" | undefined;
16
6
  };
17
7
  /**
18
8
  * Provide an application’s shell that makes the web app more like a native app. It also handles the
19
9
  * dark/light mode switching. This component has to be placed directly under `<body>` (or
20
10
  * `<div style="display:contents">` in a SvelteKit app).
21
11
  */
22
- declare const AppShell: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
23
- [x: string]: any;
12
+ declare const AppShell: $$__sveltets_2_IsomorphicComponent<{
13
+ /**
14
+ * - Orientation of the app
15
+ * shell’s children..
16
+ */
24
17
  orientation?: "horizontal" | "vertical" | undefined;
25
- }, {
26
- default: {};
27
- }>, {
28
- dragover: DragEvent;
29
- drop: DragEvent;
30
- } & {
18
+ /**
19
+ * - Primary slot content.
20
+ */
21
+ children?: import("svelte").Snippet<[]> | undefined;
22
+ } & Record<string, any>, {
31
23
  [evt: string]: CustomEvent<any>;
32
- }, {
33
- default: {};
34
- }, {}, string>;
35
- type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
36
- default: any;
37
- } ? Props extends Record<string, never> ? any : {
38
- children?: any;
39
- } : {});
24
+ }, {}, {}, "">;
25
+ type Props = {
26
+ /**
27
+ * - Orientation of the app
28
+ * shell’s children..
29
+ */
30
+ orientation?: "horizontal" | "vertical" | undefined;
31
+ /**
32
+ * - Primary slot content.
33
+ */
34
+ children?: import("svelte").Snippet<[]> | undefined;
35
+ };
40
36
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
41
37
  new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
42
38
  $$bindings?: Bindings;
@@ -5,33 +5,38 @@
5
5
  -->
6
6
  <script>
7
7
  /**
8
- * The `class` attribute on the wrapper element.
9
- * @type {string}
8
+ * @typedef {object} Props
9
+ * @property {string} [class] - The `class` attribute on the wrapper element.
10
+ * @property {boolean} [hidden] - Whether to hide the widget.
11
+ * @property {boolean} [disabled] - Whether to disable the widget. An alias of the `aria-disabled`
12
+ * attribute.
13
+ * @property {import('svelte').Snippet} [children] - Primary slot content.
10
14
  */
11
- let className = '';
12
- export { className as class };
13
- /**
14
- * Whether to hide the widget. An alias of the `aria-hidden` attribute.
15
- * @type {boolean | undefined}
16
- */
17
- export let hidden = undefined;
15
+
18
16
  /**
19
- * Whether to disable the widget. An alias of the `aria-disabled` attribute.
20
- * @type {boolean}
17
+ * @type {Props & Record<string, any>}
21
18
  */
22
- export let disabled = false;
19
+ let {
20
+ /* eslint-disable prefer-const */
21
+ class: className,
22
+ hidden = false,
23
+ disabled = false,
24
+ children,
25
+ ...restProps
26
+ /* eslint-enable prefer-const */
27
+ } = $props();
23
28
  </script>
24
29
 
25
30
  <div
31
+ {...restProps}
26
32
  role="group"
27
33
  class="sui group {className}"
28
- hidden={hidden || undefined}
34
+ {hidden}
29
35
  aria-hidden={hidden}
30
36
  aria-disabled={disabled}
31
- {...$$restProps}
32
37
  >
33
38
  <div role="none" class="inner" inert={disabled}>
34
- <slot />
39
+ {@render children?.()}
35
40
  </div>
36
41
  </div>
37
42