@sveltia/ui 0.15.16 → 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 (157) hide show
  1. package/package/components/alert/alert.svelte +22 -7
  2. package/package/components/alert/alert.svelte.d.ts +47 -31
  3. package/package/components/button/button-group.svelte +16 -6
  4. package/package/components/button/button-group.svelte.d.ts +38 -28
  5. package/package/components/button/button.svelte +41 -136
  6. package/package/components/button/button.svelte.d.ts +20 -162
  7. package/package/components/button/select-button-group.svelte +31 -37
  8. package/package/components/button/select-button-group.svelte.d.ts +91 -39
  9. package/package/components/button/select-button.svelte +19 -62
  10. package/package/components/button/select-button.svelte.d.ts +31 -65
  11. package/package/components/button/split-button.svelte +37 -47
  12. package/package/components/button/split-button.svelte.d.ts +54 -60
  13. package/package/components/calendar/calendar.svelte +80 -55
  14. package/package/components/calendar/calendar.svelte.d.ts +30 -26
  15. package/package/components/checkbox/checkbox-group.svelte +23 -20
  16. package/package/components/checkbox/checkbox-group.svelte.d.ts +64 -32
  17. package/package/components/checkbox/checkbox.svelte +57 -67
  18. package/package/components/checkbox/checkbox.svelte.d.ts +81 -53
  19. package/package/components/dialog/alert-dialog.svelte +9 -36
  20. package/package/components/dialog/alert-dialog.svelte.d.ts +20 -49
  21. package/package/components/dialog/confirmation-dialog.svelte +9 -41
  22. package/package/components/dialog/confirmation-dialog.svelte.d.ts +20 -51
  23. package/package/components/dialog/dialog.svelte +60 -105
  24. package/package/components/dialog/dialog.svelte.d.ts +19 -86
  25. package/package/components/dialog/prompt-dialog.svelte +32 -61
  26. package/package/components/dialog/prompt-dialog.svelte.d.ts +53 -65
  27. package/package/components/disclosure/disclosure.svelte +39 -34
  28. package/package/components/disclosure/disclosure.svelte.d.ts +88 -57
  29. package/package/components/divider/divider.svelte +18 -14
  30. package/package/components/divider/divider.svelte.d.ts +48 -26
  31. package/package/components/divider/spacer.svelte +13 -8
  32. package/package/components/divider/spacer.svelte.d.ts +37 -25
  33. package/package/components/drawer/drawer.svelte +63 -76
  34. package/package/components/drawer/drawer.svelte.d.ts +116 -70
  35. package/package/components/grid/grid-body.svelte +15 -10
  36. package/package/components/grid/grid-body.svelte.d.ts +45 -29
  37. package/package/components/grid/grid-cell.svelte +16 -6
  38. package/package/components/grid/grid-cell.svelte.d.ts +38 -28
  39. package/package/components/grid/grid-col-header.svelte +16 -6
  40. package/package/components/grid/grid-col-header.svelte.d.ts +38 -28
  41. package/package/components/grid/grid-foot.svelte +16 -6
  42. package/package/components/grid/grid-foot.svelte.d.ts +38 -28
  43. package/package/components/grid/grid-head.svelte +16 -6
  44. package/package/components/grid/grid-head.svelte.d.ts +38 -28
  45. package/package/components/grid/grid-row-header.svelte +16 -6
  46. package/package/components/grid/grid-row-header.svelte.d.ts +38 -28
  47. package/package/components/grid/grid-row.svelte +19 -23
  48. package/package/components/grid/grid-row.svelte.d.ts +63 -43
  49. package/package/components/grid/grid.svelte +26 -25
  50. package/package/components/grid/grid.svelte.d.ts +71 -37
  51. package/package/components/icon/icon.svelte +14 -9
  52. package/package/components/icon/icon.svelte.d.ts +37 -25
  53. package/package/components/listbox/listbox.svelte +46 -52
  54. package/package/components/listbox/listbox.svelte.d.ts +117 -45
  55. package/package/components/listbox/option-group.svelte +23 -19
  56. package/package/components/listbox/option-group.svelte.d.ts +64 -32
  57. package/package/components/listbox/option.svelte +44 -57
  58. package/package/components/listbox/option.svelte.d.ts +68 -74
  59. package/package/components/menu/menu-button.svelte +42 -63
  60. package/package/components/menu/menu-button.svelte.d.ts +35 -62
  61. package/package/components/menu/menu-item-checkbox.svelte +29 -41
  62. package/package/components/menu/menu-item-checkbox.svelte.d.ts +20 -49
  63. package/package/components/menu/menu-item-group.svelte +22 -19
  64. package/package/components/menu/menu-item-group.svelte.d.ts +56 -32
  65. package/package/components/menu/menu-item-radio.svelte +29 -41
  66. package/package/components/menu/menu-item-radio.svelte.d.ts +20 -49
  67. package/package/components/menu/menu-item.svelte +66 -75
  68. package/package/components/menu/menu-item.svelte.d.ts +19 -68
  69. package/package/components/menu/menu.svelte +25 -22
  70. package/package/components/menu/menu.svelte.d.ts +65 -35
  71. package/package/components/radio/radio-group.svelte +36 -42
  72. package/package/components/radio/radio-group.svelte.d.ts +100 -40
  73. package/package/components/radio/radio.svelte +45 -48
  74. package/package/components/radio/radio.svelte.d.ts +111 -47
  75. package/package/components/select/combobox.svelte +76 -101
  76. package/package/components/select/combobox.svelte.d.ts +19 -54
  77. package/package/components/select/select-tags.svelte +48 -59
  78. package/package/components/select/select-tags.svelte.d.ts +127 -45
  79. package/package/components/select/select.svelte +18 -37
  80. package/package/components/select/select.svelte.d.ts +20 -45
  81. package/package/components/slider/slider.svelte +71 -68
  82. package/package/components/slider/slider.svelte.d.ts +159 -47
  83. package/package/components/switch/switch.svelte +36 -46
  84. package/package/components/switch/switch.svelte.d.ts +98 -42
  85. package/package/components/table/table-body.svelte +15 -11
  86. package/package/components/table/table-body.svelte.d.ts +45 -29
  87. package/package/components/table/table-cell.svelte +16 -6
  88. package/package/components/table/table-cell.svelte.d.ts +38 -28
  89. package/package/components/table/table-col-header.svelte +16 -6
  90. package/package/components/table/table-col-header.svelte.d.ts +38 -28
  91. package/package/components/table/table-foot.svelte +16 -6
  92. package/package/components/table/table-foot.svelte.d.ts +38 -28
  93. package/package/components/table/table-head.svelte +16 -6
  94. package/package/components/table/table-head.svelte.d.ts +38 -28
  95. package/package/components/table/table-row-header.svelte +16 -6
  96. package/package/components/table/table-row-header.svelte.d.ts +38 -28
  97. package/package/components/table/table-row.svelte +16 -6
  98. package/package/components/table/table-row.svelte.d.ts +38 -28
  99. package/package/components/table/table.svelte +16 -6
  100. package/package/components/table/table.svelte.d.ts +38 -28
  101. package/package/components/tabs/tab-box.svelte +16 -9
  102. package/package/components/tabs/tab-box.svelte.d.ts +47 -27
  103. package/package/components/tabs/tab-list.svelte +36 -35
  104. package/package/components/tabs/tab-list.svelte.d.ts +80 -38
  105. package/package/components/tabs/tab-panel.svelte +16 -6
  106. package/package/components/tabs/tab-panel.svelte.d.ts +38 -28
  107. package/package/components/tabs/tab-panels.svelte +16 -6
  108. package/package/components/tabs/tab-panels.svelte.d.ts +38 -26
  109. package/package/components/tabs/tab.svelte +28 -25
  110. package/package/components/tabs/tab.svelte.d.ts +31 -55
  111. package/package/components/text-editor/lexical-root.svelte +38 -32
  112. package/package/components/text-editor/lexical-root.svelte.d.ts +91 -29
  113. package/package/components/text-editor/text-editor.svelte +63 -79
  114. package/package/components/text-editor/text-editor.svelte.d.ts +114 -36
  115. package/package/components/text-editor/toolbar/editor-toolbar.svelte +41 -24
  116. package/package/components/text-editor/toolbar/editor-toolbar.svelte.d.ts +49 -23
  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 +30 -22
  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 +20 -23
  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 +30 -22
  123. package/package/components/text-field/number-input.svelte +63 -81
  124. package/package/components/text-field/number-input.svelte.d.ts +62 -68
  125. package/package/components/text-field/password-input.svelte +38 -57
  126. package/package/components/text-field/password-input.svelte.d.ts +30 -58
  127. package/package/components/text-field/search-bar.svelte +45 -62
  128. package/package/components/text-field/search-bar.svelte.d.ts +42 -87
  129. package/package/components/text-field/text-area.svelte +38 -54
  130. package/package/components/text-field/text-area.svelte.d.ts +116 -50
  131. package/package/components/text-field/text-input.svelte +30 -86
  132. package/package/components/text-field/text-input.svelte.d.ts +20 -105
  133. package/package/components/toast/toast.svelte +36 -30
  134. package/package/components/toast/toast.svelte.d.ts +65 -33
  135. package/package/components/toolbar/toolbar.svelte +25 -25
  136. package/package/components/toolbar/toolbar.svelte.d.ts +72 -34
  137. package/package/components/util/app-shell.svelte +22 -10
  138. package/package/components/util/app-shell.svelte.d.ts +40 -34
  139. package/package/components/util/group.svelte +20 -15
  140. package/package/components/util/group.svelte.d.ts +55 -31
  141. package/package/components/util/modal.svelte +89 -105
  142. package/package/components/util/modal.svelte.d.ts +24 -82
  143. package/package/components/util/placeholder.svelte +21 -0
  144. package/package/components/util/placeholder.svelte.d.ts +34 -0
  145. package/package/components/util/popup.svelte +65 -62
  146. package/package/components/util/popup.svelte.d.ts +104 -82
  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 +16 -23
  152. package/package/components/util/portal.svelte +0 -36
  153. package/package/components/util/portal.svelte.d.ts +0 -32
  154. /package/package/services/{events.d.ts → events.svelte.d.ts} +0 -0
  155. /package/package/services/{events.js → events.svelte.js} +0 -0
  156. /package/package/services/{group.d.ts → group.svelte.d.ts} +0 -0
  157. /package/package/services/{popup.d.ts → popup.svelte.d.ts} +0 -0
@@ -5,7 +5,6 @@
5
5
  @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search
6
6
  @see https://w3c.github.io/aria/#search
7
7
  -->
8
- <svelte:options accessors={true} />
9
8
 
10
9
  <script>
11
10
  import { generateElementId } from '@sveltia/utils/element';
@@ -15,61 +14,44 @@
15
14
  import TextInput from './text-input.svelte';
16
15
 
17
16
  /**
18
- * The `class` attribute on the wrapper element.
19
- * @type {string}
17
+ * @typedef {object} Props
18
+ * @property {import('svelte').Snippet} [searchIcon] - Search icon slot content.
19
+ * @property {import('svelte').Snippet} [closeIcon] - Close icon slot content.
20
20
  */
21
- let className = '';
22
- export { className as class };
23
- /**
24
- * Make the text input container flexible.
25
- * @type {boolean}
26
- */
27
- export let flex = false;
28
- /**
29
- * Whether to hide the widget. An alias of the `aria-hidden` attribute.
30
- * @type {boolean | undefined}
31
- */
32
- export let hidden = undefined;
33
- /**
34
- * Whether to disable the widget. An alias of the `aria-disabled` attribute.
35
- * @type {boolean}
36
- */
37
- export let disabled = false;
38
- /**
39
- * Whether to disable the widget. An alias of `aria-readonly` attribute.
40
- * @type {boolean}
41
- */
42
- export let readonly = false;
43
- /**
44
- * Whether to mark the widget required. An alias of the `aria-required` attribute.
45
- * @type {boolean}
46
- */
47
- export let required = false;
48
- /**
49
- * Whether to mark the widget invalid. An alias of the `aria-invalid` attribute.
50
- * @type {boolean}
51
- */
52
- export let invalid = false;
21
+
53
22
  /**
54
- * Input value.
55
- * @type {string | undefined}
23
+ * @type {import('../../typedefs').TextInputProps & import('../../typedefs').CommonEventHandlers &
24
+ * import('../../typedefs').InputEventHandlers & Props & Record<string, any>}
56
25
  */
57
- export let value = undefined;
26
+ let {
27
+ /* eslint-disable prefer-const */
28
+ value = $bindable(),
29
+ flex = false,
30
+ class: className,
31
+ hidden = false,
32
+ disabled = false,
33
+ readonly = false,
34
+ required = false,
35
+ invalid = false,
36
+ children,
37
+ searchIcon,
38
+ closeIcon,
39
+ ...restProps
40
+ /* eslint-enable prefer-const */
41
+ } = $props();
58
42
 
59
43
  const id = generateElementId('searchbox');
60
44
  /**
61
- * Reference to the `TextInput` component.
62
- * @type {TextInput | undefined}
45
+ * Reference to the `<input>` element.
46
+ * @type {HTMLInputElement | undefined}
63
47
  */
64
- let inputComponent;
65
-
66
- $: input = inputComponent?.element;
48
+ let inputElement = $state();
67
49
 
68
50
  /**
69
51
  * Move focus to the `<input>` element.
70
52
  */
71
53
  export const focus = () => {
72
- input?.focus();
54
+ inputElement?.focus();
73
55
  };
74
56
  </script>
75
57
 
@@ -79,15 +61,19 @@
79
61
  class:flex
80
62
  class:disabled
81
63
  class:readonly
82
- hidden={hidden || undefined}
64
+ {hidden}
83
65
  aria-hidden={hidden}
84
66
  >
85
67
  <span role="none">
86
- <slot name="search-icon">
68
+ {#if searchIcon}
69
+ {@render searchIcon()}
70
+ {:else}
87
71
  <Icon name="search" />
88
- </slot>
72
+ {/if}
89
73
  </span>
90
74
  <TextInput
75
+ bind:element={inputElement}
76
+ {...restProps}
91
77
  role="searchbox"
92
78
  {id}
93
79
  bind:value
@@ -98,32 +84,29 @@
98
84
  {required}
99
85
  {invalid}
100
86
  inputmode="search"
101
- {...$$restProps}
102
- bind:this={inputComponent}
103
- on:keydown
104
- on:keyup
105
- on:keypress
106
- on:input
107
- on:change
108
87
  />
109
88
  {#if value}
110
89
  <Button
111
90
  iconic
112
91
  aria-label={$_('_sui.clear')}
113
92
  aria-controls={id}
114
- on:click={() => {
93
+ onclick={() => {
115
94
  value = '';
116
- input?.focus();
95
+ inputElement?.focus();
117
96
  globalThis.requestIdleCallback(() => {
118
- input?.dispatchEvent(new KeyboardEvent('input'));
119
- input?.dispatchEvent(new KeyboardEvent('keypress'));
120
- input?.dispatchEvent(new KeyboardEvent('change'));
97
+ inputElement?.dispatchEvent(new KeyboardEvent('input'));
98
+ inputElement?.dispatchEvent(new KeyboardEvent('keypress'));
99
+ inputElement?.dispatchEvent(new KeyboardEvent('change'));
121
100
  });
122
101
  }}
123
102
  >
124
- <slot name="close-button" slot="start-icon">
125
- <Icon name="close" />
126
- </slot>
103
+ {#snippet startIcon()}
104
+ {#if closeIcon}
105
+ {@render closeIcon()}
106
+ {:else}
107
+ <Icon name="close" />
108
+ {/if}
109
+ {/snippet}
127
110
  </Button>
128
111
  {/if}
129
112
  </div>
@@ -1,96 +1,51 @@
1
- /** @typedef {typeof __propDef.props} SearchBarProps */
2
- /** @typedef {typeof __propDef.events} SearchBarEvents */
3
- /** @typedef {typeof __propDef.slots} SearchBarSlots */
1
+ export default SearchBar;
2
+ type SearchBar = SvelteComponent<TextInputProps & KeyboardEventHandlers & MouseEventHandlers & FocusEventHandlers & DragEventHandlers & InputEventHandlers & Props & Record<string, any>, {
3
+ [evt: string]: CustomEvent<any>;
4
+ }, {}> & {
5
+ $$bindings?: "value" | undefined;
6
+ } & {
7
+ focus: () => void;
8
+ };
4
9
  /**
5
10
  * The equivalent of the HTML `<input type="search">` element. It comes with a magnifier icon and
6
11
  * clear button.
7
12
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search
8
13
  * @see https://w3c.github.io/aria/#search
9
14
  */
10
- export default class SearchBar extends SvelteComponent<{
11
- [x: string]: any;
12
- class?: string | undefined;
13
- disabled?: boolean | undefined;
14
- focus?: (() => void) | undefined;
15
- invalid?: boolean | undefined;
16
- required?: boolean | undefined;
17
- value?: string | undefined;
18
- hidden?: boolean | undefined;
19
- readonly?: boolean | undefined;
20
- flex?: boolean | undefined;
21
- }, {
22
- keydown: KeyboardEvent;
23
- keyup: KeyboardEvent;
24
- keypress: KeyboardEvent;
25
- input: Event;
26
- change: Event;
27
- } & {
15
+ declare const SearchBar: $$__sveltets_2_IsomorphicComponent<import("../../typedefs").TextInputProps & import("../../typedefs").KeyboardEventHandlers & import("../../typedefs").MouseEventHandlers & import("../../typedefs").FocusEventHandlers & import("../../typedefs").DragEventHandlers & import("../../typedefs").InputEventHandlers & {
16
+ /**
17
+ * - Search icon slot content.
18
+ */
19
+ searchIcon?: import("svelte").Snippet<[]> | undefined;
20
+ /**
21
+ * - Close icon slot content.
22
+ */
23
+ closeIcon?: import("svelte").Snippet<[]> | undefined;
24
+ } & Record<string, any>, {
28
25
  [evt: string]: CustomEvent<any>;
29
- }, {
30
- 'search-icon': {};
31
- 'close-button': {
32
- slot: string;
26
+ }, {}, {
27
+ focus: () => void;
28
+ }, "value">;
29
+ type Props = {
30
+ /**
31
+ * - Search icon slot content.
32
+ */
33
+ searchIcon?: import("svelte").Snippet<[]> | undefined;
34
+ /**
35
+ * - Close icon slot content.
36
+ */
37
+ closeIcon?: import("svelte").Snippet<[]> | undefined;
38
+ };
39
+ 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> {
40
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
41
+ $$bindings?: Bindings;
42
+ } & Exports;
43
+ (internal: unknown, props: Props & {
44
+ $$events?: Events;
45
+ $$slots?: Slots;
46
+ }): Exports & {
47
+ $set?: any;
48
+ $on?: any;
33
49
  };
34
- }> {
35
- get focus(): () => void;
36
- /**accessor*/
37
- set class(_: string | undefined);
38
- get class(): string | undefined;
39
- /**accessor*/
40
- set flex(_: boolean | undefined);
41
- get flex(): boolean | undefined;
42
- /**accessor*/
43
- set hidden(_: boolean | undefined);
44
- get hidden(): boolean | undefined;
45
- /**accessor*/
46
- set disabled(_: boolean | undefined);
47
- get disabled(): boolean | undefined;
48
- /**accessor*/
49
- set readonly(_: boolean | undefined);
50
- get readonly(): boolean | undefined;
51
- /**accessor*/
52
- set required(_: boolean | undefined);
53
- get required(): boolean | undefined;
54
- /**accessor*/
55
- set invalid(_: boolean | undefined);
56
- get invalid(): boolean | undefined;
57
- /**accessor*/
58
- set value(_: string | undefined);
59
- get value(): string | undefined;
50
+ z_$$bindings?: Bindings;
60
51
  }
61
- export type SearchBarProps = typeof __propDef.props;
62
- export type SearchBarEvents = typeof __propDef.events;
63
- export type SearchBarSlots = typeof __propDef.slots;
64
- import { SvelteComponent } from "svelte";
65
- declare const __propDef: {
66
- props: {
67
- [x: string]: any;
68
- class?: string | undefined;
69
- disabled?: boolean | undefined;
70
- focus?: (() => void) | undefined;
71
- invalid?: boolean | undefined;
72
- required?: boolean | undefined;
73
- value?: string | undefined;
74
- hidden?: boolean | undefined;
75
- readonly?: boolean | undefined;
76
- flex?: boolean | undefined;
77
- };
78
- events: {
79
- keydown: KeyboardEvent;
80
- keyup: KeyboardEvent;
81
- keypress: KeyboardEvent;
82
- input: Event;
83
- change: Event;
84
- } & {
85
- [evt: string]: CustomEvent<any>;
86
- };
87
- slots: {
88
- 'search-icon': {};
89
- 'close-button': {
90
- slot: string;
91
- };
92
- };
93
- exports?: undefined;
94
- bindings?: undefined;
95
- };
96
- export {};
@@ -7,56 +7,45 @@
7
7
  -->
8
8
  <script>
9
9
  /**
10
- * The `class` attribute on the wrapper element.
11
- * @type {string}
10
+ * @typedef {object} Props
11
+ * @property {string | undefined} [value] - Input value.
12
+ * @property {boolean} [flex] - Make the text input container flexible.
13
+ * @property {string | undefined} [name] - The `name` attribute on the `<textarea>` element.
14
+ * @property {boolean} [autoResize] - Whether to automatically resize the `<textarea>` based on
15
+ * the content.
16
+ * @property {string} [class] - The `class` attribute on the wrapper element.
17
+ * @property {boolean} [hidden] - Whether to hide the widget.
18
+ * @property {boolean} [disabled] - Whether to disable the widget. An alias of the `aria-disabled`
19
+ * attribute.
20
+ * @property {boolean} [readonly] - Whether to make the widget read-only. An alias of the
21
+ * `aria-readonly` attribute.
22
+ * @property {boolean} [required] - Whether to mark the widget required. An alias of the
23
+ * `aria-required` attribute.
24
+ * @property {boolean} [invalid] - Whether to mark the widget invalid. An alias of the
25
+ * `aria-invalid` attribute.
26
+ * @property {import('svelte').Snippet} [children] - Primary slot content.
12
27
  */
13
- let className = '';
14
- export { className as class };
15
- /**
16
- * Make the text input container flexible.
17
- * @type {boolean}
18
- */
19
- export let flex = false;
20
- /**
21
- * Whether to hide the widget. An alias of the `aria-hidden` attribute.
22
- * @type {boolean | undefined}
23
- */
24
- export let hidden = undefined;
25
- /**
26
- * Whether to disable the widget. An alias of the `aria-disabled` attribute.
27
- * @type {boolean}
28
- */
29
- export let disabled = false;
30
- /**
31
- * Whether to disable the widget. An alias of `aria-readonly` attribute.
32
- * @type {boolean}
33
- */
34
- export let readonly = false;
35
- /**
36
- * Whether to mark the widget required. An alias of the `aria-required` attribute.
37
- * @type {boolean}
38
- */
39
- export let required = false;
40
- /**
41
- * Whether to mark the widget invalid. An alias of the `aria-invalid` attribute.
42
- * @type {boolean}
43
- */
44
- export let invalid = false;
45
- /**
46
- * The `name` attribute on the `<textarea>` element.
47
- * @type {string | undefined}
48
- */
49
- export let name = undefined;
50
- /**
51
- * Input value.
52
- * @type {string | undefined}
53
- */
54
- export let value = undefined;
28
+
55
29
  /**
56
- * Whether to automatically resize the `<textarea>` based on the content.
57
- * @type {boolean}
30
+ * @type {import('../../typedefs').CommonEventHandlers & import('../../typedefs').InputEventHandlers
31
+ * & Props & Record<string, any>}
58
32
  */
59
- export let autoResize = false;
33
+ let {
34
+ /* eslint-disable prefer-const */
35
+ value = $bindable(''),
36
+ flex = false,
37
+ name = undefined,
38
+ autoResize = false,
39
+ class: className,
40
+ hidden = false,
41
+ disabled = false,
42
+ readonly = false,
43
+ required = false,
44
+ invalid = false,
45
+ children,
46
+ ...restProps
47
+ /* eslint-enable prefer-const */
48
+ } = $props();
60
49
  </script>
61
50
 
62
51
  <div
@@ -65,9 +54,10 @@
65
54
  class:flex
66
55
  class:disabled
67
56
  class:readonly
68
- hidden={hidden || undefined}
57
+ {hidden}
69
58
  >
70
59
  <textarea
60
+ {...restProps}
71
61
  {name}
72
62
  bind:value
73
63
  disabled={disabled || undefined}
@@ -77,13 +67,7 @@
77
67
  aria-readonly={readonly}
78
68
  aria-required={required}
79
69
  aria-invalid={invalid}
80
- {...$$restProps}
81
70
  class:auto-resize={autoResize}
82
- on:keydown
83
- on:keyup
84
- on:keypress
85
- on:input
86
- on:change
87
71
  ></textarea>
88
72
  {#if autoResize}
89
73
  <div class="clone" aria-hidden="true">{value ?? ''}</div>
@@ -1,63 +1,129 @@
1
- /** @typedef {typeof __propDef.props} TextAreaProps */
2
- /** @typedef {typeof __propDef.events} TextAreaEvents */
3
- /** @typedef {typeof __propDef.slots} TextAreaSlots */
1
+ export default TextArea;
2
+ type TextArea = SvelteComponent<KeyboardEventHandlers & MouseEventHandlers & FocusEventHandlers & DragEventHandlers & InputEventHandlers & Props & Record<string, any>, {
3
+ [evt: string]: CustomEvent<any>;
4
+ }, {}> & {
5
+ $$bindings?: "value" | undefined;
6
+ };
4
7
  /**
5
8
  * A multi-line text field based on the HTML `<textarea>` element, providing the auto-resize support.
6
9
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea
7
10
  * @see https://w3c.github.io/aria/#textbox
8
11
  * @see https://css-tricks.com/the-cleanest-trick-for-autogrowing-textareas/
9
12
  */
10
- export default class TextArea extends SvelteComponent<{
11
- [x: string]: any;
12
- class?: string | undefined;
13
+ declare const TextArea: $$__sveltets_2_IsomorphicComponent<import("../../typedefs").KeyboardEventHandlers & import("../../typedefs").MouseEventHandlers & import("../../typedefs").FocusEventHandlers & import("../../typedefs").DragEventHandlers & import("../../typedefs").InputEventHandlers & {
14
+ /**
15
+ * - Input value.
16
+ */
17
+ value?: string | undefined;
18
+ /**
19
+ * - Make the text input container flexible.
20
+ */
21
+ flex?: boolean | undefined;
22
+ /**
23
+ * - The `name` attribute on the `<textarea>` element.
24
+ */
13
25
  name?: string | undefined;
26
+ /**
27
+ * - Whether to automatically resize the `<textarea>` based on
28
+ * the content.
29
+ */
30
+ autoResize?: boolean | undefined;
31
+ /**
32
+ * - The `class` attribute on the wrapper element.
33
+ */
34
+ class?: string | undefined;
35
+ /**
36
+ * - Whether to hide the widget.
37
+ */
38
+ hidden?: boolean | undefined;
39
+ /**
40
+ * - Whether to disable the widget. An alias of the `aria-disabled`
41
+ * attribute.
42
+ */
14
43
  disabled?: boolean | undefined;
15
- invalid?: boolean | undefined;
44
+ /**
45
+ * - Whether to make the widget read-only. An alias of the
46
+ * `aria-readonly` attribute.
47
+ */
48
+ readonly?: boolean | undefined;
49
+ /**
50
+ * - Whether to mark the widget required. An alias of the
51
+ * `aria-required` attribute.
52
+ */
16
53
  required?: boolean | undefined;
54
+ /**
55
+ * - Whether to mark the widget invalid. An alias of the
56
+ * `aria-invalid` attribute.
57
+ */
58
+ invalid?: boolean | undefined;
59
+ /**
60
+ * - Primary slot content.
61
+ */
62
+ children?: import("svelte").Snippet<[]> | undefined;
63
+ } & Record<string, any>, {
64
+ [evt: string]: CustomEvent<any>;
65
+ }, {}, {}, "value">;
66
+ type Props = {
67
+ /**
68
+ * - Input value.
69
+ */
17
70
  value?: string | undefined;
18
- hidden?: boolean | undefined;
19
- readonly?: boolean | undefined;
71
+ /**
72
+ * - Make the text input container flexible.
73
+ */
20
74
  flex?: boolean | undefined;
75
+ /**
76
+ * - The `name` attribute on the `<textarea>` element.
77
+ */
78
+ name?: string | undefined;
79
+ /**
80
+ * - Whether to automatically resize the `<textarea>` based on
81
+ * the content.
82
+ */
21
83
  autoResize?: boolean | undefined;
22
- }, {
23
- keydown: KeyboardEvent;
24
- keyup: KeyboardEvent;
25
- keypress: KeyboardEvent;
26
- input: Event;
27
- change: Event;
28
- } & {
29
- [evt: string]: CustomEvent<any>;
30
- }, {}> {
31
- }
32
- export type TextAreaProps = typeof __propDef.props;
33
- export type TextAreaEvents = typeof __propDef.events;
34
- export type TextAreaSlots = typeof __propDef.slots;
35
- import { SvelteComponent } from "svelte";
36
- declare const __propDef: {
37
- props: {
38
- [x: string]: any;
39
- class?: string | undefined;
40
- name?: string | undefined;
41
- disabled?: boolean | undefined;
42
- invalid?: boolean | undefined;
43
- required?: boolean | undefined;
44
- value?: string | undefined;
45
- hidden?: boolean | undefined;
46
- readonly?: boolean | undefined;
47
- flex?: boolean | undefined;
48
- autoResize?: boolean | undefined;
49
- };
50
- events: {
51
- keydown: KeyboardEvent;
52
- keyup: KeyboardEvent;
53
- keypress: KeyboardEvent;
54
- input: Event;
55
- change: Event;
56
- } & {
57
- [evt: string]: CustomEvent<any>;
58
- };
59
- slots: {};
60
- exports?: undefined;
61
- bindings?: undefined;
84
+ /**
85
+ * - The `class` attribute on the wrapper element.
86
+ */
87
+ class?: string | undefined;
88
+ /**
89
+ * - Whether to hide the widget.
90
+ */
91
+ hidden?: boolean | undefined;
92
+ /**
93
+ * - Whether to disable the widget. An alias of the `aria-disabled`
94
+ * attribute.
95
+ */
96
+ disabled?: boolean | undefined;
97
+ /**
98
+ * - Whether to make the widget read-only. An alias of the
99
+ * `aria-readonly` attribute.
100
+ */
101
+ readonly?: boolean | undefined;
102
+ /**
103
+ * - Whether to mark the widget required. An alias of the
104
+ * `aria-required` attribute.
105
+ */
106
+ required?: boolean | undefined;
107
+ /**
108
+ * - Whether to mark the widget invalid. An alias of the
109
+ * `aria-invalid` attribute.
110
+ */
111
+ invalid?: boolean | undefined;
112
+ /**
113
+ * - Primary slot content.
114
+ */
115
+ children?: import("svelte").Snippet<[]> | undefined;
62
116
  };
63
- export {};
117
+ 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> {
118
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
119
+ $$bindings?: Bindings;
120
+ } & Exports;
121
+ (internal: unknown, props: Props & {
122
+ $$events?: Events;
123
+ $$slots?: Slots;
124
+ }): Exports & {
125
+ $set?: any;
126
+ $on?: any;
127
+ };
128
+ z_$$bindings?: Bindings;
129
+ }