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

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