@sveltia/ui 0.19.3 → 0.20.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 (88) hide show
  1. package/package/components/alert/alert.svelte.d.ts +18 -0
  2. package/package/components/button/button-group.svelte.d.ts +14 -0
  3. package/package/components/button/button.svelte.d.ts +4 -0
  4. package/package/components/button/select-button-group.svelte.d.ts +42 -0
  5. package/package/components/button/select-button.svelte.d.ts +11 -0
  6. package/package/components/button/split-button.svelte.d.ts +23 -0
  7. package/package/components/calendar/calendar.svelte.d.ts +10 -0
  8. package/package/components/checkbox/checkbox-group.svelte.d.ts +28 -0
  9. package/package/components/checkbox/checkbox.svelte.d.ts +37 -0
  10. package/package/components/dialog/alert-dialog.svelte.d.ts +4 -0
  11. package/package/components/dialog/confirmation-dialog.svelte.d.ts +4 -0
  12. package/package/components/dialog/dialog.svelte +8 -1
  13. package/package/components/dialog/dialog.svelte.d.ts +4 -0
  14. package/package/components/dialog/prompt-dialog.svelte.d.ts +22 -0
  15. package/package/components/disclosure/disclosure.svelte.d.ts +41 -0
  16. package/package/components/divider/divider.svelte.d.ts +20 -0
  17. package/package/components/divider/spacer.svelte.d.ts +14 -0
  18. package/package/components/drawer/drawer.svelte.d.ts +55 -0
  19. package/package/components/grid/grid-body.svelte.d.ts +18 -0
  20. package/package/components/grid/grid-cell.svelte.d.ts +14 -0
  21. package/package/components/grid/grid-col-header.svelte.d.ts +14 -0
  22. package/package/components/grid/grid-foot.svelte.d.ts +14 -0
  23. package/package/components/grid/grid-head.svelte.d.ts +14 -0
  24. package/package/components/grid/grid-row-header.svelte.d.ts +14 -0
  25. package/package/components/grid/grid-row.svelte.d.ts +27 -0
  26. package/package/components/grid/grid.svelte.d.ts +31 -0
  27. package/package/components/icon/icon.svelte.d.ts +14 -0
  28. package/package/components/listbox/listbox.svelte.d.ts +56 -0
  29. package/package/components/listbox/option-group.svelte.d.ts +28 -0
  30. package/package/components/listbox/option.svelte.d.ts +31 -0
  31. package/package/components/menu/menu-button.svelte.d.ts +13 -0
  32. package/package/components/menu/menu-item-checkbox.svelte.d.ts +4 -0
  33. package/package/components/menu/menu-item-group.svelte.d.ts +24 -0
  34. package/package/components/menu/menu-item-radio.svelte.d.ts +4 -0
  35. package/package/components/menu/menu-item.svelte.d.ts +4 -0
  36. package/package/components/menu/menu.svelte.d.ts +28 -0
  37. package/package/components/progressbar/progressbar.svelte +54 -0
  38. package/package/components/progressbar/progressbar.svelte.d.ts +53 -0
  39. package/package/components/radio/radio-group.svelte.d.ts +47 -0
  40. package/package/components/radio/radio.svelte.d.ts +52 -0
  41. package/package/components/select/combobox.svelte.d.ts +4 -0
  42. package/package/components/select/select-tags.svelte.d.ts +63 -0
  43. package/package/components/select/select.svelte.d.ts +4 -0
  44. package/package/components/slider/slider.svelte.d.ts +77 -0
  45. package/package/components/switch/switch.svelte.d.ts +46 -0
  46. package/package/components/table/table-body.svelte.d.ts +18 -0
  47. package/package/components/table/table-cell.svelte.d.ts +14 -0
  48. package/package/components/table/table-col-header.svelte.d.ts +14 -0
  49. package/package/components/table/table-foot.svelte.d.ts +14 -0
  50. package/package/components/table/table-head.svelte.d.ts +14 -0
  51. package/package/components/table/table-row-header.svelte.d.ts +14 -0
  52. package/package/components/table/table-row.svelte.d.ts +14 -0
  53. package/package/components/table/table.svelte.d.ts +14 -0
  54. package/package/components/tabs/tab-box.svelte.d.ts +19 -0
  55. package/package/components/tabs/tab-list.svelte.d.ts +36 -0
  56. package/package/components/tabs/tab-panel.svelte.d.ts +14 -0
  57. package/package/components/tabs/tab-panels.svelte.d.ts +14 -0
  58. package/package/components/tabs/tab.svelte.d.ts +11 -0
  59. package/package/components/text-editor/core.d.ts +1 -0
  60. package/package/components/text-editor/core.js +13 -1
  61. package/package/components/text-editor/lexical-root.svelte +6 -0
  62. package/package/components/text-editor/lexical-root.svelte.d.ts +42 -0
  63. package/package/components/text-editor/text-editor.svelte.d.ts +54 -0
  64. package/package/components/text-editor/toolbar/editor-toolbar.svelte.d.ts +20 -0
  65. package/package/components/text-editor/toolbar/format-text-button.svelte +3 -1
  66. package/package/components/text-editor/toolbar/format-text-button.svelte.d.ts +10 -0
  67. package/package/components/text-editor/toolbar/insert-link-button.svelte +41 -33
  68. package/package/components/text-editor/toolbar/insert-link-button.svelte.d.ts +4 -0
  69. package/package/components/text-editor/toolbar/toggle-block-menu-item.svelte +4 -6
  70. package/package/components/text-editor/toolbar/toggle-block-menu-item.svelte.d.ts +10 -0
  71. package/package/components/text-field/number-input.svelte.d.ts +27 -0
  72. package/package/components/text-field/password-input.svelte.d.ts +10 -0
  73. package/package/components/text-field/search-bar.svelte.d.ts +16 -0
  74. package/package/components/text-field/text-area.svelte.d.ts +55 -0
  75. package/package/components/text-field/text-input.svelte.d.ts +4 -0
  76. package/package/components/toast/toast.svelte.d.ts +28 -0
  77. package/package/components/toolbar/toolbar.svelte.d.ts +32 -0
  78. package/package/components/util/app-shell.svelte +5 -496
  79. package/package/components/util/app-shell.svelte.d.ts +15 -0
  80. package/package/components/util/group.svelte.d.ts +23 -0
  81. package/package/components/util/modal.svelte +8 -4
  82. package/package/components/util/modal.svelte.d.ts +6 -0
  83. package/package/components/util/placeholder.svelte.d.ts +10 -0
  84. package/package/components/util/popup.svelte.d.ts +49 -0
  85. package/package/index.d.ts +1 -0
  86. package/package/index.js +1 -0
  87. package/package/styles/core.scss +4 -2
  88. package/package.json +29 -29
@@ -1,7 +1,17 @@
1
1
  export default FormatTextButton;
2
+ type FormatTextButton = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<Props & Record<string, any>>): void;
5
+ };
2
6
  declare const FormatTextButton: import("svelte").Component<{
3
7
  /**
4
8
  * - Button type.
5
9
  */
6
10
  type: import("../../../typedefs").TextEditorFormatType;
7
11
  } & Record<string, any>, {}, "">;
12
+ type Props = {
13
+ /**
14
+ * - Button type.
15
+ */
16
+ type: import("../../../typedefs").TextEditorFormatType;
17
+ };
@@ -2,14 +2,17 @@
2
2
  import { LinkNode, TOGGLE_LINK_COMMAND } from '@lexical/link';
3
3
  import { $getNearestNodeOfType as getNearestNodeOfType } from '@lexical/utils';
4
4
  import { generateElementId } from '@sveltia/utils/element';
5
- import { isURL } from '@sveltia/utils/string';
6
5
  import {
7
6
  COMMAND_PRIORITY_NORMAL,
8
7
  KEY_DOWN_COMMAND,
8
+ $createRangeSelection as createRangeSelection,
9
+ $createTextNode as createTextNode,
9
10
  $getPreviousSelection as getPreviousSelection,
10
11
  $getSelection as getSelection,
11
12
  $getTextContent as getTextContent,
13
+ $insertNodes as insertNodes,
12
14
  $isRangeSelection as isRangeSelection,
15
+ $setSelection as setSelection,
13
16
  } from 'lexical';
14
17
  import { getContext } from 'svelte';
15
18
  import { _ } from 'svelte-i18n';
@@ -19,6 +22,7 @@
19
22
  import Dialog from '../../dialog/dialog.svelte';
20
23
  import Icon from '../../icon/icon.svelte';
21
24
  import TextInput from '../../text-field/text-input.svelte';
25
+ import { focusEditor } from '../core';
22
26
 
23
27
  const id = generateElementId('insert-link');
24
28
 
@@ -47,7 +51,7 @@
47
51
  $editor.getEditorState().read(() => {
48
52
  const textContent = getTextContent().trim();
49
53
 
50
- anchorURL = isURL(textContent) ? textContent : '';
54
+ anchorURL = textContent;
51
55
  hasAnchor = !!textContent;
52
56
  dialogMode = 'create';
53
57
  openDialog = true;
@@ -105,7 +109,7 @@
105
109
  * @param {KeyboardEvent} event - `keydown` event.
106
110
  */
107
111
  const onInputKeyDown = (event) => {
108
- if (matchShortcuts(event, 'Enter') && isURL(anchorURL)) {
112
+ if (matchShortcuts(event, 'Enter') && anchorURL) {
109
113
  openDialog = false;
110
114
  }
111
115
  };
@@ -117,27 +121,33 @@
117
121
  */
118
122
  const onDialogClose = async (event) => {
119
123
  if (event.detail !== 'cancel' && dialogMode !== 'remove') {
120
- if (!hasAnchor) {
121
- anchorText = anchorText.trim();
122
- anchorText ||= anchorURL;
124
+ await new Promise((resolve) => {
125
+ $editor.update(async () => {
126
+ let selection = getSelection() ?? getPreviousSelection()?.clone();
123
127
 
124
- await new Promise((resolve) => {
125
- $editor.update(() => {
126
- const selection = getSelection() ?? getPreviousSelection()?.clone();
128
+ if (!isRangeSelection(selection)) {
129
+ selection = createRangeSelection();
130
+ }
127
131
 
128
- if (isRangeSelection(selection)) {
129
- const { anchor, focus } = selection;
132
+ if (!hasAnchor) {
133
+ anchorText = anchorText.trim();
134
+ anchorText ||= anchorURL;
130
135
 
131
- selection.insertText(anchorText);
132
- anchor.offset -= anchorText.length;
133
- focus.offset = anchor.offset + anchorText.length;
136
+ const { anchor, focus } = /** @type {import('lexical').RangeSelection} */ (selection);
137
+ const node = createTextNode(anchorText);
138
+ const key = node.getKey();
134
139
 
135
- resolve(void 0);
136
- }
137
- });
140
+ insertNodes([node]);
141
+ anchor.set(key, anchorText.length, 'text');
142
+ focus.set(key, 0, 'text');
143
+ }
144
+
145
+ setSelection(selection);
146
+ resolve(undefined);
138
147
  });
139
- }
148
+ });
140
149
 
150
+ await focusEditor($editor);
141
151
  $editor.dispatchCommand(TOGGLE_LINK_COMMAND, anchorURL);
142
152
  }
143
153
 
@@ -191,18 +201,29 @@
191
201
  : $_('_sui.text_editor.update_link')}
192
202
  bind:open={openDialog}
193
203
  bind:value={anchorURL}
194
- okDisabled={!isURL(anchorURL)}
204
+ okDisabled={!anchorURL}
195
205
  okLabel={dialogMode === 'create' ? $_('_sui.insert') : $_('_sui.update')}
196
206
  onClose={(event) => {
197
207
  onDialogClose(event);
198
208
  }}
199
209
  >
210
+ <div role="none">
211
+ <label for="{id}-url">{$_('_sui.text_editor.url')}</label>
212
+ <TextInput
213
+ id="{id}-url"
214
+ bind:value={anchorURL}
215
+ flex
216
+ aria-label="URL"
217
+ onkeydown={(event) => {
218
+ onInputKeyDown(event);
219
+ }}
220
+ />
221
+ </div>
200
222
  {#if !hasAnchor}
201
223
  <div role="none">
202
224
  <label for="{id}-text">{$_('_sui.text_editor.text')}</label>
203
225
  <TextInput
204
226
  id="{id}-text"
205
- autofocus
206
227
  bind:value={anchorText}
207
228
  flex
208
229
  onkeydown={(event) => {
@@ -211,19 +232,6 @@
211
232
  />
212
233
  </div>
213
234
  {/if}
214
- <div role="none">
215
- <label for="{id}-url">{$_('_sui.text_editor.url')}</label>
216
- <TextInput
217
- id="{id}-url"
218
- autofocus={hasAnchor || undefined}
219
- bind:value={anchorURL}
220
- flex
221
- aria-label="URL"
222
- onkeydown={(event) => {
223
- onInputKeyDown(event);
224
- }}
225
- />
226
- </div>
227
235
  {#snippet footerExtra()}
228
236
  {#if dialogMode !== 'create'}
229
237
  <Button
@@ -1,2 +1,6 @@
1
1
  export default InsertLinkButton;
2
+ type InsertLinkButton = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<Record<string, never>>): void;
5
+ };
2
6
  declare const InsertLinkButton: import("svelte").Component<Record<string, never>, {}, "">;
@@ -14,6 +14,7 @@
14
14
  import { availableButtons } from '..';
15
15
  import Icon from '../../icon/icon.svelte';
16
16
  import MenuItemCheckbox from '../../menu/menu-item-checkbox.svelte';
17
+ import { focusEditor } from '../core';
17
18
 
18
19
  /**
19
20
  * @typedef {object} Props
@@ -43,7 +44,9 @@
43
44
  /**
44
45
  * Change the current selection’s type to {@link type}.
45
46
  */
46
- const changeBlockType = () => {
47
+ const changeBlockType = async () => {
48
+ await focusEditor($editor);
49
+
47
50
  const [, headingLevel] = type.match(/^heading-(\d)$/) ?? [];
48
51
 
49
52
  if (headingLevel) {
@@ -75,11 +78,6 @@
75
78
  setBlocksType(getSelection(), () => createQuoteNode());
76
79
  });
77
80
  }
78
-
79
- // Move focus back to the editor
80
- window.setTimeout(() => {
81
- $editor.focus();
82
- }, 500);
83
81
  };
84
82
  </script>
85
83
 
@@ -1,7 +1,17 @@
1
1
  export default ToggleBlockMenuItem;
2
+ type ToggleBlockMenuItem = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<Props & Record<string, any>>): void;
5
+ };
2
6
  declare const ToggleBlockMenuItem: import("svelte").Component<{
3
7
  /**
4
8
  * - Button type.
5
9
  */
6
10
  type: import("../../../typedefs").TextEditorBlockType;
7
11
  } & Record<string, any>, {}, "">;
12
+ type Props = {
13
+ /**
14
+ * - Button type.
15
+ */
16
+ type: import("../../../typedefs").TextEditorBlockType;
17
+ };
@@ -1,4 +1,8 @@
1
1
  export default NumberInput;
2
+ type NumberInput = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<TextInputProps & KeyboardEventHandlers & MouseEventHandlers & FocusEventHandlers & DragEventHandlers & InputEventHandlers & Props & Record<string, any>>): void;
5
+ };
2
6
  /**
3
7
  * The equivalent of the HTML `<input type="number">` element.
4
8
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number
@@ -27,3 +31,26 @@ declare const NumberInput: import("svelte").Component<import("../../typedefs").T
27
31
  */
28
32
  decreaseIcon?: import("svelte").Snippet<[]> | undefined;
29
33
  } & Record<string, any>, {}, "invalid" | "value">;
34
+ type Props = {
35
+ /**
36
+ * - Minimum allowed value.
37
+ */
38
+ min?: number | undefined;
39
+ /**
40
+ * - Maximum allowed value.
41
+ */
42
+ max?: number | undefined;
43
+ /**
44
+ * - Value to be added or removed when using the up/down arrow key or
45
+ * button.
46
+ */
47
+ step?: number | undefined;
48
+ /**
49
+ * - Increase icon slot content.
50
+ */
51
+ increaseIcon?: import("svelte").Snippet<[]> | undefined;
52
+ /**
53
+ * - Decrease icon slot content.
54
+ */
55
+ decreaseIcon?: import("svelte").Snippet<[]> | undefined;
56
+ };
@@ -1,4 +1,8 @@
1
1
  export default PasswordInput;
2
+ type PasswordInput = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<TextInputProps & KeyboardEventHandlers & MouseEventHandlers & FocusEventHandlers & DragEventHandlers & InputEventHandlers & Props & Record<string, any>>): void;
5
+ };
2
6
  /**
3
7
  * The equivalent of the HTML `<input type="password">` element, but it comes with the Show/Hide
4
8
  * button.
@@ -11,3 +15,9 @@ declare const PasswordInput: import("svelte").Component<import("../../typedefs")
11
15
  */
12
16
  visibilityIcon?: import("svelte").Snippet<[]> | undefined;
13
17
  } & Record<string, any>, {}, "value">;
18
+ type Props = {
19
+ /**
20
+ * - Visibility icon slot content.
21
+ */
22
+ visibilityIcon?: import("svelte").Snippet<[]> | undefined;
23
+ };
@@ -1,4 +1,10 @@
1
1
  export default SearchBar;
2
+ type SearchBar = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<TextInputProps & KeyboardEventHandlers & MouseEventHandlers & FocusEventHandlers & DragEventHandlers & InputEventHandlers & Props & Record<string, any>>): void;
5
+ } & {
6
+ focus: () => void;
7
+ };
2
8
  /**
3
9
  * The equivalent of the HTML `<input type="search">` element. It comes with a magnifier icon and
4
10
  * clear button.
@@ -17,3 +23,13 @@ declare const SearchBar: import("svelte").Component<import("../../typedefs").Tex
17
23
  } & Record<string, any>, {
18
24
  focus: () => void;
19
25
  }, "value">;
26
+ type Props = {
27
+ /**
28
+ * - Search icon slot content.
29
+ */
30
+ searchIcon?: import("svelte").Snippet<[]> | undefined;
31
+ /**
32
+ * - Close icon slot content.
33
+ */
34
+ closeIcon?: import("svelte").Snippet<[]> | undefined;
35
+ };
@@ -1,4 +1,8 @@
1
1
  export default TextArea;
2
+ type TextArea = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<KeyboardEventHandlers & MouseEventHandlers & FocusEventHandlers & DragEventHandlers & InputEventHandlers & Props & Record<string, any>>): void;
5
+ };
2
6
  /**
3
7
  * A multi-line text field based on the HTML `<textarea>` element, providing the auto-resize support.
4
8
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea
@@ -56,3 +60,54 @@ declare const TextArea: import("svelte").Component<import("../../typedefs").Keyb
56
60
  */
57
61
  children?: import("svelte").Snippet<[]> | undefined;
58
62
  } & Record<string, any>, {}, "value">;
63
+ type Props = {
64
+ /**
65
+ * - Input value.
66
+ */
67
+ value?: string | undefined;
68
+ /**
69
+ * - Make the text input container flexible.
70
+ */
71
+ flex?: boolean | undefined;
72
+ /**
73
+ * - The `name` attribute on the `<textarea>` element.
74
+ */
75
+ name?: string | undefined;
76
+ /**
77
+ * - Whether to automatically resize the `<textarea>` based on
78
+ * the content.
79
+ */
80
+ autoResize?: boolean | undefined;
81
+ /**
82
+ * - The `class` attribute on the wrapper element.
83
+ */
84
+ class?: string | undefined;
85
+ /**
86
+ * - Whether to hide the widget.
87
+ */
88
+ hidden?: boolean | undefined;
89
+ /**
90
+ * - Whether to disable the widget. An alias of the `aria-disabled`
91
+ * attribute.
92
+ */
93
+ disabled?: boolean | undefined;
94
+ /**
95
+ * - Whether to make the widget read-only. An alias of the
96
+ * `aria-readonly` attribute.
97
+ */
98
+ readonly?: boolean | undefined;
99
+ /**
100
+ * - Whether to mark the widget required. An alias of the
101
+ * `aria-required` attribute.
102
+ */
103
+ required?: boolean | undefined;
104
+ /**
105
+ * - Whether to mark the widget invalid. An alias of the
106
+ * `aria-invalid` attribute.
107
+ */
108
+ invalid?: boolean | undefined;
109
+ /**
110
+ * - Primary slot content.
111
+ */
112
+ children?: import("svelte").Snippet<[]> | undefined;
113
+ };
@@ -1,4 +1,8 @@
1
1
  export default TextInput;
2
+ type TextInput = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<TextInputProps & KeyboardEventHandlers & MouseEventHandlers & FocusEventHandlers & DragEventHandlers & InputEventHandlers & Record<string, any>>): void;
5
+ };
2
6
  /**
3
7
  * A generic, single-line text field. The equivalent of the HTML `<input type="text">` element.
4
8
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/text
@@ -1,4 +1,8 @@
1
1
  export default Toast;
2
+ type Toast = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<Props & Record<string, any>>): void;
5
+ };
2
6
  /**
3
7
  * Toast/snackbar notification. Use the Popover API if possible to acquire a non-modal top layer.
4
8
  * @see https://w3c.github.io/aria/#alert
@@ -28,3 +32,27 @@ declare const Toast: import("svelte").Component<{
28
32
  */
29
33
  children?: import("svelte").Snippet<[]> | undefined;
30
34
  } & Record<string, any>, {}, "show">;
35
+ type Props = {
36
+ /**
37
+ * - The toast ID. If updated, the timer that hides
38
+ * the toast will be reset, meaning the same toast can be displayed for a longer period of time.
39
+ */
40
+ id?: string | number | undefined;
41
+ /**
42
+ * - Whether to show the toast.
43
+ */
44
+ show?: boolean | undefined;
45
+ /**
46
+ * - Duration to automatically hide the toast. Use `0` to hide it
47
+ * manually from the consumer.
48
+ */
49
+ duration?: number | undefined;
50
+ /**
51
+ * - Position of the toast.
52
+ */
53
+ position?: import("../../typedefs").ToastPosition | undefined;
54
+ /**
55
+ * - Primary slot content.
56
+ */
57
+ children?: import("svelte").Snippet<[]> | undefined;
58
+ };
@@ -1,4 +1,8 @@
1
1
  export default Toolbar;
2
+ type Toolbar = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<Props & Record<string, any>>): void;
5
+ };
2
6
  /**
3
7
  * A toolbar layout that can contain `<Button>`, `<Select>` and other widgets.
4
8
  * @see https://w3c.github.io/aria/#toolbar
@@ -32,3 +36,31 @@ declare const Toolbar: import("svelte").Component<{
32
36
  */
33
37
  children?: import("svelte").Snippet<[]> | undefined;
34
38
  } & Record<string, any>, {}, "">;
39
+ type Props = {
40
+ /**
41
+ * - The `class` attribute on the wrapper element.
42
+ */
43
+ class?: string | undefined;
44
+ /**
45
+ * - Whether to hide the widget.
46
+ */
47
+ hidden?: boolean | undefined;
48
+ /**
49
+ * - Whether to disable the widget. An alias of the `aria-disabled`
50
+ * attribute.
51
+ */
52
+ disabled?: boolean | undefined;
53
+ /**
54
+ * - Orientation of the widget. An alias of
55
+ * the `aria-orientation` attribute.
56
+ */
57
+ orientation?: "vertical" | "horizontal" | undefined;
58
+ /**
59
+ * - The style variant of the toolbar.
60
+ */
61
+ variant?: "primary" | "secondary" | undefined;
62
+ /**
63
+ * - Primary slot content.
64
+ */
65
+ children?: import("svelte").Snippet<[]> | undefined;
66
+ };