@sveltia/ui 0.16.0 → 0.17.0

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 +26 -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 +25 -22
  70. package/package/components/menu/menu.svelte.d.ts +50 -30
  71. package/package/components/radio/radio-group.svelte +36 -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 +30 -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 +11 -18
  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,26 +1,47 @@
1
1
  export default Divider;
2
- type Divider = SvelteComponent<{
3
- [x: string]: any;
4
- class?: string | undefined;
5
- hidden?: boolean | undefined;
6
- orientation?: "vertical" | "horizontal" | undefined;
7
- }, {
2
+ type Divider = SvelteComponent<Props & Record<string, any>, {
8
3
  [evt: string]: CustomEvent<any>;
9
4
  }, {}> & {
10
- $$bindings?: string | undefined;
5
+ $$bindings?: "" | undefined;
11
6
  };
12
7
  /**
13
8
  * A content divider with a visible vertical/horizontal line.
14
9
  * @see https://w3c.github.io/aria/#separator
15
10
  */
16
11
  declare const Divider: $$__sveltets_2_IsomorphicComponent<{
17
- [x: string]: any;
12
+ /**
13
+ * - The `class` attribute on the wrapper element.
14
+ */
18
15
  class?: string | undefined;
16
+ /**
17
+ * - Whether to hide the widget. An alias of the `aria-hidden`
18
+ * attribute.
19
+ */
19
20
  hidden?: boolean | undefined;
21
+ /**
22
+ * - Orientation of the widget. An alias of the
23
+ * `aria-orientation` attribute.
24
+ */
20
25
  orientation?: "vertical" | "horizontal" | undefined;
21
- }, {
26
+ } & Record<string, any>, {
22
27
  [evt: string]: CustomEvent<any>;
23
- }, {}, {}, string>;
28
+ }, {}, {}, "">;
29
+ type Props = {
30
+ /**
31
+ * - The `class` attribute on the wrapper element.
32
+ */
33
+ class?: string | undefined;
34
+ /**
35
+ * - Whether to hide the widget. An alias of the `aria-hidden`
36
+ * attribute.
37
+ */
38
+ hidden?: boolean | undefined;
39
+ /**
40
+ * - Orientation of the widget. An alias of the
41
+ * `aria-orientation` attribute.
42
+ */
43
+ orientation?: "vertical" | "horizontal" | undefined;
44
+ };
24
45
  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> {
25
46
  new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
26
47
  $$bindings?: Bindings;
@@ -4,19 +4,24 @@
4
4
  -->
5
5
  <script>
6
6
  /**
7
- * CSS class name on the wrapper element.
8
- * @type {string}
7
+ * @typedef {object} Props
8
+ * @property {string} [class] - The `class` attribute on the wrapper element.
9
+ * @property {boolean} [flex] - Whether to make the spacer flexible.
9
10
  */
10
- let className = '';
11
- export { className as class };
11
+
12
12
  /**
13
- * Whether to make the spacer flexible.
14
- * @type {boolean}
13
+ * @type {Props & Record<string, any>}
15
14
  */
16
- export let flex = false;
15
+ let {
16
+ /* eslint-disable prefer-const */
17
+ class: className,
18
+ flex = false,
19
+ ...restProps
20
+ /* eslint-enable prefer-const */
21
+ } = $props();
17
22
  </script>
18
23
 
19
- <div role="none" class="sui spacer {className}" class:flex {...$$restProps}></div>
24
+ <div {...restProps} role="none" class="sui spacer {className}" class:flex></div>
20
25
 
21
26
  <style>.spacer.flex {
22
27
  flex: auto;
@@ -1,21 +1,32 @@
1
1
  export default Spacer;
2
- type Spacer = SvelteComponent<{
3
- [x: string]: any;
4
- class?: string | undefined;
5
- flex?: boolean | undefined;
6
- }, {
2
+ type Spacer = SvelteComponent<Props & Record<string, any>, {
7
3
  [evt: string]: CustomEvent<any>;
8
4
  }, {}> & {
9
- $$bindings?: string | undefined;
5
+ $$bindings?: "" | undefined;
10
6
  };
11
7
  /** A content divider with no line. It can be flexible. */
12
8
  declare const Spacer: $$__sveltets_2_IsomorphicComponent<{
13
- [x: string]: any;
9
+ /**
10
+ * - The `class` attribute on the wrapper element.
11
+ */
14
12
  class?: string | undefined;
13
+ /**
14
+ * - Whether to make the spacer flexible.
15
+ */
15
16
  flex?: boolean | undefined;
16
- }, {
17
+ } & Record<string, any>, {
17
18
  [evt: string]: CustomEvent<any>;
18
- }, {}, {}, string>;
19
+ }, {}, {}, "">;
20
+ type Props = {
21
+ /**
22
+ * - The `class` attribute on the wrapper element.
23
+ */
24
+ class?: string | undefined;
25
+ /**
26
+ * - Whether to make the spacer flexible.
27
+ */
28
+ flex?: boolean | undefined;
29
+ };
19
30
  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> {
20
31
  new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
21
32
  $$bindings?: Bindings;
@@ -13,46 +13,41 @@
13
13
  import Modal from '../util/modal.svelte';
14
14
 
15
15
  /**
16
- * The `class` attribute on the content element.
17
- * @type {string}
18
- */
19
- let className = '';
20
- export { className as class };
21
- /**
22
- * Whether to open the drawer.
23
- * @type {boolean}
24
- */
25
- export let open = false;
26
- /**
27
- * Title text displayed on the header.
28
- * @type {string}
29
- */
30
- export let title = '';
31
- /**
32
- * Position of the drawer.
33
- * @type {'top' | 'right' | 'bottom' | 'left'}
16
+ * @typedef {object} Props
17
+ * @property {string} [class] - The `class` attribute on the content element.
18
+ * @property {boolean} [open] - Whether to open the drawer.
19
+ * @property {string} [title] - Title text displayed on the header.
20
+ * @property {'top' | 'right' | 'bottom' | 'left'} [position] - Position of the drawer.
21
+ * @property {'small' | 'medium' | 'large' | 'x-large' | 'full'} [size] - Width or height of the
22
+ * drawer.
23
+ * @property {'inside' | 'outside' | false} [showClose] - Whether to show the Close button.
24
+ * @property {import('svelte').Snippet} [children] - Primary slot content.
25
+ * @property {import('svelte').Snippet} [header] - Header slot content.
26
+ * @property {import('svelte').Snippet} [headerExtra] - Header extra slot content.
27
+ * @property {import('svelte').Snippet} [footer] - Footer slot content.
28
+ * @property {import('svelte').Snippet} [closeIcon] - Close icon slot content.
29
+ * @property {import('svelte').Snippet} [extraContent] - Extra content slot content.
34
30
  */
35
- export let position = 'right';
36
- /**
37
- * Width or height of the drawer.
38
- * @type {'small' | 'medium' | 'large' | 'x-large' | 'full'}
39
- */
40
- export let size = 'small';
41
- /**
42
- * Whether to show the Close button.
43
- * @type {'inside' | 'outside' | false}
44
- */
45
- export let showClose = 'outside';
46
- /**
47
- * Whether to close the modal when the backdrop (outside of the modal) is clicked.
48
- * @type {boolean}
49
- */
50
- export let lightDismiss = false;
31
+
51
32
  /**
52
- * Whether to keep the content in the DOM tree when the modal is not displayed.
53
- * @type {boolean}
33
+ * @type {import('../../typedefs').ModalProps & Props & Record<string, any>}
54
34
  */
55
- export let keepContent = false;
35
+ let {
36
+ /* eslint-disable prefer-const */
37
+ open = $bindable(false),
38
+ class: className,
39
+ title = '',
40
+ position = 'right',
41
+ size = 'small',
42
+ showClose = 'outside',
43
+ children,
44
+ header,
45
+ headerExtra,
46
+ footer,
47
+ closeIcon,
48
+ ...restProps
49
+ /* eslint-enable prefer-const */
50
+ } = $props();
56
51
 
57
52
  /**
58
53
  * The ID of the drawer.
@@ -61,30 +56,16 @@
61
56
  const id = generateElementId('drawer');
62
57
  /**
63
58
  * A reference to the modal component.
64
- * @type {Modal}
59
+ * @type {Modal | undefined}
65
60
  */
66
- let modal;
61
+ let modal = $state();
67
62
 
68
- $: orientation = position === 'right' || position === 'left' ? 'vertical' : 'horizontal';
63
+ const orientation = $derived(
64
+ position === 'right' || position === 'left' ? 'vertical' : 'horizontal',
65
+ );
69
66
  </script>
70
67
 
71
- <Modal
72
- {id}
73
- class="drawer"
74
- bind:open
75
- showBackdrop
76
- {lightDismiss}
77
- {keepContent}
78
- {...$$restProps}
79
- bind:this={modal}
80
- on:opening
81
- on:open
82
- on:ok
83
- on:cancel
84
- on:closing
85
- on:close
86
- >
87
- <slot name="extra-content" slot="extra-content" />
68
+ <Modal bind:this={modal} {...restProps} bind:open {id} class="drawer" showBackdrop>
88
69
  <div role="none" class="content {className} {size} {position} {orientation}">
89
70
  <div role="none" class="extra-control">
90
71
  {#if showClose === 'outside'}
@@ -94,28 +75,30 @@
94
75
  class="close"
95
76
  aria-label={$_('_sui.close')}
96
77
  aria-controls={id}
97
- on:click={() => {
98
- modal.close('close');
78
+ onclick={() => {
79
+ modal?.close('close');
99
80
  }}
100
81
  >
101
- <slot name="close-button" slot="start-icon">
102
- <Icon name="close" />
103
- </slot>
82
+ {#snippet startIcon()}
83
+ {#if closeIcon}
84
+ {@render closeIcon()}
85
+ {:else}
86
+ <Icon name="close" />
87
+ {/if}
88
+ {/snippet}
104
89
  </Button>
105
90
  {/if}
106
91
  </div>
107
- {#if title || showClose === 'inside' || $$slots.header || $$slots['header-extra']}
108
- {#if $$slots.header}
109
- <slot name="header" />
92
+ {#if title || showClose === 'inside' || header || headerExtra}
93
+ {#if header}
94
+ {@render header()}
110
95
  {:else}
111
96
  <div role="none" class="header">
112
97
  <div role="none" class="title">
113
98
  {title}
114
99
  </div>
115
100
  <Spacer flex={true} />
116
- {#if $$slots['header-extra']}
117
- <slot name="header-extra" />
118
- {/if}
101
+ {@render headerExtra?.()}
119
102
  {#if showClose === 'inside'}
120
103
  <Button
121
104
  variant="ghost"
@@ -123,24 +106,28 @@
123
106
  class="close"
124
107
  aria-label={$_('_sui.close')}
125
108
  aria-controls={id}
126
- on:click={() => {
127
- modal.close('close');
109
+ onclick={() => {
110
+ modal?.close('close');
128
111
  }}
129
112
  >
130
- <slot name="close-button" slot="start-icon">
131
- <Icon name="close" />
132
- </slot>
113
+ {#snippet startIcon()}
114
+ {#if closeIcon}
115
+ {@render closeIcon()}
116
+ {:else}
117
+ <Icon name="close" />
118
+ {/if}
119
+ {/snippet}
133
120
  </Button>
134
121
  {/if}
135
122
  </div>
136
123
  {/if}
137
124
  {/if}
138
125
  <div role="none" class="main">
139
- <slot />
126
+ {@render children?.()}
140
127
  </div>
141
- {#if $$slots.footer}
128
+ {#if footer}
142
129
  <div role="none" class="footer">
143
- <slot name="footer" />
130
+ {@render footer?.()}
144
131
  </div>
145
132
  {/if}
146
133
  </div>
@@ -1,100 +1,118 @@
1
1
  export default Drawer;
2
- type Drawer = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
- [x: string]: any;
4
- class?: string | undefined;
5
- title?: string | undefined;
6
- size?: "small" | "medium" | "large" | "x-large" | "full" | undefined;
7
- position?: "top" | "left" | "right" | "bottom" | undefined;
8
- open?: boolean | undefined;
9
- lightDismiss?: boolean | undefined;
10
- keepContent?: boolean | undefined;
11
- showClose?: false | "inside" | "outside" | undefined;
12
- }, {
13
- 'extra-content': {
14
- slot: string;
15
- };
16
- 'close-button': {
17
- slot: string;
18
- };
19
- header: {};
20
- 'header-extra': {};
21
- default: {};
22
- footer: {};
23
- }>, {
24
- opening: CustomEvent<any>;
25
- open: CustomEvent<any>;
26
- ok: CustomEvent<any>;
27
- cancel: CustomEvent<any>;
28
- closing: CustomEvent<any>;
29
- close: CustomEvent<any>;
30
- } & {
2
+ type Drawer = SvelteComponent<ModalProps & Props & Record<string, any>, {
31
3
  [evt: string]: CustomEvent<any>;
32
- }, {
33
- 'extra-content': {
34
- slot: string;
35
- };
36
- 'close-button': {
37
- slot: string;
38
- };
39
- header: {};
40
- 'header-extra': {};
41
- default: {};
42
- footer: {};
43
- }> & {
44
- $$bindings?: string | undefined;
4
+ }, {}> & {
5
+ $$bindings?: "open" | undefined;
45
6
  };
46
7
  /**
47
8
  * A generic drawer widget based on the HTML `<dialog>` element.
48
9
  * @see https://w3c.github.io/aria/#dialog
49
10
  * @see https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/
50
11
  */
51
- declare const Drawer: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
52
- [x: string]: any;
12
+ declare const Drawer: $$__sveltets_2_IsomorphicComponent<import("../../typedefs").ModalProps & {
13
+ /**
14
+ * - The `class` attribute on the content element.
15
+ */
53
16
  class?: string | undefined;
17
+ /**
18
+ * - Whether to open the drawer.
19
+ */
20
+ open?: boolean | undefined;
21
+ /**
22
+ * - Title text displayed on the header.
23
+ */
54
24
  title?: string | undefined;
55
- size?: "small" | "medium" | "large" | "x-large" | "full" | undefined;
25
+ /**
26
+ * - Position of the drawer.
27
+ */
56
28
  position?: "top" | "left" | "right" | "bottom" | undefined;
57
- open?: boolean | undefined;
58
- lightDismiss?: boolean | undefined;
59
- keepContent?: boolean | undefined;
29
+ /**
30
+ * - Width or height of the
31
+ * drawer.
32
+ */
33
+ size?: "small" | "medium" | "large" | "x-large" | "full" | undefined;
34
+ /**
35
+ * - Whether to show the Close button.
36
+ */
60
37
  showClose?: false | "inside" | "outside" | undefined;
61
- }, {
62
- 'extra-content': {
63
- slot: string;
64
- };
65
- 'close-button': {
66
- slot: string;
67
- };
68
- header: {};
69
- 'header-extra': {};
70
- default: {};
71
- footer: {};
72
- }>, {
73
- opening: CustomEvent<any>;
74
- open: CustomEvent<any>;
75
- ok: CustomEvent<any>;
76
- cancel: CustomEvent<any>;
77
- closing: CustomEvent<any>;
78
- close: CustomEvent<any>;
79
- } & {
38
+ /**
39
+ * - Primary slot content.
40
+ */
41
+ children?: import("svelte").Snippet<[]> | undefined;
42
+ /**
43
+ * - Header slot content.
44
+ */
45
+ header?: import("svelte").Snippet<[]> | undefined;
46
+ /**
47
+ * - Header extra slot content.
48
+ */
49
+ headerExtra?: import("svelte").Snippet<[]> | undefined;
50
+ /**
51
+ * - Footer slot content.
52
+ */
53
+ footer?: import("svelte").Snippet<[]> | undefined;
54
+ /**
55
+ * - Close icon slot content.
56
+ */
57
+ closeIcon?: import("svelte").Snippet<[]> | undefined;
58
+ /**
59
+ * - Extra content slot content.
60
+ */
61
+ extraContent?: import("svelte").Snippet<[]> | undefined;
62
+ } & Record<string, any>, {
80
63
  [evt: string]: CustomEvent<any>;
81
- }, {
82
- 'extra-content': {
83
- slot: string;
84
- };
85
- 'close-button': {
86
- slot: string;
87
- };
88
- header: {};
89
- 'header-extra': {};
90
- default: {};
91
- footer: {};
92
- }, {}, string>;
93
- type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
94
- default: any;
95
- } ? Props extends Record<string, never> ? any : {
96
- children?: any;
97
- } : {});
64
+ }, {}, {}, "open">;
65
+ type Props = {
66
+ /**
67
+ * - The `class` attribute on the content element.
68
+ */
69
+ class?: string | undefined;
70
+ /**
71
+ * - Whether to open the drawer.
72
+ */
73
+ open?: boolean | undefined;
74
+ /**
75
+ * - Title text displayed on the header.
76
+ */
77
+ title?: string | undefined;
78
+ /**
79
+ * - Position of the drawer.
80
+ */
81
+ position?: "top" | "left" | "right" | "bottom" | undefined;
82
+ /**
83
+ * - Width or height of the
84
+ * drawer.
85
+ */
86
+ size?: "small" | "medium" | "large" | "x-large" | "full" | undefined;
87
+ /**
88
+ * - Whether to show the Close button.
89
+ */
90
+ showClose?: false | "inside" | "outside" | undefined;
91
+ /**
92
+ * - Primary slot content.
93
+ */
94
+ children?: import("svelte").Snippet<[]> | undefined;
95
+ /**
96
+ * - Header slot content.
97
+ */
98
+ header?: import("svelte").Snippet<[]> | undefined;
99
+ /**
100
+ * - Header extra slot content.
101
+ */
102
+ headerExtra?: import("svelte").Snippet<[]> | undefined;
103
+ /**
104
+ * - Footer slot content.
105
+ */
106
+ footer?: import("svelte").Snippet<[]> | undefined;
107
+ /**
108
+ * - Close icon slot content.
109
+ */
110
+ closeIcon?: import("svelte").Snippet<[]> | undefined;
111
+ /**
112
+ * - Extra content slot content.
113
+ */
114
+ extraContent?: import("svelte").Snippet<[]> | undefined;
115
+ };
98
116
  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> {
99
117
  new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
100
118
  $$bindings?: Bindings;
@@ -8,38 +8,43 @@
8
8
  import { generateElementId } from '@sveltia/utils/element';
9
9
 
10
10
  /**
11
- * The `class` attribute on the wrapper element.
12
- * @type {string}
11
+ * @typedef {object} Props
12
+ * @property {string} [class] - The `class` attribute on the wrapper element.
13
+ * @property {string} [label] - Display label for the row group.
14
+ * @property {import('svelte').Snippet} [children] - Primary slot content.
13
15
  */
14
- let className = '';
15
- export { className as class };
16
16
 
17
17
  /**
18
- * Display label for the row group.
19
- * @type {string}
18
+ * @type {Props & Record<string, any>}
20
19
  */
21
- export let label = '';
20
+ let {
21
+ /* eslint-disable prefer-const */
22
+ class: className,
23
+ label = '',
24
+ children,
25
+ ...restProps
26
+ /* eslint-enable prefer-const */
27
+ } = $props();
22
28
 
23
29
  const id = generateElementId('tbody');
24
30
  </script>
25
31
 
26
32
  <div
33
+ {...restProps}
27
34
  role="rowgroup"
28
35
  class="sui grid-body row-group {className}"
29
36
  aria-labelledby={label ? `${id}-label` : undefined}
30
37
  aria-roledescription="grid body"
31
- {...$$restProps}
32
38
  >
33
39
  {#if label}
34
40
  <div role="row" class="row-group-caption">
35
41
  <!-- We need `colspan` here but cannot place `<th>` under `<div>`, so use a hack -->
36
- <!-- prettier-ignore -->
37
42
  <svelte:element this={'th'} role="rowheader" id="{id}-label" colspan="9999">
38
43
  {label}
39
44
  </svelte:element>
40
45
  </div>
41
46
  {/if}
42
- <slot />
47
+ {@render children?.()}
43
48
  </div>
44
49
 
45
50
  <style>[role=rowgroup] {
@@ -1,38 +1,44 @@
1
1
  export default GridBody;
2
- type GridBody = SvelteComponent<$$__sveltets_2_PropsWithChildren<{
3
- [x: string]: any;
4
- class?: string | undefined;
5
- label?: string | undefined;
6
- }, {
7
- default: {};
8
- }>, {
2
+ type GridBody = SvelteComponent<Props & Record<string, any>, {
9
3
  [evt: string]: CustomEvent<any>;
10
- }, {
11
- default: {};
12
- }> & {
13
- $$bindings?: string | undefined;
4
+ }, {}> & {
5
+ $$bindings?: "" | undefined;
14
6
  };
15
7
  /**
16
8
  * The interactive version of `<TableBody>`.
17
9
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody
18
10
  * @see https://w3c.github.io/aria/#rowgroup
19
11
  */
20
- declare const GridBody: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
21
- [x: string]: any;
12
+ declare const GridBody: $$__sveltets_2_IsomorphicComponent<{
13
+ /**
14
+ * - The `class` attribute on the wrapper element.
15
+ */
22
16
  class?: string | undefined;
17
+ /**
18
+ * - Display label for the row group.
19
+ */
23
20
  label?: string | undefined;
24
- }, {
25
- default: {};
26
- }>, {
21
+ /**
22
+ * - Primary slot content.
23
+ */
24
+ children?: import("svelte").Snippet<[]> | undefined;
25
+ } & Record<string, any>, {
27
26
  [evt: string]: CustomEvent<any>;
28
- }, {
29
- default: {};
30
- }, {}, string>;
31
- type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
32
- default: any;
33
- } ? Props extends Record<string, never> ? any : {
34
- children?: any;
35
- } : {});
27
+ }, {}, {}, "">;
28
+ type Props = {
29
+ /**
30
+ * - The `class` attribute on the wrapper element.
31
+ */
32
+ class?: string | undefined;
33
+ /**
34
+ * - Display label for the row group.
35
+ */
36
+ label?: string | undefined;
37
+ /**
38
+ * - Primary slot content.
39
+ */
40
+ children?: import("svelte").Snippet<[]> | undefined;
41
+ };
36
42
  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> {
37
43
  new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
38
44
  $$bindings?: Bindings;