@sveltia/ui 0.9.0 → 0.10.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 (118) hide show
  1. package/package/components/alert/alert.svelte +2 -4
  2. package/package/components/alert/alert.svelte.d.ts +2 -2
  3. package/package/components/button/button.svelte +78 -26
  4. package/package/components/button/button.svelte.d.ts +73 -63
  5. package/package/components/button/select-button-group.svelte +6 -1
  6. package/package/components/button/select-button-group.svelte.d.ts +13 -13
  7. package/package/components/button/select-button.svelte +2 -1
  8. package/package/components/button/select-button.svelte.d.ts +19 -19
  9. package/package/components/button/split-button.svelte +10 -2
  10. package/package/components/button/split-button.svelte.d.ts +19 -11
  11. package/package/components/calendar/calendar.svelte +2 -2
  12. package/package/components/calendar/calendar.svelte.d.ts +2 -2
  13. package/package/components/checkbox/checkbox-group.svelte.d.ts +7 -7
  14. package/package/components/checkbox/checkbox.svelte +8 -6
  15. package/package/components/checkbox/checkbox.svelte.d.ts +22 -16
  16. package/package/components/dialog/alert-dialog.svelte.d.ts +6 -6
  17. package/package/components/dialog/confirmation-dialog.svelte.d.ts +8 -8
  18. package/package/components/dialog/dialog.svelte +17 -15
  19. package/package/components/dialog/dialog.svelte.d.ts +30 -24
  20. package/package/components/dialog/prompt-dialog.svelte +1 -1
  21. package/package/components/dialog/prompt-dialog.svelte.d.ts +12 -12
  22. package/package/components/disclosure/disclosure.svelte +6 -1
  23. package/package/components/disclosure/disclosure.svelte.d.ts +29 -19
  24. package/package/components/divider/divider.svelte.d.ts +5 -5
  25. package/package/components/divider/spacer.svelte.d.ts +4 -4
  26. package/package/components/drawer/drawer.svelte +34 -16
  27. package/package/components/drawer/drawer.svelte.d.ts +22 -16
  28. package/package/components/grid/grid-body.svelte.d.ts +4 -4
  29. package/package/components/grid/grid-cell.svelte.d.ts +2 -2
  30. package/package/components/grid/grid-col-header.svelte.d.ts +2 -2
  31. package/package/components/grid/grid-foot.svelte.d.ts +2 -2
  32. package/package/components/grid/grid-head.svelte.d.ts +2 -2
  33. package/package/components/grid/grid-row-header.svelte.d.ts +2 -2
  34. package/package/components/grid/grid-row.svelte +10 -2
  35. package/package/components/grid/grid-row.svelte.d.ts +8 -8
  36. package/package/components/grid/grid.svelte +7 -2
  37. package/package/components/grid/grid.svelte.d.ts +8 -8
  38. package/package/components/icon/icon.svelte.d.ts +4 -4
  39. package/package/components/listbox/listbox.svelte +11 -5
  40. package/package/components/listbox/listbox.svelte.d.ts +15 -15
  41. package/package/components/listbox/option-group.svelte.d.ts +7 -7
  42. package/package/components/listbox/option.svelte +4 -2
  43. package/package/components/listbox/option.svelte.d.ts +15 -13
  44. package/package/components/menu/menu-button.svelte +8 -2
  45. package/package/components/menu/menu-button.svelte.d.ts +20 -18
  46. package/package/components/menu/menu-item-checkbox.svelte +1 -1
  47. package/package/components/menu/menu-item-checkbox.svelte.d.ts +16 -16
  48. package/package/components/menu/menu-item-group.svelte +1 -1
  49. package/package/components/menu/menu-item-group.svelte.d.ts +7 -7
  50. package/package/components/menu/menu-item-radio.svelte +1 -1
  51. package/package/components/menu/menu-item-radio.svelte.d.ts +16 -16
  52. package/package/components/menu/menu-item.svelte +32 -19
  53. package/package/components/menu/menu-item.svelte.d.ts +32 -18
  54. package/package/components/menu/menu.svelte +13 -7
  55. package/package/components/menu/menu.svelte.d.ts +7 -7
  56. package/package/components/radio/radio-group.svelte +6 -1
  57. package/package/components/radio/radio-group.svelte.d.ts +15 -15
  58. package/package/components/radio/radio.svelte +1 -1
  59. package/package/components/radio/radio.svelte.d.ts +14 -14
  60. package/package/components/select/combobox.svelte +10 -8
  61. package/package/components/select/combobox.svelte.d.ts +22 -16
  62. package/package/components/select/select.svelte.d.ts +12 -12
  63. package/package/components/slider/slider.svelte +26 -22
  64. package/package/components/slider/slider.svelte.d.ts +23 -23
  65. package/package/components/switch/switch.svelte +5 -0
  66. package/package/components/switch/switch.svelte.d.ts +18 -14
  67. package/package/components/table/table-body.svelte.d.ts +4 -4
  68. package/package/components/table/table-cell.svelte.d.ts +2 -2
  69. package/package/components/table/table-col-header.svelte.d.ts +2 -2
  70. package/package/components/table/table-foot.svelte.d.ts +2 -2
  71. package/package/components/table/table-head.svelte.d.ts +2 -2
  72. package/package/components/table/table-row-header.svelte.d.ts +2 -2
  73. package/package/components/table/table-row.svelte.d.ts +2 -2
  74. package/package/components/table/table.svelte.d.ts +2 -2
  75. package/package/components/tabs/tab-box.svelte +30 -0
  76. package/package/components/tabs/tab-box.svelte.d.ts +33 -0
  77. package/package/components/tabs/tab-list.svelte +105 -22
  78. package/package/components/tabs/tab-list.svelte.d.ts +10 -10
  79. package/package/components/tabs/tab-panel.svelte +6 -2
  80. package/package/components/tabs/tab-panel.svelte.d.ts +2 -2
  81. package/package/components/tabs/tab-panels.svelte +32 -0
  82. package/package/components/tabs/tab-panels.svelte.d.ts +31 -0
  83. package/package/components/tabs/tab.svelte.d.ts +11 -11
  84. package/package/components/text-field/markdown-editor.svelte.d.ts +12 -12
  85. package/package/components/text-field/number-input.svelte +11 -4
  86. package/package/components/text-field/number-input.svelte.d.ts +40 -20
  87. package/package/components/text-field/password-input.svelte +7 -3
  88. package/package/components/text-field/password-input.svelte.d.ts +30 -18
  89. package/package/components/text-field/search-bar.svelte +7 -3
  90. package/package/components/text-field/search-bar.svelte.d.ts +46 -36
  91. package/package/components/text-field/text-area.svelte +4 -2
  92. package/package/components/text-field/text-area.svelte.d.ts +25 -21
  93. package/package/components/text-field/text-input.svelte +17 -2
  94. package/package/components/text-field/text-input.svelte.d.ts +53 -53
  95. package/package/components/toast/toast.svelte +16 -12
  96. package/package/components/toast/toast.svelte.d.ts +8 -8
  97. package/package/components/toolbar/toolbar.svelte.d.ts +8 -8
  98. package/package/components/util/app-shell.svelte +22 -6
  99. package/package/components/util/app-shell.svelte.d.ts +2 -0
  100. package/package/components/util/group.svelte.d.ts +5 -5
  101. package/package/components/util/modal.svelte +26 -9
  102. package/package/components/util/modal.svelte.d.ts +34 -34
  103. package/package/components/util/popup.svelte +35 -13
  104. package/package/components/util/popup.svelte.d.ts +33 -28
  105. package/package/components/util/portal.svelte +5 -3
  106. package/package/components/util/portal.svelte.d.ts +2 -2
  107. package/package/index.d.ts +5 -3
  108. package/package/index.js +6 -4
  109. package/package/services/events.d.ts +1 -1
  110. package/package/services/events.js +11 -8
  111. package/package/services/group.js +100 -30
  112. package/package/services/popup.d.ts +27 -13
  113. package/package/services/popup.js +23 -9
  114. package/package/services/util.d.ts +2 -2
  115. package/package/services/util.js +5 -5
  116. package/package/styles/core.scss +1 -0
  117. package/package/styles/variables.scss +1 -0
  118. package/package.json +39 -23
@@ -35,7 +35,7 @@
35
35
  export let position = 'right';
36
36
  /**
37
37
  * Width or height of the drawer.
38
- * @type {'small' | 'medium' | 'large' | 'x-large'}
38
+ * @type {'small' | 'medium' | 'large' | 'x-large' | 'full'}
39
39
  */
40
40
  export let size = 'small';
41
41
  /**
@@ -97,15 +97,17 @@
97
97
  modal.close('close');
98
98
  }}
99
99
  >
100
- <Icon slot="start-icon" name="close" />
100
+ <slot name="close-button" slot="start-icon">
101
+ <Icon name="close" />
102
+ </slot>
101
103
  </Button>
102
104
  {/if}
103
105
  </div>
104
106
  {#if title || showClose === 'inside' || $$slots.header || $$slots['header-extra']}
105
- <div role="none" class="header">
106
- {#if $$slots.header}
107
- <slot name="header" />
108
- {:else}
107
+ {#if $$slots.header}
108
+ <slot name="header" />
109
+ {:else}
110
+ <div role="none" class="header">
109
111
  <div role="none" class="title">
110
112
  {title}
111
113
  </div>
@@ -124,11 +126,13 @@
124
126
  modal.close('close');
125
127
  }}
126
128
  >
127
- <Icon slot="start-icon" name="close" />
129
+ <slot name="close-button" slot="start-icon">
130
+ <Icon name="close" />
131
+ </slot>
128
132
  </Button>
129
133
  {/if}
130
- {/if}
131
- </div>
134
+ </div>
135
+ {/if}
132
136
  {/if}
133
137
  <div role="none" class="main">
134
138
  <slot />
@@ -145,7 +149,6 @@
145
149
  position: absolute;
146
150
  display: flex;
147
151
  flex-direction: column;
148
- border-radius: 4px;
149
152
  max-width: 100dvw;
150
153
  max-height: 100dvh;
151
154
  background-color: var(--sui-secondary-background-color-translucent);
@@ -169,6 +172,7 @@
169
172
  }
170
173
  .content.right {
171
174
  inset: 0 0 0 auto;
175
+ border-radius: var(--sui-drawer-right-content-border-radius, var(--sui-drawer-content-border-radius, 4px 0 0 4px));
172
176
  }
173
177
  .content.right .extra-control {
174
178
  inset: 0 100% auto auto;
@@ -178,6 +182,7 @@
178
182
  }
179
183
  .content.left {
180
184
  inset: 0 auto 0 0;
185
+ border-radius: var(--sui-drawer-left-content-border-radius, var(--sui-drawer-content-border-radius, 0 4px 4px 0));
181
186
  }
182
187
  .content.left .extra-control {
183
188
  inset: 0 auto auto 100%;
@@ -205,8 +210,14 @@
205
210
  .content.vertical.x-large {
206
211
  width: 1000px;
207
212
  }
213
+ .content.vertical.full {
214
+ border-radius: 0 !important;
215
+ width: 100dvw;
216
+ max-width: none !important;
217
+ }
208
218
  .content.top {
209
219
  inset: 0 0 auto 0;
220
+ border-radius: var(--sui-drawer-top-content-border-radius, var(--sui-drawer-content-border-radius, 0 0 4px 4px));
210
221
  }
211
222
  .content.top .extra-control {
212
223
  inset: 100% 0 auto auto;
@@ -216,6 +227,7 @@
216
227
  }
217
228
  .content.bottom {
218
229
  inset: auto 0 0 0;
230
+ border-radius: var(--sui-drawer-bottom-content-border-radius, var(--sui-drawer-content-border-radius, 4px 4px 0 0));
219
231
  }
220
232
  .content.bottom .extra-control {
221
233
  inset: auto 0 100% auto;
@@ -243,6 +255,11 @@
243
255
  .content.horizontal.x-large {
244
256
  height: 1000px;
245
257
  }
258
+ .content.horizontal.full {
259
+ border-radius: 0 !important;
260
+ height: 100dvh;
261
+ max-height: none !important;
262
+ }
246
263
 
247
264
  .header,
248
265
  .footer {
@@ -252,12 +269,13 @@
252
269
  }
253
270
 
254
271
  .header {
272
+ flex-direction: var(--sui-drawer-header-flex-direction, row);
255
273
  box-sizing: content-box;
256
- margin: 0 16px;
257
- border-width: 0 0 1px;
258
- border-color: var(--sui-secondary-border-color);
259
- padding: 16px 8px;
260
- height: 32px;
274
+ margin: var(--sui-drawer-header-margin, 0 16px);
275
+ border-width: var(--sui-drawer-header-border-width, 0 0 1px);
276
+ border-color: var(--sui-drawer-header-border-color, var(--sui-secondary-border-color));
277
+ padding: var(--sui-drawer-header-padding, 16px 8px);
278
+ height: var(--sui-drawer-header-height, 32px);
261
279
  }
262
280
  .header .title {
263
281
  font-size: var(--sui-font-size-large);
@@ -270,6 +288,6 @@
270
288
  .main {
271
289
  flex: auto;
272
290
  overflow: auto;
273
- padding: 24px;
291
+ padding: var(--sui-drawer-main-padding, 24px);
274
292
  white-space: normal;
275
293
  }</style>
@@ -8,14 +8,14 @@
8
8
  */
9
9
  export default class Drawer extends SvelteComponent<{
10
10
  [x: string]: any;
11
- class?: string;
12
- title?: string;
13
- size?: "small" | "medium" | "large" | "x-large";
14
- position?: "top" | "right" | "bottom" | "left";
15
- open?: boolean;
16
- lightDismiss?: boolean;
17
- keepContent?: boolean;
18
- showClose?: false | "inside" | "outside";
11
+ class?: string | undefined;
12
+ title?: string | undefined;
13
+ size?: "small" | "medium" | "large" | "x-large" | "full" | undefined;
14
+ position?: "top" | "right" | "bottom" | "left" | undefined;
15
+ open?: boolean | undefined;
16
+ lightDismiss?: boolean | undefined;
17
+ keepContent?: boolean | undefined;
18
+ showClose?: false | "inside" | "outside" | undefined;
19
19
  }, {
20
20
  opening: CustomEvent<any>;
21
21
  open: CustomEvent<any>;
@@ -26,6 +26,9 @@ export default class Drawer extends SvelteComponent<{
26
26
  } & {
27
27
  [evt: string]: CustomEvent<any>;
28
28
  }, {
29
+ 'close-button': {
30
+ slot: string;
31
+ };
29
32
  header: {};
30
33
  'header-extra': {};
31
34
  default: {};
@@ -39,14 +42,14 @@ import { SvelteComponent } from "svelte";
39
42
  declare const __propDef: {
40
43
  props: {
41
44
  [x: string]: any;
42
- class?: string;
43
- title?: string;
44
- size?: 'small' | 'medium' | 'large' | 'x-large';
45
- position?: 'top' | 'right' | 'bottom' | 'left';
46
- open?: boolean;
47
- lightDismiss?: boolean;
48
- keepContent?: boolean;
49
- showClose?: 'inside' | 'outside' | false;
45
+ class?: string | undefined;
46
+ title?: string | undefined;
47
+ size?: "small" | "medium" | "large" | "x-large" | "full" | undefined;
48
+ position?: "top" | "right" | "bottom" | "left" | undefined;
49
+ open?: boolean | undefined;
50
+ lightDismiss?: boolean | undefined;
51
+ keepContent?: boolean | undefined;
52
+ showClose?: false | "inside" | "outside" | undefined;
50
53
  };
51
54
  events: {
52
55
  opening: CustomEvent<any>;
@@ -59,6 +62,9 @@ declare const __propDef: {
59
62
  [evt: string]: CustomEvent<any>;
60
63
  };
61
64
  slots: {
65
+ 'close-button': {
66
+ slot: string;
67
+ };
62
68
  header: {};
63
69
  'header-extra': {};
64
70
  default: {};
@@ -8,8 +8,8 @@
8
8
  */
9
9
  export default class GridBody extends SvelteComponent<{
10
10
  [x: string]: any;
11
- class?: string;
12
- label?: string;
11
+ class?: string | undefined;
12
+ label?: string | undefined;
13
13
  }, {
14
14
  [evt: string]: CustomEvent<any>;
15
15
  }, {
@@ -23,8 +23,8 @@ import { SvelteComponent } from "svelte";
23
23
  declare const __propDef: {
24
24
  props: {
25
25
  [x: string]: any;
26
- class?: string;
27
- label?: string;
26
+ class?: string | undefined;
27
+ label?: string | undefined;
28
28
  };
29
29
  events: {
30
30
  [evt: string]: CustomEvent<any>;
@@ -8,7 +8,7 @@
8
8
  */
9
9
  export default class GridCell extends SvelteComponent<{
10
10
  [x: string]: any;
11
- class?: string;
11
+ class?: string | undefined;
12
12
  }, {
13
13
  [evt: string]: CustomEvent<any>;
14
14
  }, {
@@ -22,7 +22,7 @@ import { SvelteComponent } from "svelte";
22
22
  declare const __propDef: {
23
23
  props: {
24
24
  [x: string]: any;
25
- class?: string;
25
+ class?: string | undefined;
26
26
  };
27
27
  events: {
28
28
  [evt: string]: CustomEvent<any>;
@@ -8,7 +8,7 @@
8
8
  */
9
9
  export default class GridColHeader extends SvelteComponent<{
10
10
  [x: string]: any;
11
- class?: string;
11
+ class?: string | undefined;
12
12
  }, {
13
13
  [evt: string]: CustomEvent<any>;
14
14
  }, {
@@ -22,7 +22,7 @@ import { SvelteComponent } from "svelte";
22
22
  declare const __propDef: {
23
23
  props: {
24
24
  [x: string]: any;
25
- class?: string;
25
+ class?: string | undefined;
26
26
  };
27
27
  events: {
28
28
  [evt: string]: CustomEvent<any>;
@@ -8,7 +8,7 @@
8
8
  */
9
9
  export default class GridFoot extends SvelteComponent<{
10
10
  [x: string]: any;
11
- class?: string;
11
+ class?: string | undefined;
12
12
  }, {
13
13
  [evt: string]: CustomEvent<any>;
14
14
  }, {
@@ -22,7 +22,7 @@ import { SvelteComponent } from "svelte";
22
22
  declare const __propDef: {
23
23
  props: {
24
24
  [x: string]: any;
25
- class?: string;
25
+ class?: string | undefined;
26
26
  };
27
27
  events: {
28
28
  [evt: string]: CustomEvent<any>;
@@ -8,7 +8,7 @@
8
8
  */
9
9
  export default class GridHead extends SvelteComponent<{
10
10
  [x: string]: any;
11
- class?: string;
11
+ class?: string | undefined;
12
12
  }, {
13
13
  [evt: string]: CustomEvent<any>;
14
14
  }, {
@@ -22,7 +22,7 @@ import { SvelteComponent } from "svelte";
22
22
  declare const __propDef: {
23
23
  props: {
24
24
  [x: string]: any;
25
- class?: string;
25
+ class?: string | undefined;
26
26
  };
27
27
  events: {
28
28
  [evt: string]: CustomEvent<any>;
@@ -8,7 +8,7 @@
8
8
  */
9
9
  export default class GridRowHeader extends SvelteComponent<{
10
10
  [x: string]: any;
11
- class?: string;
11
+ class?: string | undefined;
12
12
  }, {
13
13
  [evt: string]: CustomEvent<any>;
14
14
  }, {
@@ -22,7 +22,7 @@ import { SvelteComponent } from "svelte";
22
22
  declare const __propDef: {
23
23
  props: {
24
24
  [x: string]: any;
25
- class?: string;
25
+ class?: string | undefined;
26
26
  };
27
27
  events: {
28
28
  [evt: string]: CustomEvent<any>;
@@ -5,6 +5,8 @@
5
5
  @see https://w3c.github.io/aria/#row
6
6
  -->
7
7
  <script>
8
+ import { createEventDispatcher } from 'svelte';
9
+
8
10
  /**
9
11
  * The `class` attribute on the wrapper element.
10
12
  * @type {string}
@@ -16,6 +18,8 @@
16
18
  * @type {boolean}
17
19
  */
18
20
  export let selected = false;
21
+
22
+ const dispatch = createEventDispatcher();
19
23
  </script>
20
24
 
21
25
  <div
@@ -25,8 +29,12 @@
25
29
  aria-selected={selected}
26
30
  {...$$restProps}
27
31
  on:click
28
- on:select
29
- on:change
32
+ on:select={(/** @type {any} */ event) => {
33
+ dispatch('select', /** @type {CustomEvent} */ (event).detail);
34
+ }}
35
+ on:change={(/** @type {any} */ event) => {
36
+ dispatch('change', /** @type {CustomEvent} */ (event).detail);
37
+ }}
30
38
  >
31
39
  <slot />
32
40
  </div>
@@ -8,12 +8,12 @@
8
8
  */
9
9
  export default class GridRow extends SvelteComponent<{
10
10
  [x: string]: any;
11
- class?: string;
12
- selected?: boolean;
11
+ class?: string | undefined;
12
+ selected?: boolean | undefined;
13
13
  }, {
14
14
  click: MouseEvent;
15
- select: Event;
16
- change: Event;
15
+ select: CustomEvent<any>;
16
+ change: CustomEvent<any>;
17
17
  } & {
18
18
  [evt: string]: CustomEvent<any>;
19
19
  }, {
@@ -27,13 +27,13 @@ import { SvelteComponent } from "svelte";
27
27
  declare const __propDef: {
28
28
  props: {
29
29
  [x: string]: any;
30
- class?: string;
31
- selected?: boolean;
30
+ class?: string | undefined;
31
+ selected?: boolean | undefined;
32
32
  };
33
33
  events: {
34
34
  click: MouseEvent;
35
- select: Event;
36
- change: Event;
35
+ select: CustomEvent<any>;
36
+ change: CustomEvent<any>;
37
37
  } & {
38
38
  [evt: string]: CustomEvent<any>;
39
39
  };
@@ -5,6 +5,7 @@
5
5
  @see https://w3c.github.io/aria/#grid
6
6
  -->
7
7
  <script>
8
+ import { createEventDispatcher } from 'svelte';
8
9
  import { activateGroup } from '../../services/group';
9
10
 
10
11
  /**
@@ -20,8 +21,10 @@
20
21
  */
21
22
  export let multiple = false;
22
23
 
23
- /** @type {HTMLElement?} */
24
+ /** @type {HTMLElement | undefined} */
24
25
  export let element = undefined;
26
+
27
+ const dispatch = createEventDispatcher();
25
28
  </script>
26
29
 
27
30
  <div
@@ -31,7 +34,9 @@
31
34
  {...$$restProps}
32
35
  bind:this={element}
33
36
  use:activateGroup
34
- on:change
37
+ on:change={(/** @type {CustomEvent} */ event) => {
38
+ dispatch('change', event.detail);
39
+ }}
35
40
  >
36
41
  <slot />
37
42
  </div>
@@ -8,11 +8,11 @@
8
8
  */
9
9
  export default class Grid extends SvelteComponent<{
10
10
  [x: string]: any;
11
- class?: string;
12
- multiple?: boolean;
13
- element?: HTMLElement;
11
+ class?: string | undefined;
12
+ multiple?: boolean | undefined;
13
+ element?: HTMLElement | undefined;
14
14
  }, {
15
- change: Event;
15
+ change: CustomEvent<any>;
16
16
  } & {
17
17
  [evt: string]: CustomEvent<any>;
18
18
  }, {
@@ -26,12 +26,12 @@ import { SvelteComponent } from "svelte";
26
26
  declare const __propDef: {
27
27
  props: {
28
28
  [x: string]: any;
29
- class?: string;
30
- multiple?: boolean;
31
- element?: HTMLElement | null;
29
+ class?: string | undefined;
30
+ multiple?: boolean | undefined;
31
+ element?: HTMLElement | undefined;
32
32
  };
33
33
  events: {
34
- change: Event;
34
+ change: CustomEvent<any>;
35
35
  } & {
36
36
  [evt: string]: CustomEvent<any>;
37
37
  };
@@ -7,8 +7,8 @@
7
7
  */
8
8
  export default class Icon extends SvelteComponent<{
9
9
  [x: string]: any;
10
- class?: string;
11
- name?: string;
10
+ class?: string | undefined;
11
+ name?: string | undefined;
12
12
  }, {
13
13
  [evt: string]: CustomEvent<any>;
14
14
  }, {}> {
@@ -20,8 +20,8 @@ import { SvelteComponent } from "svelte";
20
20
  declare const __propDef: {
21
21
  props: {
22
22
  [x: string]: any;
23
- class?: string;
24
- name?: string;
23
+ class?: string | undefined;
24
+ name?: string | undefined;
25
25
  };
26
26
  events: {
27
27
  [evt: string]: CustomEvent<any>;
@@ -6,6 +6,7 @@
6
6
  @see https://www.w3.org/WAI/ARIA/apg/patterns/listbox/
7
7
  -->
8
8
  <script>
9
+ import { createEventDispatcher } from 'svelte';
9
10
  import { activateGroup } from '../../services/group';
10
11
 
11
12
  /**
@@ -45,6 +46,8 @@
45
46
  * @type {boolean}
46
47
  */
47
48
  export let multiple = false;
49
+
50
+ const dispatch = createEventDispatcher();
48
51
  </script>
49
52
 
50
53
  <div
@@ -61,7 +64,9 @@
61
64
  {...$$restProps}
62
65
  use:activateGroup
63
66
  on:click
64
- on:change
67
+ on:change={(/** @type {CustomEvent} */ event) => {
68
+ dispatch('change', event.detail);
69
+ }}
65
70
  >
66
71
  <div role="none" class="inner" inert={disabled}>
67
72
  <slot />
@@ -72,10 +77,11 @@
72
77
  display: flex;
73
78
  flex-direction: column;
74
79
  margin: var(--sui-focus-ring-width);
75
- border-width: 1px;
76
- border-color: var(--sui-listbox-border-color);
77
- border-radius: var(--sui-listbox-border-radius);
78
- padding: 4px;
80
+ border-width: var(--sui-listbox-border-width, 1px);
81
+ border-style: var(--sui-listbox-border-style, solid);
82
+ border-color: var(--sui-listbox-border-width, var(--sui-secondary-border-color));
83
+ border-radius: var(--sui-listbox-border-radius, 4px);
84
+ padding: var(--sui-listbox-padding, 4px);
79
85
  min-width: var(--sui-listbox-min-width, calc(var(--sui-option-height) * 5));
80
86
  color: var(--sui-listbox-foreground-color);
81
87
  background-color: var(--sui-listbox-background-color);
@@ -9,16 +9,16 @@
9
9
  */
10
10
  export default class Listbox extends SvelteComponent<{
11
11
  [x: string]: any;
12
- class?: string;
13
- invalid?: boolean;
14
- disabled?: boolean;
15
- multiple?: boolean;
16
- required?: boolean;
17
- hidden?: boolean;
18
- readonly?: boolean;
12
+ class?: string | undefined;
13
+ invalid?: boolean | undefined;
14
+ disabled?: boolean | undefined;
15
+ multiple?: boolean | undefined;
16
+ required?: boolean | undefined;
17
+ hidden?: boolean | undefined;
18
+ readonly?: boolean | undefined;
19
19
  }, {
20
20
  click: MouseEvent;
21
- change: Event;
21
+ change: CustomEvent<any>;
22
22
  } & {
23
23
  [evt: string]: CustomEvent<any>;
24
24
  }, {
@@ -32,17 +32,17 @@ import { SvelteComponent } from "svelte";
32
32
  declare const __propDef: {
33
33
  props: {
34
34
  [x: string]: any;
35
- class?: string;
36
- invalid?: boolean;
37
- disabled?: boolean;
38
- multiple?: boolean;
39
- required?: boolean;
35
+ class?: string | undefined;
36
+ invalid?: boolean | undefined;
37
+ disabled?: boolean | undefined;
38
+ multiple?: boolean | undefined;
39
+ required?: boolean | undefined;
40
40
  hidden?: boolean | undefined;
41
- readonly?: boolean;
41
+ readonly?: boolean | undefined;
42
42
  };
43
43
  events: {
44
44
  click: MouseEvent;
45
- change: Event;
45
+ change: CustomEvent<any>;
46
46
  } & {
47
47
  [evt: string]: CustomEvent<any>;
48
48
  };
@@ -10,10 +10,10 @@
10
10
  */
11
11
  export default class OptionGroup extends SvelteComponent<{
12
12
  [x: string]: any;
13
- class?: string;
14
- label?: string;
15
- disabled?: boolean;
16
- hidden?: boolean;
13
+ class?: string | undefined;
14
+ label?: string | undefined;
15
+ disabled?: boolean | undefined;
16
+ hidden?: boolean | undefined;
17
17
  }, {
18
18
  [evt: string]: CustomEvent<any>;
19
19
  }, {
@@ -27,9 +27,9 @@ import { SvelteComponent } from "svelte";
27
27
  declare const __propDef: {
28
28
  props: {
29
29
  [x: string]: any;
30
- class?: string;
31
- label?: string;
32
- disabled?: boolean;
30
+ class?: string | undefined;
31
+ label?: string | undefined;
32
+ disabled?: boolean | undefined;
33
33
  hidden?: boolean | undefined;
34
34
  };
35
35
  events: {
@@ -60,11 +60,13 @@
60
60
  on:select
61
61
  on:change
62
62
  on:change={(event) => {
63
- selected = /** @type {CustomEvent} */ (event).detail.selected;
63
+ selected = event.detail.selected;
64
64
  }}
65
65
  >
66
66
  {#if selected}
67
- <Icon class="check" name="check" />
67
+ <slot name="check-icon">
68
+ <Icon class="check" name="check" />
69
+ </slot>
68
70
  {/if}
69
71
  <slot name="start-icon" slot="start-icon" />
70
72
  <slot />
@@ -8,23 +8,24 @@
8
8
  */
9
9
  export default class Option extends SvelteComponent<{
10
10
  [x: string]: any;
11
- class?: string;
12
- label?: string;
13
- disabled?: boolean;
14
- value?: string;
15
- hidden?: boolean;
16
- selected?: boolean;
11
+ class?: string | undefined;
12
+ label?: string | undefined;
13
+ disabled?: boolean | undefined;
14
+ value?: string | undefined;
15
+ hidden?: boolean | undefined;
16
+ selected?: boolean | undefined;
17
17
  }, {
18
18
  click: MouseEvent;
19
19
  dragover: DragEvent;
20
20
  dragleave: DragEvent;
21
21
  dragend: DragEvent;
22
22
  drop: DragEvent;
23
- select: Event;
24
- change: Event;
23
+ select: CustomEvent<any>;
24
+ change: CustomEvent<any>;
25
25
  } & {
26
26
  [evt: string]: CustomEvent<any>;
27
27
  }, {
28
+ 'check-icon': {};
28
29
  'start-icon': {
29
30
  slot: string;
30
31
  };
@@ -41,12 +42,12 @@ import { SvelteComponent } from "svelte";
41
42
  declare const __propDef: {
42
43
  props: {
43
44
  [x: string]: any;
44
- class?: string;
45
+ class?: string | undefined;
45
46
  label?: string | undefined;
46
- disabled?: boolean;
47
+ disabled?: boolean | undefined;
47
48
  value?: string | undefined;
48
49
  hidden?: boolean | undefined;
49
- selected?: boolean;
50
+ selected?: boolean | undefined;
50
51
  };
51
52
  events: {
52
53
  click: MouseEvent;
@@ -54,12 +55,13 @@ declare const __propDef: {
54
55
  dragleave: DragEvent;
55
56
  dragend: DragEvent;
56
57
  drop: DragEvent;
57
- select: Event;
58
- change: Event;
58
+ select: CustomEvent<any>;
59
+ change: CustomEvent<any>;
59
60
  } & {
60
61
  [evt: string]: CustomEvent<any>;
61
62
  };
62
63
  slots: {
64
+ 'check-icon': {};
63
65
  'start-icon': {
64
66
  slot: string;
65
67
  };