@swell/swell-ui 0.1.0 → 0.1.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 (200) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/custom-elements.json +8274 -0
  4. package/dist/chunks/badge-Dt6q8Cqa.js +11 -0
  5. package/dist/chunks/button-C7nCiu-t.js +123 -0
  6. package/dist/chunks/card-CvSQEug8.js +10 -0
  7. package/dist/chunks/checkbox-BRI_A1TP.js +99 -0
  8. package/dist/chunks/chip-BtnufSMG.js +48 -0
  9. package/dist/chunks/config-C-FYxOaJ.js +588 -0
  10. package/dist/chunks/define-BlQTa1g4.js +19 -0
  11. package/dist/chunks/description-BHfQ8meK.js +19 -0
  12. package/dist/chunks/disclosure-CET8-H6f.js +56 -0
  13. package/dist/chunks/divider-BfkO0c1j.js +27 -0
  14. package/dist/chunks/element-B4-_7TLZ.js +138 -0
  15. package/dist/chunks/input-Uun-ls2_.js +53 -0
  16. package/dist/chunks/link-8qHFEKQE.js +53 -0
  17. package/dist/chunks/link-D4NC86oc.js +24 -0
  18. package/dist/chunks/lookup-5icr_T6o.js +205 -0
  19. package/dist/chunks/lookup-list-Bw6OJoDS.js +19 -0
  20. package/dist/chunks/lookup-option-Mn3k8W2M.js +26 -0
  21. package/dist/chunks/popover-D3Ob6slA.js +92 -0
  22. package/dist/chunks/popup-Dbh2fchP.js +21 -0
  23. package/dist/chunks/quantity-h3wqn8tC.js +140 -0
  24. package/dist/chunks/radio-BhFDL3pO.js +192 -0
  25. package/dist/chunks/radio-option-hT29S8Zl.js +88 -0
  26. package/dist/chunks/select-DS1n_htj.js +331 -0
  27. package/dist/chunks/select-option-DoM9GAe0.js +66 -0
  28. package/dist/chunks/skeleton-DfPjhls9.js +13 -0
  29. package/dist/chunks/status-B23JZ5RQ.js +71 -0
  30. package/dist/chunks/tab-BpjFUbFO.js +107 -0
  31. package/dist/chunks/tabs-aWKq1Iaz.js +122 -0
  32. package/dist/chunks/text-ZWPy-iB3.js +26 -0
  33. package/dist/chunks/text-field-BB_MRt5h.js +158 -0
  34. package/dist/chunks/textarea-L6_OJ2IN.js +18 -0
  35. package/dist/chunks/thumbnail-CLe9AsFg.js +21 -0
  36. package/dist/chunks/toggle-C7-oPgWR.js +22 -0
  37. package/dist/chunks/ui-HcyMKwzs.js +11 -0
  38. package/dist/editors/vscode.css-custom-data.json +824 -0
  39. package/dist/editors/vscode.html-custom-data.json +1156 -0
  40. package/dist/editors/web-types.json +1706 -0
  41. package/dist/elements/badge.d.ts +1 -0
  42. package/dist/elements/badge.js +1 -0
  43. package/dist/elements/button.d.ts +1 -0
  44. package/dist/elements/button.js +1 -0
  45. package/dist/elements/card.d.ts +1 -0
  46. package/dist/elements/card.js +1 -0
  47. package/dist/elements/checkbox.d.ts +1 -0
  48. package/dist/elements/checkbox.js +1 -0
  49. package/dist/elements/chip.d.ts +1 -0
  50. package/dist/elements/chip.js +1 -0
  51. package/dist/elements/disclosure.d.ts +1 -0
  52. package/dist/elements/disclosure.js +1 -0
  53. package/dist/elements/divider.d.ts +1 -0
  54. package/dist/elements/divider.js +1 -0
  55. package/dist/elements/input.d.ts +1 -0
  56. package/dist/elements/input.js +1 -0
  57. package/dist/elements/link.d.ts +1 -0
  58. package/dist/elements/link.js +1 -0
  59. package/dist/elements/lookup-list.d.ts +1 -0
  60. package/dist/elements/lookup-list.js +1 -0
  61. package/dist/elements/lookup-option.d.ts +1 -0
  62. package/dist/elements/lookup-option.js +1 -0
  63. package/dist/elements/lookup.d.ts +1 -0
  64. package/dist/elements/lookup.js +1 -0
  65. package/dist/elements/popover.d.ts +1 -0
  66. package/dist/elements/popover.js +1 -0
  67. package/dist/elements/quantity.d.ts +1 -0
  68. package/dist/elements/quantity.js +1 -0
  69. package/dist/elements/radio-option.d.ts +1 -0
  70. package/dist/elements/radio-option.js +1 -0
  71. package/dist/elements/radio.d.ts +1 -0
  72. package/dist/elements/radio.js +1 -0
  73. package/dist/elements/select-option.d.ts +1 -0
  74. package/dist/elements/select-option.js +1 -0
  75. package/dist/elements/select.d.ts +1 -0
  76. package/dist/elements/select.js +1 -0
  77. package/dist/elements/skeleton.d.ts +1 -0
  78. package/dist/elements/skeleton.js +1 -0
  79. package/dist/elements/status.d.ts +1 -0
  80. package/dist/elements/status.js +1 -0
  81. package/dist/elements/tab.d.ts +1 -0
  82. package/dist/elements/tab.js +1 -0
  83. package/dist/elements/tabs.d.ts +1 -0
  84. package/dist/elements/tabs.js +1 -0
  85. package/dist/elements/text.d.ts +1 -0
  86. package/dist/elements/text.js +1 -0
  87. package/dist/elements/textarea.d.ts +1 -0
  88. package/dist/elements/textarea.js +1 -0
  89. package/dist/elements/thumbnail.d.ts +1 -0
  90. package/dist/elements/thumbnail.js +1 -0
  91. package/dist/elements/ui.d.ts +1 -0
  92. package/dist/elements/ui.js +1 -0
  93. package/dist/frameworks/jsx.d.ts +3589 -0
  94. package/dist/frameworks/preact.d.ts +9 -0
  95. package/dist/frameworks/solid.d.ts +7 -0
  96. package/dist/frameworks/svelte.d.ts +1676 -0
  97. package/dist/frameworks/vue.d.ts +827 -0
  98. package/dist/index.js +80 -0
  99. package/dist/react/badge.d.ts +12 -0
  100. package/dist/react/badge.js +4 -0
  101. package/dist/react/button.d.ts +16 -0
  102. package/dist/react/button.js +4 -0
  103. package/dist/react/card.d.ts +11 -0
  104. package/dist/react/card.js +4 -0
  105. package/dist/react/checkbox.d.ts +14 -0
  106. package/dist/react/checkbox.js +4 -0
  107. package/dist/react/chip.d.ts +12 -0
  108. package/dist/react/chip.js +4 -0
  109. package/dist/react/create.js +49 -0
  110. package/dist/react/disclosure.d.ts +11 -0
  111. package/dist/react/disclosure.js +4 -0
  112. package/dist/react/divider.d.ts +9 -0
  113. package/dist/react/divider.js +4 -0
  114. package/dist/react/index.d.ts +26 -0
  115. package/dist/react/index.js +26 -0
  116. package/dist/react/input.d.ts +28 -0
  117. package/dist/react/input.js +4 -0
  118. package/dist/react/link.d.ts +15 -0
  119. package/dist/react/link.js +4 -0
  120. package/dist/react/lookup-list.d.ts +9 -0
  121. package/dist/react/lookup-list.js +4 -0
  122. package/dist/react/lookup-option.d.ts +11 -0
  123. package/dist/react/lookup-option.js +4 -0
  124. package/dist/react/lookup.d.ts +28 -0
  125. package/dist/react/lookup.js +4 -0
  126. package/dist/react/popover.d.ts +11 -0
  127. package/dist/react/popover.js +4 -0
  128. package/dist/react/quantity.d.ts +15 -0
  129. package/dist/react/quantity.js +4 -0
  130. package/dist/react/radio-option.d.ts +11 -0
  131. package/dist/react/radio-option.js +4 -0
  132. package/dist/react/radio.d.ts +18 -0
  133. package/dist/react/radio.js +4 -0
  134. package/dist/react/select-option.d.ts +11 -0
  135. package/dist/react/select-option.js +4 -0
  136. package/dist/react/select.d.ts +20 -0
  137. package/dist/react/select.js +4 -0
  138. package/dist/react/skeleton.d.ts +11 -0
  139. package/dist/react/skeleton.js +4 -0
  140. package/dist/react/status.d.ts +12 -0
  141. package/dist/react/status.js +4 -0
  142. package/dist/react/tab.d.ts +10 -0
  143. package/dist/react/tab.js +4 -0
  144. package/dist/react/tabs.d.ts +17 -0
  145. package/dist/react/tabs.js +4 -0
  146. package/dist/react/text.d.ts +12 -0
  147. package/dist/react/text.js +4 -0
  148. package/dist/react/textarea.d.ts +23 -0
  149. package/dist/react/textarea.js +4 -0
  150. package/dist/react/thumbnail.d.ts +13 -0
  151. package/dist/react/thumbnail.js +4 -0
  152. package/dist/react/ui.d.ts +10 -0
  153. package/dist/react/ui.js +4 -0
  154. package/dist/types/components/core/badge/badge.d.ts +25 -0
  155. package/dist/types/components/core/button/button.d.ts +60 -0
  156. package/dist/types/components/core/card/card.d.ts +21 -0
  157. package/dist/types/components/core/checkbox/checkbox.d.ts +46 -0
  158. package/dist/types/components/core/chip/chip.d.ts +36 -0
  159. package/dist/types/components/core/disclosure/disclosure.d.ts +37 -0
  160. package/dist/types/components/core/divider/divider.d.ts +21 -0
  161. package/dist/types/components/core/index.d.ts +21 -0
  162. package/dist/types/components/core/input/input.d.ts +57 -0
  163. package/dist/types/components/core/link/link.d.ts +42 -0
  164. package/dist/types/components/core/lookup/lookup-list.d.ts +21 -0
  165. package/dist/types/components/core/lookup/lookup-option.d.ts +27 -0
  166. package/dist/types/components/core/lookup/lookup.d.ts +32 -0
  167. package/dist/types/components/core/popover/popover.d.ts +33 -0
  168. package/dist/types/components/core/quantity/quantity.d.ts +47 -0
  169. package/dist/types/components/core/radio/radio-option.d.ts +82 -0
  170. package/dist/types/components/core/radio/radio.d.ts +65 -0
  171. package/dist/types/components/core/select/select-option.d.ts +69 -0
  172. package/dist/types/components/core/select/select.d.ts +70 -0
  173. package/dist/types/components/core/skeleton/skeleton.d.ts +23 -0
  174. package/dist/types/components/core/status/status.d.ts +38 -0
  175. package/dist/types/components/core/tabs/tab.d.ts +76 -0
  176. package/dist/types/components/core/tabs/tabs.d.ts +46 -0
  177. package/dist/types/components/core/text/text.d.ts +23 -0
  178. package/dist/types/components/core/textarea/textarea.d.ts +45 -0
  179. package/dist/types/components/core/thumbnail/thumbnail.d.ts +27 -0
  180. package/dist/types/components/core/ui/ui.d.ts +16 -0
  181. package/dist/types/components/elements.d.ts +1 -0
  182. package/dist/types/react/create.d.ts +8 -0
  183. package/dist/types/runtime/config.d.ts +25 -0
  184. package/dist/types/runtime/css.d.ts +12 -0
  185. package/dist/types/runtime/define.d.ts +4 -0
  186. package/dist/types/runtime/description.d.ts +12 -0
  187. package/dist/types/runtime/element.d.ts +61 -0
  188. package/dist/types/runtime/focus.d.ts +5 -0
  189. package/dist/types/runtime/form.d.ts +5 -0
  190. package/dist/types/runtime/index.d.ts +2 -0
  191. package/dist/types/runtime/link.d.ts +17 -0
  192. package/dist/types/runtime/loader.d.ts +21 -0
  193. package/dist/types/runtime/popup.d.ts +8 -0
  194. package/dist/types/runtime/sheet.d.ts +31 -0
  195. package/dist/types/runtime/text-field.d.ts +47 -0
  196. package/dist/types/runtime/toggle.d.ts +8 -0
  197. package/dist/types/runtime/tokens.generated.d.ts +492 -0
  198. package/dist/types/runtime/values.d.ts +6 -0
  199. package/dist/types/runtime/variants.d.ts +4 -0
  200. package/package.json +2 -1
@@ -0,0 +1,1676 @@
1
+ type BaseProps = {
2
+ /** Content added between the opening and closing tags of the element */
3
+ children?: any;
4
+ /** Used for declaratively styling one or more elements using CSS (Cascading Stylesheets) */
5
+ class?: string;
6
+ /** Takes an object where the key is the class name(s) and the value is a boolean expression. When true, the class is applied, and when false, it is removed. */
7
+ classList?: Record<string, boolean | undefined>;
8
+ /** Specifies the text direction of the element. */
9
+ dir?: "ltr" | "rtl";
10
+ /** Contains a space-separated list of the part names of the element that should be exposed on the host element. */
11
+ exportparts?: string;
12
+ /** Specifies whether the element should be hidden. */
13
+ hidden?: boolean | string;
14
+ /** A unique identifier for the element. */
15
+ id?: string;
16
+ /** Specifies the language of the element. */
17
+ lang?: string;
18
+ /** Defines the element's semantic role for accessibility APIs. */
19
+ role?: string;
20
+ /** Contains a space-separated list of the part names of the element. Part names allows CSS to select and style specific elements in a shadow tree via the ::part pseudo-element. */
21
+ part?: string;
22
+ /** Use the ref attribute with a variable to assign a DOM element to the variable once the element is rendered. */
23
+ ref?: unknown | ((e: unknown) => void);
24
+ /** Adds a reference for a custom element slot */
25
+ slot?: string;
26
+ /** Prop for setting inline styles */
27
+ style?: string;
28
+ /** Overrides the default Tab button behavior. Avoid using values other than -1 and 0. */
29
+ tabIndex?: number;
30
+ /** Specifies the tooltip text for the element. */
31
+ title?: string;
32
+ /** Passing 'no' excludes the element content from being translated. */
33
+ translate?: "yes" | "no";
34
+ /** The popover global attribute is used to designate an element as a popover element. */
35
+ popover?: "auto" | "hint" | "manual";
36
+ /** Turns an element element into a popover control button; takes the ID of the popover element to control as its value. */
37
+ popovertarget?: "top" | "bottom" | "left" | "right" | "auto";
38
+ /** Specifies the action to be performed on a popover element being controlled by a control element. */
39
+ popovertargetaction?: "show" | "hide" | "toggle";
40
+ };
41
+
42
+ type BaseEvents = {};
43
+
44
+ export type SwellBadgeProps = {
45
+ /** Which palette of `color` the badge takes its colors from: `secondary`, quiet, or a variant of the host's own; without it, the badge's own. */
46
+ variant?: string;
47
+ /** How the badge is drawn; the configured setting by default. */
48
+ appearance?: "filled" | "outline";
49
+ /** How large the badge is; `medium` by default. A small one fits a count, an extra small one a count on an icon. */
50
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
51
+ };
52
+ export type SwellButtonProps = {
53
+ /** Removes the button from the tab order and ignores clicks. */
54
+ disabled?: boolean;
55
+ /** Shows a spinner, marks the button busy and ignores clicks; the button stays in the tab order. */
56
+ loading?: boolean;
57
+ /** Fills the button with the success color, draws a check and makes the button inactive; it keeps its tab stop and isn't busy. */
58
+ success?: boolean;
59
+ /** Which palette of `color` the button takes its colors from: `secondary`, or a variant of the host's own; without it, the button's own. */
60
+ variant?: string;
61
+ /** How the button is drawn; the variant's setting by default. */
62
+ appearance?: "filled" | "outline" | "plain";
63
+ /** How large the button is; `medium` by default. `xsmall` fits an action inside a status message. */
64
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
65
+ /** Rounds the corners fully, in every variant, appearance and size, whatever the corner radius of the host's buttons. */
66
+ shape?: "pill";
67
+ /** Where the button leads; with it the element is a link, named by its own `aria-label`, or else by its content. */
68
+ href?: string;
69
+ /** Where to open the link. */
70
+ target?: string;
71
+ /** How the link's target relates to the page. */
72
+ rel?: string;
73
+ /** What the button does in a form; `submit` by default. */
74
+ type?: "submit" | "reset" | "button";
75
+ };
76
+ export type SwellCardProps = {
77
+ /** How the card is drawn: with a border, or filled with the quiet background; the configured setting by default. */
78
+ appearance?: "outline" | "filled";
79
+ /** How large the padding is: it follows the text of the size; `medium` by default. */
80
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
81
+ };
82
+ export type SwellCheckboxProps = {
83
+ /** The label beside the box. */
84
+ label?: string;
85
+ /** Help text under the checkbox. */
86
+ hint?: string;
87
+ /** The error shown while the checkbox is invalid. */
88
+ error?: string;
89
+ /** Marks the checkbox invalid and shows the error. */
90
+ invalid?: boolean;
91
+ /** The default state. */
92
+ checked?: boolean;
93
+ /** The value sent with the form; `on` by default. */
94
+ value?: string;
95
+ /** Disables the checkbox. */
96
+ disabled?: boolean;
97
+ /** Makes the checkbox required. */
98
+ required?: boolean;
99
+ /** The name sent with the form. */
100
+ name?: string;
101
+ /** How large the checkbox is: the label takes the text of the size and the box grows with it; `medium` by default. The target stays at least 24px. */
102
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
103
+ /** The user checks or unchecks the box; it bubbles from the native input. */
104
+ "on:change"?: (e: Event) => void;
105
+ onchange?: (e: Event) => void;
106
+ };
107
+ export type SwellChipProps = {
108
+ /** Disables the remove button. */
109
+ disabled?: boolean;
110
+ /** The name of the remove button in the host's language, such as `Remove WELCOME10`; every chip needs one. */
111
+ "remove-label"?: string;
112
+ /** How large the chip is; `medium` by default. Its remove button is as high as the chip, at least 24px. */
113
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
114
+ /** The shopper pressed the remove button; it bubbles, and the chip stays in the page. A disabled chip fires none. */
115
+ "on:remove"?: (e: Event) => void;
116
+ onremove?: (e: Event) => void;
117
+ };
118
+ export type SwellDisclosureProps = {
119
+ /** Shows the content and hides the trigger. Set on connect, the content shows at once. */
120
+ open?: boolean;
121
+ /** Keeps the trigger while the content is open: it closes the content too and carries `aria-expanded`. */
122
+ toggle?: boolean;
123
+ /** The content opened or closed: by the trigger or by script, also as it starts open. A `ToggleEvent` with `oldState` and `newState`, fired once the script that changed `open` has run; it doesn't bubble and can't be cancelled. */
124
+ "on:toggle"?: (e: ToggleEvent) => void;
125
+ ontoggle?: (e: ToggleEvent) => void;
126
+ };
127
+ export type SwellDividerProps = {};
128
+ export type SwellLinkProps = {
129
+ /** Where the link goes; without it the element is a button. With it, the anchor is named by the element's own `aria-label`, as a link of an icon alone needs, or else by its content. */
130
+ href?: string;
131
+ /** Where to open the link. */
132
+ target?: string;
133
+ /** How the target relates to the page. */
134
+ rel?: string;
135
+ /** Which palette of `color` the link takes its color from: `secondary`, quiet text, or a variant of the host's own; without it, the link color. */
136
+ variant?: string;
137
+ /** How the link is drawn: `underline`, the default, in the font of the text around it; `plain`, for a link on its own, without an underline, in the text of a field hint, at least 24px high. Only the attribute sets it. */
138
+ appearance?: "underline" | "plain";
139
+ /** How large a plain link is: its text is one step smaller than the text of the size, at least 12px; `medium` by default. A link in text takes the font around it. */
140
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
141
+ };
142
+ export type SwellInputProps = {
143
+ /** The label of the field. */
144
+ label?: string;
145
+ /** A marker after the label, such as `(optional)`, in the host's language; it joins the field's name. */
146
+ optional?: string;
147
+ /** Help text under the field. */
148
+ hint?: string;
149
+ /** The error shown while the field is invalid. */
150
+ error?: string;
151
+ /** Marks the field invalid and shows the error. */
152
+ invalid?: boolean;
153
+ /** The default value. */
154
+ value?: string;
155
+ /** The kind of value; `text` by default. */
156
+ type?: "text" | "email" | "tel" | "password" | "number" | "search" | "url";
157
+ /** How the field is drawn; the configured setting by default. */
158
+ appearance?: "outline" | "filled" | "underline";
159
+ /** How large the field is; `medium` by default. At `xsmall` the label sits above the field. */
160
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
161
+ /** Disables the field. */
162
+ disabled?: boolean;
163
+ /** Makes the field read-only. */
164
+ readonly?: boolean;
165
+ /** Makes the field required. */
166
+ required?: boolean;
167
+ /** The name sent with the form. */
168
+ name?: string;
169
+ /** Text shown while the field is empty. */
170
+ placeholder?: string;
171
+ /** The autofill hint of the native input. */
172
+ autocomplete?: string;
173
+ /** The virtual keyboard to show. */
174
+ inputmode?: string;
175
+ /** The shortest allowed value. */
176
+ minlength?: number;
177
+ /** The longest allowed value. */
178
+ maxlength?: number;
179
+ /** The pattern the value matches. */
180
+ pattern?: string;
181
+ /** The smallest allowed value. */
182
+ min?: string;
183
+ /** The largest allowed value. */
184
+ max?: string;
185
+ /** The step between allowed values. */
186
+ step?: string;
187
+ /** */
188
+ readOnly?: boolean;
189
+ /** The value changes as the user types; it bubbles from the native input. */
190
+ "on:input"?: (e: Event) => void;
191
+ oninput?: (e: Event) => void;
192
+ /** The user commits a new value; it bubbles from the native input. */
193
+ "on:change"?: (e: Event) => void;
194
+ onchange?: (e: Event) => void;
195
+ };
196
+ export type SwellLookupListProps = {};
197
+ export type SwellLookupOptionProps = {
198
+ /** The value of the suggestion, such as the id of a place; the label by default. */
199
+ value?: string;
200
+ /** A second line under the label. */
201
+ hint?: string;
202
+ /** Disables the suggestion. */
203
+ disabled?: boolean;
204
+ /** */
205
+ hidden?: string;
206
+ };
207
+ export type SwellLookupProps = {
208
+ /** The label of the field. */
209
+ label?: string;
210
+ /** A marker after the label, such as `(optional)`, in the host's language; it joins the field's name. */
211
+ optional?: string;
212
+ /** Help text under the field. */
213
+ hint?: string;
214
+ /** The error shown while the field is invalid. */
215
+ error?: string;
216
+ /** Marks the field invalid and shows the error. */
217
+ invalid?: boolean;
218
+ /** The default value. */
219
+ value?: string;
220
+ /** The kind of value; `text` by default. */
221
+ type?: "text" | "email" | "tel" | "password" | "number" | "search" | "url";
222
+ /** How the field is drawn; the configured setting by default. */
223
+ appearance?: "outline" | "filled" | "underline";
224
+ /** How large the field is; `medium` by default. At `xsmall` the label sits above the field. */
225
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
226
+ /** Disables the field. */
227
+ disabled?: boolean;
228
+ /** Makes the field read-only. */
229
+ readonly?: boolean;
230
+ /** Makes the field required. */
231
+ required?: boolean;
232
+ /** The name sent with the form. */
233
+ name?: string;
234
+ /** Text shown while the field is empty. */
235
+ placeholder?: string;
236
+ /** The autofill hint of the native input. */
237
+ autocomplete?: string;
238
+ /** The virtual keyboard to show. */
239
+ inputmode?: string;
240
+ /** The shortest allowed value. */
241
+ minlength?: number;
242
+ /** The longest allowed value. */
243
+ maxlength?: number;
244
+ /** The pattern the value matches. */
245
+ pattern?: string;
246
+ /** The smallest allowed value. */
247
+ min?: string;
248
+ /** The largest allowed value. */
249
+ max?: string;
250
+ /** The step between allowed values. */
251
+ step?: string;
252
+ /** */
253
+ readOnly?: boolean;
254
+ /** The value changes as the user types; it bubbles from the native input. */
255
+ "on:input"?: (e: Event) => void;
256
+ oninput?: (e: Event) => void;
257
+ /** The user commits a new value; it bubbles from the native input. */
258
+ "on:change"?: (e: Event) => void;
259
+ onchange?: (e: Event) => void;
260
+ };
261
+ export type SwellPopoverProps = {
262
+ /** The panel is open. Set it to open the panel without moving the focus; remove it to close the panel, which gives the focus back to the trigger when the focus is inside. */
263
+ open?: boolean;
264
+ /** */
265
+ "aria-label"?: string;
266
+ /** The panel opened or closed: by the trigger, Escape, a press outside, the focus leaving it or script, also as it starts open or leaves the page open. A `ToggleEvent` with `oldState` and `newState`, fired once the script that changed `open` has run; it doesn't bubble and can't be cancelled. */
267
+ "on:toggle"?: (e: ToggleEvent) => void;
268
+ ontoggle?: (e: ToggleEvent) => void;
269
+ };
270
+ export type SwellQuantityProps = {
271
+ /** The starting count, a whole number; `min` by default. A count outside the limits is clamped, and a count the user or a script set stays at the limit that clamped it. */
272
+ value?: number;
273
+ /** The least count, a whole number; 1 by default. */
274
+ min?: number;
275
+ /** The greatest count, a whole number; no limit by default. A `max` below `min` counts as `min`. */
276
+ max?: number;
277
+ /** How much each step changes the count, a whole number above 0; 1 by default. */
278
+ step?: number;
279
+ /** Removes the quantity from the tab order and ignores steps. */
280
+ disabled?: boolean;
281
+ /** The quantity waits, such as while the cart updates: it keeps the focus, its count and its tab stop, ignores steps, fades and tells screen readers it is busy; a script can still set its count. */
282
+ busy?: boolean;
283
+ /** The name sent with the form. */
284
+ name?: string;
285
+ /** How large the quantity is: it shares a height with buttons and fields of its size; `medium` by default. A cart line takes `xsmall`. */
286
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
287
+ /** The user changed the count. */
288
+ "on:input"?: (e: Event) => void;
289
+ oninput?: (e: Event) => void;
290
+ /** The user changed the count, after `input`. */
291
+ "on:change"?: (e: Event) => void;
292
+ onchange?: (e: Event) => void;
293
+ };
294
+ export type SwellRadioOptionProps = {
295
+ /** The value the group takes when the option is chosen; `on` by default. */
296
+ value?: string;
297
+ /** Help text under the label. */
298
+ hint?: string;
299
+ /** Disables the option. */
300
+ disabled?: boolean;
301
+ /** */
302
+ hidden?: string;
303
+ };
304
+ export type SwellRadioProps = {
305
+ /** The question. Without it, the group takes its name from its own `aria-label`. */
306
+ label?: string;
307
+ /** Help text under the options. */
308
+ hint?: string;
309
+ /** The error shown while the group is invalid. */
310
+ error?: string;
311
+ /** Marks the group invalid and shows the error. */
312
+ invalid?: boolean;
313
+ /** The name sent with the form. */
314
+ name?: string;
315
+ /** The value of the option chosen by default. */
316
+ value?: string;
317
+ /** The form can't be sent until an option is chosen. */
318
+ required?: boolean;
319
+ /** Disables every option. */
320
+ disabled?: boolean;
321
+ /** */
322
+ "aria-label"?: string;
323
+ /** Where the circle sits in the row of each option; the `radio.indicator.position` setting gives the default. A segmented group draws no circle. */
324
+ "indicator-position"?: "start" | "end";
325
+ /** How large the options are: their text, circle and padding follow the text of the size, and a segmented track takes the height of a control; `medium` by default. */
326
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
327
+ /** How the options are drawn: the circle and the label, each option in a frame, the options sharing a track like a switch, or each option as a button in equal columns. `segmented` suits two or three short options, `button` short options such as languages or sizes; both are set with this attribute only. The `radio.appearance` setting gives the default. */
328
+ appearance?: "plain" | "outline" | "segmented" | "button";
329
+ /** The user chose another option. */
330
+ "on:input"?: (e: Event) => void;
331
+ oninput?: (e: Event) => void;
332
+ /** The user chose another option, after `input`. Events of fields in the options' details bubble through the group too: the group's own have it as their `target`. */
333
+ "on:change"?: (e: Event) => void;
334
+ onchange?: (e: Event) => void;
335
+ };
336
+ export type SwellSelectOptionProps = {
337
+ /** The value the select takes when the option is chosen; the option's label by default. */
338
+ value?: string;
339
+ /** A second line under the label. */
340
+ hint?: string;
341
+ /** Disables the option. */
342
+ disabled?: boolean;
343
+ /** */
344
+ hidden?: string;
345
+ };
346
+ export type SwellSelectProps = {
347
+ /** The label of the field. Without it, the select takes its name from its own `aria-label`. */
348
+ label?: string;
349
+ /** A marker after the label, such as `(optional)`, in the host's language; it joins the select's name. */
350
+ optional?: string;
351
+ /** Help text under the field. */
352
+ hint?: string;
353
+ /** The error shown while the select is invalid. */
354
+ error?: string;
355
+ /** Marks the select invalid and shows the error. */
356
+ invalid?: boolean;
357
+ /** The name sent with the form. */
358
+ name?: string;
359
+ /** The value of the option chosen by default. */
360
+ value?: string;
361
+ /** Text shown while nothing is chosen. */
362
+ placeholder?: string;
363
+ /** The form can't be sent until an option is chosen. */
364
+ required?: boolean;
365
+ /** Disables the select. */
366
+ disabled?: boolean;
367
+ /** The browser's autofill hint, such as `country` or `address-level1`, as on a native select: autofill picks the enabled option whose value or label matches the saved one, which counts as the user's choice and fires `input` and `change`. */
368
+ autocomplete?: string;
369
+ /** */
370
+ "aria-label"?: string;
371
+ /** How the field is drawn; the configured setting by default. */
372
+ appearance?: "outline" | "filled" | "underline";
373
+ /** How large the field is; `medium` by default. At `xsmall` the label sits above the field. */
374
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
375
+ /** The user chose another option. */
376
+ "on:input"?: (e: Event) => void;
377
+ oninput?: (e: Event) => void;
378
+ /** The user chose another option, after `input`. */
379
+ "on:change"?: (e: Event) => void;
380
+ onchange?: (e: Event) => void;
381
+ };
382
+ export type SwellSkeletonProps = {
383
+ /** How large the skeleton is: a bar is 4px lower than the text of the size, a card as high as a control; `medium` by default. The bars of a card keep their own size, so give them the card's. */
384
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
385
+ /** `card` draws the empty frame of an option card with its bars at its ends; only the attribute sets it. Without it, the skeleton is a bar. */
386
+ appearance?: "card";
387
+ };
388
+ export type SwellStatusProps = {
389
+ /** What the message means: its color, icon and how it is announced. */
390
+ type?: "danger" | "success" | "warning";
391
+ /** How large the message is: its text, padding and icon follow the text of the size; `medium` by default. */
392
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
393
+ /** How the message is drawn; the configured setting by default. `quiet`, for a note, comes from the attribute only. */
394
+ appearance?: "filled" | "outline" | "plain" | "quiet";
395
+ };
396
+ export type SwellTabProps = {
397
+ /** The group's value while the tab is chosen; the label by default. */
398
+ value?: string;
399
+ /** The text of the tab or of the step's heading. */
400
+ label?: string;
401
+ /** Marks a step as done: its number becomes a check, and the line to the next step fills. */
402
+ done?: boolean;
403
+ /** The tab can't be chosen, such as a step that isn't open yet. */
404
+ disabled?: boolean;
405
+ /** */
406
+ hidden?: string;
407
+ };
408
+ export type SwellTabsProps = {
409
+ /** The value of the chosen tab; the first tab that isn't disabled by default. */
410
+ value?: string;
411
+ /** */
412
+ "aria-label"?: string;
413
+ /** How steps line up: in a row above the chosen step's content, by default, or one under another, each a heading with its content under it. Other appearances stay in a row. */
414
+ orientation?: "horizontal" | "vertical";
415
+ /** The heading level of vertical steps, 1 to 6; 2 by default. */
416
+ level?: number;
417
+ /** The word a screen reader hears after the label of a done step, in the host's language, such as `Completed`; the check shows it to the eye. */
418
+ "done-label"?: string;
419
+ /** How the tabs are drawn: a line under the chosen tab, a track with a marker under it, or numbered steps joined by lines, each a check once done. `steps` is set with this attribute only; the `tabs.appearance` setting gives the default. */
420
+ appearance?: "underline" | "segmented" | "steps";
421
+ /** How large the tabs are: they take the height and the text of a control of the size; `medium` by default. */
422
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
423
+ /** The user chose another tab. A listener that cancels the click on a tab, also a framework's handler on the page, keeps the choice. */
424
+ "on:change"?: (e: Event) => void;
425
+ onchange?: (e: Event) => void;
426
+ /** The user asks for another tab, by a press or an arrow, with its value in `detail.value`, before the group chooses it; it bubbles. Cancelling it keeps the choice. It fires for a disabled tab too, which stays unchosen, so a host can answer a press on a locked step, such as by checking the open one. */
427
+ "on:request"?: (e: CustomEvent<{ value: string }>) => void;
428
+ onrequest?: (e: CustomEvent<{ value: string }>) => void;
429
+ };
430
+ export type SwellTextProps = {
431
+ /** The heading level, 1 to 6: it makes text of any type a heading. A title, a heading and a subheading are headings of level 1, 2 and 3 by default. */
432
+ level?: number;
433
+ /** Which palette of `color` the text takes its color from: `secondary`, quiet text, or a variant of the host's own; without it, the text color. */
434
+ variant?: string;
435
+ /** What the text is; body text by default. An eyebrow is uppercase. */
436
+ type?: "title" | "heading" | "subheading" | "strong" | "body" | "caption" | "footnote" | "eyebrow";
437
+ };
438
+ export type SwellTextareaProps = {
439
+ /** The label of the field. */
440
+ label?: string;
441
+ /** A marker after the label, such as `(optional)`, in the host's language; it joins the field's name. */
442
+ optional?: string;
443
+ /** Help text under the field. */
444
+ hint?: string;
445
+ /** The error shown while the field is invalid. */
446
+ error?: string;
447
+ /** Marks the field invalid and shows the error. */
448
+ invalid?: boolean;
449
+ /** The default value. */
450
+ value?: string;
451
+ /** How the field is drawn; the configured setting by default. */
452
+ appearance?: "outline" | "filled" | "underline";
453
+ /** How large the field is; `medium` by default. At `xsmall` the label sits above the field. */
454
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
455
+ /** Disables the field. */
456
+ disabled?: boolean;
457
+ /** Makes the field read-only. */
458
+ readonly?: boolean;
459
+ /** Makes the field required. */
460
+ required?: boolean;
461
+ /** The name sent with the form. */
462
+ name?: string;
463
+ /** Text shown while the field is empty. */
464
+ placeholder?: string;
465
+ /** The autofill hint of the native textarea. */
466
+ autocomplete?: string;
467
+ /** The shortest allowed value. */
468
+ minlength?: number;
469
+ /** The longest allowed value. */
470
+ maxlength?: number;
471
+ /** The visible lines; 2 by default. */
472
+ rows?: number;
473
+ /** */
474
+ readOnly?: boolean;
475
+ /** The value changes as the user types; it bubbles from the native textarea. */
476
+ "on:input"?: (e: Event) => void;
477
+ oninput?: (e: Event) => void;
478
+ /** The user commits a new value; it bubbles from the native textarea. */
479
+ "on:change"?: (e: Event) => void;
480
+ onchange?: (e: Event) => void;
481
+ };
482
+ export type SwellThumbnailProps = {
483
+ /** */
484
+ "aria-label"?: string;
485
+ /** Which palette of `color` the box takes its colors from: `secondary`, the quiet colors with a border, as for a product without a photo, or a variant of the host's own; without it, the accent, as for an avatar. */
486
+ variant?: string;
487
+ /** How large the box is: the height of a control of the size; `medium` by default. */
488
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge";
489
+ /** Rounds the box fully, as for an avatar. */
490
+ shape?: "circle";
491
+ };
492
+ export type SwellUiProps = {
493
+ /** The id of the area's configuration. An id without a configuration yet applies once the host registers one. */
494
+ config?: string;
495
+ };
496
+ export interface SwellBadgeElement extends HTMLElement {}
497
+ export type SwellBadgeSlots = "" | "start";
498
+ export interface SwellButtonElement extends HTMLElement {
499
+ /** Shakes the button, as after a failed attempt to submit; each call starts the shake again. */
500
+ shake(): void;
501
+ /** */
502
+ formDisabledCallback(disabled: boolean): void;
503
+ /** Focuses the anchor with `href`, and the button itself without it. */
504
+ focus(options?: FocusOptions): void;
505
+ }
506
+ export type SwellButtonSlots = "" | "start" | "end";
507
+ export interface SwellCardElement extends HTMLElement {}
508
+ export type SwellCardSlots = "";
509
+ export interface SwellCheckboxElement extends HTMLElement {
510
+ /** */
511
+ focus(options?: FocusOptions): void;
512
+ }
513
+
514
+ export interface SwellChipElement extends HTMLElement {
515
+ /** */
516
+ formDisabledCallback(): void;
517
+ /** Focuses the remove button, the chip's only stop, so a host can hand the focus to a chip; a click on the text leaves the focus alone. */
518
+ focus(options?: FocusOptions): void;
519
+ }
520
+ export type SwellChipSlots = "" | "start";
521
+ export interface SwellDisclosureElement extends HTMLElement {}
522
+ export type SwellDisclosureSlots = "trigger" | "";
523
+ export interface SwellDividerElement extends HTMLElement {}
524
+ export type SwellDividerSlots = "";
525
+ export interface SwellLinkElement extends HTMLElement {
526
+ /** Focuses the anchor with `href`, and the element itself without it. */
527
+ focus(options?: FocusOptions): void;
528
+ }
529
+ export type SwellLinkSlots = "" | "start" | "end";
530
+ export interface SwellInputElement extends HTMLElement {
531
+ /** */
532
+ focus(options?: FocusOptions): void;
533
+ }
534
+ export type SwellInputSlots = "hint" | "start" | "end";
535
+ export interface SwellLookupListElement extends HTMLElement {}
536
+ export type SwellLookupListSlots = "";
537
+ export interface SwellLookupOptionElement extends HTMLElement {}
538
+ export type SwellLookupOptionSlots = "" | "start";
539
+ export interface SwellLookupElement extends HTMLElement {
540
+ /** */
541
+ focus(options?: FocusOptions): void;
542
+ }
543
+ export type SwellLookupSlots = "" | "hint" | "action" | "start" | "end";
544
+ export interface SwellPopoverElement extends HTMLElement {}
545
+ export type SwellPopoverSlots = "trigger" | "";
546
+ export interface SwellQuantityElement extends HTMLElement {
547
+ /** */
548
+ formResetCallback(): void;
549
+ /** */
550
+ formDisabledCallback(disabled: boolean): void;
551
+ /** */
552
+ formStateRestoreCallback(state: unknown): void;
553
+ }
554
+
555
+ export interface SwellRadioOptionElement extends HTMLElement {}
556
+ export type SwellRadioOptionSlots = "" | "start" | "end" | "details";
557
+ export interface SwellRadioElement extends HTMLElement {
558
+ /** */
559
+ checkValidity(): boolean;
560
+ /** */
561
+ reportValidity(): boolean;
562
+ /** */
563
+ formResetCallback(): void;
564
+ /** */
565
+ formDisabledCallback(): void;
566
+ /** */
567
+ formStateRestoreCallback(state: unknown): void;
568
+ /** Focuses the group's Tab stop, as a Tab into the group does. */
569
+ focus(options?: FocusOptions): void;
570
+ }
571
+ export type SwellRadioSlots = "";
572
+ export interface SwellSelectOptionElement extends HTMLElement {}
573
+ export type SwellSelectOptionSlots = "" | "start";
574
+ export interface SwellSelectElement extends HTMLElement {
575
+ /** */
576
+ checkValidity(): boolean;
577
+ /** */
578
+ reportValidity(): boolean;
579
+ /** */
580
+ focus(options?: FocusOptions): void;
581
+ /** */
582
+ formResetCallback(): void;
583
+ /** */
584
+ formDisabledCallback(): void;
585
+ /** */
586
+ formStateRestoreCallback(state: unknown): void;
587
+ }
588
+ export type SwellSelectSlots = "";
589
+ export interface SwellSkeletonElement extends HTMLElement {}
590
+ export type SwellSkeletonSlots = "";
591
+ export interface SwellStatusElement extends HTMLElement {}
592
+ export type SwellStatusSlots = "" | "start" | "end";
593
+ export interface SwellTabElement extends HTMLElement {}
594
+ export type SwellTabSlots = "" | "summary" | "end";
595
+ export interface SwellTabsElement extends HTMLElement {}
596
+ export type SwellTabsSlots = "";
597
+ export interface SwellTextElement extends HTMLElement {}
598
+ export type SwellTextSlots = "";
599
+ export interface SwellTextareaElement extends HTMLElement {
600
+ /** */
601
+ focus(options?: FocusOptions): void;
602
+ }
603
+ export type SwellTextareaSlots = "hint";
604
+ export interface SwellThumbnailElement extends HTMLElement {}
605
+ export type SwellThumbnailSlots = "" | "badge";
606
+ export interface SwellUiElement extends HTMLElement {}
607
+
608
+ export type CustomElements = {
609
+ /**
610
+ * A badge: a short label or a count, such as a subscription's interval, a discount or a quantity.
611
+ * It is text only: screen readers read it in place, so a count needs its context in the host's markup, such as hidden text next to it.
612
+ *
613
+ * ## Attributes & Properties
614
+ *
615
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
616
+ *
617
+ * - `variant`/`undefined`: Which palette of `color` the badge takes its colors from: `secondary`, quiet, or a variant of the host's own; without it, the badge's own.
618
+ * - `appearance`/`undefined`: How the badge is drawn; the configured setting by default.
619
+ * - `size`/`undefined`: How large the badge is; `medium` by default. A small one fits a count, an extra small one a count on an icon.
620
+ *
621
+ * ## Slots
622
+ *
623
+ * Areas where markup can be added to the component.
624
+ *
625
+ * - `(default)`: The label.
626
+ * - `start`: An icon before the label, drawn 1px larger than the text.
627
+ *
628
+ * ## CSS States
629
+ *
630
+ * These can be used to apply styling when a component is in a given state.
631
+ *
632
+ * - `filled`: The badge is filled.
633
+ * - `outline`: The badge has an outline.
634
+ */
635
+ "swell-badge": Partial<SwellBadgeProps & BaseProps & BaseEvents>;
636
+
637
+ /**
638
+ * A button. It submits or resets the form it belongs to, like a native button.
639
+ * With `href` it is a link that looks like the button: an anchor in its shadow root fills it inside the border, takes the focus and follows the link, named by the element's own `aria-label`, or else by its content; `type`, `disabled`, `loading` and `success` belong to the button without `href`.
640
+ * `role="button"` and `tabindex="0"` count as the kit's and leave when `href` comes; any other role or tabindex is the host's and stays.
641
+ *
642
+ * While `loading`, the button shows a spinner in place of its `start` content, hides its `end` content and ignores clicks; it keeps its focus.
643
+ * With `success`, it is filled with the success color and shows a check in place of its icons and its spinner. It is inactive, as after a payment, but keeps its focus and doesn't fade.
644
+ *
645
+ * ## Attributes & Properties
646
+ *
647
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
648
+ *
649
+ * - `disabled`/`undefined`: Removes the button from the tab order and ignores clicks.
650
+ * - `loading`/`undefined`: Shows a spinner, marks the button busy and ignores clicks; the button stays in the tab order.
651
+ * - `success`/`undefined`: Fills the button with the success color, draws a check and makes the button inactive; it keeps its tab stop and isn't busy.
652
+ * - `variant`/`undefined`: Which palette of `color` the button takes its colors from: `secondary`, or a variant of the host's own; without it, the button's own.
653
+ * - `appearance`/`undefined`: How the button is drawn; the variant's setting by default.
654
+ * - `size`/`undefined`: How large the button is; `medium` by default. `xsmall` fits an action inside a status message.
655
+ * - `shape`/`undefined`: Rounds the corners fully, in every variant, appearance and size, whatever the corner radius of the host's buttons.
656
+ * - `href`/`undefined`: Where the button leads; with it the element is a link, named by its own `aria-label`, or else by its content.
657
+ * - `target`/`undefined`: Where to open the link.
658
+ * - `rel`/`undefined`: How the link's target relates to the page.
659
+ * - `type`/`undefined`: What the button does in a form; `submit` by default.
660
+ * - `disabled`: undefined (property only)
661
+ * - `loading`: undefined (property only)
662
+ * - `success`: undefined (property only)
663
+ * - `type`: undefined (property only)
664
+ *
665
+ * ## Slots
666
+ *
667
+ * Areas where markup can be added to the component.
668
+ *
669
+ * - `(default)`: The label of the button.
670
+ * - `start`: An icon before the label, drawn 4px larger than the text.
671
+ * - `end`: An icon after the label, drawn 4px larger than the text; it moves toward the end on hover.
672
+ *
673
+ * ## Methods
674
+ *
675
+ * Methods that can be called to access component functionality.
676
+ *
677
+ * - `shake() => void`: Shakes the button, as after a failed attempt to submit; each call starts the shake again.
678
+ * - `formDisabledCallback(disabled: boolean) => void`: undefined
679
+ * - `focus(options?: FocusOptions) => void`: Focuses the anchor with `href`, and the button itself without it.
680
+ *
681
+ * ## CSS States
682
+ *
683
+ * These can be used to apply styling when a component is in a given state.
684
+ *
685
+ * - `filled`: The button is filled.
686
+ * - `outline`: The button has an outline.
687
+ * - `plain`: The button has neither a fill nor a border at rest; under the pointer it takes the quiet fill.
688
+ */
689
+ "swell-button": Partial<SwellButtonProps & BaseProps & BaseEvents>;
690
+
691
+ /**
692
+ * A card: a box that groups content, such as the details of an order or a note under a choice.
693
+ *
694
+ * ## Attributes & Properties
695
+ *
696
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
697
+ *
698
+ * - `appearance`/`undefined`: How the card is drawn: with a border, or filled with the quiet background; the configured setting by default.
699
+ * - `size`/`undefined`: How large the padding is: it follows the text of the size; `medium` by default.
700
+ *
701
+ * ## Slots
702
+ *
703
+ * Areas where markup can be added to the component.
704
+ *
705
+ * - `(default)`: The content.
706
+ *
707
+ * ## CSS States
708
+ *
709
+ * These can be used to apply styling when a component is in a given state.
710
+ *
711
+ * - `outline`: The card has a border.
712
+ * - `filled`: The card is filled.
713
+ */
714
+ "swell-card": Partial<SwellCardProps & BaseProps & BaseEvents>;
715
+
716
+ /**
717
+ * A checkbox: a native checkbox with its label, hint and error, rendered into light DOM.
718
+ *
719
+ * ## Attributes & Properties
720
+ *
721
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
722
+ *
723
+ * - `label`/`undefined`: The label beside the box.
724
+ * - `hint`/`undefined`: Help text under the checkbox.
725
+ * - `error`/`undefined`: The error shown while the checkbox is invalid.
726
+ * - `invalid`/`undefined`: Marks the checkbox invalid and shows the error.
727
+ * - `checked`/`undefined`: The default state.
728
+ * - `value`/`undefined`: The value sent with the form; `on` by default.
729
+ * - `disabled`/`undefined`: Disables the checkbox.
730
+ * - `required`/`undefined`: Makes the checkbox required.
731
+ * - `name`/`undefined`: The name sent with the form.
732
+ * - `size`/`undefined`: How large the checkbox is: the label takes the text of the size and the box grows with it; `medium` by default. The target stays at least 24px.
733
+ * - `checked`: Whether the box is checked now. (property only)
734
+ * - `value`: The value sent with the form. (property only)
735
+ * - `disabled`: undefined (property only)
736
+ * - `required`: undefined (property only)
737
+ * - `invalid`: undefined (property only)
738
+ * - `name`: undefined (property only)
739
+ *
740
+ * ## Events
741
+ *
742
+ * Events that will be emitted by the component.
743
+ *
744
+ * - `change`: The user checks or unchecks the box; it bubbles from the native input.
745
+ *
746
+ * ## Methods
747
+ *
748
+ * Methods that can be called to access component functionality.
749
+ *
750
+ * - `focus(options?: FocusOptions) => void`: undefined
751
+ */
752
+ "swell-checkbox": Partial<SwellCheckboxProps & BaseProps & BaseEvents>;
753
+
754
+ /**
755
+ * A chip: a short value the shopper can remove, such as an applied discount code or gift card.
756
+ * Its remove button fires `remove`; the host removes the chip and moves the focus, for example to the code field.
757
+ * A disabled chip, by its own attribute or a disabled fieldset around it, keeps its value legible and fades its remove button, which takes neither the focus nor presses, so a host can lock a form while it is sent.
758
+ *
759
+ * ## Attributes & Properties
760
+ *
761
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
762
+ *
763
+ * - `disabled`/`undefined`: Disables the remove button.
764
+ * - `remove-label`/`undefined`: The name of the remove button in the host's language, such as `Remove WELCOME10`; every chip needs one.
765
+ * - `size`/`undefined`: How large the chip is; `medium` by default. Its remove button is as high as the chip, at least 24px.
766
+ * - `disabled`: undefined (property only)
767
+ *
768
+ * ## Events
769
+ *
770
+ * Events that will be emitted by the component.
771
+ *
772
+ * - `remove`: The shopper pressed the remove button; it bubbles, and the chip stays in the page. A disabled chip fires none.
773
+ *
774
+ * ## Slots
775
+ *
776
+ * Areas where markup can be added to the component.
777
+ *
778
+ * - `(default)`: The value.
779
+ * - `start`: An icon before the value, drawn 2px larger than the text.
780
+ *
781
+ * ## Methods
782
+ *
783
+ * Methods that can be called to access component functionality.
784
+ *
785
+ * - `formDisabledCallback() => void`: undefined
786
+ * - `focus(options?: FocusOptions) => void`: Focuses the remove button, the chip's only stop, so a host can hand the focus to a chip; a click on the text leaves the focus alone.
787
+ *
788
+ * ## CSS Parts
789
+ *
790
+ * Custom selectors for styling elements within the component.
791
+ *
792
+ * - `remove`: The remove button.
793
+ */
794
+ "swell-chip": Partial<SwellChipProps & BaseProps & BaseEvents>;
795
+
796
+ /**
797
+ * A disclosure: content that stays hidden until the shopper presses its trigger, such as "Add apartment, suite, etc." and the field it reveals.
798
+ * The trigger opens it and leaves; the focus moves to the first control of the content.
799
+ * With `toggle`, such as a collapsible order summary, the trigger stays, closes the content too and tells whether it is open with `aria-expanded`; the focus stays on it.
800
+ * The host can also set `open` itself, for example from a checkbox, and remove it to close the content and bring the trigger back; without a trigger, the host moves the focus out first.
801
+ * Closed content stays in the page and in the form: render it only while open, or disable its fields, so a required field doesn't block the submit.
802
+ *
803
+ * ## Attributes & Properties
804
+ *
805
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
806
+ *
807
+ * - `open`/`undefined`: Shows the content and hides the trigger. Set on connect, the content shows at once.
808
+ * - `toggle`/`undefined`: Keeps the trigger while the content is open: it closes the content too and carries `aria-expanded`.
809
+ * - `open`: undefined (property only)
810
+ *
811
+ * ## Events
812
+ *
813
+ * Events that will be emitted by the component.
814
+ *
815
+ * - `toggle`: The content opened or closed: by the trigger or by script, also as it starts open. A `ToggleEvent` with `oldState` and `newState`, fired once the script that changed `open` has run; it doesn't bubble and can't be cancelled.
816
+ *
817
+ * ## Slots
818
+ *
819
+ * Areas where markup can be added to the component.
820
+ *
821
+ * - `trigger`: The host's button that opens the content, such as `<swell-link appearance="plain">`; a button, not a link with `href`. Inside a form a `<button>` or a `<swell-button>` needs `type="button"`. A listener that cancels the press, also a framework's handler on the page, keeps the content closed.
822
+ * - `(default)`: The content.
823
+ *
824
+ * ## CSS Parts
825
+ *
826
+ * Custom selectors for styling elements within the component.
827
+ *
828
+ * - `content`: The box that expands to show the content.
829
+ *
830
+ * ## CSS States
831
+ *
832
+ * These can be used to apply styling when a component is in a given state.
833
+ *
834
+ * - `closing`: The content collapses; the trigger is back, out of the flow and invisible until it ends.
835
+ */
836
+ "swell-disclosure": Partial<SwellDisclosureProps & BaseProps & BaseEvents>;
837
+
838
+ /**
839
+ * A divider: a line across its width, or two lines with a label between them, such as "or pay another way".
840
+ * Without a label it is a separator for screen readers; with one, they read the label and skip the lines.
841
+ * The host sets the space around it.
842
+ *
843
+ * ## Slots
844
+ *
845
+ * Areas where markup can be added to the component.
846
+ *
847
+ * - `(default)`: An optional label, such as text or an icon, drawn in the caption font and the secondary text color; whitespace and hidden content aren't one.
848
+ */
849
+ "swell-divider": Partial<SwellDividerProps & BaseProps & BaseEvents>;
850
+
851
+ /**
852
+ * A link. With `href`, its anchor lives in the shadow root and takes the focus for the element.
853
+ *
854
+ * Without `href` the element itself is a button that looks like the link: it takes the button role and the tab stop, fires `click` on Enter and Space, and never submits a form.
855
+ * Its own `aria-label`, `aria-expanded` and `aria-controls` name and describe that button, so it can open a popover or a disclosure.
856
+ * `role="button"` and `tabindex="0"` count as the kit's and leave when `href` comes; any other role or tabindex is the host's and stays.
857
+ *
858
+ * ## Attributes & Properties
859
+ *
860
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
861
+ *
862
+ * - `href`/`undefined`: Where the link goes; without it the element is a button. With it, the anchor is named by the element's own `aria-label`, as a link of an icon alone needs, or else by its content.
863
+ * - `target`/`undefined`: Where to open the link.
864
+ * - `rel`/`undefined`: How the target relates to the page.
865
+ * - `variant`/`undefined`: Which palette of `color` the link takes its color from: `secondary`, quiet text, or a variant of the host's own; without it, the link color.
866
+ * - `appearance`/`undefined`: How the link is drawn: `underline`, the default, in the font of the text around it; `plain`, for a link on its own, without an underline, in the text of a field hint, at least 24px high. Only the attribute sets it.
867
+ * - `size`/`undefined`: How large a plain link is: its text is one step smaller than the text of the size, at least 12px; `medium` by default. A link in text takes the font around it.
868
+ *
869
+ * ## Slots
870
+ *
871
+ * Areas where markup can be added to the component.
872
+ *
873
+ * - `(default)`: The text of the link.
874
+ * - `start`: An icon before the text, 2px larger than it.
875
+ * - `end`: An icon after the text, 2px larger than it.
876
+ *
877
+ * ## Methods
878
+ *
879
+ * Methods that can be called to access component functionality.
880
+ *
881
+ * - `focus(options?: FocusOptions) => void`: Focuses the anchor with `href`, and the element itself without it.
882
+ *
883
+ * ## CSS Parts
884
+ *
885
+ * Custom selectors for styling elements within the component.
886
+ *
887
+ * - `link`: The anchor, or the content of the button without `href`.
888
+ *
889
+ * ## CSS States
890
+ *
891
+ * These can be used to apply styling when a component is in a given state.
892
+ *
893
+ * - `plain`: The link is plain.
894
+ * - `start-content`: The link has content in its `start` slot.
895
+ * - `end-content`: The link has content in its `end` slot.
896
+ */
897
+ "swell-link": Partial<SwellLinkProps & BaseProps & BaseEvents>;
898
+
899
+ /**
900
+ * A text field: a native input with its label, hint and error, rendered into light DOM.
901
+ *
902
+ * ## Attributes & Properties
903
+ *
904
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
905
+ *
906
+ * - `label`/`undefined`: The label of the field.
907
+ * - `optional`/`undefined`: A marker after the label, such as `(optional)`, in the host's language; it joins the field's name.
908
+ * - `hint`/`undefined`: Help text under the field.
909
+ * - `error`/`undefined`: The error shown while the field is invalid.
910
+ * - `invalid`/`undefined`: Marks the field invalid and shows the error.
911
+ * - `value`/`undefined`: The default value.
912
+ * - `type`/`undefined`: The kind of value; `text` by default.
913
+ * - `appearance`/`undefined`: How the field is drawn; the configured setting by default.
914
+ * - `size`/`undefined`: How large the field is; `medium` by default. At `xsmall` the label sits above the field.
915
+ * - `disabled`/`undefined`: Disables the field.
916
+ * - `readonly`/`undefined`: Makes the field read-only.
917
+ * - `required`/`undefined`: Makes the field required.
918
+ * - `name`/`undefined`: The name sent with the form.
919
+ * - `placeholder`/`undefined`: Text shown while the field is empty.
920
+ * - `autocomplete`/`undefined`: The autofill hint of the native input.
921
+ * - `inputmode`/`undefined`: The virtual keyboard to show.
922
+ * - `minlength`/`undefined`: The shortest allowed value.
923
+ * - `maxlength`/`undefined`: The longest allowed value.
924
+ * - `pattern`/`undefined`: The pattern the value matches.
925
+ * - `min`/`undefined`: The smallest allowed value.
926
+ * - `max`/`undefined`: The largest allowed value.
927
+ * - `step`/`undefined`: The step between allowed values.
928
+ * - `value`: The current value of the field. (property only)
929
+ * - `disabled`: undefined (property only)
930
+ * - `required`: undefined (property only)
931
+ * - `readOnly`: undefined (property only)
932
+ * - `invalid`: undefined (property only)
933
+ * - `name`: undefined (property only)
934
+ *
935
+ * ## Events
936
+ *
937
+ * Events that will be emitted by the component.
938
+ *
939
+ * - `input`: The value changes as the user types; it bubbles from the native input.
940
+ * - `change`: The user commits a new value; it bubbles from the native input.
941
+ *
942
+ * ## Slots
943
+ *
944
+ * Areas where markup can be added to the component.
945
+ *
946
+ * - `hint`: Help content under the field in place of the `hint` text, such as "Did you mean <swell-link>gmail.com</swell-link>?"; it describes the input, and hiding it with `hidden` brings the `hint` text back.
947
+ * - `start`: Content before the text, such as an icon; an svg is drawn 4px larger than the text, in the quiet color.
948
+ * - `end`: Content after the text, such as a card logo, a check or a button; hide it with `hidden`, and disable a button in it along with the field.
949
+ *
950
+ * ## Methods
951
+ *
952
+ * Methods that can be called to access component functionality.
953
+ *
954
+ * - `attributesOf(passed: string[], own: string[] = []) => string[]`: Every attribute a text field observes, for the subclass's `observedAttributes`.
955
+ * - `focus(options?: FocusOptions) => void`: undefined
956
+ *
957
+ * ## CSS Parts
958
+ *
959
+ * Custom selectors for styling elements within the component.
960
+ *
961
+ * - `frame`: The box that draws the field around the native input, its start and its end.
962
+ * - `start`: The box of the start content.
963
+ * - `end`: The box of the end content.
964
+ *
965
+ * ## CSS States
966
+ *
967
+ * These can be used to apply styling when a component is in a given state.
968
+ *
969
+ * - `outline`: The field has a border on all sides.
970
+ * - `filled`: The field has a fill and a bottom border.
971
+ * - `underline`: The field has a bottom border.
972
+ * - `above`: The label sits above the field.
973
+ * - `floating`: The label floats inside the field.
974
+ */
975
+ "swell-input": Partial<SwellInputProps & BaseProps & BaseEvents>;
976
+
977
+ /**
978
+ * The list of a lookup's suggestions. It lives only as a child of `<swell-lookup>`, which shows it under the field while it opens.
979
+ *
980
+ * ## Slots
981
+ *
982
+ * Areas where markup can be added to the component.
983
+ *
984
+ * - `(default)`: The suggestions, `<swell-lookup-option>` elements.
985
+ */
986
+ "swell-lookup-list": Partial<SwellLookupListProps & BaseProps & BaseEvents>;
987
+
988
+ /**
989
+ * One suggestion of a lookup. It lives only as a child of `<swell-lookup-list>`.
990
+ * Choosing it clicks it: the host reads the option from the `click`. A click on a disabled suggestion reaches the host's handlers too, and the field ignores it.
991
+ *
992
+ * ## Attributes & Properties
993
+ *
994
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
995
+ *
996
+ * - `value`/`undefined`: The value of the suggestion, such as the id of a place; the label by default.
997
+ * - `hint`/`undefined`: A second line under the label.
998
+ * - `disabled`/`undefined`: Disables the suggestion.
999
+ * - `hidden`/`undefined`: undefined
1000
+ * - `selected`: Whether the option is chosen; the select sets it. (property only) (readonly)
1001
+ * - `label`: The text of the option's label: its text and its elements outside a named slot, without the comments a framework leaves. (property only) (readonly)
1002
+ * - `value`: undefined (property only)
1003
+ * - `disabled`: undefined (property only)
1004
+ *
1005
+ * ## Slots
1006
+ *
1007
+ * Areas where markup can be added to the component.
1008
+ *
1009
+ * - `(default)`: The label of the suggestion; the field writes its text into the input when it is chosen.
1010
+ * - `start`: Content before the label, such as an icon.
1011
+ *
1012
+ * ## CSS States
1013
+ *
1014
+ * These can be used to apply styling when a component is in a given state.
1015
+ *
1016
+ * - `focused`: The field's keyboard points at the suggestion.
1017
+ * - `disabled`: The suggestion is disabled.
1018
+ * - `first`: The option is the first one on show; it draws no divider above it.
1019
+ */
1020
+ "swell-lookup-option": Partial<SwellLookupOptionProps & BaseProps & BaseEvents>;
1021
+
1022
+ /**
1023
+ * A text field with suggestions: a combobox in ARIA terms. The host loads the suggestions, such as addresses,
1024
+ * and puts them into a `<swell-lookup-list>` child as `<swell-lookup-option>` elements; the field shows them under itself.
1025
+ * It is a `<swell-input>` in everything else: its native input stays in light DOM, so autofill works as in any field.
1026
+ *
1027
+ * The list opens while the user types and it has something to show, and closes on a choice, on Escape and when the focus leaves the field.
1028
+ * Choosing a suggestion clicks it. After the click, unless a handler prevented its default, the field writes the suggestion's label
1029
+ * into the input and fires `input`, with `inputType` `insertReplacementText`, and `change`; the list stays closed until the user types again.
1030
+ *
1031
+ * ## Attributes & Properties
1032
+ *
1033
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1034
+ *
1035
+ * - `label`/`undefined`: The label of the field.
1036
+ * - `optional`/`undefined`: A marker after the label, such as `(optional)`, in the host's language; it joins the field's name.
1037
+ * - `hint`/`undefined`: Help text under the field.
1038
+ * - `error`/`undefined`: The error shown while the field is invalid.
1039
+ * - `invalid`/`undefined`: Marks the field invalid and shows the error.
1040
+ * - `value`/`undefined`: The default value.
1041
+ * - `type`/`undefined`: The kind of value; `text` by default.
1042
+ * - `appearance`/`undefined`: How the field is drawn; the configured setting by default.
1043
+ * - `size`/`undefined`: How large the field is; `medium` by default. At `xsmall` the label sits above the field.
1044
+ * - `disabled`/`undefined`: Disables the field.
1045
+ * - `readonly`/`undefined`: Makes the field read-only.
1046
+ * - `required`/`undefined`: Makes the field required.
1047
+ * - `name`/`undefined`: The name sent with the form.
1048
+ * - `placeholder`/`undefined`: Text shown while the field is empty.
1049
+ * - `autocomplete`/`undefined`: The autofill hint of the native input.
1050
+ * - `inputmode`/`undefined`: The virtual keyboard to show.
1051
+ * - `minlength`/`undefined`: The shortest allowed value.
1052
+ * - `maxlength`/`undefined`: The longest allowed value.
1053
+ * - `pattern`/`undefined`: The pattern the value matches.
1054
+ * - `min`/`undefined`: The smallest allowed value.
1055
+ * - `max`/`undefined`: The largest allowed value.
1056
+ * - `step`/`undefined`: The step between allowed values.
1057
+ * - `value`: The current value of the field. (property only)
1058
+ * - `disabled`: undefined (property only)
1059
+ * - `required`: undefined (property only)
1060
+ * - `readOnly`: undefined (property only)
1061
+ * - `invalid`: undefined (property only)
1062
+ * - `name`: undefined (property only)
1063
+ *
1064
+ * ## Events
1065
+ *
1066
+ * Events that will be emitted by the component.
1067
+ *
1068
+ * - `input`: The value changes as the user types; it bubbles from the native input.
1069
+ * - `change`: The user commits a new value; it bubbles from the native input.
1070
+ *
1071
+ * ## Slots
1072
+ *
1073
+ * Areas where markup can be added to the component.
1074
+ *
1075
+ * - `(default)`: The list of suggestions, a `<swell-lookup-list>`. While it is there, the input is a combobox and the list can open: keep it in the field, even empty, for as long as the field takes suggestions.
1076
+ * - `hint`: Help content under the field in place of the `hint` text, as on an input.
1077
+ * - `action`: A row at the end of the list, such as a `<button type="button">` that opens a manual form; it shows with at least one suggestion, so it stays in the field, and a click on it closes the list.
1078
+ * - `start`: Content before the text, such as an icon; an svg is drawn 4px larger than the text, in the quiet color.
1079
+ * - `end`: Content after the text, such as a card logo, a check or a button; hide it with `hidden`, and disable a button in it along with the field.
1080
+ *
1081
+ * ## Methods
1082
+ *
1083
+ * Methods that can be called to access component functionality.
1084
+ *
1085
+ * - `attributesOf(passed: string[], own: string[] = []) => string[]`: Every attribute a text field observes, for the subclass's `observedAttributes`.
1086
+ * - `focus(options?: FocusOptions) => void`: undefined
1087
+ *
1088
+ * ## CSS Parts
1089
+ *
1090
+ * Custom selectors for styling elements within the component.
1091
+ *
1092
+ * - `list`: The popup that holds the list and the action.
1093
+ * - `frame`: The box that draws the field around the native input, its start and its end.
1094
+ * - `start`: The box of the start content.
1095
+ * - `end`: The box of the end content.
1096
+ *
1097
+ * ## CSS States
1098
+ *
1099
+ * These can be used to apply styling when a component is in a given state.
1100
+ *
1101
+ * - `outline`: The field has a border on all sides.
1102
+ * - `filled`: The field has a fill and a bottom border.
1103
+ * - `underline`: The field has a bottom border.
1104
+ * - `above`: The label sits above the field.
1105
+ * - `floating`: The label floats inside the field.
1106
+ */
1107
+ "swell-lookup": Partial<SwellLookupProps & BaseProps & BaseEvents>;
1108
+
1109
+ /**
1110
+ * A popover: a small dialog that floats at the host's trigger, such as the language and currency picker of a checkout.
1111
+ * The trigger opens and closes it; opened by the trigger, it moves the focus to its first control. Escape closes it and gives the focus back to the trigger;
1112
+ * a press outside it and the focus leaving it close it too. A choice inside keeps it open.
1113
+ * The panel sits under the trigger, or above it when there is more room there, at the trigger's start edge, or at its end edge when it would leave the window there.
1114
+ * Its content sets its width, at least the trigger's and at most the window's less 16px.
1115
+ * Name it with `aria-label`, such as `Language and currency`.
1116
+ *
1117
+ * ## Attributes & Properties
1118
+ *
1119
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1120
+ *
1121
+ * - `open`/`undefined`: The panel is open. Set it to open the panel without moving the focus; remove it to close the panel, which gives the focus back to the trigger when the focus is inside.
1122
+ * - `aria-label`/`undefined`: undefined
1123
+ * - `open`: undefined (property only)
1124
+ *
1125
+ * ## Events
1126
+ *
1127
+ * Events that will be emitted by the component.
1128
+ *
1129
+ * - `toggle`: The panel opened or closed: by the trigger, Escape, a press outside, the focus leaving it or script, also as it starts open or leaves the page open. A `ToggleEvent` with `oldState` and `newState`, fired once the script that changed `open` has run; it doesn't bubble and can't be cancelled.
1130
+ *
1131
+ * ## Slots
1132
+ *
1133
+ * Areas where markup can be added to the component.
1134
+ *
1135
+ * - `trigger`: The host's button that opens and closes the panel: a `<button>` or a `<swell-button>`, with `type="button"` inside a form, or a `<swell-link>` without `href`. The popover sets its `aria-expanded`. A listener that cancels the press, also a framework's handler on the page, keeps the panel closed.
1136
+ * - `(default)`: The content of the panel.
1137
+ *
1138
+ * ## CSS Parts
1139
+ *
1140
+ * Custom selectors for styling elements within the component.
1141
+ *
1142
+ * - `panel`: The floating panel.
1143
+ */
1144
+ "swell-popover": Partial<SwellPopoverProps & BaseProps & BaseEvents>;
1145
+
1146
+ /**
1147
+ * A quantity: a count the shopper changes with − and +, such as the quantity of a cart line or of a product before it goes into the cart.
1148
+ * It is a spinbutton with one tab stop: the up and down arrows change the count by `step`, and Home and End move it to `min` and `max`.
1149
+ * Name it with `aria-label`, such as `Quantity, House Blend`, or with `aria-labelledby`. It holds the count and takes part in its form.
1150
+ * While the cart updates, set `busy` rather than `disabled`: a disabled quantity leaves the tab order, so disabling the focused one drops the focus to the page.
1151
+ *
1152
+ * ## Attributes & Properties
1153
+ *
1154
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1155
+ *
1156
+ * - `value`/`undefined`: The starting count, a whole number; `min` by default. A count outside the limits is clamped, and a count the user or a script set stays at the limit that clamped it.
1157
+ * - `min`/`undefined`: The least count, a whole number; 1 by default.
1158
+ * - `max`/`undefined`: The greatest count, a whole number; no limit by default. A `max` below `min` counts as `min`.
1159
+ * - `step`/`undefined`: How much each step changes the count, a whole number above 0; 1 by default.
1160
+ * - `disabled`/`undefined`: Removes the quantity from the tab order and ignores steps.
1161
+ * - `busy`/`undefined`: The quantity waits, such as while the cart updates: it keeps the focus, its count and its tab stop, ignores steps, fades and tells screen readers it is busy; a script can still set its count.
1162
+ * - `name`/`undefined`: The name sent with the form.
1163
+ * - `size`/`undefined`: How large the quantity is: it shares a height with buttons and fields of its size; `medium` by default. A cart line takes `xsmall`.
1164
+ * - `value`: The count now. (property only)
1165
+ * - `name`: undefined (property only)
1166
+ * - `disabled`: undefined (property only)
1167
+ * - `busy`: undefined (property only)
1168
+ * - `form`: undefined (property only) (readonly)
1169
+ *
1170
+ * ## Events
1171
+ *
1172
+ * Events that will be emitted by the component.
1173
+ *
1174
+ * - `input`: The user changed the count.
1175
+ * - `change`: The user changed the count, after `input`.
1176
+ *
1177
+ * ## Methods
1178
+ *
1179
+ * Methods that can be called to access component functionality.
1180
+ *
1181
+ * - `formResetCallback() => void`: undefined
1182
+ * - `formDisabledCallback(disabled: boolean) => void`: undefined
1183
+ * - `formStateRestoreCallback(state: unknown) => void`: undefined
1184
+ */
1185
+ "swell-quantity": Partial<SwellQuantityProps & BaseProps & BaseEvents>;
1186
+
1187
+ /**
1188
+ * One option of a radio group. It lives only as a direct child of `<swell-radio>`, which holds the choice.
1189
+ * In a segmented group and as a button an option shows its `start` and its label; its hint, `end` and `details` are not drawn.
1190
+ * An option with the `hidden` attribute is left out of its group.
1191
+ *
1192
+ * ## Attributes & Properties
1193
+ *
1194
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1195
+ *
1196
+ * - `value`/`undefined`: The value the group takes when the option is chosen; `on` by default.
1197
+ * - `hint`/`undefined`: Help text under the label.
1198
+ * - `disabled`/`undefined`: Disables the option.
1199
+ * - `hidden`/`undefined`: undefined
1200
+ * - `checked`: Whether the option is chosen; the group sets it. (property only) (readonly)
1201
+ * - `value`: undefined (property only)
1202
+ * - `disabled`: undefined (property only)
1203
+ *
1204
+ * ## Slots
1205
+ *
1206
+ * Areas where markup can be added to the component.
1207
+ *
1208
+ * - `(default)`: The label of the option.
1209
+ * - `start`: Content before the label, such as an icon or a logo; decoration, left out of the option's name.
1210
+ * - `end`: Content at the end of the row, such as a price or logos.
1211
+ * - `details`: Content shown while the option is chosen, such as card fields. While hidden it stays in the page and in the form: render it only while the option is chosen, or disable its fields.
1212
+ *
1213
+ * ## CSS States
1214
+ *
1215
+ * These can be used to apply styling when a component is in a given state.
1216
+ *
1217
+ * - `plain`: The group draws its options plain: the circle and the label.
1218
+ * - `outline`: The group draws each option in a frame.
1219
+ * - `segmented`: The group draws its options as segments of one track.
1220
+ * - `button`: The group draws each option as a button.
1221
+ * - `start`: The circle sits at the start of the row.
1222
+ * - `end`: The circle sits at the end of the row.
1223
+ * - `checked`: The option is chosen.
1224
+ * - `disabled`: The option or its group is disabled.
1225
+ * - `invalid`: The group is invalid.
1226
+ * - `start-content`: The option has content in its `start` slot.
1227
+ * - `details`: The option has content in its `details` slot.
1228
+ * - `focused`: The option's radio has the keyboard focus.
1229
+ */
1230
+ "swell-radio-option": Partial<SwellRadioOptionProps & BaseProps & BaseEvents>;
1231
+
1232
+ /**
1233
+ * A radio group: a question with one answer, chosen from its `<swell-radio-option>` children.
1234
+ * It holds the choice and takes part in its form.
1235
+ *
1236
+ * ## Attributes & Properties
1237
+ *
1238
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1239
+ *
1240
+ * - `label`/`undefined`: The question. Without it, the group takes its name from its own `aria-label`.
1241
+ * - `hint`/`undefined`: Help text under the options.
1242
+ * - `error`/`undefined`: The error shown while the group is invalid.
1243
+ * - `invalid`/`undefined`: Marks the group invalid and shows the error.
1244
+ * - `name`/`undefined`: The name sent with the form.
1245
+ * - `value`/`undefined`: The value of the option chosen by default.
1246
+ * - `required`/`undefined`: The form can't be sent until an option is chosen.
1247
+ * - `disabled`/`undefined`: Disables every option.
1248
+ * - `aria-label`/`undefined`: undefined
1249
+ * - `indicator-position`/`undefined`: Where the circle sits in the row of each option; the `radio.indicator.position` setting gives the default. A segmented group draws no circle.
1250
+ * - `size`/`undefined`: How large the options are: their text, circle and padding follow the text of the size, and a segmented track takes the height of a control; `medium` by default.
1251
+ * - `appearance`/`undefined`: How the options are drawn: the circle and the label, each option in a frame, the options sharing a track like a switch, or each option as a button in equal columns. `segmented` suits two or three short options, `button` short options such as languages or sizes; both are set with this attribute only. The `radio.appearance` setting gives the default.
1252
+ * - `value`: The value of the chosen option. (property only)
1253
+ * - `name`: undefined (property only)
1254
+ * - `required`: undefined (property only)
1255
+ * - `disabled`: undefined (property only)
1256
+ * - `invalid`: undefined (property only)
1257
+ * - `form`: undefined (property only) (readonly)
1258
+ * - `validity`: undefined (property only) (readonly)
1259
+ * - `validationMessage`: undefined (property only) (readonly)
1260
+ * - `willValidate`: undefined (property only) (readonly)
1261
+ *
1262
+ * ## Events
1263
+ *
1264
+ * Events that will be emitted by the component.
1265
+ *
1266
+ * - `input`: The user chose another option.
1267
+ * - `change`: The user chose another option, after `input`. Events of fields in the options' details bubble through the group too: the group's own have it as their `target`.
1268
+ *
1269
+ * ## Slots
1270
+ *
1271
+ * Areas where markup can be added to the component.
1272
+ *
1273
+ * - `(default)`: The options, `<swell-radio-option>` elements.
1274
+ *
1275
+ * ## Methods
1276
+ *
1277
+ * Methods that can be called to access component functionality.
1278
+ *
1279
+ * - `checkValidity() => boolean`: undefined
1280
+ * - `reportValidity() => boolean`: undefined
1281
+ * - `formResetCallback() => void`: undefined
1282
+ * - `formDisabledCallback() => void`: undefined
1283
+ * - `formStateRestoreCallback(state: unknown) => void`: undefined
1284
+ * - `focus(options?: FocusOptions) => void`: Focuses the group's Tab stop, as a Tab into the group does.
1285
+ *
1286
+ * ## CSS States
1287
+ *
1288
+ * These can be used to apply styling when a component is in a given state.
1289
+ *
1290
+ * - `plain`: The options are drawn plain.
1291
+ * - `outline`: Each option is drawn in a frame.
1292
+ * - `segmented`: The options share a track.
1293
+ * - `button`: Each option is drawn as a button.
1294
+ */
1295
+ "swell-radio": Partial<SwellRadioProps & BaseProps & BaseEvents>;
1296
+
1297
+ /**
1298
+ * One option of a select. It lives only as a direct child of `<swell-select>`, which holds the choice.
1299
+ *
1300
+ * ## Attributes & Properties
1301
+ *
1302
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1303
+ *
1304
+ * - `value`/`undefined`: The value the select takes when the option is chosen; the option's label by default.
1305
+ * - `hint`/`undefined`: A second line under the label.
1306
+ * - `disabled`/`undefined`: Disables the option.
1307
+ * - `hidden`/`undefined`: undefined
1308
+ * - `selected`: Whether the option is chosen; the select sets it. (property only) (readonly)
1309
+ * - `label`: The text of the option's label: its text and its elements outside a named slot, without the comments a framework leaves. (property only) (readonly)
1310
+ * - `value`: undefined (property only)
1311
+ * - `disabled`: undefined (property only)
1312
+ *
1313
+ * ## Slots
1314
+ *
1315
+ * Areas where markup can be added to the component.
1316
+ *
1317
+ * - `(default)`: The label of the option.
1318
+ * - `start`: Content before the label, such as an icon or an image; an svg is drawn 1px larger than the text, in the quiet color.
1319
+ *
1320
+ * ## CSS States
1321
+ *
1322
+ * These can be used to apply styling when a component is in a given state.
1323
+ *
1324
+ * - `selected`: The option is chosen.
1325
+ * - `disabled`: The option is disabled.
1326
+ * - `first`: The option is the first one on show; it draws no divider above it.
1327
+ */
1328
+ "swell-select-option": Partial<SwellSelectOptionProps & BaseProps & BaseEvents>;
1329
+
1330
+ /**
1331
+ * A select: a field that opens a list of its `<swell-select-option>` children and shows the chosen one, with its start content; an svg there is drawn 4px larger than the text, in the quiet color.
1332
+ * It holds the choice and takes part in its form.
1333
+ * Typing goes to the option whose label starts with the typed text, as on a native select: keys typed within half a second, spaces included, form one search.
1334
+ *
1335
+ * ## Attributes & Properties
1336
+ *
1337
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1338
+ *
1339
+ * - `label`/`undefined`: The label of the field. Without it, the select takes its name from its own `aria-label`.
1340
+ * - `optional`/`undefined`: A marker after the label, such as `(optional)`, in the host's language; it joins the select's name.
1341
+ * - `hint`/`undefined`: Help text under the field.
1342
+ * - `error`/`undefined`: The error shown while the select is invalid.
1343
+ * - `invalid`/`undefined`: Marks the select invalid and shows the error.
1344
+ * - `name`/`undefined`: The name sent with the form.
1345
+ * - `value`/`undefined`: The value of the option chosen by default.
1346
+ * - `placeholder`/`undefined`: Text shown while nothing is chosen.
1347
+ * - `required`/`undefined`: The form can't be sent until an option is chosen.
1348
+ * - `disabled`/`undefined`: Disables the select.
1349
+ * - `autocomplete`/`undefined`: The browser's autofill hint, such as `country` or `address-level1`, as on a native select: autofill picks the enabled option whose value or label matches the saved one, which counts as the user's choice and fires `input` and `change`.
1350
+ * - `aria-label`/`undefined`: undefined
1351
+ * - `appearance`/`undefined`: How the field is drawn; the configured setting by default.
1352
+ * - `size`/`undefined`: How large the field is; `medium` by default. At `xsmall` the label sits above the field.
1353
+ * - `value`: The value of the chosen option. (property only)
1354
+ * - `name`: undefined (property only)
1355
+ * - `required`: undefined (property only)
1356
+ * - `disabled`: undefined (property only)
1357
+ * - `invalid`: undefined (property only)
1358
+ * - `form`: undefined (property only) (readonly)
1359
+ * - `validity`: undefined (property only) (readonly)
1360
+ * - `validationMessage`: undefined (property only) (readonly)
1361
+ * - `willValidate`: undefined (property only) (readonly)
1362
+ *
1363
+ * ## Events
1364
+ *
1365
+ * Events that will be emitted by the component.
1366
+ *
1367
+ * - `input`: The user chose another option.
1368
+ * - `change`: The user chose another option, after `input`.
1369
+ *
1370
+ * ## Slots
1371
+ *
1372
+ * Areas where markup can be added to the component.
1373
+ *
1374
+ * - `(default)`: The options, `<swell-select-option>` elements; a hidden one stays out of the list and the choice.
1375
+ *
1376
+ * ## Methods
1377
+ *
1378
+ * Methods that can be called to access component functionality.
1379
+ *
1380
+ * - `checkValidity() => boolean`: undefined
1381
+ * - `reportValidity() => boolean`: undefined
1382
+ * - `focus(options?: FocusOptions) => void`: undefined
1383
+ * - `formResetCallback() => void`: undefined
1384
+ * - `formDisabledCallback() => void`: undefined
1385
+ * - `formStateRestoreCallback(state: unknown) => void`: undefined
1386
+ *
1387
+ * ## CSS States
1388
+ *
1389
+ * These can be used to apply styling when a component is in a given state.
1390
+ *
1391
+ * - `outline`: The field has a border on all sides.
1392
+ * - `filled`: The field has a fill and a bottom border.
1393
+ * - `underline`: The field has a bottom border.
1394
+ * - `above`: The label sits above the field.
1395
+ * - `floating`: The label floats inside the field.
1396
+ * - `empty`: Nothing is chosen.
1397
+ * - `open`: The list is open.
1398
+ */
1399
+ "swell-select": Partial<SwellSelectProps & BaseProps & BaseEvents>;
1400
+
1401
+ /**
1402
+ * A skeleton: a shimmering bar that stands in for content while it loads, such as a delivery option's name and price.
1403
+ * The host sets its width through `style` and marks the region it fills with `aria-busy="true"`; the skeleton itself is hidden from screen readers.
1404
+ * Screen readers don't all announce `aria-busy`, so a host can also say what is loading in a polite message, such as a visually hidden `<swell-status>`.
1405
+ *
1406
+ * ## Attributes & Properties
1407
+ *
1408
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1409
+ *
1410
+ * - `size`/`undefined`: How large the skeleton is: a bar is 4px lower than the text of the size, a card as high as a control; `medium` by default. The bars of a card keep their own size, so give them the card's.
1411
+ * - `appearance`/`undefined`: `card` draws the empty frame of an option card with its bars at its ends; only the attribute sets it. Without it, the skeleton is a bar.
1412
+ *
1413
+ * ## Slots
1414
+ *
1415
+ * Areas where markup can be added to the component.
1416
+ *
1417
+ * - `(default)`: The bars of a card.
1418
+ *
1419
+ * ## CSS States
1420
+ *
1421
+ * These can be used to apply styling when a component is in a given state.
1422
+ *
1423
+ * - `card`: The skeleton is the frame of an option card.
1424
+ */
1425
+ "swell-skeleton": Partial<SwellSkeletonProps & BaseProps & BaseEvents>;
1426
+
1427
+ /**
1428
+ * A status message: an error, a success or a warning.
1429
+ * Screen readers announce it when it is added after the page has loaded and when its text or type changes:
1430
+ * each message goes into a fresh visually hidden region, an alert for danger and a status otherwise.
1431
+ *
1432
+ * ## Attributes & Properties
1433
+ *
1434
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1435
+ *
1436
+ * - `type`/`undefined`: What the message means: its color, icon and how it is announced.
1437
+ * - `size`/`undefined`: How large the message is: its text, padding and icon follow the text of the size; `medium` by default.
1438
+ * - `appearance`/`undefined`: How the message is drawn; the configured setting by default. `quiet`, for a note, comes from the attribute only.
1439
+ *
1440
+ * ## Slots
1441
+ *
1442
+ * Areas where markup can be added to the component.
1443
+ *
1444
+ * - `(default)`: The message.
1445
+ * - `start`: An icon before the message, drawn 4px larger than the text, or 2px larger than the smaller text of a plain message; it replaces the type's icon and is hidden from screen readers.
1446
+ * - `end`: An action after the message, such as a `<swell-button size="xsmall">`; it is left out of the announcement.
1447
+ *
1448
+ * ## CSS Parts
1449
+ *
1450
+ * Custom selectors for styling elements within the component.
1451
+ *
1452
+ * - `message`: The message box.
1453
+ *
1454
+ * ## CSS States
1455
+ *
1456
+ * These can be used to apply styling when a component is in a given state.
1457
+ *
1458
+ * - `filled`: The message has its background, border and icon.
1459
+ * - `outline`: The message has its border and icon.
1460
+ * - `plain`: The message has its icon only and the font of a field error.
1461
+ * - `quiet`: The message is a note in the quiet palette, without a border or the type's icon.
1462
+ * - `end-content`: The message has content in its `end` slot: its items are centered.
1463
+ * - `typed`: The message has a known type and isn't quiet: it takes the colors of its type.
1464
+ */
1465
+ "swell-status": Partial<SwellStatusProps & BaseProps & BaseEvents>;
1466
+
1467
+ /**
1468
+ * A tab of a `<swell-tabs>` group: its label and its content, shown while it is chosen.
1469
+ * In a tab list the group draws the tab and the element is its panel, named by the label; `role="tabpanel"` and that name count as the kit's.
1470
+ * A step of vertical steps draws its own heading at the group's level, holding a button that opens it, tells whether it is open and controls its content under the heading.
1471
+ *
1472
+ * ## Attributes & Properties
1473
+ *
1474
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1475
+ *
1476
+ * - `value`/`undefined`: The group's value while the tab is chosen; the label by default.
1477
+ * - `label`/`undefined`: The text of the tab or of the step's heading.
1478
+ * - `done`/`undefined`: Marks a step as done: its number becomes a check, and the line to the next step fills.
1479
+ * - `disabled`/`undefined`: The tab can't be chosen, such as a step that isn't open yet.
1480
+ * - `hidden`/`undefined`: undefined
1481
+ * - `value`: undefined (property only)
1482
+ * - `label`: undefined (property only)
1483
+ * - `done`: undefined (property only)
1484
+ * - `disabled`: undefined (property only)
1485
+ *
1486
+ * ## Slots
1487
+ *
1488
+ * Areas where markup can be added to the component.
1489
+ *
1490
+ * - `(default)`: The content, shown while the tab is chosen.
1491
+ * - `summary`: Vertical steps: content under the heading while the step is closed, such as what a done step holds or what a step that isn't open yet will ask.
1492
+ * - `end`: Vertical steps: content beside the heading, such as a link that opens a done step or a note.
1493
+ *
1494
+ * ## CSS States
1495
+ *
1496
+ * These can be used to apply styling when a component is in a given state.
1497
+ *
1498
+ * - `selected`: The tab is chosen.
1499
+ * - `vertical`: The tab is a step of vertical steps.
1500
+ * - `last`: The tab is the last of its group, so a vertical step draws no line to a next one.
1501
+ */
1502
+ "swell-tab": Partial<SwellTabProps & BaseProps & BaseEvents>;
1503
+
1504
+ /**
1505
+ * Tabs: a set of `<swell-tab>` children, one of them chosen, with its content shown.
1506
+ * The group draws a tab list: a tab per child, named by its label. The arrows move between the tabs and Home and End to the ends; underlined and segmented tabs are chosen as the focus moves, steps with Enter or Space.
1507
+ * Vertical steps draw no tab list: each step is a heading with a button that opens it, and Tab moves between the buttons.
1508
+ *
1509
+ * ## Attributes & Properties
1510
+ *
1511
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1512
+ *
1513
+ * - `value`/`undefined`: The value of the chosen tab; the first tab that isn't disabled by default.
1514
+ * - `aria-label`/`undefined`: undefined
1515
+ * - `orientation`/`undefined`: How steps line up: in a row above the chosen step's content, by default, or one under another, each a heading with its content under it. Other appearances stay in a row.
1516
+ * - `level`/`undefined`: The heading level of vertical steps, 1 to 6; 2 by default.
1517
+ * - `done-label`/`undefined`: The word a screen reader hears after the label of a done step, in the host's language, such as `Completed`; the check shows it to the eye.
1518
+ * - `appearance`/`undefined`: How the tabs are drawn: a line under the chosen tab, a track with a marker under it, or numbered steps joined by lines, each a check once done. `steps` is set with this attribute only; the `tabs.appearance` setting gives the default.
1519
+ * - `size`/`undefined`: How large the tabs are: they take the height and the text of a control of the size; `medium` by default.
1520
+ * - `value`: The value of the chosen tab. (property only)
1521
+ *
1522
+ * ## Events
1523
+ *
1524
+ * Events that will be emitted by the component.
1525
+ *
1526
+ * - `change`: The user chose another tab. A listener that cancels the click on a tab, also a framework's handler on the page, keeps the choice.
1527
+ * - `request`: The user asks for another tab, by a press or an arrow, with its value in `detail.value`, before the group chooses it; it bubbles. Cancelling it keeps the choice. It fires for a disabled tab too, which stays unchosen, so a host can answer a press on a locked step, such as by checking the open one.
1528
+ *
1529
+ * ## Slots
1530
+ *
1531
+ * Areas where markup can be added to the component.
1532
+ *
1533
+ * - `(default)`: The tabs, `<swell-tab>` elements.
1534
+ *
1535
+ * ## CSS States
1536
+ *
1537
+ * These can be used to apply styling when a component is in a given state.
1538
+ *
1539
+ * - `underline`: A line marks the chosen tab.
1540
+ * - `segmented`: The tabs share a track.
1541
+ * - `steps`: The tabs are numbered steps.
1542
+ * - `vertical`: The steps stand one under another.
1543
+ */
1544
+ "swell-tabs": Partial<SwellTabsProps & BaseProps & BaseEvents>;
1545
+
1546
+ /**
1547
+ * Text: a title, a heading, a subheading, strong text, body text, a caption, a footnote or an eyebrow.
1548
+ *
1549
+ * ## Attributes & Properties
1550
+ *
1551
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1552
+ *
1553
+ * - `level`/`undefined`: The heading level, 1 to 6: it makes text of any type a heading. A title, a heading and a subheading are headings of level 1, 2 and 3 by default.
1554
+ * - `variant`/`undefined`: Which palette of `color` the text takes its color from: `secondary`, quiet text, or a variant of the host's own; without it, the text color.
1555
+ * - `type`/`undefined`: What the text is; body text by default. An eyebrow is uppercase.
1556
+ *
1557
+ * ## Slots
1558
+ *
1559
+ * Areas where markup can be added to the component.
1560
+ *
1561
+ * - `(default)`: The text.
1562
+ */
1563
+ "swell-text": Partial<SwellTextProps & BaseProps & BaseEvents>;
1564
+
1565
+ /**
1566
+ * A text field for several lines: a native textarea with its label, hint and error, rendered into light DOM.
1567
+ * Enter adds a line; the field grows only when the user drags its corner.
1568
+ *
1569
+ * ## Attributes & Properties
1570
+ *
1571
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1572
+ *
1573
+ * - `label`/`undefined`: The label of the field.
1574
+ * - `optional`/`undefined`: A marker after the label, such as `(optional)`, in the host's language; it joins the field's name.
1575
+ * - `hint`/`undefined`: Help text under the field.
1576
+ * - `error`/`undefined`: The error shown while the field is invalid.
1577
+ * - `invalid`/`undefined`: Marks the field invalid and shows the error.
1578
+ * - `value`/`undefined`: The default value.
1579
+ * - `appearance`/`undefined`: How the field is drawn; the configured setting by default.
1580
+ * - `size`/`undefined`: How large the field is; `medium` by default. At `xsmall` the label sits above the field.
1581
+ * - `disabled`/`undefined`: Disables the field.
1582
+ * - `readonly`/`undefined`: Makes the field read-only.
1583
+ * - `required`/`undefined`: Makes the field required.
1584
+ * - `name`/`undefined`: The name sent with the form.
1585
+ * - `placeholder`/`undefined`: Text shown while the field is empty.
1586
+ * - `autocomplete`/`undefined`: The autofill hint of the native textarea.
1587
+ * - `minlength`/`undefined`: The shortest allowed value.
1588
+ * - `maxlength`/`undefined`: The longest allowed value.
1589
+ * - `rows`/`undefined`: The visible lines; 2 by default.
1590
+ * - `value`: The current value of the field. (property only)
1591
+ * - `disabled`: undefined (property only)
1592
+ * - `required`: undefined (property only)
1593
+ * - `readOnly`: undefined (property only)
1594
+ * - `invalid`: undefined (property only)
1595
+ * - `name`: undefined (property only)
1596
+ *
1597
+ * ## Events
1598
+ *
1599
+ * Events that will be emitted by the component.
1600
+ *
1601
+ * - `input`: The value changes as the user types; it bubbles from the native textarea.
1602
+ * - `change`: The user commits a new value; it bubbles from the native textarea.
1603
+ *
1604
+ * ## Slots
1605
+ *
1606
+ * Areas where markup can be added to the component.
1607
+ *
1608
+ * - `hint`: Help content under the field in place of the `hint` text; it describes the textarea, and hiding it with `hidden` brings the `hint` text back.
1609
+ *
1610
+ * ## Methods
1611
+ *
1612
+ * Methods that can be called to access component functionality.
1613
+ *
1614
+ * - `attributesOf(passed: string[], own: string[] = []) => string[]`: Every attribute a text field observes, for the subclass's `observedAttributes`.
1615
+ * - `focus(options?: FocusOptions) => void`: undefined
1616
+ *
1617
+ * ## CSS Parts
1618
+ *
1619
+ * Custom selectors for styling elements within the component.
1620
+ *
1621
+ * - `frame`: The box that draws the field around the native textarea.
1622
+ *
1623
+ * ## CSS States
1624
+ *
1625
+ * These can be used to apply styling when a component is in a given state.
1626
+ *
1627
+ * - `outline`: The field has a border on all sides.
1628
+ * - `filled`: The field has a fill and a bottom border.
1629
+ * - `underline`: The field has a bottom border.
1630
+ * - `above`: The label sits above the field.
1631
+ * - `floating`: The label floats inside the field.
1632
+ */
1633
+ "swell-textarea": Partial<SwellTextareaProps & BaseProps & BaseEvents>;
1634
+
1635
+ /**
1636
+ * A thumbnail: a picture, an icon or initials in a small box, such as the photo of a cart line or a person's avatar.
1637
+ * It is decoration, hidden from screen readers, with its badge; with `aria-label` it is an image with that name, which then carries what the badge says, such as the quantity.
1638
+ * `aria-hidden="true"` and `role="img"` count as the kit's; any other value is the host's and stays.
1639
+ *
1640
+ * ## Attributes & Properties
1641
+ *
1642
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1643
+ *
1644
+ * - `aria-label`/`undefined`: undefined
1645
+ * - `variant`/`undefined`: Which palette of `color` the box takes its colors from: `secondary`, the quiet colors with a border, as for a product without a photo, or a variant of the host's own; without it, the accent, as for an avatar.
1646
+ * - `size`/`undefined`: How large the box is: the height of a control of the size; `medium` by default.
1647
+ * - `shape`/`undefined`: Rounds the box fully, as for an avatar.
1648
+ *
1649
+ * ## Slots
1650
+ *
1651
+ * Areas where markup can be added to the component.
1652
+ *
1653
+ * - `(default)`: An `<img>`, which covers the box, an svg icon, or initials.
1654
+ * - `badge`: A `<swell-badge>` over the top end corner, such as the quantity of a cart line.
1655
+ */
1656
+ "swell-thumbnail": Partial<SwellThumbnailProps & BaseProps & BaseEvents>;
1657
+
1658
+ /**
1659
+ * An area of the page with token values of its own, such as an order summary in the colors of the brand.
1660
+ * The host registers the area's configuration with `configure(config, id)`; its tokens and theme apply to everything inside the element, the host's own markup included, and every value it leaves out comes from the page.
1661
+ * The element keeps the layout of its content: it renders nothing of its own.
1662
+ *
1663
+ * ## Attributes & Properties
1664
+ *
1665
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1666
+ *
1667
+ * - `config`/`undefined`: The id of the area's configuration. An id without a configuration yet applies once the host registers one.
1668
+ */
1669
+ "swell-ui": Partial<SwellUiProps & BaseProps & BaseEvents>;
1670
+ };
1671
+
1672
+ declare global {
1673
+ namespace svelteHTML {
1674
+ interface IntrinsicElements extends CustomElements {}
1675
+ }
1676
+ }