@swell/swell-ui 0.0.0-stage → 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 (225) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +165 -2
  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 +136 -4
  201. package/resolver.json +111 -0
  202. package/src/components/core/badge/tokens.json +152 -0
  203. package/src/components/core/button/tokens.dark.json +16 -0
  204. package/src/components/core/button/tokens.json +232 -0
  205. package/src/components/core/card/tokens.json +35 -0
  206. package/src/components/core/checkbox/tokens.json +15 -0
  207. package/src/components/core/chip/tokens.json +144 -0
  208. package/src/components/core/link/tokens.json +24 -0
  209. package/src/components/core/radio/tokens.dark.json +17 -0
  210. package/src/components/core/radio/tokens.json +114 -0
  211. package/src/components/core/status/tokens.dark.json +71 -0
  212. package/src/components/core/status/tokens.json +135 -0
  213. package/src/components/core/tabs/tokens.json +80 -0
  214. package/src/components/core/text/tokens.json +222 -0
  215. package/src/components/core/thumbnail/tokens.json +46 -0
  216. package/tokens/border.json +38 -0
  217. package/tokens/color.dark.json +88 -0
  218. package/tokens/color.json +115 -0
  219. package/tokens/control.json +115 -0
  220. package/tokens/field.dark.json +65 -0
  221. package/tokens/field.json +158 -0
  222. package/tokens/focus.json +26 -0
  223. package/tokens/font.json +117 -0
  224. package/tokens/motion.json +49 -0
  225. package/tokens/overlay.json +81 -0
@@ -0,0 +1,3589 @@
1
+ import type { SwellBadge } from "../types/components/core/badge/badge.js";
2
+ import type { SwellButton } from "../types/components/core/button/button.js";
3
+ import type { SwellCard } from "../types/components/core/card/card.js";
4
+ import type { SwellCheckbox } from "../types/components/core/checkbox/checkbox.js";
5
+ import type { SwellChip } from "../types/components/core/chip/chip.js";
6
+ import type { SwellDisclosure } from "../types/components/core/disclosure/disclosure.js";
7
+ import type { SwellDivider } from "../types/components/core/divider/divider.js";
8
+ import type { SwellLink } from "../types/components/core/link/link.js";
9
+ import type { SwellInput } from "../types/components/core/input/input.js";
10
+ import type { ownId, SwellLookupList } from "../types/components/core/lookup/lookup-list.js";
11
+ import type { activate, SwellLookupOption } from "../types/components/core/lookup/lookup-option.js";
12
+ import type { SwellLookup } from "../types/components/core/lookup/lookup.js";
13
+ import type { SwellPopover } from "../types/components/core/popover/popover.js";
14
+ import type { SwellQuantity } from "../types/components/core/quantity/quantity.js";
15
+ import type { radioGroup, SwellRadioOption } from "../types/components/core/radio/radio-option.js";
16
+ import type { SwellRadio } from "../types/components/core/radio/radio.js";
17
+ import type { optionList, SwellOptionElement, SwellSelectOption } from "../types/components/core/select/select-option.js";
18
+ import type { SwellSelect } from "../types/components/core/select/select.js";
19
+ import type { SwellSkeleton } from "../types/components/core/skeleton/skeleton.js";
20
+ import type { SwellStatus } from "../types/components/core/status/status.js";
21
+ import type { tabGroup, CHECK, SwellTab } from "../types/components/core/tabs/tab.js";
22
+ import type { SwellTabs } from "../types/components/core/tabs/tabs.js";
23
+ import type { SwellText } from "../types/components/core/text/text.js";
24
+ import type { SwellTextarea } from "../types/components/core/textarea/textarea.js";
25
+ import type { SwellThumbnail } from "../types/components/core/thumbnail/thumbnail.js";
26
+ import type { SwellUi } from "../types/components/core/ui/ui.js";
27
+
28
+ /**
29
+ * This type can be used to create scoped tags for your components.
30
+ *
31
+ * Usage:
32
+ *
33
+ * ```ts
34
+ * import type { ScopedElements } from "path/to/library/jsx-integration";
35
+ *
36
+ * declare module "my-library" {
37
+ * namespace JSX {
38
+ * interface IntrinsicElements
39
+ * extends ScopedElements<'test-', ''> {}
40
+ * }
41
+ * }
42
+ * ```
43
+ *
44
+ * @deprecated Runtime scoped elements result in duplicate types and can confusing for developers. It is recommended to use the `prefix` and `suffix` options to generate new types instead.
45
+ */
46
+ export type ScopedElements<
47
+ Prefix extends string = "",
48
+ Suffix extends string = "",
49
+ > = {
50
+ [
51
+ Key in keyof CustomElements as `${Prefix}${Key}${Suffix}`
52
+ ]: CustomElements[Key];
53
+ };
54
+
55
+ /**
56
+ * A generic type for strongly typing custom events with their targets
57
+ * @template T - The type of the event target (extends EventTarget)
58
+ * @template D - The type of the detail payload for the custom event
59
+ */
60
+ type TypedEvent<T extends EventTarget, E = Event> = E & {
61
+ target: T;
62
+ };
63
+
64
+ type BaseProps<T extends HTMLElement> = {
65
+ /** Content added between the opening and closing tags of the element */
66
+ children?: any | undefined;
67
+ /** Used for declaratively styling one or more elements using CSS (Cascading Stylesheets) */
68
+ class?: string | undefined;
69
+ /** Used for declaratively styling one or more elements using CSS (Cascading Stylesheets) */
70
+ className?: string | undefined;
71
+ /** 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. */
72
+ classList?: Record<string, boolean | undefined> | undefined;
73
+ /** Specifies the text direction of the element. */
74
+ dir?: "ltr" | "rtl" | undefined;
75
+ /** Contains a space-separated list of the part names of the element that should be exposed on the host element. */
76
+ exportparts?: string | undefined;
77
+ /** For <label> and <output>, lets you associate the label with some control. */
78
+ htmlFor?: string | undefined;
79
+ /** Specifies whether the element should be hidden. */
80
+ hidden?: boolean | string | undefined;
81
+ /** A unique identifier for the element. */
82
+ id?: string | undefined;
83
+ /** Keys tell React which array item each component corresponds to */
84
+ key?: string | number | undefined;
85
+ /** Specifies the language of the element. */
86
+ lang?: string | undefined;
87
+ /** Defines the element's semantic role for accessibility APIs. */
88
+ role?: string | undefined;
89
+ /** 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. */
90
+ part?: string | undefined;
91
+ /** Use the ref attribute with a variable to assign a DOM element to the variable once the element is rendered. */
92
+ ref?: (T | ((e: T) => void)) | undefined;
93
+ /** Adds a reference for a custom element slot */
94
+ slot?: string | undefined;
95
+ /** Prop for setting inline styles */
96
+ style?: Record<string, string | number> | undefined;
97
+ /** Overrides the default Tab button behavior. Avoid using values other than -1 and 0. */
98
+ tabIndex?: number | undefined;
99
+ /** Specifies the tooltip text for the element. */
100
+ title?: string | undefined;
101
+ /** Passing 'no' excludes the element content from being translated. */
102
+ translate?: "yes" | "no" | undefined;
103
+ /** The popover global attribute is used to designate an element as a popover element. */
104
+ popover?: "auto" | "hint" | "manual" | undefined;
105
+ /** Turns an element element into a popover control button; takes the ID of the popover element to control as its value. */
106
+ popovertarget?: "top" | "bottom" | "left" | "right" | "auto" | undefined;
107
+ /** Specifies the action to be performed on a popover element being controlled by a control element. */
108
+ popovertargetaction?: "show" | "hide" | "toggle" | undefined;
109
+ };
110
+
111
+ type BaseEvents = {};
112
+
113
+ export type SwellBadgeProps = {
114
+ /** 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. */
115
+ variant?: string | undefined;
116
+ /** How the badge is drawn; the configured setting by default. */
117
+ appearance?: "filled" | "outline" | undefined;
118
+ /** How large the badge is; `medium` by default. A small one fits a count, an extra small one a count on an icon. */
119
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
120
+ };
121
+
122
+ export type SwellBadgeSolidJsProps = {
123
+ /** 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. */
124
+ "attr:variant"?: string | undefined;
125
+ /** 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. */
126
+ "prop:undefined"?: string | undefined;
127
+ /** How the badge is drawn; the configured setting by default. */
128
+ "attr:appearance"?: "filled" | "outline" | undefined;
129
+ /** How large the badge is; `medium` by default. A small one fits a count, an extra small one a count on an icon. */
130
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
131
+
132
+ /** Set the innerHTML of the element */
133
+ innerHTML?: string | undefined;
134
+ /** Set the textContent of the element */
135
+ textContent?: string | number | undefined;
136
+ };
137
+
138
+ export type SwellButtonProps = {
139
+ /** Removes the button from the tab order and ignores clicks. */
140
+ disabled?: boolean | undefined;
141
+ /** Shows a spinner, marks the button busy and ignores clicks; the button stays in the tab order. */
142
+ loading?: boolean | undefined;
143
+ /** Fills the button with the success color, draws a check and makes the button inactive; it keeps its tab stop and isn't busy. */
144
+ success?: boolean | undefined;
145
+ /** 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. */
146
+ variant?: string | undefined;
147
+ /** How the button is drawn; the variant's setting by default. */
148
+ appearance?: "filled" | "outline" | "plain" | undefined;
149
+ /** How large the button is; `medium` by default. `xsmall` fits an action inside a status message. */
150
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
151
+ /** Rounds the corners fully, in every variant, appearance and size, whatever the corner radius of the host's buttons. */
152
+ shape?: "pill" | undefined;
153
+ /** Where the button leads; with it the element is a link, named by its own `aria-label`, or else by its content. */
154
+ href?: string | undefined;
155
+ /** Where to open the link. */
156
+ target?: string | undefined;
157
+ /** How the link's target relates to the page. */
158
+ rel?: string | undefined;
159
+ /** What the button does in a form; `submit` by default. */
160
+ type?: "submit" | "reset" | "button" | undefined;
161
+ };
162
+
163
+ export type SwellButtonSolidJsProps = {
164
+ /** Removes the button from the tab order and ignores clicks. */
165
+ "bool:disabled"?: boolean | undefined;
166
+ /** Removes the button from the tab order and ignores clicks. */
167
+ "prop:undefined"?: boolean | undefined;
168
+ /** Shows a spinner, marks the button busy and ignores clicks; the button stays in the tab order. */
169
+ "bool:loading"?: boolean | undefined;
170
+ /** Fills the button with the success color, draws a check and makes the button inactive; it keeps its tab stop and isn't busy. */
171
+ "bool:success"?: boolean | undefined;
172
+ /** 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. */
173
+ "attr:variant"?: string | undefined;
174
+ /** How the button is drawn; the variant's setting by default. */
175
+ "attr:appearance"?: "filled" | "outline" | "plain" | undefined;
176
+ /** How large the button is; `medium` by default. `xsmall` fits an action inside a status message. */
177
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
178
+ /** Rounds the corners fully, in every variant, appearance and size, whatever the corner radius of the host's buttons. */
179
+ "attr:shape"?: "pill" | undefined;
180
+ /** Where the button leads; with it the element is a link, named by its own `aria-label`, or else by its content. */
181
+ "attr:href"?: string | undefined;
182
+ /** Where to open the link. */
183
+ "attr:target"?: string | undefined;
184
+ /** How the link's target relates to the page. */
185
+ "attr:rel"?: string | undefined;
186
+ /** What the button does in a form; `submit` by default. */
187
+ "attr:type"?: "submit" | "reset" | "button" | undefined;
188
+
189
+ /** Set the innerHTML of the element */
190
+ innerHTML?: string | undefined;
191
+ /** Set the textContent of the element */
192
+ textContent?: string | number | undefined;
193
+ };
194
+
195
+ export type SwellCardProps = {
196
+ /** How the card is drawn: with a border, or filled with the quiet background; the configured setting by default. */
197
+ appearance?: "outline" | "filled" | undefined;
198
+ /** How large the padding is: it follows the text of the size; `medium` by default. */
199
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
200
+ };
201
+
202
+ export type SwellCardSolidJsProps = {
203
+ /** How the card is drawn: with a border, or filled with the quiet background; the configured setting by default. */
204
+ "attr:appearance"?: "outline" | "filled" | undefined;
205
+ /** How the card is drawn: with a border, or filled with the quiet background; the configured setting by default. */
206
+ "prop:undefined"?: "outline" | "filled" | undefined;
207
+ /** How large the padding is: it follows the text of the size; `medium` by default. */
208
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
209
+
210
+ /** Set the innerHTML of the element */
211
+ innerHTML?: string | undefined;
212
+ /** Set the textContent of the element */
213
+ textContent?: string | number | undefined;
214
+ };
215
+
216
+ /** `SwellCheckbox` component event */
217
+ export type SwellCheckboxElementEvent<E = Event> = TypedEvent<SwellCheckbox, E>;
218
+
219
+ export type SwellCheckboxProps = {
220
+ /** The label beside the box. */
221
+ label?: string | undefined;
222
+ /** Help text under the checkbox. */
223
+ hint?: string | undefined;
224
+ /** The error shown while the checkbox is invalid. */
225
+ error?: string | undefined;
226
+ /** Marks the checkbox invalid and shows the error. */
227
+ invalid?: boolean | undefined;
228
+ /** The default state. */
229
+ checked?: boolean | undefined;
230
+ /** The value sent with the form; `on` by default. */
231
+ value?: string | undefined;
232
+ /** Disables the checkbox. */
233
+ disabled?: boolean | undefined;
234
+ /** Makes the checkbox required. */
235
+ required?: boolean | undefined;
236
+ /** The name sent with the form. */
237
+ name?: string | undefined;
238
+ /** 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. */
239
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
240
+
241
+ /** The user checks or unchecks the box; it bubbles from the native input. */
242
+ onchange?: ((e: SwellCheckboxElementEvent) => void) | undefined;
243
+ };
244
+
245
+ export type SwellCheckboxSolidJsProps = {
246
+ /** The label beside the box. */
247
+ "attr:label"?: string | undefined;
248
+ /** The label beside the box. */
249
+ "prop:undefined"?: string | undefined;
250
+ /** Help text under the checkbox. */
251
+ "attr:hint"?: string | undefined;
252
+ /** The error shown while the checkbox is invalid. */
253
+ "attr:error"?: string | undefined;
254
+ /** Marks the checkbox invalid and shows the error. */
255
+ "bool:invalid"?: boolean | undefined;
256
+ /** The default state. */
257
+ "bool:checked"?: boolean | undefined;
258
+ /** The value sent with the form; `on` by default. */
259
+ "attr:value"?: string | undefined;
260
+ /** Disables the checkbox. */
261
+ "bool:disabled"?: boolean | undefined;
262
+ /** Makes the checkbox required. */
263
+ "bool:required"?: boolean | undefined;
264
+ /** The name sent with the form. */
265
+ "attr:name"?: string | undefined;
266
+ /** 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. */
267
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
268
+ /** The user checks or unchecks the box; it bubbles from the native input. */
269
+ "on:change"?: ((e: SwellCheckboxElementEvent) => void) | undefined;
270
+
271
+ /** Set the innerHTML of the element */
272
+ innerHTML?: string | undefined;
273
+ /** Set the textContent of the element */
274
+ textContent?: string | number | undefined;
275
+ };
276
+
277
+ /** `SwellChip` component event */
278
+ export type SwellChipElementEvent<E = Event> = TypedEvent<SwellChip, E>;
279
+
280
+ export type SwellChipProps = {
281
+ /** Disables the remove button. */
282
+ disabled?: boolean | undefined;
283
+ /** The name of the remove button in the host's language, such as `Remove WELCOME10`; every chip needs one. */
284
+ "remove-label"?: string | undefined;
285
+ /** How large the chip is; `medium` by default. Its remove button is as high as the chip, at least 24px. */
286
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
287
+
288
+ /** The shopper pressed the remove button; it bubbles, and the chip stays in the page. A disabled chip fires none. */
289
+ onremove?: ((e: SwellChipElementEvent) => void) | undefined;
290
+ };
291
+
292
+ export type SwellChipSolidJsProps = {
293
+ /** Disables the remove button. */
294
+ "bool:disabled"?: boolean | undefined;
295
+ /** Disables the remove button. */
296
+ "prop:undefined"?: boolean | undefined;
297
+ /** The name of the remove button in the host's language, such as `Remove WELCOME10`; every chip needs one. */
298
+ "attr:remove-label"?: string | undefined;
299
+ /** How large the chip is; `medium` by default. Its remove button is as high as the chip, at least 24px. */
300
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
301
+ /** The shopper pressed the remove button; it bubbles, and the chip stays in the page. A disabled chip fires none. */
302
+ "on:remove"?: ((e: SwellChipElementEvent) => void) | undefined;
303
+
304
+ /** Set the innerHTML of the element */
305
+ innerHTML?: string | undefined;
306
+ /** Set the textContent of the element */
307
+ textContent?: string | number | undefined;
308
+ };
309
+
310
+ /** `SwellDisclosure` component event */
311
+ export type SwellDisclosureElementEvent<E = Event> = TypedEvent<
312
+ SwellDisclosure,
313
+ E
314
+ >;
315
+ /** `toggle` event type */
316
+ export type SwellDisclosureToggleElementEvent =
317
+ SwellDisclosureElementEvent<ToggleEvent>;
318
+
319
+ export type SwellDisclosureProps = {
320
+ /** Shows the content and hides the trigger. Set on connect, the content shows at once. */
321
+ open?: boolean | undefined;
322
+ /** Keeps the trigger while the content is open: it closes the content too and carries `aria-expanded`. */
323
+ toggle?: boolean | undefined;
324
+
325
+ /** 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. */
326
+ ontoggle?: ((e: SwellDisclosureToggleElementEvent) => void) | undefined;
327
+ };
328
+
329
+ export type SwellDisclosureSolidJsProps = {
330
+ /** Shows the content and hides the trigger. Set on connect, the content shows at once. */
331
+ "bool:open"?: boolean | undefined;
332
+ /** Shows the content and hides the trigger. Set on connect, the content shows at once. */
333
+ "prop:undefined"?: boolean | undefined;
334
+ /** Keeps the trigger while the content is open: it closes the content too and carries `aria-expanded`. */
335
+ "bool:toggle"?: boolean | undefined;
336
+ /** 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. */
337
+ "on:toggle"?: ((e: SwellDisclosureToggleElementEvent) => void) | undefined;
338
+
339
+ /** Set the innerHTML of the element */
340
+ innerHTML?: string | undefined;
341
+ /** Set the textContent of the element */
342
+ textContent?: string | number | undefined;
343
+ };
344
+
345
+ export type SwellDividerProps = {};
346
+
347
+ export type SwellDividerSolidJsProps = {
348
+ /** Set the innerHTML of the element */
349
+ innerHTML?: string | undefined;
350
+ /** Set the textContent of the element */
351
+ textContent?: string | number | undefined;
352
+ };
353
+
354
+ export type SwellLinkProps = {
355
+ /** 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. */
356
+ href?: string | undefined;
357
+ /** Where to open the link. */
358
+ target?: string | undefined;
359
+ /** How the target relates to the page. */
360
+ rel?: string | undefined;
361
+ /** 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. */
362
+ variant?: string | undefined;
363
+ /** 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. */
364
+ appearance?: "underline" | "plain" | undefined;
365
+ /** 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. */
366
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
367
+ };
368
+
369
+ export type SwellLinkSolidJsProps = {
370
+ /** 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. */
371
+ "attr:href"?: string | undefined;
372
+ /** 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. */
373
+ "prop:undefined"?: string | undefined;
374
+ /** Where to open the link. */
375
+ "attr:target"?: string | undefined;
376
+ /** How the target relates to the page. */
377
+ "attr:rel"?: string | undefined;
378
+ /** 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. */
379
+ "attr:variant"?: string | undefined;
380
+ /** 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. */
381
+ "attr:appearance"?: "underline" | "plain" | undefined;
382
+ /** 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. */
383
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
384
+
385
+ /** Set the innerHTML of the element */
386
+ innerHTML?: string | undefined;
387
+ /** Set the textContent of the element */
388
+ textContent?: string | number | undefined;
389
+ };
390
+
391
+ /** `SwellInput` component event */
392
+ export type SwellInputElementEvent<E = Event> = TypedEvent<SwellInput, E>;
393
+
394
+ export type SwellInputProps = {
395
+ /** The label of the field. */
396
+ label?: string | undefined;
397
+ /** A marker after the label, such as `(optional)`, in the host's language; it joins the field's name. */
398
+ optional?: string | undefined;
399
+ /** Help text under the field. */
400
+ hint?: string | undefined;
401
+ /** The error shown while the field is invalid. */
402
+ error?: string | undefined;
403
+ /** Marks the field invalid and shows the error. */
404
+ invalid?: boolean | undefined;
405
+ /** The default value. */
406
+ value?: string | undefined;
407
+ /** The kind of value; `text` by default. */
408
+ type?:
409
+ | "text"
410
+ | "email"
411
+ | "tel"
412
+ | "password"
413
+ | "number"
414
+ | "search"
415
+ | "url"
416
+ | undefined;
417
+ /** How the field is drawn; the configured setting by default. */
418
+ appearance?: "outline" | "filled" | "underline" | undefined;
419
+ /** How large the field is; `medium` by default. At `xsmall` the label sits above the field. */
420
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
421
+ /** Disables the field. */
422
+ disabled?: boolean | undefined;
423
+ /** Makes the field read-only. */
424
+ readonly?: boolean | undefined;
425
+ /** Makes the field required. */
426
+ required?: boolean | undefined;
427
+ /** The name sent with the form. */
428
+ name?: string | undefined;
429
+ /** Text shown while the field is empty. */
430
+ placeholder?: string | undefined;
431
+ /** The autofill hint of the native input. */
432
+ autocomplete?: string | undefined;
433
+ /** The virtual keyboard to show. */
434
+ inputmode?: string | undefined;
435
+ /** The shortest allowed value. */
436
+ minlength?: number | undefined;
437
+ /** The longest allowed value. */
438
+ maxlength?: number | undefined;
439
+ /** The pattern the value matches. */
440
+ pattern?: string | undefined;
441
+ /** The smallest allowed value. */
442
+ min?: string | undefined;
443
+ /** The largest allowed value. */
444
+ max?: string | undefined;
445
+ /** The step between allowed values. */
446
+ step?: string | undefined;
447
+ /** */
448
+ readOnly?: boolean | undefined;
449
+
450
+ /** The value changes as the user types; it bubbles from the native input. */
451
+ oninput?: ((e: SwellInputElementEvent) => void) | undefined;
452
+ /** The user commits a new value; it bubbles from the native input. */
453
+ onchange?: ((e: SwellInputElementEvent) => void) | undefined;
454
+ };
455
+
456
+ export type SwellInputSolidJsProps = {
457
+ /** The label of the field. */
458
+ "attr:label"?: string | undefined;
459
+ /** The label of the field. */
460
+ "prop:undefined"?: string | undefined;
461
+ /** A marker after the label, such as `(optional)`, in the host's language; it joins the field's name. */
462
+ "attr:optional"?: string | undefined;
463
+ /** Help text under the field. */
464
+ "attr:hint"?: string | undefined;
465
+ /** The error shown while the field is invalid. */
466
+ "attr:error"?: string | undefined;
467
+ /** Marks the field invalid and shows the error. */
468
+ "bool:invalid"?: boolean | undefined;
469
+ /** The default value. */
470
+ "attr:value"?: string | undefined;
471
+ /** The kind of value; `text` by default. */
472
+ "attr:type"?:
473
+ | "text"
474
+ | "email"
475
+ | "tel"
476
+ | "password"
477
+ | "number"
478
+ | "search"
479
+ | "url"
480
+ | undefined;
481
+ /** How the field is drawn; the configured setting by default. */
482
+ "attr:appearance"?: "outline" | "filled" | "underline" | undefined;
483
+ /** How large the field is; `medium` by default. At `xsmall` the label sits above the field. */
484
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
485
+ /** Disables the field. */
486
+ "bool:disabled"?: boolean | undefined;
487
+ /** Makes the field read-only. */
488
+ "bool:readonly"?: boolean | undefined;
489
+ /** Makes the field required. */
490
+ "bool:required"?: boolean | undefined;
491
+ /** The name sent with the form. */
492
+ "attr:name"?: string | undefined;
493
+ /** Text shown while the field is empty. */
494
+ "attr:placeholder"?: string | undefined;
495
+ /** The autofill hint of the native input. */
496
+ "attr:autocomplete"?: string | undefined;
497
+ /** The virtual keyboard to show. */
498
+ "attr:inputmode"?: string | undefined;
499
+ /** The shortest allowed value. */
500
+ "attr:minlength"?: number | undefined;
501
+ /** The longest allowed value. */
502
+ "attr:maxlength"?: number | undefined;
503
+ /** The pattern the value matches. */
504
+ "attr:pattern"?: string | undefined;
505
+ /** The smallest allowed value. */
506
+ "attr:min"?: string | undefined;
507
+ /** The largest allowed value. */
508
+ "attr:max"?: string | undefined;
509
+ /** The step between allowed values. */
510
+ "attr:step"?: string | undefined;
511
+ /** */
512
+ "prop:readOnly"?: boolean | undefined;
513
+ /** The value changes as the user types; it bubbles from the native input. */
514
+ "on:input"?: ((e: SwellInputElementEvent) => void) | undefined;
515
+ /** The user commits a new value; it bubbles from the native input. */
516
+ "on:change"?: ((e: SwellInputElementEvent) => void) | undefined;
517
+
518
+ /** Set the innerHTML of the element */
519
+ innerHTML?: string | undefined;
520
+ /** Set the textContent of the element */
521
+ textContent?: string | number | undefined;
522
+ };
523
+
524
+ export type SwellLookupListProps = {};
525
+
526
+ export type SwellLookupListSolidJsProps = {
527
+ /** Set the innerHTML of the element */
528
+ innerHTML?: string | undefined;
529
+ /** Set the textContent of the element */
530
+ textContent?: string | number | undefined;
531
+ };
532
+
533
+ export type SwellLookupOptionProps = {
534
+ /** The value of the suggestion, such as the id of a place; the label by default. */
535
+ value?: string | undefined;
536
+ /** A second line under the label. */
537
+ hint?: string | undefined;
538
+ /** Disables the suggestion. */
539
+ disabled?: boolean | undefined;
540
+ /** */
541
+ hidden?: unknown | undefined;
542
+ };
543
+
544
+ export type SwellLookupOptionSolidJsProps = {
545
+ /** The value of the suggestion, such as the id of a place; the label by default. */
546
+ "attr:value"?: string | undefined;
547
+ /** The value of the suggestion, such as the id of a place; the label by default. */
548
+ "prop:undefined"?: string | undefined;
549
+ /** A second line under the label. */
550
+ "attr:hint"?: string | undefined;
551
+ /** Disables the suggestion. */
552
+ "bool:disabled"?: boolean | undefined;
553
+ /** */
554
+ "attr:hidden"?: unknown | undefined;
555
+
556
+ /** Set the innerHTML of the element */
557
+ innerHTML?: string | undefined;
558
+ /** Set the textContent of the element */
559
+ textContent?: string | number | undefined;
560
+ };
561
+
562
+ /** `SwellLookup` component event */
563
+ export type SwellLookupElementEvent<E = Event> = TypedEvent<SwellLookup, E>;
564
+
565
+ export type SwellLookupProps = {
566
+ /** The label of the field. */
567
+ label?: string | undefined;
568
+ /** A marker after the label, such as `(optional)`, in the host's language; it joins the field's name. */
569
+ optional?: string | undefined;
570
+ /** Help text under the field. */
571
+ hint?: string | undefined;
572
+ /** The error shown while the field is invalid. */
573
+ error?: string | undefined;
574
+ /** Marks the field invalid and shows the error. */
575
+ invalid?: boolean | undefined;
576
+ /** The default value. */
577
+ value?: string | undefined;
578
+ /** The kind of value; `text` by default. */
579
+ type?:
580
+ | "text"
581
+ | "email"
582
+ | "tel"
583
+ | "password"
584
+ | "number"
585
+ | "search"
586
+ | "url"
587
+ | undefined;
588
+ /** How the field is drawn; the configured setting by default. */
589
+ appearance?: "outline" | "filled" | "underline" | undefined;
590
+ /** How large the field is; `medium` by default. At `xsmall` the label sits above the field. */
591
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
592
+ /** Disables the field. */
593
+ disabled?: boolean | undefined;
594
+ /** Makes the field read-only. */
595
+ readonly?: boolean | undefined;
596
+ /** Makes the field required. */
597
+ required?: boolean | undefined;
598
+ /** The name sent with the form. */
599
+ name?: string | undefined;
600
+ /** Text shown while the field is empty. */
601
+ placeholder?: string | undefined;
602
+ /** The autofill hint of the native input. */
603
+ autocomplete?: string | undefined;
604
+ /** The virtual keyboard to show. */
605
+ inputmode?: string | undefined;
606
+ /** The shortest allowed value. */
607
+ minlength?: number | undefined;
608
+ /** The longest allowed value. */
609
+ maxlength?: number | undefined;
610
+ /** The pattern the value matches. */
611
+ pattern?: string | undefined;
612
+ /** The smallest allowed value. */
613
+ min?: string | undefined;
614
+ /** The largest allowed value. */
615
+ max?: string | undefined;
616
+ /** The step between allowed values. */
617
+ step?: string | undefined;
618
+ /** */
619
+ readOnly?: boolean | undefined;
620
+
621
+ /** The value changes as the user types; it bubbles from the native input. */
622
+ oninput?: ((e: SwellLookupElementEvent) => void) | undefined;
623
+ /** The user commits a new value; it bubbles from the native input. */
624
+ onchange?: ((e: SwellLookupElementEvent) => void) | undefined;
625
+ };
626
+
627
+ export type SwellLookupSolidJsProps = {
628
+ /** The label of the field. */
629
+ "attr:label"?: string | undefined;
630
+ /** The label of the field. */
631
+ "prop:undefined"?: string | undefined;
632
+ /** A marker after the label, such as `(optional)`, in the host's language; it joins the field's name. */
633
+ "attr:optional"?: string | undefined;
634
+ /** Help text under the field. */
635
+ "attr:hint"?: string | undefined;
636
+ /** The error shown while the field is invalid. */
637
+ "attr:error"?: string | undefined;
638
+ /** Marks the field invalid and shows the error. */
639
+ "bool:invalid"?: boolean | undefined;
640
+ /** The default value. */
641
+ "attr:value"?: string | undefined;
642
+ /** The kind of value; `text` by default. */
643
+ "attr:type"?:
644
+ | "text"
645
+ | "email"
646
+ | "tel"
647
+ | "password"
648
+ | "number"
649
+ | "search"
650
+ | "url"
651
+ | undefined;
652
+ /** How the field is drawn; the configured setting by default. */
653
+ "attr:appearance"?: "outline" | "filled" | "underline" | undefined;
654
+ /** How large the field is; `medium` by default. At `xsmall` the label sits above the field. */
655
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
656
+ /** Disables the field. */
657
+ "bool:disabled"?: boolean | undefined;
658
+ /** Makes the field read-only. */
659
+ "bool:readonly"?: boolean | undefined;
660
+ /** Makes the field required. */
661
+ "bool:required"?: boolean | undefined;
662
+ /** The name sent with the form. */
663
+ "attr:name"?: string | undefined;
664
+ /** Text shown while the field is empty. */
665
+ "attr:placeholder"?: string | undefined;
666
+ /** The autofill hint of the native input. */
667
+ "attr:autocomplete"?: string | undefined;
668
+ /** The virtual keyboard to show. */
669
+ "attr:inputmode"?: string | undefined;
670
+ /** The shortest allowed value. */
671
+ "attr:minlength"?: number | undefined;
672
+ /** The longest allowed value. */
673
+ "attr:maxlength"?: number | undefined;
674
+ /** The pattern the value matches. */
675
+ "attr:pattern"?: string | undefined;
676
+ /** The smallest allowed value. */
677
+ "attr:min"?: string | undefined;
678
+ /** The largest allowed value. */
679
+ "attr:max"?: string | undefined;
680
+ /** The step between allowed values. */
681
+ "attr:step"?: string | undefined;
682
+ /** */
683
+ "prop:readOnly"?: boolean | undefined;
684
+ /** The value changes as the user types; it bubbles from the native input. */
685
+ "on:input"?: ((e: SwellLookupElementEvent) => void) | undefined;
686
+ /** The user commits a new value; it bubbles from the native input. */
687
+ "on:change"?: ((e: SwellLookupElementEvent) => void) | undefined;
688
+
689
+ /** Set the innerHTML of the element */
690
+ innerHTML?: string | undefined;
691
+ /** Set the textContent of the element */
692
+ textContent?: string | number | undefined;
693
+ };
694
+
695
+ /** `SwellPopover` component event */
696
+ export type SwellPopoverElementEvent<E = Event> = TypedEvent<SwellPopover, E>;
697
+ /** `toggle` event type */
698
+ export type SwellPopoverToggleElementEvent =
699
+ SwellPopoverElementEvent<ToggleEvent>;
700
+
701
+ export type SwellPopoverProps = {
702
+ /** 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. */
703
+ open?: boolean | undefined;
704
+ /** */
705
+ "aria-label"?: unknown | undefined;
706
+
707
+ /** 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. */
708
+ ontoggle?: ((e: SwellPopoverToggleElementEvent) => void) | undefined;
709
+ };
710
+
711
+ export type SwellPopoverSolidJsProps = {
712
+ /** 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. */
713
+ "bool:open"?: boolean | undefined;
714
+ /** 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. */
715
+ "prop:undefined"?: boolean | undefined;
716
+ /** */
717
+ "attr:aria-label"?: unknown | undefined;
718
+ /** 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. */
719
+ "on:toggle"?: ((e: SwellPopoverToggleElementEvent) => void) | undefined;
720
+
721
+ /** Set the innerHTML of the element */
722
+ innerHTML?: string | undefined;
723
+ /** Set the textContent of the element */
724
+ textContent?: string | number | undefined;
725
+ };
726
+
727
+ /** `SwellQuantity` component event */
728
+ export type SwellQuantityElementEvent<E = Event> = TypedEvent<SwellQuantity, E>;
729
+
730
+ export type SwellQuantityProps = {
731
+ /** 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. */
732
+ value?: number | undefined;
733
+ /** The least count, a whole number; 1 by default. */
734
+ min?: number | undefined;
735
+ /** The greatest count, a whole number; no limit by default. A `max` below `min` counts as `min`. */
736
+ max?: number | undefined;
737
+ /** How much each step changes the count, a whole number above 0; 1 by default. */
738
+ step?: number | undefined;
739
+ /** Removes the quantity from the tab order and ignores steps. */
740
+ disabled?: boolean | undefined;
741
+ /** 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. */
742
+ busy?: boolean | undefined;
743
+ /** The name sent with the form. */
744
+ name?: string | undefined;
745
+ /** How large the quantity is: it shares a height with buttons and fields of its size; `medium` by default. A cart line takes `xsmall`. */
746
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
747
+
748
+ /** The user changed the count. */
749
+ oninput?: ((e: SwellQuantityElementEvent) => void) | undefined;
750
+ /** The user changed the count, after `input`. */
751
+ onchange?: ((e: SwellQuantityElementEvent) => void) | undefined;
752
+ };
753
+
754
+ export type SwellQuantitySolidJsProps = {
755
+ /** 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. */
756
+ "attr:value"?: number | undefined;
757
+ /** 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. */
758
+ "prop:undefined"?: number | undefined;
759
+ /** The least count, a whole number; 1 by default. */
760
+ "attr:min"?: number | undefined;
761
+ /** The greatest count, a whole number; no limit by default. A `max` below `min` counts as `min`. */
762
+ "attr:max"?: number | undefined;
763
+ /** How much each step changes the count, a whole number above 0; 1 by default. */
764
+ "attr:step"?: number | undefined;
765
+ /** Removes the quantity from the tab order and ignores steps. */
766
+ "bool:disabled"?: boolean | undefined;
767
+ /** 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. */
768
+ "bool:busy"?: boolean | undefined;
769
+ /** The name sent with the form. */
770
+ "attr:name"?: string | undefined;
771
+ /** How large the quantity is: it shares a height with buttons and fields of its size; `medium` by default. A cart line takes `xsmall`. */
772
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
773
+ /** The user changed the count. */
774
+ "on:input"?: ((e: SwellQuantityElementEvent) => void) | undefined;
775
+ /** The user changed the count, after `input`. */
776
+ "on:change"?: ((e: SwellQuantityElementEvent) => void) | undefined;
777
+
778
+ /** Set the innerHTML of the element */
779
+ innerHTML?: string | undefined;
780
+ /** Set the textContent of the element */
781
+ textContent?: string | number | undefined;
782
+ };
783
+
784
+ export type SwellRadioOptionProps = {
785
+ /** The value the group takes when the option is chosen; `on` by default. */
786
+ value?: string | undefined;
787
+ /** Help text under the label. */
788
+ hint?: string | undefined;
789
+ /** Disables the option. */
790
+ disabled?: boolean | undefined;
791
+ /** */
792
+ hidden?: unknown | undefined;
793
+ };
794
+
795
+ export type SwellRadioOptionSolidJsProps = {
796
+ /** The value the group takes when the option is chosen; `on` by default. */
797
+ "attr:value"?: string | undefined;
798
+ /** The value the group takes when the option is chosen; `on` by default. */
799
+ "prop:undefined"?: string | undefined;
800
+ /** Help text under the label. */
801
+ "attr:hint"?: string | undefined;
802
+ /** Disables the option. */
803
+ "bool:disabled"?: boolean | undefined;
804
+ /** */
805
+ "attr:hidden"?: unknown | undefined;
806
+
807
+ /** Set the innerHTML of the element */
808
+ innerHTML?: string | undefined;
809
+ /** Set the textContent of the element */
810
+ textContent?: string | number | undefined;
811
+ };
812
+
813
+ /** `SwellRadio` component event */
814
+ export type SwellRadioElementEvent<E = Event> = TypedEvent<SwellRadio, E>;
815
+
816
+ export type SwellRadioProps = {
817
+ /** The question. Without it, the group takes its name from its own `aria-label`. */
818
+ label?: string | undefined;
819
+ /** Help text under the options. */
820
+ hint?: string | undefined;
821
+ /** The error shown while the group is invalid. */
822
+ error?: string | undefined;
823
+ /** Marks the group invalid and shows the error. */
824
+ invalid?: boolean | undefined;
825
+ /** The name sent with the form. */
826
+ name?: string | undefined;
827
+ /** The value of the option chosen by default. */
828
+ value?: string | undefined;
829
+ /** The form can't be sent until an option is chosen. */
830
+ required?: boolean | undefined;
831
+ /** Disables every option. */
832
+ disabled?: boolean | undefined;
833
+ /** */
834
+ "aria-label"?: unknown | undefined;
835
+ /** Where the circle sits in the row of each option; the `radio.indicator.position` setting gives the default. A segmented group draws no circle. */
836
+ "indicator-position"?: "start" | "end" | undefined;
837
+ /** 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. */
838
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
839
+ /** 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. */
840
+ appearance?: "plain" | "outline" | "segmented" | "button" | undefined;
841
+
842
+ /** The user chose another option. */
843
+ oninput?: ((e: SwellRadioElementEvent) => void) | undefined;
844
+ /** 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`. */
845
+ onchange?: ((e: SwellRadioElementEvent) => void) | undefined;
846
+ };
847
+
848
+ export type SwellRadioSolidJsProps = {
849
+ /** The question. Without it, the group takes its name from its own `aria-label`. */
850
+ "attr:label"?: string | undefined;
851
+ /** The question. Without it, the group takes its name from its own `aria-label`. */
852
+ "prop:undefined"?: string | undefined;
853
+ /** Help text under the options. */
854
+ "attr:hint"?: string | undefined;
855
+ /** The error shown while the group is invalid. */
856
+ "attr:error"?: string | undefined;
857
+ /** Marks the group invalid and shows the error. */
858
+ "bool:invalid"?: boolean | undefined;
859
+ /** The name sent with the form. */
860
+ "attr:name"?: string | undefined;
861
+ /** The value of the option chosen by default. */
862
+ "attr:value"?: string | undefined;
863
+ /** The form can't be sent until an option is chosen. */
864
+ "bool:required"?: boolean | undefined;
865
+ /** Disables every option. */
866
+ "bool:disabled"?: boolean | undefined;
867
+ /** */
868
+ "attr:aria-label"?: unknown | undefined;
869
+ /** Where the circle sits in the row of each option; the `radio.indicator.position` setting gives the default. A segmented group draws no circle. */
870
+ "attr:indicator-position"?: "start" | "end" | undefined;
871
+ /** 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. */
872
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
873
+ /** 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. */
874
+ "attr:appearance"?: "plain" | "outline" | "segmented" | "button" | undefined;
875
+ /** The user chose another option. */
876
+ "on:input"?: ((e: SwellRadioElementEvent) => void) | undefined;
877
+ /** 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`. */
878
+ "on:change"?: ((e: SwellRadioElementEvent) => void) | undefined;
879
+
880
+ /** Set the innerHTML of the element */
881
+ innerHTML?: string | undefined;
882
+ /** Set the textContent of the element */
883
+ textContent?: string | number | undefined;
884
+ };
885
+
886
+ export type SwellSelectOptionProps = {
887
+ /** The value the select takes when the option is chosen; the option's label by default. */
888
+ value?: string | undefined;
889
+ /** A second line under the label. */
890
+ hint?: string | undefined;
891
+ /** Disables the option. */
892
+ disabled?: boolean | undefined;
893
+ /** */
894
+ hidden?: unknown | undefined;
895
+ };
896
+
897
+ export type SwellSelectOptionSolidJsProps = {
898
+ /** The value the select takes when the option is chosen; the option's label by default. */
899
+ "attr:value"?: string | undefined;
900
+ /** The value the select takes when the option is chosen; the option's label by default. */
901
+ "prop:undefined"?: string | undefined;
902
+ /** A second line under the label. */
903
+ "attr:hint"?: string | undefined;
904
+ /** Disables the option. */
905
+ "bool:disabled"?: boolean | undefined;
906
+ /** */
907
+ "attr:hidden"?: unknown | undefined;
908
+
909
+ /** Set the innerHTML of the element */
910
+ innerHTML?: string | undefined;
911
+ /** Set the textContent of the element */
912
+ textContent?: string | number | undefined;
913
+ };
914
+
915
+ /** `SwellSelect` component event */
916
+ export type SwellSelectElementEvent<E = Event> = TypedEvent<SwellSelect, E>;
917
+
918
+ export type SwellSelectProps = {
919
+ /** The label of the field. Without it, the select takes its name from its own `aria-label`. */
920
+ label?: string | undefined;
921
+ /** A marker after the label, such as `(optional)`, in the host's language; it joins the select's name. */
922
+ optional?: string | undefined;
923
+ /** Help text under the field. */
924
+ hint?: string | undefined;
925
+ /** The error shown while the select is invalid. */
926
+ error?: string | undefined;
927
+ /** Marks the select invalid and shows the error. */
928
+ invalid?: boolean | undefined;
929
+ /** The name sent with the form. */
930
+ name?: string | undefined;
931
+ /** The value of the option chosen by default. */
932
+ value?: string | undefined;
933
+ /** Text shown while nothing is chosen. */
934
+ placeholder?: string | undefined;
935
+ /** The form can't be sent until an option is chosen. */
936
+ required?: boolean | undefined;
937
+ /** Disables the select. */
938
+ disabled?: boolean | undefined;
939
+ /** 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`. */
940
+ autocomplete?: string | undefined;
941
+ /** */
942
+ "aria-label"?: unknown | undefined;
943
+ /** How the field is drawn; the configured setting by default. */
944
+ appearance?: "outline" | "filled" | "underline" | undefined;
945
+ /** How large the field is; `medium` by default. At `xsmall` the label sits above the field. */
946
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
947
+
948
+ /** The user chose another option. */
949
+ oninput?: ((e: SwellSelectElementEvent) => void) | undefined;
950
+ /** The user chose another option, after `input`. */
951
+ onchange?: ((e: SwellSelectElementEvent) => void) | undefined;
952
+ };
953
+
954
+ export type SwellSelectSolidJsProps = {
955
+ /** The label of the field. Without it, the select takes its name from its own `aria-label`. */
956
+ "attr:label"?: string | undefined;
957
+ /** The label of the field. Without it, the select takes its name from its own `aria-label`. */
958
+ "prop:undefined"?: string | undefined;
959
+ /** A marker after the label, such as `(optional)`, in the host's language; it joins the select's name. */
960
+ "attr:optional"?: string | undefined;
961
+ /** Help text under the field. */
962
+ "attr:hint"?: string | undefined;
963
+ /** The error shown while the select is invalid. */
964
+ "attr:error"?: string | undefined;
965
+ /** Marks the select invalid and shows the error. */
966
+ "bool:invalid"?: boolean | undefined;
967
+ /** The name sent with the form. */
968
+ "attr:name"?: string | undefined;
969
+ /** The value of the option chosen by default. */
970
+ "attr:value"?: string | undefined;
971
+ /** Text shown while nothing is chosen. */
972
+ "attr:placeholder"?: string | undefined;
973
+ /** The form can't be sent until an option is chosen. */
974
+ "bool:required"?: boolean | undefined;
975
+ /** Disables the select. */
976
+ "bool:disabled"?: boolean | undefined;
977
+ /** 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`. */
978
+ "attr:autocomplete"?: string | undefined;
979
+ /** */
980
+ "attr:aria-label"?: unknown | undefined;
981
+ /** How the field is drawn; the configured setting by default. */
982
+ "attr:appearance"?: "outline" | "filled" | "underline" | undefined;
983
+ /** How large the field is; `medium` by default. At `xsmall` the label sits above the field. */
984
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
985
+ /** The user chose another option. */
986
+ "on:input"?: ((e: SwellSelectElementEvent) => void) | undefined;
987
+ /** The user chose another option, after `input`. */
988
+ "on:change"?: ((e: SwellSelectElementEvent) => void) | undefined;
989
+
990
+ /** Set the innerHTML of the element */
991
+ innerHTML?: string | undefined;
992
+ /** Set the textContent of the element */
993
+ textContent?: string | number | undefined;
994
+ };
995
+
996
+ export type SwellSkeletonProps = {
997
+ /** 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. */
998
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
999
+ /** `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. */
1000
+ appearance?: "card" | undefined;
1001
+ };
1002
+
1003
+ export type SwellSkeletonSolidJsProps = {
1004
+ /** 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. */
1005
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
1006
+ /** 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. */
1007
+ "prop:undefined"?:
1008
+ "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
1009
+ /** `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. */
1010
+ "attr:appearance"?: "card" | undefined;
1011
+
1012
+ /** Set the innerHTML of the element */
1013
+ innerHTML?: string | undefined;
1014
+ /** Set the textContent of the element */
1015
+ textContent?: string | number | undefined;
1016
+ };
1017
+
1018
+ export type SwellStatusProps = {
1019
+ /** What the message means: its color, icon and how it is announced. */
1020
+ type?: "danger" | "success" | "warning" | undefined;
1021
+ /** How large the message is: its text, padding and icon follow the text of the size; `medium` by default. */
1022
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
1023
+ /** How the message is drawn; the configured setting by default. `quiet`, for a note, comes from the attribute only. */
1024
+ appearance?: "filled" | "outline" | "plain" | "quiet" | undefined;
1025
+ };
1026
+
1027
+ export type SwellStatusSolidJsProps = {
1028
+ /** What the message means: its color, icon and how it is announced. */
1029
+ "attr:type"?: "danger" | "success" | "warning" | undefined;
1030
+ /** What the message means: its color, icon and how it is announced. */
1031
+ "prop:undefined"?: "danger" | "success" | "warning" | undefined;
1032
+ /** How large the message is: its text, padding and icon follow the text of the size; `medium` by default. */
1033
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
1034
+ /** How the message is drawn; the configured setting by default. `quiet`, for a note, comes from the attribute only. */
1035
+ "attr:appearance"?: "filled" | "outline" | "plain" | "quiet" | undefined;
1036
+
1037
+ /** Set the innerHTML of the element */
1038
+ innerHTML?: string | undefined;
1039
+ /** Set the textContent of the element */
1040
+ textContent?: string | number | undefined;
1041
+ };
1042
+
1043
+ export type SwellTabProps = {
1044
+ /** The group's value while the tab is chosen; the label by default. */
1045
+ value?: string | undefined;
1046
+ /** The text of the tab or of the step's heading. */
1047
+ label?: string | undefined;
1048
+ /** Marks a step as done: its number becomes a check, and the line to the next step fills. */
1049
+ done?: boolean | undefined;
1050
+ /** The tab can't be chosen, such as a step that isn't open yet. */
1051
+ disabled?: boolean | undefined;
1052
+ /** */
1053
+ hidden?: unknown | undefined;
1054
+ };
1055
+
1056
+ export type SwellTabSolidJsProps = {
1057
+ /** The group's value while the tab is chosen; the label by default. */
1058
+ "attr:value"?: string | undefined;
1059
+ /** The group's value while the tab is chosen; the label by default. */
1060
+ "prop:undefined"?: string | undefined;
1061
+ /** The text of the tab or of the step's heading. */
1062
+ "attr:label"?: string | undefined;
1063
+ /** Marks a step as done: its number becomes a check, and the line to the next step fills. */
1064
+ "bool:done"?: boolean | undefined;
1065
+ /** The tab can't be chosen, such as a step that isn't open yet. */
1066
+ "bool:disabled"?: boolean | undefined;
1067
+ /** */
1068
+ "attr:hidden"?: unknown | undefined;
1069
+
1070
+ /** Set the innerHTML of the element */
1071
+ innerHTML?: string | undefined;
1072
+ /** Set the textContent of the element */
1073
+ textContent?: string | number | undefined;
1074
+ };
1075
+
1076
+ /** `SwellTabs` component event */
1077
+ export type SwellTabsElementEvent<E = Event> = TypedEvent<SwellTabs, E>;
1078
+ /** `request` event type */
1079
+ export type SwellTabsRequestElementEvent = SwellTabsElementEvent<
1080
+ CustomEvent<{ value: string }>
1081
+ >;
1082
+
1083
+ export type SwellTabsProps = {
1084
+ /** The value of the chosen tab; the first tab that isn't disabled by default. */
1085
+ value?: string | undefined;
1086
+ /** */
1087
+ "aria-label"?: unknown | undefined;
1088
+ /** 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. */
1089
+ orientation?: "horizontal" | "vertical" | undefined;
1090
+ /** The heading level of vertical steps, 1 to 6; 2 by default. */
1091
+ level?: number | undefined;
1092
+ /** 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. */
1093
+ "done-label"?: string | undefined;
1094
+ /** 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. */
1095
+ appearance?: "underline" | "segmented" | "steps" | undefined;
1096
+ /** How large the tabs are: they take the height and the text of a control of the size; `medium` by default. */
1097
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
1098
+
1099
+ /** 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. */
1100
+ onchange?: ((e: SwellTabsElementEvent) => void) | undefined;
1101
+ /** 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. */
1102
+ onrequest?: ((e: SwellTabsRequestElementEvent) => void) | undefined;
1103
+ };
1104
+
1105
+ export type SwellTabsSolidJsProps = {
1106
+ /** The value of the chosen tab; the first tab that isn't disabled by default. */
1107
+ "attr:value"?: string | undefined;
1108
+ /** The value of the chosen tab; the first tab that isn't disabled by default. */
1109
+ "prop:undefined"?: string | undefined;
1110
+ /** */
1111
+ "attr:aria-label"?: unknown | undefined;
1112
+ /** 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. */
1113
+ "attr:orientation"?: "horizontal" | "vertical" | undefined;
1114
+ /** The heading level of vertical steps, 1 to 6; 2 by default. */
1115
+ "attr:level"?: number | undefined;
1116
+ /** 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. */
1117
+ "attr:done-label"?: string | undefined;
1118
+ /** 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. */
1119
+ "attr:appearance"?: "underline" | "segmented" | "steps" | undefined;
1120
+ /** How large the tabs are: they take the height and the text of a control of the size; `medium` by default. */
1121
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
1122
+ /** 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. */
1123
+ "on:change"?: ((e: SwellTabsElementEvent) => void) | undefined;
1124
+ /** 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. */
1125
+ "on:request"?: ((e: SwellTabsRequestElementEvent) => void) | undefined;
1126
+
1127
+ /** Set the innerHTML of the element */
1128
+ innerHTML?: string | undefined;
1129
+ /** Set the textContent of the element */
1130
+ textContent?: string | number | undefined;
1131
+ };
1132
+
1133
+ export type SwellTextProps = {
1134
+ /** 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. */
1135
+ level?: number | undefined;
1136
+ /** 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. */
1137
+ variant?: string | undefined;
1138
+ /** What the text is; body text by default. An eyebrow is uppercase. */
1139
+ type?:
1140
+ | "title"
1141
+ | "heading"
1142
+ | "subheading"
1143
+ | "strong"
1144
+ | "body"
1145
+ | "caption"
1146
+ | "footnote"
1147
+ | "eyebrow"
1148
+ | undefined;
1149
+ };
1150
+
1151
+ export type SwellTextSolidJsProps = {
1152
+ /** 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. */
1153
+ "attr:level"?: number | undefined;
1154
+ /** 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. */
1155
+ "prop:undefined"?: number | undefined;
1156
+ /** 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. */
1157
+ "attr:variant"?: string | undefined;
1158
+ /** What the text is; body text by default. An eyebrow is uppercase. */
1159
+ "attr:type"?:
1160
+ | "title"
1161
+ | "heading"
1162
+ | "subheading"
1163
+ | "strong"
1164
+ | "body"
1165
+ | "caption"
1166
+ | "footnote"
1167
+ | "eyebrow"
1168
+ | undefined;
1169
+
1170
+ /** Set the innerHTML of the element */
1171
+ innerHTML?: string | undefined;
1172
+ /** Set the textContent of the element */
1173
+ textContent?: string | number | undefined;
1174
+ };
1175
+
1176
+ /** `SwellTextarea` component event */
1177
+ export type SwellTextareaElementEvent<E = Event> = TypedEvent<SwellTextarea, E>;
1178
+
1179
+ export type SwellTextareaProps = {
1180
+ /** The label of the field. */
1181
+ label?: string | undefined;
1182
+ /** A marker after the label, such as `(optional)`, in the host's language; it joins the field's name. */
1183
+ optional?: string | undefined;
1184
+ /** Help text under the field. */
1185
+ hint?: string | undefined;
1186
+ /** The error shown while the field is invalid. */
1187
+ error?: string | undefined;
1188
+ /** Marks the field invalid and shows the error. */
1189
+ invalid?: boolean | undefined;
1190
+ /** The default value. */
1191
+ value?: string | undefined;
1192
+ /** How the field is drawn; the configured setting by default. */
1193
+ appearance?: "outline" | "filled" | "underline" | undefined;
1194
+ /** How large the field is; `medium` by default. At `xsmall` the label sits above the field. */
1195
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
1196
+ /** Disables the field. */
1197
+ disabled?: boolean | undefined;
1198
+ /** Makes the field read-only. */
1199
+ readonly?: boolean | undefined;
1200
+ /** Makes the field required. */
1201
+ required?: boolean | undefined;
1202
+ /** The name sent with the form. */
1203
+ name?: string | undefined;
1204
+ /** Text shown while the field is empty. */
1205
+ placeholder?: string | undefined;
1206
+ /** The autofill hint of the native textarea. */
1207
+ autocomplete?: string | undefined;
1208
+ /** The shortest allowed value. */
1209
+ minlength?: number | undefined;
1210
+ /** The longest allowed value. */
1211
+ maxlength?: number | undefined;
1212
+ /** The visible lines; 2 by default. */
1213
+ rows?: number | undefined;
1214
+ /** */
1215
+ readOnly?: boolean | undefined;
1216
+
1217
+ /** The value changes as the user types; it bubbles from the native textarea. */
1218
+ oninput?: ((e: SwellTextareaElementEvent) => void) | undefined;
1219
+ /** The user commits a new value; it bubbles from the native textarea. */
1220
+ onchange?: ((e: SwellTextareaElementEvent) => void) | undefined;
1221
+ };
1222
+
1223
+ export type SwellTextareaSolidJsProps = {
1224
+ /** The label of the field. */
1225
+ "attr:label"?: string | undefined;
1226
+ /** The label of the field. */
1227
+ "prop:undefined"?: string | undefined;
1228
+ /** A marker after the label, such as `(optional)`, in the host's language; it joins the field's name. */
1229
+ "attr:optional"?: string | undefined;
1230
+ /** Help text under the field. */
1231
+ "attr:hint"?: string | undefined;
1232
+ /** The error shown while the field is invalid. */
1233
+ "attr:error"?: string | undefined;
1234
+ /** Marks the field invalid and shows the error. */
1235
+ "bool:invalid"?: boolean | undefined;
1236
+ /** The default value. */
1237
+ "attr:value"?: string | undefined;
1238
+ /** How the field is drawn; the configured setting by default. */
1239
+ "attr:appearance"?: "outline" | "filled" | "underline" | undefined;
1240
+ /** How large the field is; `medium` by default. At `xsmall` the label sits above the field. */
1241
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
1242
+ /** Disables the field. */
1243
+ "bool:disabled"?: boolean | undefined;
1244
+ /** Makes the field read-only. */
1245
+ "bool:readonly"?: boolean | undefined;
1246
+ /** Makes the field required. */
1247
+ "bool:required"?: boolean | undefined;
1248
+ /** The name sent with the form. */
1249
+ "attr:name"?: string | undefined;
1250
+ /** Text shown while the field is empty. */
1251
+ "attr:placeholder"?: string | undefined;
1252
+ /** The autofill hint of the native textarea. */
1253
+ "attr:autocomplete"?: string | undefined;
1254
+ /** The shortest allowed value. */
1255
+ "attr:minlength"?: number | undefined;
1256
+ /** The longest allowed value. */
1257
+ "attr:maxlength"?: number | undefined;
1258
+ /** The visible lines; 2 by default. */
1259
+ "attr:rows"?: number | undefined;
1260
+ /** */
1261
+ "prop:readOnly"?: boolean | undefined;
1262
+ /** The value changes as the user types; it bubbles from the native textarea. */
1263
+ "on:input"?: ((e: SwellTextareaElementEvent) => void) | undefined;
1264
+ /** The user commits a new value; it bubbles from the native textarea. */
1265
+ "on:change"?: ((e: SwellTextareaElementEvent) => void) | undefined;
1266
+
1267
+ /** Set the innerHTML of the element */
1268
+ innerHTML?: string | undefined;
1269
+ /** Set the textContent of the element */
1270
+ textContent?: string | number | undefined;
1271
+ };
1272
+
1273
+ export type SwellThumbnailProps = {
1274
+ /** */
1275
+ "aria-label"?: unknown | undefined;
1276
+ /** 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. */
1277
+ variant?: string | undefined;
1278
+ /** How large the box is: the height of a control of the size; `medium` by default. */
1279
+ size?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
1280
+ /** Rounds the box fully, as for an avatar. */
1281
+ shape?: "circle" | undefined;
1282
+ };
1283
+
1284
+ export type SwellThumbnailSolidJsProps = {
1285
+ /** */
1286
+ "attr:aria-label"?: unknown | undefined;
1287
+ /** */
1288
+ "prop:undefined"?: unknown | undefined;
1289
+ /** 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. */
1290
+ "attr:variant"?: string | undefined;
1291
+ /** How large the box is: the height of a control of the size; `medium` by default. */
1292
+ "attr:size"?: "xsmall" | "small" | "medium" | "large" | "xlarge" | undefined;
1293
+ /** Rounds the box fully, as for an avatar. */
1294
+ "attr:shape"?: "circle" | undefined;
1295
+
1296
+ /** Set the innerHTML of the element */
1297
+ innerHTML?: string | undefined;
1298
+ /** Set the textContent of the element */
1299
+ textContent?: string | number | undefined;
1300
+ };
1301
+
1302
+ export type SwellUiProps = {
1303
+ /** The id of the area's configuration. An id without a configuration yet applies once the host registers one. */
1304
+ config?: string | undefined;
1305
+ };
1306
+
1307
+ export type SwellUiSolidJsProps = {
1308
+ /** The id of the area's configuration. An id without a configuration yet applies once the host registers one. */
1309
+ "attr:config"?: string | undefined;
1310
+ /** The id of the area's configuration. An id without a configuration yet applies once the host registers one. */
1311
+ "prop:undefined"?: string | undefined;
1312
+
1313
+ /** Set the innerHTML of the element */
1314
+ innerHTML?: string | undefined;
1315
+ /** Set the textContent of the element */
1316
+ textContent?: string | number | undefined;
1317
+ };
1318
+
1319
+ export type CustomElements = {
1320
+ /**
1321
+ * A badge: a short label or a count, such as a subscription's interval, a discount or a quantity.
1322
+ * 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.
1323
+ *
1324
+ * ## Attributes & Properties
1325
+ *
1326
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1327
+ *
1328
+ * - `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.
1329
+ * - `appearance`/`undefined`: How the badge is drawn; the configured setting by default.
1330
+ * - `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.
1331
+ *
1332
+ * ## Slots
1333
+ *
1334
+ * Areas where markup can be added to the component.
1335
+ *
1336
+ * - `(default)`: The label.
1337
+ * - `start`: An icon before the label, drawn 1px larger than the text.
1338
+ *
1339
+ * ## CSS States
1340
+ *
1341
+ * These can be used to apply styling when a component is in a given state.
1342
+ *
1343
+ * - `filled`: The badge is filled.
1344
+ * - `outline`: The badge has an outline.
1345
+ */
1346
+ "swell-badge": Partial<SwellBadgeProps & BaseProps<SwellBadge> & BaseEvents>;
1347
+
1348
+ /**
1349
+ * A button. It submits or resets the form it belongs to, like a native button.
1350
+ * 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`.
1351
+ * `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.
1352
+ *
1353
+ * While `loading`, the button shows a spinner in place of its `start` content, hides its `end` content and ignores clicks; it keeps its focus.
1354
+ * 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.
1355
+ *
1356
+ * ## Attributes & Properties
1357
+ *
1358
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1359
+ *
1360
+ * - `disabled`/`undefined`: Removes the button from the tab order and ignores clicks.
1361
+ * - `loading`/`undefined`: Shows a spinner, marks the button busy and ignores clicks; the button stays in the tab order.
1362
+ * - `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.
1363
+ * - `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.
1364
+ * - `appearance`/`undefined`: How the button is drawn; the variant's setting by default.
1365
+ * - `size`/`undefined`: How large the button is; `medium` by default. `xsmall` fits an action inside a status message.
1366
+ * - `shape`/`undefined`: Rounds the corners fully, in every variant, appearance and size, whatever the corner radius of the host's buttons.
1367
+ * - `href`/`undefined`: Where the button leads; with it the element is a link, named by its own `aria-label`, or else by its content.
1368
+ * - `target`/`undefined`: Where to open the link.
1369
+ * - `rel`/`undefined`: How the link's target relates to the page.
1370
+ * - `type`/`undefined`: What the button does in a form; `submit` by default.
1371
+ * - `disabled`: undefined (property only)
1372
+ * - `loading`: undefined (property only)
1373
+ * - `success`: undefined (property only)
1374
+ * - `type`: undefined (property only)
1375
+ *
1376
+ * ## Slots
1377
+ *
1378
+ * Areas where markup can be added to the component.
1379
+ *
1380
+ * - `(default)`: The label of the button.
1381
+ * - `start`: An icon before the label, drawn 4px larger than the text.
1382
+ * - `end`: An icon after the label, drawn 4px larger than the text; it moves toward the end on hover.
1383
+ *
1384
+ * ## Methods
1385
+ *
1386
+ * Methods that can be called to access component functionality.
1387
+ *
1388
+ * - `shake() => void`: Shakes the button, as after a failed attempt to submit; each call starts the shake again.
1389
+ * - `formDisabledCallback(disabled: boolean) => void`: undefined
1390
+ * - `focus(options?: FocusOptions) => void`: Focuses the anchor with `href`, and the button itself without it.
1391
+ *
1392
+ * ## CSS States
1393
+ *
1394
+ * These can be used to apply styling when a component is in a given state.
1395
+ *
1396
+ * - `filled`: The button is filled.
1397
+ * - `outline`: The button has an outline.
1398
+ * - `plain`: The button has neither a fill nor a border at rest; under the pointer it takes the quiet fill.
1399
+ */
1400
+ "swell-button": Partial<
1401
+ SwellButtonProps & BaseProps<SwellButton> & BaseEvents
1402
+ >;
1403
+
1404
+ /**
1405
+ * A card: a box that groups content, such as the details of an order or a note under a choice.
1406
+ *
1407
+ * ## Attributes & Properties
1408
+ *
1409
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1410
+ *
1411
+ * - `appearance`/`undefined`: How the card is drawn: with a border, or filled with the quiet background; the configured setting by default.
1412
+ * - `size`/`undefined`: How large the padding is: it follows the text of the size; `medium` by default.
1413
+ *
1414
+ * ## Slots
1415
+ *
1416
+ * Areas where markup can be added to the component.
1417
+ *
1418
+ * - `(default)`: The content.
1419
+ *
1420
+ * ## CSS States
1421
+ *
1422
+ * These can be used to apply styling when a component is in a given state.
1423
+ *
1424
+ * - `outline`: The card has a border.
1425
+ * - `filled`: The card is filled.
1426
+ */
1427
+ "swell-card": Partial<SwellCardProps & BaseProps<SwellCard> & BaseEvents>;
1428
+
1429
+ /**
1430
+ * A checkbox: a native checkbox with its label, hint and error, rendered into light DOM.
1431
+ *
1432
+ * ## Attributes & Properties
1433
+ *
1434
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1435
+ *
1436
+ * - `label`/`undefined`: The label beside the box.
1437
+ * - `hint`/`undefined`: Help text under the checkbox.
1438
+ * - `error`/`undefined`: The error shown while the checkbox is invalid.
1439
+ * - `invalid`/`undefined`: Marks the checkbox invalid and shows the error.
1440
+ * - `checked`/`undefined`: The default state.
1441
+ * - `value`/`undefined`: The value sent with the form; `on` by default.
1442
+ * - `disabled`/`undefined`: Disables the checkbox.
1443
+ * - `required`/`undefined`: Makes the checkbox required.
1444
+ * - `name`/`undefined`: The name sent with the form.
1445
+ * - `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.
1446
+ * - `checked`: Whether the box is checked now. (property only)
1447
+ * - `value`: The value sent with the form. (property only)
1448
+ * - `disabled`: undefined (property only)
1449
+ * - `required`: undefined (property only)
1450
+ * - `invalid`: undefined (property only)
1451
+ * - `name`: undefined (property only)
1452
+ *
1453
+ * ## Events
1454
+ *
1455
+ * Events that will be emitted by the component.
1456
+ *
1457
+ * - `change`: The user checks or unchecks the box; it bubbles from the native input.
1458
+ *
1459
+ * ## Methods
1460
+ *
1461
+ * Methods that can be called to access component functionality.
1462
+ *
1463
+ * - `focus(options?: FocusOptions) => void`: undefined
1464
+ */
1465
+ "swell-checkbox": Partial<
1466
+ SwellCheckboxProps & BaseProps<SwellCheckbox> & BaseEvents
1467
+ >;
1468
+
1469
+ /**
1470
+ * A chip: a short value the shopper can remove, such as an applied discount code or gift card.
1471
+ * Its remove button fires `remove`; the host removes the chip and moves the focus, for example to the code field.
1472
+ * 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.
1473
+ *
1474
+ * ## Attributes & Properties
1475
+ *
1476
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1477
+ *
1478
+ * - `disabled`/`undefined`: Disables the remove button.
1479
+ * - `remove-label`/`undefined`: The name of the remove button in the host's language, such as `Remove WELCOME10`; every chip needs one.
1480
+ * - `size`/`undefined`: How large the chip is; `medium` by default. Its remove button is as high as the chip, at least 24px.
1481
+ * - `disabled`: undefined (property only)
1482
+ *
1483
+ * ## Events
1484
+ *
1485
+ * Events that will be emitted by the component.
1486
+ *
1487
+ * - `remove`: The shopper pressed the remove button; it bubbles, and the chip stays in the page. A disabled chip fires none.
1488
+ *
1489
+ * ## Slots
1490
+ *
1491
+ * Areas where markup can be added to the component.
1492
+ *
1493
+ * - `(default)`: The value.
1494
+ * - `start`: An icon before the value, drawn 2px larger than the text.
1495
+ *
1496
+ * ## Methods
1497
+ *
1498
+ * Methods that can be called to access component functionality.
1499
+ *
1500
+ * - `formDisabledCallback() => void`: undefined
1501
+ * - `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.
1502
+ *
1503
+ * ## CSS Parts
1504
+ *
1505
+ * Custom selectors for styling elements within the component.
1506
+ *
1507
+ * - `remove`: The remove button.
1508
+ */
1509
+ "swell-chip": Partial<SwellChipProps & BaseProps<SwellChip> & BaseEvents>;
1510
+
1511
+ /**
1512
+ * A disclosure: content that stays hidden until the shopper presses its trigger, such as "Add apartment, suite, etc." and the field it reveals.
1513
+ * The trigger opens it and leaves; the focus moves to the first control of the content.
1514
+ * 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.
1515
+ * 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.
1516
+ * 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.
1517
+ *
1518
+ * ## Attributes & Properties
1519
+ *
1520
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1521
+ *
1522
+ * - `open`/`undefined`: Shows the content and hides the trigger. Set on connect, the content shows at once.
1523
+ * - `toggle`/`undefined`: Keeps the trigger while the content is open: it closes the content too and carries `aria-expanded`.
1524
+ * - `open`: undefined (property only)
1525
+ *
1526
+ * ## Events
1527
+ *
1528
+ * Events that will be emitted by the component.
1529
+ *
1530
+ * - `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.
1531
+ *
1532
+ * ## Slots
1533
+ *
1534
+ * Areas where markup can be added to the component.
1535
+ *
1536
+ * - `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.
1537
+ * - `(default)`: The content.
1538
+ *
1539
+ * ## CSS Parts
1540
+ *
1541
+ * Custom selectors for styling elements within the component.
1542
+ *
1543
+ * - `content`: The box that expands to show the content.
1544
+ *
1545
+ * ## CSS States
1546
+ *
1547
+ * These can be used to apply styling when a component is in a given state.
1548
+ *
1549
+ * - `closing`: The content collapses; the trigger is back, out of the flow and invisible until it ends.
1550
+ */
1551
+ "swell-disclosure": Partial<
1552
+ SwellDisclosureProps & BaseProps<SwellDisclosure> & BaseEvents
1553
+ >;
1554
+
1555
+ /**
1556
+ * A divider: a line across its width, or two lines with a label between them, such as "or pay another way".
1557
+ * Without a label it is a separator for screen readers; with one, they read the label and skip the lines.
1558
+ * The host sets the space around it.
1559
+ *
1560
+ * ## Slots
1561
+ *
1562
+ * Areas where markup can be added to the component.
1563
+ *
1564
+ * - `(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.
1565
+ */
1566
+ "swell-divider": Partial<
1567
+ SwellDividerProps & BaseProps<SwellDivider> & BaseEvents
1568
+ >;
1569
+
1570
+ /**
1571
+ * A link. With `href`, its anchor lives in the shadow root and takes the focus for the element.
1572
+ *
1573
+ * 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.
1574
+ * Its own `aria-label`, `aria-expanded` and `aria-controls` name and describe that button, so it can open a popover or a disclosure.
1575
+ * `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.
1576
+ *
1577
+ * ## Attributes & Properties
1578
+ *
1579
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1580
+ *
1581
+ * - `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.
1582
+ * - `target`/`undefined`: Where to open the link.
1583
+ * - `rel`/`undefined`: How the target relates to the page.
1584
+ * - `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.
1585
+ * - `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.
1586
+ * - `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.
1587
+ *
1588
+ * ## Slots
1589
+ *
1590
+ * Areas where markup can be added to the component.
1591
+ *
1592
+ * - `(default)`: The text of the link.
1593
+ * - `start`: An icon before the text, 2px larger than it.
1594
+ * - `end`: An icon after the text, 2px larger than it.
1595
+ *
1596
+ * ## Methods
1597
+ *
1598
+ * Methods that can be called to access component functionality.
1599
+ *
1600
+ * - `focus(options?: FocusOptions) => void`: Focuses the anchor with `href`, and the element itself without it.
1601
+ *
1602
+ * ## CSS Parts
1603
+ *
1604
+ * Custom selectors for styling elements within the component.
1605
+ *
1606
+ * - `link`: The anchor, or the content of the button without `href`.
1607
+ *
1608
+ * ## CSS States
1609
+ *
1610
+ * These can be used to apply styling when a component is in a given state.
1611
+ *
1612
+ * - `plain`: The link is plain.
1613
+ * - `start-content`: The link has content in its `start` slot.
1614
+ * - `end-content`: The link has content in its `end` slot.
1615
+ */
1616
+ "swell-link": Partial<SwellLinkProps & BaseProps<SwellLink> & BaseEvents>;
1617
+
1618
+ /**
1619
+ * A text field: a native input with its label, hint and error, rendered into light DOM.
1620
+ *
1621
+ * ## Attributes & Properties
1622
+ *
1623
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1624
+ *
1625
+ * - `label`/`undefined`: The label of the field.
1626
+ * - `optional`/`undefined`: A marker after the label, such as `(optional)`, in the host's language; it joins the field's name.
1627
+ * - `hint`/`undefined`: Help text under the field.
1628
+ * - `error`/`undefined`: The error shown while the field is invalid.
1629
+ * - `invalid`/`undefined`: Marks the field invalid and shows the error.
1630
+ * - `value`/`undefined`: The default value.
1631
+ * - `type`/`undefined`: The kind of value; `text` by default.
1632
+ * - `appearance`/`undefined`: How the field is drawn; the configured setting by default.
1633
+ * - `size`/`undefined`: How large the field is; `medium` by default. At `xsmall` the label sits above the field.
1634
+ * - `disabled`/`undefined`: Disables the field.
1635
+ * - `readonly`/`undefined`: Makes the field read-only.
1636
+ * - `required`/`undefined`: Makes the field required.
1637
+ * - `name`/`undefined`: The name sent with the form.
1638
+ * - `placeholder`/`undefined`: Text shown while the field is empty.
1639
+ * - `autocomplete`/`undefined`: The autofill hint of the native input.
1640
+ * - `inputmode`/`undefined`: The virtual keyboard to show.
1641
+ * - `minlength`/`undefined`: The shortest allowed value.
1642
+ * - `maxlength`/`undefined`: The longest allowed value.
1643
+ * - `pattern`/`undefined`: The pattern the value matches.
1644
+ * - `min`/`undefined`: The smallest allowed value.
1645
+ * - `max`/`undefined`: The largest allowed value.
1646
+ * - `step`/`undefined`: The step between allowed values.
1647
+ * - `value`: The current value of the field. (property only)
1648
+ * - `disabled`: undefined (property only)
1649
+ * - `required`: undefined (property only)
1650
+ * - `readOnly`: undefined (property only)
1651
+ * - `invalid`: undefined (property only)
1652
+ * - `name`: undefined (property only)
1653
+ *
1654
+ * ## Events
1655
+ *
1656
+ * Events that will be emitted by the component.
1657
+ *
1658
+ * - `input`: The value changes as the user types; it bubbles from the native input.
1659
+ * - `change`: The user commits a new value; it bubbles from the native input.
1660
+ *
1661
+ * ## Slots
1662
+ *
1663
+ * Areas where markup can be added to the component.
1664
+ *
1665
+ * - `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.
1666
+ * - `start`: Content before the text, such as an icon; an svg is drawn 4px larger than the text, in the quiet color.
1667
+ * - `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.
1668
+ *
1669
+ * ## Methods
1670
+ *
1671
+ * Methods that can be called to access component functionality.
1672
+ *
1673
+ * - `attributesOf(passed: string[], own: string[] = []) => string[]`: Every attribute a text field observes, for the subclass's `observedAttributes`.
1674
+ * - `focus(options?: FocusOptions) => void`: undefined
1675
+ *
1676
+ * ## CSS Parts
1677
+ *
1678
+ * Custom selectors for styling elements within the component.
1679
+ *
1680
+ * - `frame`: The box that draws the field around the native input, its start and its end.
1681
+ * - `start`: The box of the start content.
1682
+ * - `end`: The box of the end content.
1683
+ *
1684
+ * ## CSS States
1685
+ *
1686
+ * These can be used to apply styling when a component is in a given state.
1687
+ *
1688
+ * - `outline`: The field has a border on all sides.
1689
+ * - `filled`: The field has a fill and a bottom border.
1690
+ * - `underline`: The field has a bottom border.
1691
+ * - `above`: The label sits above the field.
1692
+ * - `floating`: The label floats inside the field.
1693
+ */
1694
+ "swell-input": Partial<SwellInputProps & BaseProps<SwellInput> & BaseEvents>;
1695
+
1696
+ /**
1697
+ * 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.
1698
+ *
1699
+ * ## Slots
1700
+ *
1701
+ * Areas where markup can be added to the component.
1702
+ *
1703
+ * - `(default)`: The suggestions, `<swell-lookup-option>` elements.
1704
+ */
1705
+ "swell-lookup-list": Partial<
1706
+ SwellLookupListProps & BaseProps<SwellLookupList> & BaseEvents
1707
+ >;
1708
+
1709
+ /**
1710
+ * One suggestion of a lookup. It lives only as a child of `<swell-lookup-list>`.
1711
+ * 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.
1712
+ *
1713
+ * ## Attributes & Properties
1714
+ *
1715
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1716
+ *
1717
+ * - `value`/`undefined`: The value of the suggestion, such as the id of a place; the label by default.
1718
+ * - `hint`/`undefined`: A second line under the label.
1719
+ * - `disabled`/`undefined`: Disables the suggestion.
1720
+ * - `hidden`/`undefined`: undefined
1721
+ * - `selected`: Whether the option is chosen; the select sets it. (property only) (readonly)
1722
+ * - `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)
1723
+ * - `value`: undefined (property only)
1724
+ * - `disabled`: undefined (property only)
1725
+ *
1726
+ * ## Slots
1727
+ *
1728
+ * Areas where markup can be added to the component.
1729
+ *
1730
+ * - `(default)`: The label of the suggestion; the field writes its text into the input when it is chosen.
1731
+ * - `start`: Content before the label, such as an icon.
1732
+ *
1733
+ * ## CSS States
1734
+ *
1735
+ * These can be used to apply styling when a component is in a given state.
1736
+ *
1737
+ * - `focused`: The field's keyboard points at the suggestion.
1738
+ * - `disabled`: The suggestion is disabled.
1739
+ * - `first`: The option is the first one on show; it draws no divider above it.
1740
+ */
1741
+ "swell-lookup-option": Partial<
1742
+ SwellLookupOptionProps & BaseProps<SwellLookupOption> & BaseEvents
1743
+ >;
1744
+
1745
+ /**
1746
+ * A text field with suggestions: a combobox in ARIA terms. The host loads the suggestions, such as addresses,
1747
+ * and puts them into a `<swell-lookup-list>` child as `<swell-lookup-option>` elements; the field shows them under itself.
1748
+ * It is a `<swell-input>` in everything else: its native input stays in light DOM, so autofill works as in any field.
1749
+ *
1750
+ * 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.
1751
+ * Choosing a suggestion clicks it. After the click, unless a handler prevented its default, the field writes the suggestion's label
1752
+ * into the input and fires `input`, with `inputType` `insertReplacementText`, and `change`; the list stays closed until the user types again.
1753
+ *
1754
+ * ## Attributes & Properties
1755
+ *
1756
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1757
+ *
1758
+ * - `label`/`undefined`: The label of the field.
1759
+ * - `optional`/`undefined`: A marker after the label, such as `(optional)`, in the host's language; it joins the field's name.
1760
+ * - `hint`/`undefined`: Help text under the field.
1761
+ * - `error`/`undefined`: The error shown while the field is invalid.
1762
+ * - `invalid`/`undefined`: Marks the field invalid and shows the error.
1763
+ * - `value`/`undefined`: The default value.
1764
+ * - `type`/`undefined`: The kind of value; `text` by default.
1765
+ * - `appearance`/`undefined`: How the field is drawn; the configured setting by default.
1766
+ * - `size`/`undefined`: How large the field is; `medium` by default. At `xsmall` the label sits above the field.
1767
+ * - `disabled`/`undefined`: Disables the field.
1768
+ * - `readonly`/`undefined`: Makes the field read-only.
1769
+ * - `required`/`undefined`: Makes the field required.
1770
+ * - `name`/`undefined`: The name sent with the form.
1771
+ * - `placeholder`/`undefined`: Text shown while the field is empty.
1772
+ * - `autocomplete`/`undefined`: The autofill hint of the native input.
1773
+ * - `inputmode`/`undefined`: The virtual keyboard to show.
1774
+ * - `minlength`/`undefined`: The shortest allowed value.
1775
+ * - `maxlength`/`undefined`: The longest allowed value.
1776
+ * - `pattern`/`undefined`: The pattern the value matches.
1777
+ * - `min`/`undefined`: The smallest allowed value.
1778
+ * - `max`/`undefined`: The largest allowed value.
1779
+ * - `step`/`undefined`: The step between allowed values.
1780
+ * - `value`: The current value of the field. (property only)
1781
+ * - `disabled`: undefined (property only)
1782
+ * - `required`: undefined (property only)
1783
+ * - `readOnly`: undefined (property only)
1784
+ * - `invalid`: undefined (property only)
1785
+ * - `name`: undefined (property only)
1786
+ *
1787
+ * ## Events
1788
+ *
1789
+ * Events that will be emitted by the component.
1790
+ *
1791
+ * - `input`: The value changes as the user types; it bubbles from the native input.
1792
+ * - `change`: The user commits a new value; it bubbles from the native input.
1793
+ *
1794
+ * ## Slots
1795
+ *
1796
+ * Areas where markup can be added to the component.
1797
+ *
1798
+ * - `(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.
1799
+ * - `hint`: Help content under the field in place of the `hint` text, as on an input.
1800
+ * - `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.
1801
+ * - `start`: Content before the text, such as an icon; an svg is drawn 4px larger than the text, in the quiet color.
1802
+ * - `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.
1803
+ *
1804
+ * ## Methods
1805
+ *
1806
+ * Methods that can be called to access component functionality.
1807
+ *
1808
+ * - `attributesOf(passed: string[], own: string[] = []) => string[]`: Every attribute a text field observes, for the subclass's `observedAttributes`.
1809
+ * - `focus(options?: FocusOptions) => void`: undefined
1810
+ *
1811
+ * ## CSS Parts
1812
+ *
1813
+ * Custom selectors for styling elements within the component.
1814
+ *
1815
+ * - `list`: The popup that holds the list and the action.
1816
+ * - `frame`: The box that draws the field around the native input, its start and its end.
1817
+ * - `start`: The box of the start content.
1818
+ * - `end`: The box of the end content.
1819
+ *
1820
+ * ## CSS States
1821
+ *
1822
+ * These can be used to apply styling when a component is in a given state.
1823
+ *
1824
+ * - `outline`: The field has a border on all sides.
1825
+ * - `filled`: The field has a fill and a bottom border.
1826
+ * - `underline`: The field has a bottom border.
1827
+ * - `above`: The label sits above the field.
1828
+ * - `floating`: The label floats inside the field.
1829
+ */
1830
+ "swell-lookup": Partial<
1831
+ SwellLookupProps & BaseProps<SwellLookup> & BaseEvents
1832
+ >;
1833
+
1834
+ /**
1835
+ * A popover: a small dialog that floats at the host's trigger, such as the language and currency picker of a checkout.
1836
+ * 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;
1837
+ * a press outside it and the focus leaving it close it too. A choice inside keeps it open.
1838
+ * 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.
1839
+ * Its content sets its width, at least the trigger's and at most the window's less 16px.
1840
+ * Name it with `aria-label`, such as `Language and currency`.
1841
+ *
1842
+ * ## Attributes & Properties
1843
+ *
1844
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1845
+ *
1846
+ * - `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.
1847
+ * - `aria-label`/`undefined`: undefined
1848
+ * - `open`: undefined (property only)
1849
+ *
1850
+ * ## Events
1851
+ *
1852
+ * Events that will be emitted by the component.
1853
+ *
1854
+ * - `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.
1855
+ *
1856
+ * ## Slots
1857
+ *
1858
+ * Areas where markup can be added to the component.
1859
+ *
1860
+ * - `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.
1861
+ * - `(default)`: The content of the panel.
1862
+ *
1863
+ * ## CSS Parts
1864
+ *
1865
+ * Custom selectors for styling elements within the component.
1866
+ *
1867
+ * - `panel`: The floating panel.
1868
+ */
1869
+ "swell-popover": Partial<
1870
+ SwellPopoverProps & BaseProps<SwellPopover> & BaseEvents
1871
+ >;
1872
+
1873
+ /**
1874
+ * 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.
1875
+ * 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`.
1876
+ * Name it with `aria-label`, such as `Quantity, House Blend`, or with `aria-labelledby`. It holds the count and takes part in its form.
1877
+ * 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.
1878
+ *
1879
+ * ## Attributes & Properties
1880
+ *
1881
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1882
+ *
1883
+ * - `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.
1884
+ * - `min`/`undefined`: The least count, a whole number; 1 by default.
1885
+ * - `max`/`undefined`: The greatest count, a whole number; no limit by default. A `max` below `min` counts as `min`.
1886
+ * - `step`/`undefined`: How much each step changes the count, a whole number above 0; 1 by default.
1887
+ * - `disabled`/`undefined`: Removes the quantity from the tab order and ignores steps.
1888
+ * - `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.
1889
+ * - `name`/`undefined`: The name sent with the form.
1890
+ * - `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`.
1891
+ * - `value`: The count now. (property only)
1892
+ * - `name`: undefined (property only)
1893
+ * - `disabled`: undefined (property only)
1894
+ * - `busy`: undefined (property only)
1895
+ * - `form`: undefined (property only) (readonly)
1896
+ *
1897
+ * ## Events
1898
+ *
1899
+ * Events that will be emitted by the component.
1900
+ *
1901
+ * - `input`: The user changed the count.
1902
+ * - `change`: The user changed the count, after `input`.
1903
+ *
1904
+ * ## Methods
1905
+ *
1906
+ * Methods that can be called to access component functionality.
1907
+ *
1908
+ * - `formResetCallback() => void`: undefined
1909
+ * - `formDisabledCallback(disabled: boolean) => void`: undefined
1910
+ * - `formStateRestoreCallback(state: unknown) => void`: undefined
1911
+ */
1912
+ "swell-quantity": Partial<
1913
+ SwellQuantityProps & BaseProps<SwellQuantity> & BaseEvents
1914
+ >;
1915
+
1916
+ /**
1917
+ * One option of a radio group. It lives only as a direct child of `<swell-radio>`, which holds the choice.
1918
+ * In a segmented group and as a button an option shows its `start` and its label; its hint, `end` and `details` are not drawn.
1919
+ * An option with the `hidden` attribute is left out of its group.
1920
+ *
1921
+ * ## Attributes & Properties
1922
+ *
1923
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1924
+ *
1925
+ * - `value`/`undefined`: The value the group takes when the option is chosen; `on` by default.
1926
+ * - `hint`/`undefined`: Help text under the label.
1927
+ * - `disabled`/`undefined`: Disables the option.
1928
+ * - `hidden`/`undefined`: undefined
1929
+ * - `checked`: Whether the option is chosen; the group sets it. (property only) (readonly)
1930
+ * - `value`: undefined (property only)
1931
+ * - `disabled`: undefined (property only)
1932
+ *
1933
+ * ## Slots
1934
+ *
1935
+ * Areas where markup can be added to the component.
1936
+ *
1937
+ * - `(default)`: The label of the option.
1938
+ * - `start`: Content before the label, such as an icon or a logo; decoration, left out of the option's name.
1939
+ * - `end`: Content at the end of the row, such as a price or logos.
1940
+ * - `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.
1941
+ *
1942
+ * ## CSS States
1943
+ *
1944
+ * These can be used to apply styling when a component is in a given state.
1945
+ *
1946
+ * - `plain`: The group draws its options plain: the circle and the label.
1947
+ * - `outline`: The group draws each option in a frame.
1948
+ * - `segmented`: The group draws its options as segments of one track.
1949
+ * - `button`: The group draws each option as a button.
1950
+ * - `start`: The circle sits at the start of the row.
1951
+ * - `end`: The circle sits at the end of the row.
1952
+ * - `checked`: The option is chosen.
1953
+ * - `disabled`: The option or its group is disabled.
1954
+ * - `invalid`: The group is invalid.
1955
+ * - `start-content`: The option has content in its `start` slot.
1956
+ * - `details`: The option has content in its `details` slot.
1957
+ * - `focused`: The option's radio has the keyboard focus.
1958
+ */
1959
+ "swell-radio-option": Partial<
1960
+ SwellRadioOptionProps & BaseProps<SwellRadioOption> & BaseEvents
1961
+ >;
1962
+
1963
+ /**
1964
+ * A radio group: a question with one answer, chosen from its `<swell-radio-option>` children.
1965
+ * It holds the choice and takes part in its form.
1966
+ *
1967
+ * ## Attributes & Properties
1968
+ *
1969
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
1970
+ *
1971
+ * - `label`/`undefined`: The question. Without it, the group takes its name from its own `aria-label`.
1972
+ * - `hint`/`undefined`: Help text under the options.
1973
+ * - `error`/`undefined`: The error shown while the group is invalid.
1974
+ * - `invalid`/`undefined`: Marks the group invalid and shows the error.
1975
+ * - `name`/`undefined`: The name sent with the form.
1976
+ * - `value`/`undefined`: The value of the option chosen by default.
1977
+ * - `required`/`undefined`: The form can't be sent until an option is chosen.
1978
+ * - `disabled`/`undefined`: Disables every option.
1979
+ * - `aria-label`/`undefined`: undefined
1980
+ * - `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.
1981
+ * - `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.
1982
+ * - `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.
1983
+ * - `value`: The value of the chosen option. (property only)
1984
+ * - `name`: undefined (property only)
1985
+ * - `required`: undefined (property only)
1986
+ * - `disabled`: undefined (property only)
1987
+ * - `invalid`: undefined (property only)
1988
+ * - `form`: undefined (property only) (readonly)
1989
+ * - `validity`: undefined (property only) (readonly)
1990
+ * - `validationMessage`: undefined (property only) (readonly)
1991
+ * - `willValidate`: undefined (property only) (readonly)
1992
+ *
1993
+ * ## Events
1994
+ *
1995
+ * Events that will be emitted by the component.
1996
+ *
1997
+ * - `input`: The user chose another option.
1998
+ * - `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`.
1999
+ *
2000
+ * ## Slots
2001
+ *
2002
+ * Areas where markup can be added to the component.
2003
+ *
2004
+ * - `(default)`: The options, `<swell-radio-option>` elements.
2005
+ *
2006
+ * ## Methods
2007
+ *
2008
+ * Methods that can be called to access component functionality.
2009
+ *
2010
+ * - `checkValidity() => boolean`: undefined
2011
+ * - `reportValidity() => boolean`: undefined
2012
+ * - `formResetCallback() => void`: undefined
2013
+ * - `formDisabledCallback() => void`: undefined
2014
+ * - `formStateRestoreCallback(state: unknown) => void`: undefined
2015
+ * - `focus(options?: FocusOptions) => void`: Focuses the group's Tab stop, as a Tab into the group does.
2016
+ *
2017
+ * ## CSS States
2018
+ *
2019
+ * These can be used to apply styling when a component is in a given state.
2020
+ *
2021
+ * - `plain`: The options are drawn plain.
2022
+ * - `outline`: Each option is drawn in a frame.
2023
+ * - `segmented`: The options share a track.
2024
+ * - `button`: Each option is drawn as a button.
2025
+ */
2026
+ "swell-radio": Partial<SwellRadioProps & BaseProps<SwellRadio> & BaseEvents>;
2027
+
2028
+ /**
2029
+ * One option of a select. It lives only as a direct child of `<swell-select>`, which holds the choice.
2030
+ *
2031
+ * ## Attributes & Properties
2032
+ *
2033
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2034
+ *
2035
+ * - `value`/`undefined`: The value the select takes when the option is chosen; the option's label by default.
2036
+ * - `hint`/`undefined`: A second line under the label.
2037
+ * - `disabled`/`undefined`: Disables the option.
2038
+ * - `hidden`/`undefined`: undefined
2039
+ * - `selected`: Whether the option is chosen; the select sets it. (property only) (readonly)
2040
+ * - `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)
2041
+ * - `value`: undefined (property only)
2042
+ * - `disabled`: undefined (property only)
2043
+ *
2044
+ * ## Slots
2045
+ *
2046
+ * Areas where markup can be added to the component.
2047
+ *
2048
+ * - `(default)`: The label of the option.
2049
+ * - `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.
2050
+ *
2051
+ * ## CSS States
2052
+ *
2053
+ * These can be used to apply styling when a component is in a given state.
2054
+ *
2055
+ * - `selected`: The option is chosen.
2056
+ * - `disabled`: The option is disabled.
2057
+ * - `first`: The option is the first one on show; it draws no divider above it.
2058
+ */
2059
+ "swell-select-option": Partial<
2060
+ SwellSelectOptionProps & BaseProps<SwellSelectOption> & BaseEvents
2061
+ >;
2062
+
2063
+ /**
2064
+ * 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.
2065
+ * It holds the choice and takes part in its form.
2066
+ * 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.
2067
+ *
2068
+ * ## Attributes & Properties
2069
+ *
2070
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2071
+ *
2072
+ * - `label`/`undefined`: The label of the field. Without it, the select takes its name from its own `aria-label`.
2073
+ * - `optional`/`undefined`: A marker after the label, such as `(optional)`, in the host's language; it joins the select's name.
2074
+ * - `hint`/`undefined`: Help text under the field.
2075
+ * - `error`/`undefined`: The error shown while the select is invalid.
2076
+ * - `invalid`/`undefined`: Marks the select invalid and shows the error.
2077
+ * - `name`/`undefined`: The name sent with the form.
2078
+ * - `value`/`undefined`: The value of the option chosen by default.
2079
+ * - `placeholder`/`undefined`: Text shown while nothing is chosen.
2080
+ * - `required`/`undefined`: The form can't be sent until an option is chosen.
2081
+ * - `disabled`/`undefined`: Disables the select.
2082
+ * - `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`.
2083
+ * - `aria-label`/`undefined`: undefined
2084
+ * - `appearance`/`undefined`: How the field is drawn; the configured setting by default.
2085
+ * - `size`/`undefined`: How large the field is; `medium` by default. At `xsmall` the label sits above the field.
2086
+ * - `value`: The value of the chosen option. (property only)
2087
+ * - `name`: undefined (property only)
2088
+ * - `required`: undefined (property only)
2089
+ * - `disabled`: undefined (property only)
2090
+ * - `invalid`: undefined (property only)
2091
+ * - `form`: undefined (property only) (readonly)
2092
+ * - `validity`: undefined (property only) (readonly)
2093
+ * - `validationMessage`: undefined (property only) (readonly)
2094
+ * - `willValidate`: undefined (property only) (readonly)
2095
+ *
2096
+ * ## Events
2097
+ *
2098
+ * Events that will be emitted by the component.
2099
+ *
2100
+ * - `input`: The user chose another option.
2101
+ * - `change`: The user chose another option, after `input`.
2102
+ *
2103
+ * ## Slots
2104
+ *
2105
+ * Areas where markup can be added to the component.
2106
+ *
2107
+ * - `(default)`: The options, `<swell-select-option>` elements; a hidden one stays out of the list and the choice.
2108
+ *
2109
+ * ## Methods
2110
+ *
2111
+ * Methods that can be called to access component functionality.
2112
+ *
2113
+ * - `checkValidity() => boolean`: undefined
2114
+ * - `reportValidity() => boolean`: undefined
2115
+ * - `focus(options?: FocusOptions) => void`: undefined
2116
+ * - `formResetCallback() => void`: undefined
2117
+ * - `formDisabledCallback() => void`: undefined
2118
+ * - `formStateRestoreCallback(state: unknown) => void`: undefined
2119
+ *
2120
+ * ## CSS States
2121
+ *
2122
+ * These can be used to apply styling when a component is in a given state.
2123
+ *
2124
+ * - `outline`: The field has a border on all sides.
2125
+ * - `filled`: The field has a fill and a bottom border.
2126
+ * - `underline`: The field has a bottom border.
2127
+ * - `above`: The label sits above the field.
2128
+ * - `floating`: The label floats inside the field.
2129
+ * - `empty`: Nothing is chosen.
2130
+ * - `open`: The list is open.
2131
+ */
2132
+ "swell-select": Partial<
2133
+ SwellSelectProps & BaseProps<SwellSelect> & BaseEvents
2134
+ >;
2135
+
2136
+ /**
2137
+ * A skeleton: a shimmering bar that stands in for content while it loads, such as a delivery option's name and price.
2138
+ * 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.
2139
+ * 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>`.
2140
+ *
2141
+ * ## Attributes & Properties
2142
+ *
2143
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2144
+ *
2145
+ * - `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.
2146
+ * - `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.
2147
+ *
2148
+ * ## Slots
2149
+ *
2150
+ * Areas where markup can be added to the component.
2151
+ *
2152
+ * - `(default)`: The bars of a card.
2153
+ *
2154
+ * ## CSS States
2155
+ *
2156
+ * These can be used to apply styling when a component is in a given state.
2157
+ *
2158
+ * - `card`: The skeleton is the frame of an option card.
2159
+ */
2160
+ "swell-skeleton": Partial<
2161
+ SwellSkeletonProps & BaseProps<SwellSkeleton> & BaseEvents
2162
+ >;
2163
+
2164
+ /**
2165
+ * A status message: an error, a success or a warning.
2166
+ * Screen readers announce it when it is added after the page has loaded and when its text or type changes:
2167
+ * each message goes into a fresh visually hidden region, an alert for danger and a status otherwise.
2168
+ *
2169
+ * ## Attributes & Properties
2170
+ *
2171
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2172
+ *
2173
+ * - `type`/`undefined`: What the message means: its color, icon and how it is announced.
2174
+ * - `size`/`undefined`: How large the message is: its text, padding and icon follow the text of the size; `medium` by default.
2175
+ * - `appearance`/`undefined`: How the message is drawn; the configured setting by default. `quiet`, for a note, comes from the attribute only.
2176
+ *
2177
+ * ## Slots
2178
+ *
2179
+ * Areas where markup can be added to the component.
2180
+ *
2181
+ * - `(default)`: The message.
2182
+ * - `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.
2183
+ * - `end`: An action after the message, such as a `<swell-button size="xsmall">`; it is left out of the announcement.
2184
+ *
2185
+ * ## CSS Parts
2186
+ *
2187
+ * Custom selectors for styling elements within the component.
2188
+ *
2189
+ * - `message`: The message box.
2190
+ *
2191
+ * ## CSS States
2192
+ *
2193
+ * These can be used to apply styling when a component is in a given state.
2194
+ *
2195
+ * - `filled`: The message has its background, border and icon.
2196
+ * - `outline`: The message has its border and icon.
2197
+ * - `plain`: The message has its icon only and the font of a field error.
2198
+ * - `quiet`: The message is a note in the quiet palette, without a border or the type's icon.
2199
+ * - `end-content`: The message has content in its `end` slot: its items are centered.
2200
+ * - `typed`: The message has a known type and isn't quiet: it takes the colors of its type.
2201
+ */
2202
+ "swell-status": Partial<
2203
+ SwellStatusProps & BaseProps<SwellStatus> & BaseEvents
2204
+ >;
2205
+
2206
+ /**
2207
+ * A tab of a `<swell-tabs>` group: its label and its content, shown while it is chosen.
2208
+ * 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.
2209
+ * 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.
2210
+ *
2211
+ * ## Attributes & Properties
2212
+ *
2213
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2214
+ *
2215
+ * - `value`/`undefined`: The group's value while the tab is chosen; the label by default.
2216
+ * - `label`/`undefined`: The text of the tab or of the step's heading.
2217
+ * - `done`/`undefined`: Marks a step as done: its number becomes a check, and the line to the next step fills.
2218
+ * - `disabled`/`undefined`: The tab can't be chosen, such as a step that isn't open yet.
2219
+ * - `hidden`/`undefined`: undefined
2220
+ * - `value`: undefined (property only)
2221
+ * - `label`: undefined (property only)
2222
+ * - `done`: undefined (property only)
2223
+ * - `disabled`: undefined (property only)
2224
+ *
2225
+ * ## Slots
2226
+ *
2227
+ * Areas where markup can be added to the component.
2228
+ *
2229
+ * - `(default)`: The content, shown while the tab is chosen.
2230
+ * - `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.
2231
+ * - `end`: Vertical steps: content beside the heading, such as a link that opens a done step or a note.
2232
+ *
2233
+ * ## CSS States
2234
+ *
2235
+ * These can be used to apply styling when a component is in a given state.
2236
+ *
2237
+ * - `selected`: The tab is chosen.
2238
+ * - `vertical`: The tab is a step of vertical steps.
2239
+ * - `last`: The tab is the last of its group, so a vertical step draws no line to a next one.
2240
+ */
2241
+ "swell-tab": Partial<SwellTabProps & BaseProps<SwellTab> & BaseEvents>;
2242
+
2243
+ /**
2244
+ * Tabs: a set of `<swell-tab>` children, one of them chosen, with its content shown.
2245
+ * 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.
2246
+ * Vertical steps draw no tab list: each step is a heading with a button that opens it, and Tab moves between the buttons.
2247
+ *
2248
+ * ## Attributes & Properties
2249
+ *
2250
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2251
+ *
2252
+ * - `value`/`undefined`: The value of the chosen tab; the first tab that isn't disabled by default.
2253
+ * - `aria-label`/`undefined`: undefined
2254
+ * - `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.
2255
+ * - `level`/`undefined`: The heading level of vertical steps, 1 to 6; 2 by default.
2256
+ * - `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.
2257
+ * - `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.
2258
+ * - `size`/`undefined`: How large the tabs are: they take the height and the text of a control of the size; `medium` by default.
2259
+ * - `value`: The value of the chosen tab. (property only)
2260
+ *
2261
+ * ## Events
2262
+ *
2263
+ * Events that will be emitted by the component.
2264
+ *
2265
+ * - `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.
2266
+ * - `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.
2267
+ *
2268
+ * ## Slots
2269
+ *
2270
+ * Areas where markup can be added to the component.
2271
+ *
2272
+ * - `(default)`: The tabs, `<swell-tab>` elements.
2273
+ *
2274
+ * ## CSS States
2275
+ *
2276
+ * These can be used to apply styling when a component is in a given state.
2277
+ *
2278
+ * - `underline`: A line marks the chosen tab.
2279
+ * - `segmented`: The tabs share a track.
2280
+ * - `steps`: The tabs are numbered steps.
2281
+ * - `vertical`: The steps stand one under another.
2282
+ */
2283
+ "swell-tabs": Partial<SwellTabsProps & BaseProps<SwellTabs> & BaseEvents>;
2284
+
2285
+ /**
2286
+ * Text: a title, a heading, a subheading, strong text, body text, a caption, a footnote or an eyebrow.
2287
+ *
2288
+ * ## Attributes & Properties
2289
+ *
2290
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2291
+ *
2292
+ * - `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.
2293
+ * - `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.
2294
+ * - `type`/`undefined`: What the text is; body text by default. An eyebrow is uppercase.
2295
+ *
2296
+ * ## Slots
2297
+ *
2298
+ * Areas where markup can be added to the component.
2299
+ *
2300
+ * - `(default)`: The text.
2301
+ */
2302
+ "swell-text": Partial<SwellTextProps & BaseProps<SwellText> & BaseEvents>;
2303
+
2304
+ /**
2305
+ * A text field for several lines: a native textarea with its label, hint and error, rendered into light DOM.
2306
+ * Enter adds a line; the field grows only when the user drags its corner.
2307
+ *
2308
+ * ## Attributes & Properties
2309
+ *
2310
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2311
+ *
2312
+ * - `label`/`undefined`: The label of the field.
2313
+ * - `optional`/`undefined`: A marker after the label, such as `(optional)`, in the host's language; it joins the field's name.
2314
+ * - `hint`/`undefined`: Help text under the field.
2315
+ * - `error`/`undefined`: The error shown while the field is invalid.
2316
+ * - `invalid`/`undefined`: Marks the field invalid and shows the error.
2317
+ * - `value`/`undefined`: The default value.
2318
+ * - `appearance`/`undefined`: How the field is drawn; the configured setting by default.
2319
+ * - `size`/`undefined`: How large the field is; `medium` by default. At `xsmall` the label sits above the field.
2320
+ * - `disabled`/`undefined`: Disables the field.
2321
+ * - `readonly`/`undefined`: Makes the field read-only.
2322
+ * - `required`/`undefined`: Makes the field required.
2323
+ * - `name`/`undefined`: The name sent with the form.
2324
+ * - `placeholder`/`undefined`: Text shown while the field is empty.
2325
+ * - `autocomplete`/`undefined`: The autofill hint of the native textarea.
2326
+ * - `minlength`/`undefined`: The shortest allowed value.
2327
+ * - `maxlength`/`undefined`: The longest allowed value.
2328
+ * - `rows`/`undefined`: The visible lines; 2 by default.
2329
+ * - `value`: The current value of the field. (property only)
2330
+ * - `disabled`: undefined (property only)
2331
+ * - `required`: undefined (property only)
2332
+ * - `readOnly`: undefined (property only)
2333
+ * - `invalid`: undefined (property only)
2334
+ * - `name`: undefined (property only)
2335
+ *
2336
+ * ## Events
2337
+ *
2338
+ * Events that will be emitted by the component.
2339
+ *
2340
+ * - `input`: The value changes as the user types; it bubbles from the native textarea.
2341
+ * - `change`: The user commits a new value; it bubbles from the native textarea.
2342
+ *
2343
+ * ## Slots
2344
+ *
2345
+ * Areas where markup can be added to the component.
2346
+ *
2347
+ * - `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.
2348
+ *
2349
+ * ## Methods
2350
+ *
2351
+ * Methods that can be called to access component functionality.
2352
+ *
2353
+ * - `attributesOf(passed: string[], own: string[] = []) => string[]`: Every attribute a text field observes, for the subclass's `observedAttributes`.
2354
+ * - `focus(options?: FocusOptions) => void`: undefined
2355
+ *
2356
+ * ## CSS Parts
2357
+ *
2358
+ * Custom selectors for styling elements within the component.
2359
+ *
2360
+ * - `frame`: The box that draws the field around the native textarea.
2361
+ *
2362
+ * ## CSS States
2363
+ *
2364
+ * These can be used to apply styling when a component is in a given state.
2365
+ *
2366
+ * - `outline`: The field has a border on all sides.
2367
+ * - `filled`: The field has a fill and a bottom border.
2368
+ * - `underline`: The field has a bottom border.
2369
+ * - `above`: The label sits above the field.
2370
+ * - `floating`: The label floats inside the field.
2371
+ */
2372
+ "swell-textarea": Partial<
2373
+ SwellTextareaProps & BaseProps<SwellTextarea> & BaseEvents
2374
+ >;
2375
+
2376
+ /**
2377
+ * 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.
2378
+ * 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.
2379
+ * `aria-hidden="true"` and `role="img"` count as the kit's; any other value is the host's and stays.
2380
+ *
2381
+ * ## Attributes & Properties
2382
+ *
2383
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2384
+ *
2385
+ * - `aria-label`/`undefined`: undefined
2386
+ * - `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.
2387
+ * - `size`/`undefined`: How large the box is: the height of a control of the size; `medium` by default.
2388
+ * - `shape`/`undefined`: Rounds the box fully, as for an avatar.
2389
+ *
2390
+ * ## Slots
2391
+ *
2392
+ * Areas where markup can be added to the component.
2393
+ *
2394
+ * - `(default)`: An `<img>`, which covers the box, an svg icon, or initials.
2395
+ * - `badge`: A `<swell-badge>` over the top end corner, such as the quantity of a cart line.
2396
+ */
2397
+ "swell-thumbnail": Partial<
2398
+ SwellThumbnailProps & BaseProps<SwellThumbnail> & BaseEvents
2399
+ >;
2400
+
2401
+ /**
2402
+ * An area of the page with token values of its own, such as an order summary in the colors of the brand.
2403
+ * 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.
2404
+ * The element keeps the layout of its content: it renders nothing of its own.
2405
+ *
2406
+ * ## Attributes & Properties
2407
+ *
2408
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2409
+ *
2410
+ * - `config`/`undefined`: The id of the area's configuration. An id without a configuration yet applies once the host registers one.
2411
+ */
2412
+ "swell-ui": Partial<SwellUiProps & BaseProps<SwellUi> & BaseEvents>;
2413
+ };
2414
+
2415
+ export type CustomElementsSolidJs = {
2416
+ /**
2417
+ * A badge: a short label or a count, such as a subscription's interval, a discount or a quantity.
2418
+ * 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.
2419
+ *
2420
+ * ## Attributes & Properties
2421
+ *
2422
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2423
+ *
2424
+ * - `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.
2425
+ * - `appearance`/`undefined`: How the badge is drawn; the configured setting by default.
2426
+ * - `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.
2427
+ *
2428
+ * ## Slots
2429
+ *
2430
+ * Areas where markup can be added to the component.
2431
+ *
2432
+ * - `(default)`: The label.
2433
+ * - `start`: An icon before the label, drawn 1px larger than the text.
2434
+ *
2435
+ * ## CSS States
2436
+ *
2437
+ * These can be used to apply styling when a component is in a given state.
2438
+ *
2439
+ * - `filled`: The badge is filled.
2440
+ * - `outline`: The badge has an outline.
2441
+ */
2442
+ "swell-badge": Partial<
2443
+ SwellBadgeProps &
2444
+ SwellBadgeSolidJsProps &
2445
+ BaseProps<SwellBadge> &
2446
+ BaseEvents
2447
+ >;
2448
+
2449
+ /**
2450
+ * A button. It submits or resets the form it belongs to, like a native button.
2451
+ * 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`.
2452
+ * `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.
2453
+ *
2454
+ * While `loading`, the button shows a spinner in place of its `start` content, hides its `end` content and ignores clicks; it keeps its focus.
2455
+ * 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.
2456
+ *
2457
+ * ## Attributes & Properties
2458
+ *
2459
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2460
+ *
2461
+ * - `disabled`/`undefined`: Removes the button from the tab order and ignores clicks.
2462
+ * - `loading`/`undefined`: Shows a spinner, marks the button busy and ignores clicks; the button stays in the tab order.
2463
+ * - `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.
2464
+ * - `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.
2465
+ * - `appearance`/`undefined`: How the button is drawn; the variant's setting by default.
2466
+ * - `size`/`undefined`: How large the button is; `medium` by default. `xsmall` fits an action inside a status message.
2467
+ * - `shape`/`undefined`: Rounds the corners fully, in every variant, appearance and size, whatever the corner radius of the host's buttons.
2468
+ * - `href`/`undefined`: Where the button leads; with it the element is a link, named by its own `aria-label`, or else by its content.
2469
+ * - `target`/`undefined`: Where to open the link.
2470
+ * - `rel`/`undefined`: How the link's target relates to the page.
2471
+ * - `type`/`undefined`: What the button does in a form; `submit` by default.
2472
+ * - `disabled`: undefined (property only)
2473
+ * - `loading`: undefined (property only)
2474
+ * - `success`: undefined (property only)
2475
+ * - `type`: undefined (property only)
2476
+ *
2477
+ * ## Slots
2478
+ *
2479
+ * Areas where markup can be added to the component.
2480
+ *
2481
+ * - `(default)`: The label of the button.
2482
+ * - `start`: An icon before the label, drawn 4px larger than the text.
2483
+ * - `end`: An icon after the label, drawn 4px larger than the text; it moves toward the end on hover.
2484
+ *
2485
+ * ## Methods
2486
+ *
2487
+ * Methods that can be called to access component functionality.
2488
+ *
2489
+ * - `shake() => void`: Shakes the button, as after a failed attempt to submit; each call starts the shake again.
2490
+ * - `formDisabledCallback(disabled: boolean) => void`: undefined
2491
+ * - `focus(options?: FocusOptions) => void`: Focuses the anchor with `href`, and the button itself without it.
2492
+ *
2493
+ * ## CSS States
2494
+ *
2495
+ * These can be used to apply styling when a component is in a given state.
2496
+ *
2497
+ * - `filled`: The button is filled.
2498
+ * - `outline`: The button has an outline.
2499
+ * - `plain`: The button has neither a fill nor a border at rest; under the pointer it takes the quiet fill.
2500
+ */
2501
+ "swell-button": Partial<
2502
+ SwellButtonProps &
2503
+ SwellButtonSolidJsProps &
2504
+ BaseProps<SwellButton> &
2505
+ BaseEvents
2506
+ >;
2507
+
2508
+ /**
2509
+ * A card: a box that groups content, such as the details of an order or a note under a choice.
2510
+ *
2511
+ * ## Attributes & Properties
2512
+ *
2513
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2514
+ *
2515
+ * - `appearance`/`undefined`: How the card is drawn: with a border, or filled with the quiet background; the configured setting by default.
2516
+ * - `size`/`undefined`: How large the padding is: it follows the text of the size; `medium` by default.
2517
+ *
2518
+ * ## Slots
2519
+ *
2520
+ * Areas where markup can be added to the component.
2521
+ *
2522
+ * - `(default)`: The content.
2523
+ *
2524
+ * ## CSS States
2525
+ *
2526
+ * These can be used to apply styling when a component is in a given state.
2527
+ *
2528
+ * - `outline`: The card has a border.
2529
+ * - `filled`: The card is filled.
2530
+ */
2531
+ "swell-card": Partial<
2532
+ SwellCardProps & SwellCardSolidJsProps & BaseProps<SwellCard> & BaseEvents
2533
+ >;
2534
+
2535
+ /**
2536
+ * A checkbox: a native checkbox with its label, hint and error, rendered into light DOM.
2537
+ *
2538
+ * ## Attributes & Properties
2539
+ *
2540
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2541
+ *
2542
+ * - `label`/`undefined`: The label beside the box.
2543
+ * - `hint`/`undefined`: Help text under the checkbox.
2544
+ * - `error`/`undefined`: The error shown while the checkbox is invalid.
2545
+ * - `invalid`/`undefined`: Marks the checkbox invalid and shows the error.
2546
+ * - `checked`/`undefined`: The default state.
2547
+ * - `value`/`undefined`: The value sent with the form; `on` by default.
2548
+ * - `disabled`/`undefined`: Disables the checkbox.
2549
+ * - `required`/`undefined`: Makes the checkbox required.
2550
+ * - `name`/`undefined`: The name sent with the form.
2551
+ * - `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.
2552
+ * - `checked`: Whether the box is checked now. (property only)
2553
+ * - `value`: The value sent with the form. (property only)
2554
+ * - `disabled`: undefined (property only)
2555
+ * - `required`: undefined (property only)
2556
+ * - `invalid`: undefined (property only)
2557
+ * - `name`: undefined (property only)
2558
+ *
2559
+ * ## Events
2560
+ *
2561
+ * Events that will be emitted by the component.
2562
+ *
2563
+ * - `change`: The user checks or unchecks the box; it bubbles from the native input.
2564
+ *
2565
+ * ## Methods
2566
+ *
2567
+ * Methods that can be called to access component functionality.
2568
+ *
2569
+ * - `focus(options?: FocusOptions) => void`: undefined
2570
+ */
2571
+ "swell-checkbox": Partial<
2572
+ SwellCheckboxProps &
2573
+ SwellCheckboxSolidJsProps &
2574
+ BaseProps<SwellCheckbox> &
2575
+ BaseEvents
2576
+ >;
2577
+
2578
+ /**
2579
+ * A chip: a short value the shopper can remove, such as an applied discount code or gift card.
2580
+ * Its remove button fires `remove`; the host removes the chip and moves the focus, for example to the code field.
2581
+ * 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.
2582
+ *
2583
+ * ## Attributes & Properties
2584
+ *
2585
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2586
+ *
2587
+ * - `disabled`/`undefined`: Disables the remove button.
2588
+ * - `remove-label`/`undefined`: The name of the remove button in the host's language, such as `Remove WELCOME10`; every chip needs one.
2589
+ * - `size`/`undefined`: How large the chip is; `medium` by default. Its remove button is as high as the chip, at least 24px.
2590
+ * - `disabled`: undefined (property only)
2591
+ *
2592
+ * ## Events
2593
+ *
2594
+ * Events that will be emitted by the component.
2595
+ *
2596
+ * - `remove`: The shopper pressed the remove button; it bubbles, and the chip stays in the page. A disabled chip fires none.
2597
+ *
2598
+ * ## Slots
2599
+ *
2600
+ * Areas where markup can be added to the component.
2601
+ *
2602
+ * - `(default)`: The value.
2603
+ * - `start`: An icon before the value, drawn 2px larger than the text.
2604
+ *
2605
+ * ## Methods
2606
+ *
2607
+ * Methods that can be called to access component functionality.
2608
+ *
2609
+ * - `formDisabledCallback() => void`: undefined
2610
+ * - `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.
2611
+ *
2612
+ * ## CSS Parts
2613
+ *
2614
+ * Custom selectors for styling elements within the component.
2615
+ *
2616
+ * - `remove`: The remove button.
2617
+ */
2618
+ "swell-chip": Partial<
2619
+ SwellChipProps & SwellChipSolidJsProps & BaseProps<SwellChip> & BaseEvents
2620
+ >;
2621
+
2622
+ /**
2623
+ * A disclosure: content that stays hidden until the shopper presses its trigger, such as "Add apartment, suite, etc." and the field it reveals.
2624
+ * The trigger opens it and leaves; the focus moves to the first control of the content.
2625
+ * 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.
2626
+ * 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.
2627
+ * 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.
2628
+ *
2629
+ * ## Attributes & Properties
2630
+ *
2631
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2632
+ *
2633
+ * - `open`/`undefined`: Shows the content and hides the trigger. Set on connect, the content shows at once.
2634
+ * - `toggle`/`undefined`: Keeps the trigger while the content is open: it closes the content too and carries `aria-expanded`.
2635
+ * - `open`: undefined (property only)
2636
+ *
2637
+ * ## Events
2638
+ *
2639
+ * Events that will be emitted by the component.
2640
+ *
2641
+ * - `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.
2642
+ *
2643
+ * ## Slots
2644
+ *
2645
+ * Areas where markup can be added to the component.
2646
+ *
2647
+ * - `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.
2648
+ * - `(default)`: The content.
2649
+ *
2650
+ * ## CSS Parts
2651
+ *
2652
+ * Custom selectors for styling elements within the component.
2653
+ *
2654
+ * - `content`: The box that expands to show the content.
2655
+ *
2656
+ * ## CSS States
2657
+ *
2658
+ * These can be used to apply styling when a component is in a given state.
2659
+ *
2660
+ * - `closing`: The content collapses; the trigger is back, out of the flow and invisible until it ends.
2661
+ */
2662
+ "swell-disclosure": Partial<
2663
+ SwellDisclosureProps &
2664
+ SwellDisclosureSolidJsProps &
2665
+ BaseProps<SwellDisclosure> &
2666
+ BaseEvents
2667
+ >;
2668
+
2669
+ /**
2670
+ * A divider: a line across its width, or two lines with a label between them, such as "or pay another way".
2671
+ * Without a label it is a separator for screen readers; with one, they read the label and skip the lines.
2672
+ * The host sets the space around it.
2673
+ *
2674
+ * ## Slots
2675
+ *
2676
+ * Areas where markup can be added to the component.
2677
+ *
2678
+ * - `(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.
2679
+ */
2680
+ "swell-divider": Partial<
2681
+ SwellDividerProps &
2682
+ SwellDividerSolidJsProps &
2683
+ BaseProps<SwellDivider> &
2684
+ BaseEvents
2685
+ >;
2686
+
2687
+ /**
2688
+ * A link. With `href`, its anchor lives in the shadow root and takes the focus for the element.
2689
+ *
2690
+ * 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.
2691
+ * Its own `aria-label`, `aria-expanded` and `aria-controls` name and describe that button, so it can open a popover or a disclosure.
2692
+ * `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.
2693
+ *
2694
+ * ## Attributes & Properties
2695
+ *
2696
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2697
+ *
2698
+ * - `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.
2699
+ * - `target`/`undefined`: Where to open the link.
2700
+ * - `rel`/`undefined`: How the target relates to the page.
2701
+ * - `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.
2702
+ * - `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.
2703
+ * - `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.
2704
+ *
2705
+ * ## Slots
2706
+ *
2707
+ * Areas where markup can be added to the component.
2708
+ *
2709
+ * - `(default)`: The text of the link.
2710
+ * - `start`: An icon before the text, 2px larger than it.
2711
+ * - `end`: An icon after the text, 2px larger than it.
2712
+ *
2713
+ * ## Methods
2714
+ *
2715
+ * Methods that can be called to access component functionality.
2716
+ *
2717
+ * - `focus(options?: FocusOptions) => void`: Focuses the anchor with `href`, and the element itself without it.
2718
+ *
2719
+ * ## CSS Parts
2720
+ *
2721
+ * Custom selectors for styling elements within the component.
2722
+ *
2723
+ * - `link`: The anchor, or the content of the button without `href`.
2724
+ *
2725
+ * ## CSS States
2726
+ *
2727
+ * These can be used to apply styling when a component is in a given state.
2728
+ *
2729
+ * - `plain`: The link is plain.
2730
+ * - `start-content`: The link has content in its `start` slot.
2731
+ * - `end-content`: The link has content in its `end` slot.
2732
+ */
2733
+ "swell-link": Partial<
2734
+ SwellLinkProps & SwellLinkSolidJsProps & BaseProps<SwellLink> & BaseEvents
2735
+ >;
2736
+
2737
+ /**
2738
+ * A text field: a native input with its label, hint and error, rendered into light DOM.
2739
+ *
2740
+ * ## Attributes & Properties
2741
+ *
2742
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2743
+ *
2744
+ * - `label`/`undefined`: The label of the field.
2745
+ * - `optional`/`undefined`: A marker after the label, such as `(optional)`, in the host's language; it joins the field's name.
2746
+ * - `hint`/`undefined`: Help text under the field.
2747
+ * - `error`/`undefined`: The error shown while the field is invalid.
2748
+ * - `invalid`/`undefined`: Marks the field invalid and shows the error.
2749
+ * - `value`/`undefined`: The default value.
2750
+ * - `type`/`undefined`: The kind of value; `text` by default.
2751
+ * - `appearance`/`undefined`: How the field is drawn; the configured setting by default.
2752
+ * - `size`/`undefined`: How large the field is; `medium` by default. At `xsmall` the label sits above the field.
2753
+ * - `disabled`/`undefined`: Disables the field.
2754
+ * - `readonly`/`undefined`: Makes the field read-only.
2755
+ * - `required`/`undefined`: Makes the field required.
2756
+ * - `name`/`undefined`: The name sent with the form.
2757
+ * - `placeholder`/`undefined`: Text shown while the field is empty.
2758
+ * - `autocomplete`/`undefined`: The autofill hint of the native input.
2759
+ * - `inputmode`/`undefined`: The virtual keyboard to show.
2760
+ * - `minlength`/`undefined`: The shortest allowed value.
2761
+ * - `maxlength`/`undefined`: The longest allowed value.
2762
+ * - `pattern`/`undefined`: The pattern the value matches.
2763
+ * - `min`/`undefined`: The smallest allowed value.
2764
+ * - `max`/`undefined`: The largest allowed value.
2765
+ * - `step`/`undefined`: The step between allowed values.
2766
+ * - `value`: The current value of the field. (property only)
2767
+ * - `disabled`: undefined (property only)
2768
+ * - `required`: undefined (property only)
2769
+ * - `readOnly`: undefined (property only)
2770
+ * - `invalid`: undefined (property only)
2771
+ * - `name`: undefined (property only)
2772
+ *
2773
+ * ## Events
2774
+ *
2775
+ * Events that will be emitted by the component.
2776
+ *
2777
+ * - `input`: The value changes as the user types; it bubbles from the native input.
2778
+ * - `change`: The user commits a new value; it bubbles from the native input.
2779
+ *
2780
+ * ## Slots
2781
+ *
2782
+ * Areas where markup can be added to the component.
2783
+ *
2784
+ * - `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.
2785
+ * - `start`: Content before the text, such as an icon; an svg is drawn 4px larger than the text, in the quiet color.
2786
+ * - `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.
2787
+ *
2788
+ * ## Methods
2789
+ *
2790
+ * Methods that can be called to access component functionality.
2791
+ *
2792
+ * - `attributesOf(passed: string[], own: string[] = []) => string[]`: Every attribute a text field observes, for the subclass's `observedAttributes`.
2793
+ * - `focus(options?: FocusOptions) => void`: undefined
2794
+ *
2795
+ * ## CSS Parts
2796
+ *
2797
+ * Custom selectors for styling elements within the component.
2798
+ *
2799
+ * - `frame`: The box that draws the field around the native input, its start and its end.
2800
+ * - `start`: The box of the start content.
2801
+ * - `end`: The box of the end content.
2802
+ *
2803
+ * ## CSS States
2804
+ *
2805
+ * These can be used to apply styling when a component is in a given state.
2806
+ *
2807
+ * - `outline`: The field has a border on all sides.
2808
+ * - `filled`: The field has a fill and a bottom border.
2809
+ * - `underline`: The field has a bottom border.
2810
+ * - `above`: The label sits above the field.
2811
+ * - `floating`: The label floats inside the field.
2812
+ */
2813
+ "swell-input": Partial<
2814
+ SwellInputProps &
2815
+ SwellInputSolidJsProps &
2816
+ BaseProps<SwellInput> &
2817
+ BaseEvents
2818
+ >;
2819
+
2820
+ /**
2821
+ * 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.
2822
+ *
2823
+ * ## Slots
2824
+ *
2825
+ * Areas where markup can be added to the component.
2826
+ *
2827
+ * - `(default)`: The suggestions, `<swell-lookup-option>` elements.
2828
+ */
2829
+ "swell-lookup-list": Partial<
2830
+ SwellLookupListProps &
2831
+ SwellLookupListSolidJsProps &
2832
+ BaseProps<SwellLookupList> &
2833
+ BaseEvents
2834
+ >;
2835
+
2836
+ /**
2837
+ * One suggestion of a lookup. It lives only as a child of `<swell-lookup-list>`.
2838
+ * 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.
2839
+ *
2840
+ * ## Attributes & Properties
2841
+ *
2842
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2843
+ *
2844
+ * - `value`/`undefined`: The value of the suggestion, such as the id of a place; the label by default.
2845
+ * - `hint`/`undefined`: A second line under the label.
2846
+ * - `disabled`/`undefined`: Disables the suggestion.
2847
+ * - `hidden`/`undefined`: undefined
2848
+ * - `selected`: Whether the option is chosen; the select sets it. (property only) (readonly)
2849
+ * - `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)
2850
+ * - `value`: undefined (property only)
2851
+ * - `disabled`: undefined (property only)
2852
+ *
2853
+ * ## Slots
2854
+ *
2855
+ * Areas where markup can be added to the component.
2856
+ *
2857
+ * - `(default)`: The label of the suggestion; the field writes its text into the input when it is chosen.
2858
+ * - `start`: Content before the label, such as an icon.
2859
+ *
2860
+ * ## CSS States
2861
+ *
2862
+ * These can be used to apply styling when a component is in a given state.
2863
+ *
2864
+ * - `focused`: The field's keyboard points at the suggestion.
2865
+ * - `disabled`: The suggestion is disabled.
2866
+ * - `first`: The option is the first one on show; it draws no divider above it.
2867
+ */
2868
+ "swell-lookup-option": Partial<
2869
+ SwellLookupOptionProps &
2870
+ SwellLookupOptionSolidJsProps &
2871
+ BaseProps<SwellLookupOption> &
2872
+ BaseEvents
2873
+ >;
2874
+
2875
+ /**
2876
+ * A text field with suggestions: a combobox in ARIA terms. The host loads the suggestions, such as addresses,
2877
+ * and puts them into a `<swell-lookup-list>` child as `<swell-lookup-option>` elements; the field shows them under itself.
2878
+ * It is a `<swell-input>` in everything else: its native input stays in light DOM, so autofill works as in any field.
2879
+ *
2880
+ * 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.
2881
+ * Choosing a suggestion clicks it. After the click, unless a handler prevented its default, the field writes the suggestion's label
2882
+ * into the input and fires `input`, with `inputType` `insertReplacementText`, and `change`; the list stays closed until the user types again.
2883
+ *
2884
+ * ## Attributes & Properties
2885
+ *
2886
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2887
+ *
2888
+ * - `label`/`undefined`: The label of the field.
2889
+ * - `optional`/`undefined`: A marker after the label, such as `(optional)`, in the host's language; it joins the field's name.
2890
+ * - `hint`/`undefined`: Help text under the field.
2891
+ * - `error`/`undefined`: The error shown while the field is invalid.
2892
+ * - `invalid`/`undefined`: Marks the field invalid and shows the error.
2893
+ * - `value`/`undefined`: The default value.
2894
+ * - `type`/`undefined`: The kind of value; `text` by default.
2895
+ * - `appearance`/`undefined`: How the field is drawn; the configured setting by default.
2896
+ * - `size`/`undefined`: How large the field is; `medium` by default. At `xsmall` the label sits above the field.
2897
+ * - `disabled`/`undefined`: Disables the field.
2898
+ * - `readonly`/`undefined`: Makes the field read-only.
2899
+ * - `required`/`undefined`: Makes the field required.
2900
+ * - `name`/`undefined`: The name sent with the form.
2901
+ * - `placeholder`/`undefined`: Text shown while the field is empty.
2902
+ * - `autocomplete`/`undefined`: The autofill hint of the native input.
2903
+ * - `inputmode`/`undefined`: The virtual keyboard to show.
2904
+ * - `minlength`/`undefined`: The shortest allowed value.
2905
+ * - `maxlength`/`undefined`: The longest allowed value.
2906
+ * - `pattern`/`undefined`: The pattern the value matches.
2907
+ * - `min`/`undefined`: The smallest allowed value.
2908
+ * - `max`/`undefined`: The largest allowed value.
2909
+ * - `step`/`undefined`: The step between allowed values.
2910
+ * - `value`: The current value of the field. (property only)
2911
+ * - `disabled`: undefined (property only)
2912
+ * - `required`: undefined (property only)
2913
+ * - `readOnly`: undefined (property only)
2914
+ * - `invalid`: undefined (property only)
2915
+ * - `name`: undefined (property only)
2916
+ *
2917
+ * ## Events
2918
+ *
2919
+ * Events that will be emitted by the component.
2920
+ *
2921
+ * - `input`: The value changes as the user types; it bubbles from the native input.
2922
+ * - `change`: The user commits a new value; it bubbles from the native input.
2923
+ *
2924
+ * ## Slots
2925
+ *
2926
+ * Areas where markup can be added to the component.
2927
+ *
2928
+ * - `(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.
2929
+ * - `hint`: Help content under the field in place of the `hint` text, as on an input.
2930
+ * - `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.
2931
+ * - `start`: Content before the text, such as an icon; an svg is drawn 4px larger than the text, in the quiet color.
2932
+ * - `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.
2933
+ *
2934
+ * ## Methods
2935
+ *
2936
+ * Methods that can be called to access component functionality.
2937
+ *
2938
+ * - `attributesOf(passed: string[], own: string[] = []) => string[]`: Every attribute a text field observes, for the subclass's `observedAttributes`.
2939
+ * - `focus(options?: FocusOptions) => void`: undefined
2940
+ *
2941
+ * ## CSS Parts
2942
+ *
2943
+ * Custom selectors for styling elements within the component.
2944
+ *
2945
+ * - `list`: The popup that holds the list and the action.
2946
+ * - `frame`: The box that draws the field around the native input, its start and its end.
2947
+ * - `start`: The box of the start content.
2948
+ * - `end`: The box of the end content.
2949
+ *
2950
+ * ## CSS States
2951
+ *
2952
+ * These can be used to apply styling when a component is in a given state.
2953
+ *
2954
+ * - `outline`: The field has a border on all sides.
2955
+ * - `filled`: The field has a fill and a bottom border.
2956
+ * - `underline`: The field has a bottom border.
2957
+ * - `above`: The label sits above the field.
2958
+ * - `floating`: The label floats inside the field.
2959
+ */
2960
+ "swell-lookup": Partial<
2961
+ SwellLookupProps &
2962
+ SwellLookupSolidJsProps &
2963
+ BaseProps<SwellLookup> &
2964
+ BaseEvents
2965
+ >;
2966
+
2967
+ /**
2968
+ * A popover: a small dialog that floats at the host's trigger, such as the language and currency picker of a checkout.
2969
+ * 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;
2970
+ * a press outside it and the focus leaving it close it too. A choice inside keeps it open.
2971
+ * 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.
2972
+ * Its content sets its width, at least the trigger's and at most the window's less 16px.
2973
+ * Name it with `aria-label`, such as `Language and currency`.
2974
+ *
2975
+ * ## Attributes & Properties
2976
+ *
2977
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
2978
+ *
2979
+ * - `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.
2980
+ * - `aria-label`/`undefined`: undefined
2981
+ * - `open`: undefined (property only)
2982
+ *
2983
+ * ## Events
2984
+ *
2985
+ * Events that will be emitted by the component.
2986
+ *
2987
+ * - `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.
2988
+ *
2989
+ * ## Slots
2990
+ *
2991
+ * Areas where markup can be added to the component.
2992
+ *
2993
+ * - `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.
2994
+ * - `(default)`: The content of the panel.
2995
+ *
2996
+ * ## CSS Parts
2997
+ *
2998
+ * Custom selectors for styling elements within the component.
2999
+ *
3000
+ * - `panel`: The floating panel.
3001
+ */
3002
+ "swell-popover": Partial<
3003
+ SwellPopoverProps &
3004
+ SwellPopoverSolidJsProps &
3005
+ BaseProps<SwellPopover> &
3006
+ BaseEvents
3007
+ >;
3008
+
3009
+ /**
3010
+ * 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.
3011
+ * 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`.
3012
+ * Name it with `aria-label`, such as `Quantity, House Blend`, or with `aria-labelledby`. It holds the count and takes part in its form.
3013
+ * 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.
3014
+ *
3015
+ * ## Attributes & Properties
3016
+ *
3017
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3018
+ *
3019
+ * - `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.
3020
+ * - `min`/`undefined`: The least count, a whole number; 1 by default.
3021
+ * - `max`/`undefined`: The greatest count, a whole number; no limit by default. A `max` below `min` counts as `min`.
3022
+ * - `step`/`undefined`: How much each step changes the count, a whole number above 0; 1 by default.
3023
+ * - `disabled`/`undefined`: Removes the quantity from the tab order and ignores steps.
3024
+ * - `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.
3025
+ * - `name`/`undefined`: The name sent with the form.
3026
+ * - `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`.
3027
+ * - `value`: The count now. (property only)
3028
+ * - `name`: undefined (property only)
3029
+ * - `disabled`: undefined (property only)
3030
+ * - `busy`: undefined (property only)
3031
+ * - `form`: undefined (property only) (readonly)
3032
+ *
3033
+ * ## Events
3034
+ *
3035
+ * Events that will be emitted by the component.
3036
+ *
3037
+ * - `input`: The user changed the count.
3038
+ * - `change`: The user changed the count, after `input`.
3039
+ *
3040
+ * ## Methods
3041
+ *
3042
+ * Methods that can be called to access component functionality.
3043
+ *
3044
+ * - `formResetCallback() => void`: undefined
3045
+ * - `formDisabledCallback(disabled: boolean) => void`: undefined
3046
+ * - `formStateRestoreCallback(state: unknown) => void`: undefined
3047
+ */
3048
+ "swell-quantity": Partial<
3049
+ SwellQuantityProps &
3050
+ SwellQuantitySolidJsProps &
3051
+ BaseProps<SwellQuantity> &
3052
+ BaseEvents
3053
+ >;
3054
+
3055
+ /**
3056
+ * One option of a radio group. It lives only as a direct child of `<swell-radio>`, which holds the choice.
3057
+ * In a segmented group and as a button an option shows its `start` and its label; its hint, `end` and `details` are not drawn.
3058
+ * An option with the `hidden` attribute is left out of its group.
3059
+ *
3060
+ * ## Attributes & Properties
3061
+ *
3062
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3063
+ *
3064
+ * - `value`/`undefined`: The value the group takes when the option is chosen; `on` by default.
3065
+ * - `hint`/`undefined`: Help text under the label.
3066
+ * - `disabled`/`undefined`: Disables the option.
3067
+ * - `hidden`/`undefined`: undefined
3068
+ * - `checked`: Whether the option is chosen; the group sets it. (property only) (readonly)
3069
+ * - `value`: undefined (property only)
3070
+ * - `disabled`: undefined (property only)
3071
+ *
3072
+ * ## Slots
3073
+ *
3074
+ * Areas where markup can be added to the component.
3075
+ *
3076
+ * - `(default)`: The label of the option.
3077
+ * - `start`: Content before the label, such as an icon or a logo; decoration, left out of the option's name.
3078
+ * - `end`: Content at the end of the row, such as a price or logos.
3079
+ * - `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.
3080
+ *
3081
+ * ## CSS States
3082
+ *
3083
+ * These can be used to apply styling when a component is in a given state.
3084
+ *
3085
+ * - `plain`: The group draws its options plain: the circle and the label.
3086
+ * - `outline`: The group draws each option in a frame.
3087
+ * - `segmented`: The group draws its options as segments of one track.
3088
+ * - `button`: The group draws each option as a button.
3089
+ * - `start`: The circle sits at the start of the row.
3090
+ * - `end`: The circle sits at the end of the row.
3091
+ * - `checked`: The option is chosen.
3092
+ * - `disabled`: The option or its group is disabled.
3093
+ * - `invalid`: The group is invalid.
3094
+ * - `start-content`: The option has content in its `start` slot.
3095
+ * - `details`: The option has content in its `details` slot.
3096
+ * - `focused`: The option's radio has the keyboard focus.
3097
+ */
3098
+ "swell-radio-option": Partial<
3099
+ SwellRadioOptionProps &
3100
+ SwellRadioOptionSolidJsProps &
3101
+ BaseProps<SwellRadioOption> &
3102
+ BaseEvents
3103
+ >;
3104
+
3105
+ /**
3106
+ * A radio group: a question with one answer, chosen from its `<swell-radio-option>` children.
3107
+ * It holds the choice and takes part in its form.
3108
+ *
3109
+ * ## Attributes & Properties
3110
+ *
3111
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3112
+ *
3113
+ * - `label`/`undefined`: The question. Without it, the group takes its name from its own `aria-label`.
3114
+ * - `hint`/`undefined`: Help text under the options.
3115
+ * - `error`/`undefined`: The error shown while the group is invalid.
3116
+ * - `invalid`/`undefined`: Marks the group invalid and shows the error.
3117
+ * - `name`/`undefined`: The name sent with the form.
3118
+ * - `value`/`undefined`: The value of the option chosen by default.
3119
+ * - `required`/`undefined`: The form can't be sent until an option is chosen.
3120
+ * - `disabled`/`undefined`: Disables every option.
3121
+ * - `aria-label`/`undefined`: undefined
3122
+ * - `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.
3123
+ * - `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.
3124
+ * - `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.
3125
+ * - `value`: The value of the chosen option. (property only)
3126
+ * - `name`: undefined (property only)
3127
+ * - `required`: undefined (property only)
3128
+ * - `disabled`: undefined (property only)
3129
+ * - `invalid`: undefined (property only)
3130
+ * - `form`: undefined (property only) (readonly)
3131
+ * - `validity`: undefined (property only) (readonly)
3132
+ * - `validationMessage`: undefined (property only) (readonly)
3133
+ * - `willValidate`: undefined (property only) (readonly)
3134
+ *
3135
+ * ## Events
3136
+ *
3137
+ * Events that will be emitted by the component.
3138
+ *
3139
+ * - `input`: The user chose another option.
3140
+ * - `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`.
3141
+ *
3142
+ * ## Slots
3143
+ *
3144
+ * Areas where markup can be added to the component.
3145
+ *
3146
+ * - `(default)`: The options, `<swell-radio-option>` elements.
3147
+ *
3148
+ * ## Methods
3149
+ *
3150
+ * Methods that can be called to access component functionality.
3151
+ *
3152
+ * - `checkValidity() => boolean`: undefined
3153
+ * - `reportValidity() => boolean`: undefined
3154
+ * - `formResetCallback() => void`: undefined
3155
+ * - `formDisabledCallback() => void`: undefined
3156
+ * - `formStateRestoreCallback(state: unknown) => void`: undefined
3157
+ * - `focus(options?: FocusOptions) => void`: Focuses the group's Tab stop, as a Tab into the group does.
3158
+ *
3159
+ * ## CSS States
3160
+ *
3161
+ * These can be used to apply styling when a component is in a given state.
3162
+ *
3163
+ * - `plain`: The options are drawn plain.
3164
+ * - `outline`: Each option is drawn in a frame.
3165
+ * - `segmented`: The options share a track.
3166
+ * - `button`: Each option is drawn as a button.
3167
+ */
3168
+ "swell-radio": Partial<
3169
+ SwellRadioProps &
3170
+ SwellRadioSolidJsProps &
3171
+ BaseProps<SwellRadio> &
3172
+ BaseEvents
3173
+ >;
3174
+
3175
+ /**
3176
+ * One option of a select. It lives only as a direct child of `<swell-select>`, which holds the choice.
3177
+ *
3178
+ * ## Attributes & Properties
3179
+ *
3180
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3181
+ *
3182
+ * - `value`/`undefined`: The value the select takes when the option is chosen; the option's label by default.
3183
+ * - `hint`/`undefined`: A second line under the label.
3184
+ * - `disabled`/`undefined`: Disables the option.
3185
+ * - `hidden`/`undefined`: undefined
3186
+ * - `selected`: Whether the option is chosen; the select sets it. (property only) (readonly)
3187
+ * - `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)
3188
+ * - `value`: undefined (property only)
3189
+ * - `disabled`: undefined (property only)
3190
+ *
3191
+ * ## Slots
3192
+ *
3193
+ * Areas where markup can be added to the component.
3194
+ *
3195
+ * - `(default)`: The label of the option.
3196
+ * - `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.
3197
+ *
3198
+ * ## CSS States
3199
+ *
3200
+ * These can be used to apply styling when a component is in a given state.
3201
+ *
3202
+ * - `selected`: The option is chosen.
3203
+ * - `disabled`: The option is disabled.
3204
+ * - `first`: The option is the first one on show; it draws no divider above it.
3205
+ */
3206
+ "swell-select-option": Partial<
3207
+ SwellSelectOptionProps &
3208
+ SwellSelectOptionSolidJsProps &
3209
+ BaseProps<SwellSelectOption> &
3210
+ BaseEvents
3211
+ >;
3212
+
3213
+ /**
3214
+ * 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.
3215
+ * It holds the choice and takes part in its form.
3216
+ * 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.
3217
+ *
3218
+ * ## Attributes & Properties
3219
+ *
3220
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3221
+ *
3222
+ * - `label`/`undefined`: The label of the field. Without it, the select takes its name from its own `aria-label`.
3223
+ * - `optional`/`undefined`: A marker after the label, such as `(optional)`, in the host's language; it joins the select's name.
3224
+ * - `hint`/`undefined`: Help text under the field.
3225
+ * - `error`/`undefined`: The error shown while the select is invalid.
3226
+ * - `invalid`/`undefined`: Marks the select invalid and shows the error.
3227
+ * - `name`/`undefined`: The name sent with the form.
3228
+ * - `value`/`undefined`: The value of the option chosen by default.
3229
+ * - `placeholder`/`undefined`: Text shown while nothing is chosen.
3230
+ * - `required`/`undefined`: The form can't be sent until an option is chosen.
3231
+ * - `disabled`/`undefined`: Disables the select.
3232
+ * - `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`.
3233
+ * - `aria-label`/`undefined`: undefined
3234
+ * - `appearance`/`undefined`: How the field is drawn; the configured setting by default.
3235
+ * - `size`/`undefined`: How large the field is; `medium` by default. At `xsmall` the label sits above the field.
3236
+ * - `value`: The value of the chosen option. (property only)
3237
+ * - `name`: undefined (property only)
3238
+ * - `required`: undefined (property only)
3239
+ * - `disabled`: undefined (property only)
3240
+ * - `invalid`: undefined (property only)
3241
+ * - `form`: undefined (property only) (readonly)
3242
+ * - `validity`: undefined (property only) (readonly)
3243
+ * - `validationMessage`: undefined (property only) (readonly)
3244
+ * - `willValidate`: undefined (property only) (readonly)
3245
+ *
3246
+ * ## Events
3247
+ *
3248
+ * Events that will be emitted by the component.
3249
+ *
3250
+ * - `input`: The user chose another option.
3251
+ * - `change`: The user chose another option, after `input`.
3252
+ *
3253
+ * ## Slots
3254
+ *
3255
+ * Areas where markup can be added to the component.
3256
+ *
3257
+ * - `(default)`: The options, `<swell-select-option>` elements; a hidden one stays out of the list and the choice.
3258
+ *
3259
+ * ## Methods
3260
+ *
3261
+ * Methods that can be called to access component functionality.
3262
+ *
3263
+ * - `checkValidity() => boolean`: undefined
3264
+ * - `reportValidity() => boolean`: undefined
3265
+ * - `focus(options?: FocusOptions) => void`: undefined
3266
+ * - `formResetCallback() => void`: undefined
3267
+ * - `formDisabledCallback() => void`: undefined
3268
+ * - `formStateRestoreCallback(state: unknown) => void`: undefined
3269
+ *
3270
+ * ## CSS States
3271
+ *
3272
+ * These can be used to apply styling when a component is in a given state.
3273
+ *
3274
+ * - `outline`: The field has a border on all sides.
3275
+ * - `filled`: The field has a fill and a bottom border.
3276
+ * - `underline`: The field has a bottom border.
3277
+ * - `above`: The label sits above the field.
3278
+ * - `floating`: The label floats inside the field.
3279
+ * - `empty`: Nothing is chosen.
3280
+ * - `open`: The list is open.
3281
+ */
3282
+ "swell-select": Partial<
3283
+ SwellSelectProps &
3284
+ SwellSelectSolidJsProps &
3285
+ BaseProps<SwellSelect> &
3286
+ BaseEvents
3287
+ >;
3288
+
3289
+ /**
3290
+ * A skeleton: a shimmering bar that stands in for content while it loads, such as a delivery option's name and price.
3291
+ * 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.
3292
+ * 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>`.
3293
+ *
3294
+ * ## Attributes & Properties
3295
+ *
3296
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3297
+ *
3298
+ * - `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.
3299
+ * - `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.
3300
+ *
3301
+ * ## Slots
3302
+ *
3303
+ * Areas where markup can be added to the component.
3304
+ *
3305
+ * - `(default)`: The bars of a card.
3306
+ *
3307
+ * ## CSS States
3308
+ *
3309
+ * These can be used to apply styling when a component is in a given state.
3310
+ *
3311
+ * - `card`: The skeleton is the frame of an option card.
3312
+ */
3313
+ "swell-skeleton": Partial<
3314
+ SwellSkeletonProps &
3315
+ SwellSkeletonSolidJsProps &
3316
+ BaseProps<SwellSkeleton> &
3317
+ BaseEvents
3318
+ >;
3319
+
3320
+ /**
3321
+ * A status message: an error, a success or a warning.
3322
+ * Screen readers announce it when it is added after the page has loaded and when its text or type changes:
3323
+ * each message goes into a fresh visually hidden region, an alert for danger and a status otherwise.
3324
+ *
3325
+ * ## Attributes & Properties
3326
+ *
3327
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3328
+ *
3329
+ * - `type`/`undefined`: What the message means: its color, icon and how it is announced.
3330
+ * - `size`/`undefined`: How large the message is: its text, padding and icon follow the text of the size; `medium` by default.
3331
+ * - `appearance`/`undefined`: How the message is drawn; the configured setting by default. `quiet`, for a note, comes from the attribute only.
3332
+ *
3333
+ * ## Slots
3334
+ *
3335
+ * Areas where markup can be added to the component.
3336
+ *
3337
+ * - `(default)`: The message.
3338
+ * - `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.
3339
+ * - `end`: An action after the message, such as a `<swell-button size="xsmall">`; it is left out of the announcement.
3340
+ *
3341
+ * ## CSS Parts
3342
+ *
3343
+ * Custom selectors for styling elements within the component.
3344
+ *
3345
+ * - `message`: The message box.
3346
+ *
3347
+ * ## CSS States
3348
+ *
3349
+ * These can be used to apply styling when a component is in a given state.
3350
+ *
3351
+ * - `filled`: The message has its background, border and icon.
3352
+ * - `outline`: The message has its border and icon.
3353
+ * - `plain`: The message has its icon only and the font of a field error.
3354
+ * - `quiet`: The message is a note in the quiet palette, without a border or the type's icon.
3355
+ * - `end-content`: The message has content in its `end` slot: its items are centered.
3356
+ * - `typed`: The message has a known type and isn't quiet: it takes the colors of its type.
3357
+ */
3358
+ "swell-status": Partial<
3359
+ SwellStatusProps &
3360
+ SwellStatusSolidJsProps &
3361
+ BaseProps<SwellStatus> &
3362
+ BaseEvents
3363
+ >;
3364
+
3365
+ /**
3366
+ * A tab of a `<swell-tabs>` group: its label and its content, shown while it is chosen.
3367
+ * 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.
3368
+ * 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.
3369
+ *
3370
+ * ## Attributes & Properties
3371
+ *
3372
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3373
+ *
3374
+ * - `value`/`undefined`: The group's value while the tab is chosen; the label by default.
3375
+ * - `label`/`undefined`: The text of the tab or of the step's heading.
3376
+ * - `done`/`undefined`: Marks a step as done: its number becomes a check, and the line to the next step fills.
3377
+ * - `disabled`/`undefined`: The tab can't be chosen, such as a step that isn't open yet.
3378
+ * - `hidden`/`undefined`: undefined
3379
+ * - `value`: undefined (property only)
3380
+ * - `label`: undefined (property only)
3381
+ * - `done`: undefined (property only)
3382
+ * - `disabled`: undefined (property only)
3383
+ *
3384
+ * ## Slots
3385
+ *
3386
+ * Areas where markup can be added to the component.
3387
+ *
3388
+ * - `(default)`: The content, shown while the tab is chosen.
3389
+ * - `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.
3390
+ * - `end`: Vertical steps: content beside the heading, such as a link that opens a done step or a note.
3391
+ *
3392
+ * ## CSS States
3393
+ *
3394
+ * These can be used to apply styling when a component is in a given state.
3395
+ *
3396
+ * - `selected`: The tab is chosen.
3397
+ * - `vertical`: The tab is a step of vertical steps.
3398
+ * - `last`: The tab is the last of its group, so a vertical step draws no line to a next one.
3399
+ */
3400
+ "swell-tab": Partial<
3401
+ SwellTabProps & SwellTabSolidJsProps & BaseProps<SwellTab> & BaseEvents
3402
+ >;
3403
+
3404
+ /**
3405
+ * Tabs: a set of `<swell-tab>` children, one of them chosen, with its content shown.
3406
+ * 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.
3407
+ * Vertical steps draw no tab list: each step is a heading with a button that opens it, and Tab moves between the buttons.
3408
+ *
3409
+ * ## Attributes & Properties
3410
+ *
3411
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3412
+ *
3413
+ * - `value`/`undefined`: The value of the chosen tab; the first tab that isn't disabled by default.
3414
+ * - `aria-label`/`undefined`: undefined
3415
+ * - `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.
3416
+ * - `level`/`undefined`: The heading level of vertical steps, 1 to 6; 2 by default.
3417
+ * - `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.
3418
+ * - `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.
3419
+ * - `size`/`undefined`: How large the tabs are: they take the height and the text of a control of the size; `medium` by default.
3420
+ * - `value`: The value of the chosen tab. (property only)
3421
+ *
3422
+ * ## Events
3423
+ *
3424
+ * Events that will be emitted by the component.
3425
+ *
3426
+ * - `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.
3427
+ * - `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.
3428
+ *
3429
+ * ## Slots
3430
+ *
3431
+ * Areas where markup can be added to the component.
3432
+ *
3433
+ * - `(default)`: The tabs, `<swell-tab>` elements.
3434
+ *
3435
+ * ## CSS States
3436
+ *
3437
+ * These can be used to apply styling when a component is in a given state.
3438
+ *
3439
+ * - `underline`: A line marks the chosen tab.
3440
+ * - `segmented`: The tabs share a track.
3441
+ * - `steps`: The tabs are numbered steps.
3442
+ * - `vertical`: The steps stand one under another.
3443
+ */
3444
+ "swell-tabs": Partial<
3445
+ SwellTabsProps & SwellTabsSolidJsProps & BaseProps<SwellTabs> & BaseEvents
3446
+ >;
3447
+
3448
+ /**
3449
+ * Text: a title, a heading, a subheading, strong text, body text, a caption, a footnote or an eyebrow.
3450
+ *
3451
+ * ## Attributes & Properties
3452
+ *
3453
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3454
+ *
3455
+ * - `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.
3456
+ * - `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.
3457
+ * - `type`/`undefined`: What the text is; body text by default. An eyebrow is uppercase.
3458
+ *
3459
+ * ## Slots
3460
+ *
3461
+ * Areas where markup can be added to the component.
3462
+ *
3463
+ * - `(default)`: The text.
3464
+ */
3465
+ "swell-text": Partial<
3466
+ SwellTextProps & SwellTextSolidJsProps & BaseProps<SwellText> & BaseEvents
3467
+ >;
3468
+
3469
+ /**
3470
+ * A text field for several lines: a native textarea with its label, hint and error, rendered into light DOM.
3471
+ * Enter adds a line; the field grows only when the user drags its corner.
3472
+ *
3473
+ * ## Attributes & Properties
3474
+ *
3475
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3476
+ *
3477
+ * - `label`/`undefined`: The label of the field.
3478
+ * - `optional`/`undefined`: A marker after the label, such as `(optional)`, in the host's language; it joins the field's name.
3479
+ * - `hint`/`undefined`: Help text under the field.
3480
+ * - `error`/`undefined`: The error shown while the field is invalid.
3481
+ * - `invalid`/`undefined`: Marks the field invalid and shows the error.
3482
+ * - `value`/`undefined`: The default value.
3483
+ * - `appearance`/`undefined`: How the field is drawn; the configured setting by default.
3484
+ * - `size`/`undefined`: How large the field is; `medium` by default. At `xsmall` the label sits above the field.
3485
+ * - `disabled`/`undefined`: Disables the field.
3486
+ * - `readonly`/`undefined`: Makes the field read-only.
3487
+ * - `required`/`undefined`: Makes the field required.
3488
+ * - `name`/`undefined`: The name sent with the form.
3489
+ * - `placeholder`/`undefined`: Text shown while the field is empty.
3490
+ * - `autocomplete`/`undefined`: The autofill hint of the native textarea.
3491
+ * - `minlength`/`undefined`: The shortest allowed value.
3492
+ * - `maxlength`/`undefined`: The longest allowed value.
3493
+ * - `rows`/`undefined`: The visible lines; 2 by default.
3494
+ * - `value`: The current value of the field. (property only)
3495
+ * - `disabled`: undefined (property only)
3496
+ * - `required`: undefined (property only)
3497
+ * - `readOnly`: undefined (property only)
3498
+ * - `invalid`: undefined (property only)
3499
+ * - `name`: undefined (property only)
3500
+ *
3501
+ * ## Events
3502
+ *
3503
+ * Events that will be emitted by the component.
3504
+ *
3505
+ * - `input`: The value changes as the user types; it bubbles from the native textarea.
3506
+ * - `change`: The user commits a new value; it bubbles from the native textarea.
3507
+ *
3508
+ * ## Slots
3509
+ *
3510
+ * Areas where markup can be added to the component.
3511
+ *
3512
+ * - `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.
3513
+ *
3514
+ * ## Methods
3515
+ *
3516
+ * Methods that can be called to access component functionality.
3517
+ *
3518
+ * - `attributesOf(passed: string[], own: string[] = []) => string[]`: Every attribute a text field observes, for the subclass's `observedAttributes`.
3519
+ * - `focus(options?: FocusOptions) => void`: undefined
3520
+ *
3521
+ * ## CSS Parts
3522
+ *
3523
+ * Custom selectors for styling elements within the component.
3524
+ *
3525
+ * - `frame`: The box that draws the field around the native textarea.
3526
+ *
3527
+ * ## CSS States
3528
+ *
3529
+ * These can be used to apply styling when a component is in a given state.
3530
+ *
3531
+ * - `outline`: The field has a border on all sides.
3532
+ * - `filled`: The field has a fill and a bottom border.
3533
+ * - `underline`: The field has a bottom border.
3534
+ * - `above`: The label sits above the field.
3535
+ * - `floating`: The label floats inside the field.
3536
+ */
3537
+ "swell-textarea": Partial<
3538
+ SwellTextareaProps &
3539
+ SwellTextareaSolidJsProps &
3540
+ BaseProps<SwellTextarea> &
3541
+ BaseEvents
3542
+ >;
3543
+
3544
+ /**
3545
+ * 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.
3546
+ * 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.
3547
+ * `aria-hidden="true"` and `role="img"` count as the kit's; any other value is the host's and stays.
3548
+ *
3549
+ * ## Attributes & Properties
3550
+ *
3551
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3552
+ *
3553
+ * - `aria-label`/`undefined`: undefined
3554
+ * - `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.
3555
+ * - `size`/`undefined`: How large the box is: the height of a control of the size; `medium` by default.
3556
+ * - `shape`/`undefined`: Rounds the box fully, as for an avatar.
3557
+ *
3558
+ * ## Slots
3559
+ *
3560
+ * Areas where markup can be added to the component.
3561
+ *
3562
+ * - `(default)`: An `<img>`, which covers the box, an svg icon, or initials.
3563
+ * - `badge`: A `<swell-badge>` over the top end corner, such as the quantity of a cart line.
3564
+ */
3565
+ "swell-thumbnail": Partial<
3566
+ SwellThumbnailProps &
3567
+ SwellThumbnailSolidJsProps &
3568
+ BaseProps<SwellThumbnail> &
3569
+ BaseEvents
3570
+ >;
3571
+
3572
+ /**
3573
+ * An area of the page with token values of its own, such as an order summary in the colors of the brand.
3574
+ * 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.
3575
+ * The element keeps the layout of its content: it renders nothing of its own.
3576
+ *
3577
+ * ## Attributes & Properties
3578
+ *
3579
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
3580
+ *
3581
+ * - `config`/`undefined`: The id of the area's configuration. An id without a configuration yet applies once the host registers one.
3582
+ */
3583
+ "swell-ui": Partial<
3584
+ SwellUiProps & SwellUiSolidJsProps & BaseProps<SwellUi> & BaseEvents
3585
+ >;
3586
+ };
3587
+
3588
+ export type CustomCssProperties = {};
3589
+