@skf-design-system/ui-components 0.0.1-beta.4 → 1.0.0-alpha.27

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 (104) hide show
  1. package/dist/components/accordion/accordion.component.d.ts +9 -5
  2. package/dist/components/accordion/accordion.component.js +22 -19
  3. package/dist/components/accordion/accordion.d.ts +1 -1
  4. package/dist/components/accordion/accordion.styles.js +3 -3
  5. package/dist/components/alert/alert.component.d.ts +7 -4
  6. package/dist/components/alert/alert.component.js +1 -1
  7. package/dist/components/alert/alert.styles.js +1 -1
  8. package/dist/components/button/button.component.js +1 -1
  9. package/dist/components/button/button.styles.js +1 -1
  10. package/dist/components/card/card.component.d.ts +3 -3
  11. package/dist/components/card/card.component.js +16 -19
  12. package/dist/components/card/card.styles.js +11 -3
  13. package/dist/components/checkbox/checkbox.component.d.ts +16 -9
  14. package/dist/components/checkbox/checkbox.component.js +32 -31
  15. package/dist/components/checkbox/checkbox.styles.js +7 -2
  16. package/dist/components/checkbox/checkbox.test.d.ts +1 -0
  17. package/dist/components/collapse/collapse.component.d.ts +9 -6
  18. package/dist/components/collapse/collapse.component.js +39 -36
  19. package/dist/components/collapse/collapse.styles.js +3 -3
  20. package/dist/components/collapse/collapse.test.d.ts +1 -0
  21. package/dist/components/divider/divider.component.d.ts +13 -10
  22. package/dist/components/divider/divider.component.js +34 -29
  23. package/dist/components/divider/divider.styles.js +1 -5
  24. package/dist/components/heading/heading.component.d.ts +12 -2
  25. package/dist/components/heading/heading.component.js +14 -14
  26. package/dist/components/heading/heading.styles.js +1 -1
  27. package/dist/components/icon/icon.component.d.ts +14 -8
  28. package/dist/components/icon/icon.component.js +6 -6
  29. package/dist/components/icon/icon.styles.js +56 -54
  30. package/dist/components/input/input.component.d.ts +34 -29
  31. package/dist/components/input/input.component.js +43 -43
  32. package/dist/components/link/link.component.d.ts +15 -12
  33. package/dist/components/link/link.component.js +7 -7
  34. package/dist/components/link/link.styles.js +1 -1
  35. package/dist/components/loader/loader.component.d.ts +7 -7
  36. package/dist/components/loader/loader.component.js +35 -61
  37. package/dist/components/loader/loader.styles.js +42 -10
  38. package/dist/components/logo/logo.component.d.ts +5 -3
  39. package/dist/components/logo/logo.component.js +8 -8
  40. package/dist/components/logo/logo.styles.js +2 -2
  41. package/dist/components/radio/radio.component.d.ts +15 -13
  42. package/dist/components/radio/radio.component.js +3 -3
  43. package/dist/components/radio/radio.styles.js +6 -1
  44. package/dist/components/select/select.component.d.ts +137 -0
  45. package/dist/components/select/select.component.js +312 -0
  46. package/dist/components/select/select.controllers.d.ts +59 -0
  47. package/dist/components/select/select.controllers.js +169 -0
  48. package/dist/components/select/select.d.ts +8 -0
  49. package/dist/components/select/select.js +6 -0
  50. package/dist/components/select/select.styles.d.ts +1 -0
  51. package/dist/components/select/select.styles.js +131 -0
  52. package/dist/components/select-option/select-option.component.d.ts +77 -0
  53. package/dist/components/select-option/select-option.component.js +123 -0
  54. package/dist/components/select-option/select-option.controllers.d.ts +9 -0
  55. package/dist/components/select-option/select-option.d.ts +8 -0
  56. package/dist/components/select-option/select-option.js +6 -0
  57. package/dist/components/select-option/select-option.styles.d.ts +1 -0
  58. package/dist/components/select-option/select-option.styles.js +53 -0
  59. package/dist/components/select-option-group/select-option-group.component.d.ts +16 -0
  60. package/dist/components/select-option-group/select-option-group.component.js +31 -0
  61. package/dist/components/select-option-group/select-option-group.d.ts +8 -0
  62. package/dist/components/select-option-group/select-option-group.js +6 -0
  63. package/dist/components/select-option-group/select-option-group.style.d.ts +1 -0
  64. package/dist/components/select-option-group/select-option-group.style.js +18 -0
  65. package/dist/components/switch/switch.component.d.ts +2 -3
  66. package/dist/components/switch/switch.component.js +1 -1
  67. package/dist/components/switch/switch.styles.js +6 -1
  68. package/dist/components/switch/switch.test.d.ts +1 -0
  69. package/dist/components/tag/tag.component.d.ts +25 -4
  70. package/dist/components/tag/tag.component.js +66 -29
  71. package/dist/components/tag/tag.styles.js +6 -5
  72. package/dist/components/textarea/textarea.component.d.ts +26 -23
  73. package/dist/components/textarea/textarea.component.js +15 -12
  74. package/dist/custom-elements.json +969 -295
  75. package/dist/index.d.ts +3 -0
  76. package/dist/index.js +39 -30
  77. package/dist/internal/components/formBase.d.ts +18 -1
  78. package/dist/internal/components/formBase.js +25 -13
  79. package/dist/internal/components/hint/hint.component.js +12 -10
  80. package/dist/internal/components/hint/hint.styles.js +26 -10
  81. package/dist/internal/components/skf-element.d.ts +4 -4
  82. package/dist/internal/components/skf-element.js +15 -19
  83. package/dist/internal/helpers/array.d.ts +4 -0
  84. package/dist/internal/helpers/findMatchingTags.d.ts +2 -0
  85. package/dist/internal/helpers/findMatchingTags.js +12 -0
  86. package/dist/internal/helpers/hintSeverity.d.ts +2 -0
  87. package/dist/internal/helpers/hintSeverity.js +6 -0
  88. package/dist/internal/helpers/raiseError.d.ts +28 -0
  89. package/dist/internal/helpers/raiseError.js +29 -0
  90. package/dist/internal/storybook/shadowRootTraverser.d.ts +16 -6
  91. package/dist/react/index.d.ts +3 -0
  92. package/dist/react/index.js +3 -0
  93. package/dist/react/skf-select/index.d.ts +21 -0
  94. package/dist/react/skf-select/index.js +21 -0
  95. package/dist/react/skf-select-option/index.d.ts +9 -0
  96. package/dist/react/skf-select-option/index.js +17 -0
  97. package/dist/react/skf-select-option-group/index.d.ts +3 -0
  98. package/dist/react/skf-select-option-group/index.js +13 -0
  99. package/dist/styles/form-field.styles.js +11 -7
  100. package/dist/types/jsx/custom-element-jsx.d.ts +292 -140
  101. package/dist/types/vue/index.d.ts +225 -90
  102. package/dist/vscode.html-custom-data.json +299 -97
  103. package/dist/web-types.json +624 -242
  104. package/package.json +34 -30
@@ -14,6 +14,9 @@ import type { SkfLink } from "../../components/link/link.component.js";
14
14
  import type { SkfLoader } from "../../components/loader/loader.component.js";
15
15
  import type { SkfLogo } from "../../components/logo/logo.component.js";
16
16
  import type { SkfRadio } from "../../components/radio/radio.component.js";
17
+ import type { SkfSelect } from "../../components/select/select.component.js";
18
+ import type { SkfSelectOption } from "../../components/select-option/select-option.component.js";
19
+ import type { SkfSelectOptionGroup } from "../../components/select-option-group/select-option-group.component.js";
17
20
  import type { SkfSwitch } from "../../components/switch/switch.component.js";
18
21
  import type { SkfTag } from "../../components/tag/tag.component.js";
19
22
  import type { SkfTextArea } from "../../components/textarea/textarea.component.js";
@@ -21,9 +24,9 @@ import type { SkfTextArea } from "../../components/textarea/textarea.component.j
21
24
  type SkfAccordionProps = {
22
25
  /** If true, will animate the expand/collapse state */
23
26
  animated?: SkfAccordion["animated"];
24
- /** Controls which heading element will be rendered */
27
+ /** Defines which heading element will be rendered */
25
28
  "heading-as"?: SkfAccordion["headingAs"];
26
- /** If provided, adds a gap between each item */
29
+ /** If true, adds a gap between each item */
27
30
  gap?: SkfAccordion["gap"];
28
31
  /** If true, allowes multiple accordion items to open */
29
32
  multiple?: SkfAccordion["multiple"];
@@ -34,7 +37,7 @@ type SkfAccordionProps = {
34
37
  };
35
38
 
36
39
  type SkfAlertProps = {
37
- /** If true, alert is being used as a toast with an close button */
40
+ /** If true, alert is being used as a toast (alertdialog) with an close button */
38
41
  closeable?: SkfAlert["closeable"];
39
42
  /** Close button aria-label */
40
43
  "button-label"?: SkfAlert["buttonLabel"];
@@ -90,18 +93,20 @@ type SkfCheckboxProps = {
90
93
  "hide-label"?: SkfCheckbox["hideLabel"];
91
94
  /** If true and the checkbox is unchecked, the checkbox will appear indeterminate */
92
95
  indeterminate?: SkfCheckbox["indeterminate"];
96
+ /** Read only indicator of the local state. Use custom-invalid to set it to invalid state. */
97
+ invalid?: SkfCheckbox["invalid"];
93
98
  /** If defined, sets the input's label. Alternatively, you can use the `label` attribute. */
94
99
  label?: SkfCheckbox["label"];
95
100
  /** If defined, adds name to the input-element */
96
101
  name?: SkfCheckbox["name"];
97
102
  /** If defined, renders an alternative A11y text for the asterisk */
98
103
  "required-label"?: SkfCheckbox["requiredLabel"];
99
- /** Size of the checkbox */
100
- size?: SkfCheckbox["size"];
101
104
  /** If defined, styles checkbox using provided severity */
102
105
  severity?: SkfCheckbox["severity"];
103
- /** If defined, displays valid state after interaction */
106
+ /** If true, displays valid state after interaction */
104
107
  "show-valid"?: SkfCheckbox["showValid"];
108
+ /** Size of the checkbox */
109
+ size?: SkfCheckbox["size"];
105
110
  /** The current value of the input field */
106
111
  value?: SkfCheckbox["value"];
107
112
 
@@ -116,7 +121,7 @@ type SkfCollapseProps = {
116
121
  expanded?: SkfCollapse["expanded"];
117
122
  /** Heading for the collapse */
118
123
  heading?: SkfCollapse["heading"];
119
- /** Controls which heading element will be rendered */
124
+ /** Defines which heading element will be rendered */
120
125
  "heading-as"?: SkfCollapse["headingAs"];
121
126
  /** If true, renders the small version */
122
127
  small?: SkfCollapse["small"];
@@ -128,7 +133,7 @@ type SkfCollapseProps = {
128
133
  };
129
134
 
130
135
  type SkfDividerProps = {
131
- /** If provided, alters the Divider color */
136
+ /** Defines the Divider color */
132
137
  color?: SkfDivider["color"];
133
138
  /** If true, renders a div for presentational purpose instead of the semantic hr-element */
134
139
  decorative?: SkfDivider["decorative"];
@@ -137,20 +142,20 @@ type SkfDividerProps = {
137
142
  };
138
143
 
139
144
  type SkfHeadingProps = {
140
- /** Controls which heading element will be rendered. Should not be used to affect appearance. */
145
+ /** Controls which heading element will be rendered. Should not be used to affect appearance */
141
146
  as?: SkfHeading["as"];
142
147
  /** If provided, changes the appearance of the heading */
143
148
  "styled-as"?: SkfHeading["styledAs"];
144
149
  };
145
150
 
146
151
  type SkfIconProps = {
147
- /** */
152
+ /** Sets the color of the icon */
148
153
  color?: SkfIcon["color"];
149
- /** If provided, adds an alternate description to use for assistive devices */
154
+ /** If defined, adds an alternate description to use for assistive devices */
150
155
  label?: SkfIcon["label"];
151
- /** */
156
+ /** Name of the icon to display */
152
157
  name?: SkfIcon["name"];
153
- /** */
158
+ /** Size of the icon */
154
159
  size?: SkfIcon["size"];
155
160
  };
156
161
 
@@ -159,62 +164,59 @@ type SkfInputProps = {
159
164
  disabled?: SkfInput["undefined"];
160
165
  /** If true, value is required or must be checked for the form to be submittable */
161
166
  required?: SkfInput["undefined"];
162
- /** If provided, renders a custom aria-label for the clear button **Notice!** Only applicable to type=search. */
167
+ /** Custom aria-label for the clear button. **Notice!** Only applicable to type=search. */
163
168
  "button-aria-label-clear"?: SkfInput["buttonAriaLabelClear"];
164
- /** If provided, renders a custom aria-label for the visibility button. **Notice!** Only applicable to type=password. */
169
+ /** Custom aria-label for the visibility button. **Notice!** Only applicable to type=password. */
165
170
  "button-aria-label-hide"?: SkfInput["buttonAriaLabelHide"];
166
- /** If provided, renders a custom aria-label for the visibility button **Notice!** Only applicable to type=password. */
171
+ /** Custom aria-label for the visibility button **Notice!** Only applicable to type=password. */
167
172
  "button-aria-label-show"?: SkfInput["buttonAriaLabelShow"];
168
- /** If provided, forces component to invalid state until removed. Its value is used as hint text. */
173
+ /** If defined, forces component to invalid state until removed. Its value is used as hint text. */
169
174
  "custom-invalid"?: SkfInput["customInvalid"];
170
- /** If provided, outputs helping hints in console */
175
+ /** If true, outputs helping hints in console */
171
176
  debug?: SkfInput["debug"];
172
177
  /** If true, hides the label visually */
173
178
  "hide-label"?: SkfInput["hideLabel"];
174
- /** If provided, displays informational text below the field */
179
+ /** If defined, displays informational text below the field */
175
180
  hint?: SkfInput["hint"];
176
- /** If provided, tells what keyboard to use if applicable */
181
+ /** Tells what keyboard to use if applicable */
177
182
  inputmode?: SkfInput["inputmode"];
178
- /** The input's label. Alternatively, you can use the `label` attribute. */
183
+ /** If defined, sets the input's label. Alternatively, you can use the `label` attribute. */
179
184
  label?: SkfInput["label"];
180
- /** If provided, displays a prefix/adornment before the input-element */
185
+ /** If defined, displays a prefix/adornment before the input-element */
181
186
  leading?: SkfInput["leading"];
182
- /** If provided, sets the maximum value to accept for this input */
187
+ /** If defined, sets the maximum value to accept for this input */
183
188
  max?: SkfInput["max"];
184
- /** If provided, sets the maximum character length to accept for this input */
189
+ /** If defined, sets the maximum character length to accept for this input */
185
190
  maxlength?: SkfInput["maxLength"];
186
- /** If provided, sets the minimum value to accept for this input */
191
+ /** If defined, sets the minimum value to accept for this input */
187
192
  min?: SkfInput["min"];
188
- /** If provided, sets the minimum character length to accept for this input */
193
+ /** If defined, sets the minimum character length to accept for this input */
189
194
  minlength?: SkfInput["minLength"];
190
- /** If provided, adds name to the input-element */
195
+ /** If defined, adds name to the input-element */
191
196
  name?: SkfInput["name"];
192
- /** If provided, adds name to the input-element */
197
+ /** If defined, adds name to the input-element */
193
198
  pattern?: SkfInput["pattern"];
194
- /** If provided, displays placeholder text */
199
+ /** If defined, displays placeholder text */
195
200
  placeholder?: SkfInput["placeholder"];
196
201
  /** If true, makes the element not mutable, meaning the user can not edit the control */
197
202
  readonly?: SkfInput["readonly"];
198
- /** If provided, renders an alternative A11y text for the asterisk */
203
+ /** If defined, renders an alternative A11y text for the asterisk */
199
204
  "required-label"?: SkfInput["requiredLabel"];
200
- /** If provided, displays provided severity state */
205
+ /** If defined, displays provided severity state */
201
206
  severity?: SkfInput["severity"];
202
- /** If provided, displays provided severity state */
207
+ /** If true, displays valid state after interaction */
203
208
  "show-valid"?: SkfInput["showValid"];
204
- /** If provided, displays an alternative size */
209
+ /** Size of the input */
205
210
  size?: SkfInput["size"];
206
- /** If provided, displays a suffix/adornment after the input-element */
211
+ /** If defined, displays a suffix/adornment after the input-element */
207
212
  trailing?: SkfInput["trailing"];
208
- /** If provided, changes the type of form control */
213
+ /** Type of input control */
209
214
  type?: SkfInput["type"];
210
- /** If provided, sets validation start, "input", "change" or "submit" */
215
+ /** Sets validation start */
211
216
  "validate-on"?: SkfInput["validateOn"];
212
217
  /** The current value of the input field */
213
218
  value?: SkfInput["value"];
214
- /** */
215
- _numberController?: SkfInput["_numberController"];
216
- /** */
217
- _passwordController?: SkfInput["_passwordController"];
219
+
218
220
  /** Fires when the value of the input changes */
219
221
  onchange?: (e: CustomEvent<never>) => void;
220
222
  /** Fires when the input is invalid */
@@ -222,47 +224,51 @@ type SkfInputProps = {
222
224
  };
223
225
 
224
226
  type SkfLinkProps = {
225
- /** Specifies semantic element to render - */
227
+ /** Defines the semantic element to render */
226
228
  as?: SkfLink["as"];
227
- /** */
229
+ /** Defines the text-color */
228
230
  color?: SkfLink["color"];
229
231
  /** If true, disables the link */
230
232
  disabled?: SkfLink["disabled"];
231
- /** If provided, downloads the url */
233
+ /** If defined, downloads the url */
232
234
  download?: SkfLink["download"];
233
- /** If provided, loads url on click */
235
+ /** If defined, loads url on click */
234
236
  href?: SkfLink["href"];
235
- /** If provided, renders an icon before or after the text */
237
+ /** If defined, renders an icon before or after the text */
236
238
  icon?: SkfLink["icon"];
237
- /** Position of the icon in relation to the text - */
239
+ /** Defines the position of the icon in relation to the text */
238
240
  "icon-placement"?: SkfLink["iconPlacement"];
239
- /** Specifies the relationship of the target object to the link object - */
241
+ /** Defines the relationship of the target object to the link object */
240
242
  rel?: SkfLink["rel"];
241
- /** If provided, used on conjunction with onClick property, second argument */
243
+ /** If defined, used on conjunction with onClick property, second argument */
242
244
  route?: SkfLink["route"];
243
245
  /** If true, fills the parents horizontal axis */
244
246
  stretch?: SkfLink["stretch"];
245
- /** If provided, specifies where to open the linked document */
247
+ /** If defined, specifies where to open the linked document */
246
248
  target?: SkfLink["target"];
247
- /** Type of button - */
249
+ /** Defines the type of button */
248
250
  type?: SkfLink["type"];
249
251
  /** If provided, custom function triggered by click where the second return parameter enables custom routing. */
250
252
  onClick?: SkfLink["onClick"];
251
253
  };
252
254
 
253
255
  type SkfLoaderProps = {
254
- /** */
256
+ /** Defines the aria-label */
255
257
  "aria-label"?: SkfLoader["ariaLabel"];
256
258
  /** If true, inverts the color (to be used on colored backgrounds) */
257
259
  invert?: SkfLoader["invert"];
258
- /** If provided, displays an alternative size */
260
+ /** Defines the size of the loader */
259
261
  size?: SkfLoader["size"];
262
+ /** */
263
+ role?: SkfLoader["role"];
264
+ /** */
265
+ ariaLive?: SkfLoader["ariaLive"];
260
266
  };
261
267
 
262
268
  type SkfLogoProps = {
263
- /** The title of the logo */
269
+ /** Defines the title of the logo */
264
270
  title?: SkfLogo["title"];
265
- /** If provided, sets color of the logo */
271
+ /** If defined, sets color of the logo */
266
272
  color?: SkfLogo["color"];
267
273
  };
268
274
 
@@ -271,7 +277,7 @@ type SkfRadioProps = {
271
277
  disabled?: SkfRadio["undefined"];
272
278
  /** If true, value is required or must be checked for the form to be submittable */
273
279
  required?: SkfRadio["undefined"];
274
- /** If provided, outputs helping hints in console */
280
+ /** If true, outputs helping hints in console */
275
281
  debug?: SkfRadio["debug"];
276
282
  /** If true, outputs helping hints in console */
277
283
  checked?: SkfRadio["checked"];
@@ -279,17 +285,17 @@ type SkfRadioProps = {
279
285
  "custom-invalid"?: SkfRadio["customInvalid"];
280
286
  /** If true, hides the label visually */
281
287
  "hide-label"?: SkfRadio["hideLabel"];
282
- /** The input's label. Alternatively, you can use the `label` attribute. */
288
+ /** If defined, sets the input's label unless the default slot is used. Alternatively, you can use the `label` attribute. */
283
289
  label?: SkfRadio["label"];
284
- /** If provided, adds name to the input-element */
290
+ /** If defined, adds name to the input-element */
285
291
  name?: SkfRadio["name"];
286
- /** If provided, renders an alternative A11y text for the asterisk */
292
+ /** If defined, renders an alternative A11y text for the asterisk */
287
293
  "required-label"?: SkfRadio["requiredLabel"];
288
- /** If provided, displays an alternative size */
294
+ /** Size of the Radio */
289
295
  size?: SkfRadio["size"];
290
- /** If provided, displays provided severity state */
296
+ /** If defined, displays provided severity state */
291
297
  severity?: SkfRadio["severity"];
292
- /** If provided, displays valid state after interaction */
298
+ /** If true, displays valid state after interaction */
293
299
  "show-valid"?: SkfRadio["showValid"];
294
300
  /** The current value of the input field */
295
301
  value?: SkfRadio["value"];
@@ -298,6 +304,87 @@ type SkfRadioProps = {
298
304
  onchange?: (e: CustomEvent<never>) => void;
299
305
  };
300
306
 
307
+ type SkfSelectProps = {
308
+ /** If true, the select is disabled `default: false` */
309
+ disabled?: SkfSelect["undefined"];
310
+ /** Sets the first visible text on the component */
311
+ "button-label"?: SkfSelect["buttonLabel"];
312
+ /** If defined, forces component to invalid state until removed */
313
+ "custom-invalid"?: SkfSelect["customInvalid"];
314
+ /** If true, hides the label visually */
315
+ "hide-label"?: SkfSelect["hideLabel"];
316
+ /** If true and mulltiple is true, no tags are displayed under the select */
317
+ "hide-tags"?: SkfSelect["hideTags"];
318
+ /** If defined, sets the hint text under the select component in the form */
319
+ hint?: SkfSelect["hint"];
320
+ /** If defined, displays provided label */
321
+ label?: SkfSelect["label"];
322
+ /** If defined, limits the number of selectable options */
323
+ max?: SkfSelect["max"];
324
+ /** If defined, sets the minimum number of required options */
325
+ min?: SkfSelect["min"];
326
+ /** If true, allows for multiple options to be selected */
327
+ multiple?: SkfSelect["multiple"];
328
+ /** If defined, set name of the component */
329
+ name?: SkfSelect["name"];
330
+ /** If defined, renders an alternative A11y text for the asterisk */
331
+ "required-label"?: SkfSelect["requiredLabel"];
332
+ /** If defined, displays provided severity state */
333
+ severity?: SkfSelect["severity"];
334
+ /** If true, displays valid state after interaction */
335
+ "show-valid"?: SkfSelect["showValid"];
336
+ /** Size of the Select */
337
+ size?: SkfSelect["size"];
338
+ /** A readonly property that returns the selected value(s) in a array */
339
+ getSelectedValues?: SkfSelect["getSelectedValues"];
340
+ /** A readonly property that returns the selected slot(s) text content in a array */
341
+ getSelectedOptionsText?: SkfSelect["getSelectedOptionsText"];
342
+ /** Read only, returns the selected value. (if multiple: in a comma separated string) */
343
+ value?: SkfSelect["value"];
344
+ /** */
345
+ _selectedOptions?: SkfSelect["_selectedOptions"];
346
+ /** Fired when the selected option(s) changes */
347
+ onchange?: (e: CustomEvent<never>) => void;
348
+ /** Fired when the select is invalid */
349
+ oninvalid?: (e: CustomEvent<never>) => void;
350
+ /** Fired when the form is reset */
351
+ onreset?: (e: CustomEvent<never>) => void;
352
+ /** {detail: {expanded: boolean}} Fired when the select dropdown is toggled */
353
+ "onskf-select:dropdown"?: (e: CustomEvent<never>) => void;
354
+ /** {detail: {value: string | null, option: SkfSelectOption}} Fired when the select dropdown is toggled */
355
+ "onskf-select-option:select"?: (e: CustomEvent<never>) => void;
356
+ };
357
+
358
+ type SkfSelectOptionProps = {
359
+ /** If true, prevents interaction with the option */
360
+ disabled?: SkfSelectOption["disabled"];
361
+ /** If defined, set an icon */
362
+ icon?: SkfSelectOption["icon"];
363
+ /** If defined, sets provided color on the icon */
364
+ "icon-color"?: SkfSelectOption["iconColor"];
365
+ /** If true, sets the option as selected */
366
+ selected?: SkfSelectOption["selected"];
367
+ /** If defined, sets a short label */
368
+ "short-label"?: SkfSelectOption["shortLabel"];
369
+ /** Returns or sets the tags value. If value is omitted, defaults to the tags text. */
370
+ value?: SkfSelectOption["value"];
371
+ /** The option's label text (equivalent to the tags textContent) */
372
+ text?: SkfSelectOption["text"];
373
+ /** */
374
+ role?: SkfSelectOption["role"];
375
+ /** */
376
+ _parent?: SkfSelectOption["_parent"];
377
+ /** */
378
+ _shortcutUpdate?: SkfSelectOption["_shortcutUpdate"];
379
+ /** {detail: { value: string | null, option: SkfSelectOption }} Fires when the option is selected/deselected. */
380
+ "onskf-select-option:select"?: (e: CustomEvent<never>) => void;
381
+ };
382
+
383
+ type SkfSelectOptionGroupProps = {
384
+ /** */
385
+ label?: SkfSelectOptionGroup["label"];
386
+ };
387
+
301
388
  type SkfSwitchProps = {
302
389
  /** If true, sets disabled state */
303
390
  disabled?: SkfSwitch["undefined"];
@@ -309,7 +396,7 @@ type SkfSwitchProps = {
309
396
  checked?: SkfSwitch["checked"];
310
397
  /** If true, hides the label visually */
311
398
  "hide-label"?: SkfSwitch["hideLabel"];
312
- /** If defined, sets the input's label. Alternatively, you can use the `label` attribute. */
399
+ /** If defined, sets the input's label unless the default slot is used. Alternatively, you can use the `label` attribute. */
313
400
  label?: SkfSwitch["label"];
314
401
  /** If defined, adds name to the input-element */
315
402
  name?: SkfSwitch["name"];
@@ -322,14 +409,18 @@ type SkfSwitchProps = {
322
409
  };
323
410
 
324
411
  type SkfTagProps = {
325
- /** Specifies Tag size - */
412
+ /** Specifies Tag size */
326
413
  size?: SkfTag["size"];
327
- /** If defined, displays leading/provided icon - */
414
+ /** If defined, displays leading/provided icon */
328
415
  icon?: SkfTag["icon"];
329
- /** If defined, gives the supplied appearance - */
416
+ /** If defined, gives the supplied appearance */
330
417
  color?: SkfTag["color"];
331
418
  /** If true, adds trailing button to remove tag */
332
419
  removable?: SkfTag["removable"];
420
+ /** If defined, accepts a function that runs on click */
421
+ onClick?: SkfTag["onClick"];
422
+ /** If defined, accepts a function that runs on click. Self removal can be overridden by using `event.stopPropagation()`. */
423
+ onRemove?: SkfTag["onRemove"];
333
424
  };
334
425
 
335
426
  type SkfTextAreaProps = {
@@ -337,39 +428,39 @@ type SkfTextAreaProps = {
337
428
  disabled?: SkfTextArea["undefined"];
338
429
  /** If true, value is required or must be checked for the form to be submittable */
339
430
  required?: SkfTextArea["undefined"];
340
- /** If provided, sets the cols of the textarea */
431
+ /** If defined, sets the cols of the textarea */
341
432
  cols?: SkfTextArea["cols"];
342
- /** If provided, forces component to invalid state until removed. Its value is used as hint text. */
433
+ /** If defined, forces component to invalid state until removed. Its value is used as hint text. */
343
434
  "custom-invalid"?: SkfTextArea["customInvalid"];
344
- /** If provided, outputs helping hints in console */
435
+ /** If true, outputs helping hints in console */
345
436
  debug?: SkfTextArea["debug"];
346
- /** hide-label - If true, hides the label visually */
437
+ /** If true, hides the label visually */
347
438
  "hide-label"?: SkfTextArea["hideLabel"];
348
- /** If provided, displays informational text below the field */
439
+ /** If defined, displays informational text below the field */
349
440
  hint?: SkfTextArea["hint"];
350
- /** The input's label. Alternatively, you can use the component slot. */
441
+ /** If defined, sets the input's label unless the default slot is used. Alternatively, you can use the `label` attribute. */
351
442
  label?: SkfTextArea["label"];
352
- /** If provided, adds name to the input-element */
443
+ /** If defined, adds name to the input-element */
353
444
  name?: SkfTextArea["name"];
354
- /** If provided, sets the maximum character length to accept for this input */
445
+ /** If defined, sets the maximum character length to accept for this input */
355
446
  maxlength?: SkfTextArea["maxLength"];
356
- /** If provided, sets the minimum character length to accept for this input */
447
+ /** If defined, sets the minimum character length to accept for this input */
357
448
  minlength?: SkfTextArea["minLength"];
358
- /** If provided, displays placeholder text */
449
+ /** If defined, displays placeholder text */
359
450
  placeholder?: SkfTextArea["placeholder"];
360
451
  /** If true, makes the element not mutable, meaning the user can not edit the control */
361
452
  readonly?: SkfTextArea["readonly"];
362
- /** If provided, renders an alternative A11y text for the asterisk */
453
+ /** If defined, renders an alternative A11y text for the asterisk */
363
454
  "required-label"?: SkfTextArea["requiredLabel"];
364
- /** If provided, sets the rows of the textarea */
455
+ /** If defined, sets the rows of the textarea */
365
456
  rows?: SkfTextArea["rows"];
366
- /** If provided, displays provided severity state */
457
+ /** If defined, displays provided severity state */
367
458
  severity?: SkfTextArea["severity"];
368
459
  /** If true, displays valid state after interaction */
369
460
  "show-valid"?: SkfTextArea["showValid"];
370
- /** If provided, displays an alternative size */
461
+ /** Size of the Textarea */
371
462
  size?: SkfTextArea["size"];
372
- /** If provided, sets validation start, "input", "change" or "submit" */
463
+ /** Sets validation start */
373
464
  "validate-on"?: SkfTextArea["validateOn"];
374
465
  /** The current value of the text area */
375
466
  value?: SkfTextArea["value"];
@@ -384,7 +475,7 @@ export type CustomElements = {
384
475
  /**
385
476
  * The `<skf-accordion>` component consists of multiple `<skf-collapse>`, working together.
386
477
  *
387
- * See [InVision DSM](https://skf.invisionapp.com/dsm/ab-skf/4-web-applications/nav/5fa7caf78c01200018354495/asset/6256cb1b44eba592d319d92e) for design principles.
478
+ * See [zeroheight](https://zeroheight.com/853e936c9/p/6590bf-accordion) for design principles.
388
479
  * ---
389
480
  *
390
481
  *
@@ -403,7 +494,7 @@ export type CustomElements = {
403
494
  *
404
495
  * ### **Slots:**
405
496
  * - _default_ - Alert message. **Notice!** See design principles for approved content
406
- * - **link** - lodjvodjvodjo
497
+ * - **link** - Slot for the link
407
498
  */
408
499
  "skf-alert": DefineComponent<SkfAlertProps>;
409
500
 
@@ -436,14 +527,14 @@ export type CustomElements = {
436
527
  * - **change** - {object} - When the value of the input changes
437
528
  *
438
529
  * ### **Slots:**
439
- * - **Default** - Alternatively, you can use the `label` attribute
530
+ * - _default_ - The Radios label. Alternatively, you can use the `label` attribute.
440
531
  */
441
532
  "skf-checkbox": DefineComponent<SkfCheckboxProps>;
442
533
 
443
534
  /**
444
535
  * The `<skf-collapse>` component is a general purpose container for content that can be collapsed / expanded.
445
536
  *
446
- * See [InVision DSM](https://skf.invisionapp.com/dsm/ab-skf/4-web-applications/nav/5fa7caf78c01200018354495/asset/6229e2eb8a8dacf366dc3243) for design principles.
537
+ * See [zeroheight](https://zeroheight.com/853e936c9/p/6590bf-accordion) for design principles.
447
538
  * ---
448
539
  *
449
540
  *
@@ -460,7 +551,7 @@ export type CustomElements = {
460
551
  "skf-collapse": DefineComponent<SkfCollapseProps>;
461
552
 
462
553
  /**
463
- * The `<Divider>` component can separate items from each other, to visually emphasize their lack of a relationship between groups of information.
554
+ * The `<Divider>` component can separate items from each other, to visually emphasize their lack of a relationship between groups of information
464
555
  * ---
465
556
  *
466
557
  *
@@ -475,6 +566,9 @@ export type CustomElements = {
475
566
  * It extends the interface of native html `<h1>` to `<h4>` elements.
476
567
  * ---
477
568
  *
569
+ *
570
+ * ### **Slots:**
571
+ * - _default_ - The headings content
478
572
  */
479
573
  "skf-heading": DefineComponent<SkfHeadingProps>;
480
574
 
@@ -495,7 +589,7 @@ export type CustomElements = {
495
589
  * - **invalid** - Fires when the input is invalid
496
590
  *
497
591
  * ### **Slots:**
498
- * - **Default** - Alternatively, you can use the `label` attribute
592
+ * - _default_ - The Inputs label. Alternatively, you can use the `label` attribute.
499
593
  */
500
594
  "skf-input": DefineComponent<SkfInputProps>;
501
595
 
@@ -510,7 +604,7 @@ export type CustomElements = {
510
604
  "skf-link": DefineComponent<SkfLinkProps>;
511
605
 
512
606
  /**
513
- * The `<skf-loader>` component is a progress indicator that uses circular indicators for short, indeterminate activities.
607
+ * The `<skf-loader>` component is a progress indicator that uses circular indicators for short, indeterminate activities
514
608
  * ---
515
609
  *
516
610
  */
@@ -535,18 +629,59 @@ export type CustomElements = {
535
629
  * - **change** - {object} - When the value of the input changes
536
630
  *
537
631
  * ### **Slots:**
538
- * - **Default** - Alternatively, you can use the `label` attribute
632
+ * - _default_ - The radios label. Alternatively, you can use the `label` attribute.
539
633
  */
540
634
  "skf-radio": DefineComponent<SkfRadioProps>;
541
635
 
542
636
  /**
543
- * The `<skf-switch>` is a component that displays a list of actions or options
637
+ * The `<skf-select>` is a component that displays a list of actions or options. A click in the options list toggle the selected state of the option. Use it together with the ´skf-select-option` tag.
638
+ * ---
639
+ *
640
+ *
641
+ * ### **Events:**
642
+ * - **change** - Fired when the selected option(s) changes
643
+ * - **invalid** - Fired when the select is invalid
644
+ * - **reset** - Fired when the form is reset
645
+ * - **skf-select:dropdown** - {detail: {expanded: boolean}} Fired when the select dropdown is toggled
646
+ * - **skf-select-option:select** - {detail: {value: string | null, option: SkfSelectOption}} Fired when the select dropdown is toggled
647
+ *
648
+ * ### **Slots:**
649
+ * - _default_ - The select's placeholder content
650
+ */
651
+ "skf-select": DefineComponent<SkfSelectProps>;
652
+
653
+ /**
654
+ * The `<skf-select-option>` is a component is used nested in a skf-select or skf-select-option-group.
655
+ * ---
656
+ *
657
+ *
658
+ * ### **Events:**
659
+ * - **skf-select-option:select** - {detail: { value: string | null, option: SkfSelectOption }} Fires when the option is selected/deselected.
660
+ *
661
+ * ### **Slots:**
662
+ * - _default_ - The option's text content
663
+ * - **icon** - The option's slot for icon or custom meta information (svg).
664
+ */
665
+ "skf-select-option": DefineComponent<SkfSelectOptionProps>;
666
+
667
+ /**
668
+ * The `<skf-select-option-group>` is a component that groups select-options
544
669
  * ---
545
670
  *
546
671
  *
547
672
  * ### **Slots:**
548
673
  * - _default_ - The component's placeholder content
549
674
  */
675
+ "skf-select-option-group": DefineComponent<SkfSelectOptionGroupProps>;
676
+
677
+ /**
678
+ * The `<skf-switch>` is a component that displays a list of actions or options
679
+ * ---
680
+ *
681
+ *
682
+ * ### **Slots:**
683
+ * - _default_ - The Switchs label. Alternatively, you can use the `label` attribute.
684
+ */
550
685
  "skf-switch": DefineComponent<SkfSwitchProps>;
551
686
 
552
687
  /**
@@ -569,7 +704,7 @@ export type CustomElements = {
569
704
  * - **invalid** - Fires when the input is invalid
570
705
  *
571
706
  * ### **Slots:**
572
- * - **The** - textareas label. Alternatively, you can use the `label` attribute.
707
+ * - _default_ - The textareas label. Alternatively, you can use the `label` attribute.
573
708
  */
574
709
  "skf-textarea": DefineComponent<SkfTextAreaProps>;
575
710
  };