@skf-design-system/ui-components 0.0.1-beta.3 → 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 (105) 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 -5
  6. package/dist/components/alert/alert.component.js +61 -0
  7. package/dist/components/alert/alert.js +6 -0
  8. package/dist/components/alert/alert.styles.js +63 -0
  9. package/dist/components/button/button.component.js +1 -1
  10. package/dist/components/button/button.styles.js +1 -1
  11. package/dist/components/card/card.component.d.ts +3 -3
  12. package/dist/components/card/card.component.js +16 -19
  13. package/dist/components/card/card.styles.js +11 -3
  14. package/dist/components/checkbox/checkbox.component.d.ts +9 -6
  15. package/dist/components/checkbox/checkbox.component.js +8 -8
  16. package/dist/components/checkbox/checkbox.styles.js +1 -1
  17. package/dist/components/checkbox/checkbox.test.d.ts +1 -0
  18. package/dist/components/collapse/collapse.component.d.ts +9 -6
  19. package/dist/components/collapse/collapse.component.js +39 -36
  20. package/dist/components/collapse/collapse.styles.js +3 -3
  21. package/dist/components/collapse/collapse.test.d.ts +1 -0
  22. package/dist/components/divider/divider.component.d.ts +13 -10
  23. package/dist/components/divider/divider.component.js +34 -29
  24. package/dist/components/divider/divider.styles.js +1 -5
  25. package/dist/components/heading/heading.component.d.ts +12 -2
  26. package/dist/components/heading/heading.component.js +34 -0
  27. package/dist/components/heading/heading.js +6 -0
  28. package/dist/components/heading/heading.styles.js +62 -0
  29. package/dist/components/icon/icon.component.d.ts +14 -8
  30. package/dist/components/icon/icon.component.js +6 -6
  31. package/dist/components/icon/icon.styles.js +1 -1
  32. package/dist/components/input/input.component.d.ts +34 -29
  33. package/dist/components/input/input.component.js +36 -36
  34. package/dist/components/link/link.component.d.ts +15 -12
  35. package/dist/components/link/link.component.js +7 -7
  36. package/dist/components/link/link.styles.js +1 -1
  37. package/dist/components/loader/loader.component.d.ts +7 -7
  38. package/dist/components/loader/loader.component.js +35 -61
  39. package/dist/components/loader/loader.styles.js +42 -10
  40. package/dist/components/logo/logo.component.d.ts +5 -3
  41. package/dist/components/logo/logo.component.js +8 -8
  42. package/dist/components/logo/logo.styles.js +2 -2
  43. package/dist/components/radio/radio.component.d.ts +15 -13
  44. package/dist/components/radio/radio.component.js +3 -3
  45. package/dist/components/radio/radio.styles.js +3 -3
  46. package/dist/components/select/select.component.d.ts +137 -0
  47. package/dist/components/select/select.component.js +311 -0
  48. package/dist/components/select/select.controllers.d.ts +59 -0
  49. package/dist/components/select/select.controllers.js +169 -0
  50. package/dist/components/select/select.d.ts +8 -0
  51. package/dist/components/select/select.js +6 -0
  52. package/dist/components/select/select.styles.d.ts +1 -0
  53. package/dist/components/select/select.styles.js +116 -0
  54. package/dist/components/select-option/select-option.component.d.ts +77 -0
  55. package/dist/components/select-option/select-option.component.js +117 -0
  56. package/dist/components/select-option/select-option.controllers.d.ts +9 -0
  57. package/dist/components/select-option/select-option.d.ts +8 -0
  58. package/dist/components/select-option/select-option.js +6 -0
  59. package/dist/components/select-option/select-option.styles.d.ts +1 -0
  60. package/dist/components/select-option/select-option.styles.js +53 -0
  61. package/dist/components/select-option-group/select-option-group.component.d.ts +16 -0
  62. package/dist/components/select-option-group/select-option-group.component.js +31 -0
  63. package/dist/components/select-option-group/select-option-group.d.ts +8 -0
  64. package/dist/components/select-option-group/select-option-group.js +6 -0
  65. package/dist/components/select-option-group/select-option-group.style.d.ts +1 -0
  66. package/dist/components/select-option-group/select-option-group.style.js +18 -0
  67. package/dist/components/switch/switch.component.d.ts +2 -3
  68. package/dist/components/switch/switch.component.js +106 -0
  69. package/dist/components/switch/switch.js +6 -0
  70. package/dist/components/switch/switch.styles.js +80 -0
  71. package/dist/components/switch/switch.test.d.ts +1 -0
  72. package/dist/components/tag/tag.component.d.ts +25 -4
  73. package/dist/components/tag/tag.component.js +66 -29
  74. package/dist/components/tag/tag.styles.js +6 -5
  75. package/dist/components/textarea/textarea.component.d.ts +26 -23
  76. package/dist/components/textarea/textarea.component.js +15 -12
  77. package/dist/custom-elements.json +960 -305
  78. package/dist/index.d.ts +6 -0
  79. package/dist/index.js +48 -30
  80. package/dist/internal/components/formBase.d.ts +18 -1
  81. package/dist/internal/components/formBase.js +25 -13
  82. package/dist/internal/components/skf-element.d.ts +4 -4
  83. package/dist/internal/components/skf-element.js +15 -19
  84. package/dist/internal/helpers/array.d.ts +4 -0
  85. package/dist/internal/helpers/findMatchingTags.d.ts +2 -0
  86. package/dist/internal/helpers/findMatchingTags.js +12 -0
  87. package/dist/internal/helpers/hintSeverity.d.ts +2 -0
  88. package/dist/internal/helpers/hintSeverity.js +6 -0
  89. package/dist/internal/helpers/raiseError.d.ts +28 -0
  90. package/dist/internal/helpers/raiseError.js +29 -0
  91. package/dist/internal/storybook/shadowRootTraverser.d.ts +16 -6
  92. package/dist/react/index.d.ts +3 -0
  93. package/dist/react/index.js +3 -0
  94. package/dist/react/skf-select/index.d.ts +21 -0
  95. package/dist/react/skf-select/index.js +21 -0
  96. package/dist/react/skf-select-option/index.d.ts +9 -0
  97. package/dist/react/skf-select-option/index.js +17 -0
  98. package/dist/react/skf-select-option-group/index.d.ts +3 -0
  99. package/dist/react/skf-select-option-group/index.js +13 -0
  100. package/dist/styles/form-field.styles.js +7 -7
  101. package/dist/types/jsx/custom-element-jsx.d.ts +290 -140
  102. package/dist/types/vue/index.d.ts +223 -90
  103. package/dist/vscode.html-custom-data.json +294 -97
  104. package/dist/web-types.json +614 -242
  105. package/package.json +34 -30
@@ -1,23 +1,24 @@
1
1
  import "../icon/icon.js";
2
2
  import { FormBase as c } from "../../internal/components/formBase.js";
3
3
  import "../../internal/components/hint/hint.js";
4
- import { Asterisk as v } from "../../internal/templates/asterisk.js";
5
- import y from "../../styles/component.styles.js";
4
+ import { hintSeverity as v } from "../../internal/helpers/hintSeverity.js";
5
+ import { Asterisk as y } from "../../internal/templates/asterisk.js";
6
+ import f from "../../styles/component.styles.js";
6
7
  import { html as h, nothing as d } from "lit";
7
- import { property as s, state as b, query as f } from "lit/decorators.js";
8
+ import { property as s, state as b, query as _ } from "lit/decorators.js";
8
9
  import { ifDefined as a } from "lit/directives/if-defined.js";
9
10
  import { live as $ } from "lit/directives/live.js";
10
- import { InputNumberController as _, InputPasswordController as g } from "./input.controllers.js";
11
- import w from "./input.styles.js";
12
- var E = Object.defineProperty, A = Object.getOwnPropertyDescriptor, i = (u, e, r, n) => {
13
- for (var o = n > 1 ? void 0 : n ? A(e, r) : e, l = u.length - 1, p; l >= 0; l--)
14
- (p = u[l]) && (o = (n ? p(e, r, o) : p(o)) || o);
15
- return n && o && E(e, r, o), o;
11
+ import { InputNumberController as g, InputPasswordController as w } from "./input.controllers.js";
12
+ import E from "./input.styles.js";
13
+ var A = Object.defineProperty, C = Object.getOwnPropertyDescriptor, i = (m, e, r, n) => {
14
+ for (var o = n > 1 ? void 0 : n ? C(e, r) : e, l = m.length - 1, u; l >= 0; l--)
15
+ (u = m[l]) && (o = (n ? u(e, r, o) : u(o)) || o);
16
+ return n && o && A(e, r, o), o;
16
17
  };
17
- const m = class m extends c {
18
+ const p = class p extends c {
18
19
  constructor() {
19
- super(), this.buttonAriaLabelClear = "Clear input", this.buttonAriaLabelHide = "Hide password", this.buttonAriaLabelShow = "Show password", this.debug = !1, this.hideLabel = !1, this.inputmode = "text", this.size = "md", this.type = "text", this.validateOn = "change", this.value = "", this.invalid = !1, this._buttonDown = !1, this._handleInput = () => {
20
- this.value = this.$input.value || "", this.validateOn === "input" && (this.pristine = !1, this.validateInput());
20
+ super(...arguments), this.buttonAriaLabelClear = "Clear input", this.buttonAriaLabelHide = "Hide password", this.buttonAriaLabelShow = "Show password", this.inputmode = "text", this.size = "md", this.type = "text", this.validateOn = "change", this.value = "", this.invalid = !1, this._buttonDown = !1, this._numberController = new g(this), this._passwordController = new w(this), this._handleInput = () => {
21
+ this.value = this.$input.value || "", this.validateOn === "input" && (this._pristine = !1, this.validateInput());
21
22
  }, this._resetValue = (e) => {
22
23
  var r;
23
24
  e.stopPropagation(), this.value = ((r = this.getAttribute("value")) == null ? void 0 : r.trim()) ?? "", this._internals.setFormValue(this.value), this.$input.focus();
@@ -66,19 +67,19 @@ const m = class m extends c {
66
67
  </button>
67
68
  `, this._onBlur = () => {
68
69
  this._buttonDown && this.$input.focus();
69
- }, this._numberController = new _(this), this._passwordController = new g(this);
70
+ };
70
71
  }
71
72
  set customInvalid(e) {
72
- this.customError = String(e);
73
+ this.customError = e || "";
73
74
  }
74
75
  get customInvalid() {
75
76
  return this.customError;
76
77
  }
77
78
  firstUpdated() {
78
79
  this.$input.addEventListener("change", () => {
79
- this.validateOn === "change" && (this.validateOn = "input", this.pristine = !1), this._internals.setFormValue(this.$input.value || ""), this.emitEvent("change"), this.validateInput();
80
+ this.validateOn === "change" && (this.validateOn = "input", this._pristine = !1), this._internals.setFormValue(this.$input.value || ""), this.emitEvent("change"), this.validateInput();
80
81
  }), this.addEventListener("invalid", (e) => {
81
- this.pristine = !1, this.invalid = !0, this.customErrorDisplay && e.preventDefault();
82
+ this._pristine = !1, this.invalid = !0, this.customErrorDisplay && e.preventDefault();
82
83
  }), this.addEventListener("reset", this._resetValue), this.validateInput();
83
84
  }
84
85
  willUpdate(e) {
@@ -88,13 +89,13 @@ const m = class m extends c {
88
89
  const r = this._internals.validationMessage;
89
90
  this.hint = r !== "" ? this._internals.validationMessage : "", this.checkValidity();
90
91
  } else
91
- this.removeAttribute("invalid"), !this.pristine && this.showValid && this.setAttribute("valid", "true"), this.hint = this.getAttribute("hint") ?? "";
92
+ this.removeAttribute("invalid"), !this._pristine && this.showValid && this.setAttribute("valid", "true"), this.hint = this.getAttribute("hint") ?? "";
92
93
  }
93
94
  attributeChangedCallback(e, r, n) {
94
95
  if (super.attributeChangedCallback(e, r, n), e === "value" && this._internals.setFormValue(n), e === "custom-invalid")
95
96
  if (typeof n == "string") {
96
97
  const l = String(n).trim();
97
- this.pristine = !1, this._internals.setValidity({ customError: !0 }, l), this.invalid = !0, this.hint = l, this.checkValidity();
98
+ this._pristine = !1, this._internals.setValidity({ customError: !0 }, l), this.invalid = !0, this.hint = l, this.checkValidity();
98
99
  } else
99
100
  this._internals.setValidity({}), this.validateInput();
100
101
  }
@@ -105,7 +106,7 @@ const m = class m extends c {
105
106
  if (this.invalid = !1, r.valid)
106
107
  this._internals.setValidity({ customError: this._internals.validity.customError });
107
108
  else {
108
- this.invalid = !this.pristine && !r.valid;
109
+ this.invalid = !this._pristine && !r.valid;
109
110
  let n;
110
111
  for (n in r) {
111
112
  const o = `data-${n.toString()}`;
@@ -125,11 +126,11 @@ const m = class m extends c {
125
126
  render() {
126
127
  var e, r;
127
128
  return h`
128
- <div id="field">
129
+ <div id="root">
129
130
  <label>
130
131
  <div class=${this.hideLabel ? "visually-hidden" : ""} id="label">
131
132
  <slot>${this.label}</slot>
132
- ${this.required ? v(this.requiredLabel) : null}
133
+ ${this.required ? y(this.requiredLabel) : null}
133
134
  </div>
134
135
  <div id="input">
135
136
  ${this.type === "search" ? h`<skf-icon name="search" size="sm"></skf-icon>` : d}
@@ -139,17 +140,16 @@ const m = class m extends c {
139
140
  id="affix"
140
141
  >
141
142
  <input
142
- autocomplete="off"
143
- title=""
144
143
  ?disabled=${this.disabled}
145
144
  ?readonly=${this.readonly}
146
145
  ?required=${this.required}
147
146
  .value=${$(this.value)}
148
- @input=${this._handleInput}
149
147
  @blur=${this._onBlur}
148
+ @input=${this._handleInput}
150
149
  aria-describedby=${a((e = this.hint) != null && e.trim() ? "hint" : d)}
151
150
  aria-errormessage=${a((r = this.hint) != null && r.trim() ? "hint" : d)}
152
151
  aria-invalid=${!!this.invalid}
152
+ autocomplete="off"
153
153
  data-testid="field-input"
154
154
  inputmode=${a(this.inputMode)}
155
155
  max=${a(this.max)}
@@ -159,14 +159,17 @@ const m = class m extends c {
159
159
  name=${a(this.name)}
160
160
  pattern=${a(this.pattern)}
161
161
  placeholder=${a(this.placeholder)}
162
+ title=""
162
163
  type=${a(
163
164
  this.type === "password" ? this._passwordController._type : this.type
164
165
  )}
165
166
  />
166
167
  </div>
167
- ${this.type === "number" ? h`<div id="action">
168
- ${this._renderNumberButton("inc")} ${this._renderNumberButton("dec")}
169
- </div>` : d}
168
+ ${this.type === "number" ? h`
169
+ <div id="action">
170
+ ${this._renderNumberButton("inc")} ${this._renderNumberButton("dec")}
171
+ </div>
172
+ ` : d}
170
173
  ${this.type === "password" ? this._renderPasswordButton() : d}
171
174
  ${this.type === "search" && this.value.length > 0 ? this._renderSearchButton() : d}
172
175
  </div>
@@ -175,16 +178,16 @@ const m = class m extends c {
175
178
  <skf-hint
176
179
  aria-live=${this.invalid ? "assertive" : "polite"}
177
180
  id="hint"
178
- severity=${a(C(this.severity, this.invalid))}
179
- >${this.hint}
181
+ severity=${a(v(this.severity, this.invalid))}
182
+ >${this.customInvalid ? this.customInvalid : this.hint}
180
183
  </skf-hint>
181
184
  `}
182
185
  </div>
183
186
  `;
184
187
  }
185
188
  };
186
- m.styles = [y, w];
187
- let t = m;
189
+ p.styles = [f, E];
190
+ let t = p;
188
191
  i([
189
192
  s({ attribute: "button-aria-label-clear" })
190
193
  ], t.prototype, "buttonAriaLabelClear", 2);
@@ -243,7 +246,7 @@ i([
243
246
  s({ attribute: "required-label" })
244
247
  ], t.prototype, "requiredLabel", 2);
245
248
  i([
246
- s()
249
+ s({ reflect: !0 })
247
250
  ], t.prototype, "severity", 2);
248
251
  i([
249
252
  s({ type: Boolean, attribute: "show-valid" })
@@ -270,11 +273,8 @@ i([
270
273
  b()
271
274
  ], t.prototype, "_buttonDown", 2);
272
275
  i([
273
- f("input")
276
+ _("input")
274
277
  ], t.prototype, "$input", 2);
275
- function C(u, e) {
276
- return e ? "error" : u;
277
- }
278
278
  export {
279
279
  t as SkfInput
280
280
  };
@@ -9,38 +9,41 @@ import { type CSSResultGroup } from 'lit';
9
9
  *
10
10
  * @property {function} onClick - If provided, custom function triggered by click where the second return parameter enables custom routing.
11
11
  *
12
- * @slot {string} - The links' main content
12
+ * @slot - The links' main content
13
13
  *
14
14
  * @tagname skf-link
15
15
  */
16
16
  export declare class SkfLink extends SkfElement {
17
17
  static styles: CSSResultGroup;
18
18
  private _onClick?;
19
- /** Specifies semantic element to render - @default "a" */
19
+ /** Defines the semantic element to render */
20
20
  as: 'button' | 'a';
21
- /** @default "primary" */
21
+ /** Defines the text-color */
22
22
  color: 'primary' | 'inverse';
23
23
  /** If true, disables the link */
24
24
  disabled?: boolean;
25
- /** If provided, downloads the url */
25
+ /** If defined, downloads the url */
26
26
  download?: string;
27
- /** If provided, loads url on click */
27
+ /** If defined, loads url on click */
28
28
  href?: string;
29
- /** If provided, renders an icon before or after the text @type { "arrowDown" | "arrowDownUp" | "arrowLeft" | "arrowRight" | "arrowUp" | "article" | "artificialIntelligence" | "asset" | "attachment" | "bandCursor" | "bands" | "batteryEmpty" | "batteryFull" | "batteryLow" | "bearingFault" | "book" | "bulb" | "burger" | "cPM" | "calendar" | "calendarBooked" | "calendarEmpty" | "calendarNotBooked" | "calendarRecurring" | "caretDown" | "caretUp" | "caretUpDown" | "chat" | "check" | "checkCircle" | "checkSmall" | "chevronDown" | "chevronLeft" | "chevronRight" | "chevronUp" | "chevronUpDown" | "close" | "closeAllFaults" | "closeFault" | "closeSmall" | "columnGraph" | "comment" | "connection1" | "connection2" | "connection3" | "connection4" | "danger" | "defectFrequencies" | "defectFrequenciesAlternative" | "doubleChevronLeft" | "doubleChevronRight" | "download" | "draft" | "draftFilled" | "draftOutlined" | "dragNDrop" | "drop" | "duplicate" | "edit" | "emailFilled" | "emailOutlined" | "exclamation" | "eye" | "eyeHidden" | "eyeVisible" | "filter" | "forbidden" | "fullScreen" | "fullScreenExit" | "functionalLocation" | "harmonicCursor" | "heatmap" | "hierarchy" | "history" | "historyAlt" | "hourglassFramedFilled" | "hourglassFramedOutlined" | "hourglassOutlined" | "hz" | "iMX" | "image" | "infoCircleFilled" | "infoCircleOutlined" | "integration" | "kebab" | "link" | "listGroup" | "listItem" | "locationPin" | "lock" | "logOut" | "meatballs" | "microphone" | "minus" | "minusSmall" | "noData" | "o" | "openInNew" | "overlayBaseline" | "pDF" | "paper" | "pause" | "pieChart" | "pin" | "play" | "plus" | "powerOff" | "printer" | "proCollect" | "recAction" | "received" | "refresh" | "reorder" | "replace" | "reply" | "rewalkableRoute" | "routes" | "search" | "send" | "sensorA" | "sensorB" | "settings" | "sidebandCursor" | "singleCursor" | "spectrum" | "starFilled" | "starOutlined" | "statusCircle" | "stop" | "structuralVibration" | "sync" | "timewave" | "trash" | "trend" | "trendingUp" | "undo" | "unknownCircle" | "unknownDiamond" | "unlink" | "unlock" | "unscheduledAction" | "upload" | "user" | "viewFull" | "viewHorizontal" | "viewVertical" | "warning" | "warningCircle" | "warningDiamond" | "zoomIn" | "zoomOut" } */
29
+ /**
30
+ * If defined, renders an icon before or after the text
31
+ * @type { "arrowDown" | "arrowDownUp" | "arrowLeft" | "arrowRight" | "arrowUp" | "article" | "artificialIntelligence" | "asset" | "attachment" | "bandCursor" | "bands" | "batteryEmpty" | "batteryFull" | "batteryLow" | "bearingFault" | "book" | "bulb" | "burger" | "cPM" | "calendar" | "calendarBooked" | "calendarEmpty" | "calendarNotBooked" | "calendarRecurring" | "caretDown" | "caretUp" | "caretUpDown" | "chat" | "check" | "checkCircle" | "checkSmall" | "chevronDown" | "chevronLeft" | "chevronRight" | "chevronUp" | "chevronUpDown" | "close" | "closeAllFaults" | "closeFault" | "closeSmall" | "columnGraph" | "comment" | "connection1" | "connection2" | "connection3" | "connection4" | "danger" | "defectFrequencies" | "defectFrequenciesAlternative" | "doubleChevronLeft" | "doubleChevronRight" | "download" | "draft" | "draftFilled" | "draftOutlined" | "dragNDrop" | "drop" | "duplicate" | "edit" | "emailFilled" | "emailOutlined" | "exclamation" | "eye" | "eyeHidden" | "eyeVisible" | "filter" | "forbidden" | "fullScreen" | "fullScreenExit" | "functionalLocation" | "harmonicCursor" | "heatmap" | "hierarchy" | "history" | "historyAlt" | "hourglassFramedFilled" | "hourglassFramedOutlined" | "hourglassOutlined" | "hz" | "iMX" | "image" | "infoCircleFilled" | "infoCircleOutlined" | "integration" | "kebab" | "link" | "listGroup" | "listItem" | "locationPin" | "lock" | "logOut" | "meatballs" | "microphone" | "minus" | "minusSmall" | "noData" | "o" | "openInNew" | "overlayBaseline" | "pDF" | "paper" | "pause" | "pieChart" | "pin" | "play" | "plus" | "powerOff" | "printer" | "proCollect" | "recAction" | "received" | "refresh" | "reorder" | "replace" | "reply" | "rewalkableRoute" | "routes" | "search" | "send" | "sensorA" | "sensorB" | "settings" | "sidebandCursor" | "singleCursor" | "spectrum" | "starFilled" | "starOutlined" | "statusCircle" | "stop" | "structuralVibration" | "sync" | "timewave" | "trash" | "trend" | "trendingUp" | "undo" | "unknownCircle" | "unknownDiamond" | "unlink" | "unlock" | "unscheduledAction" | "upload" | "user" | "viewFull" | "viewHorizontal" | "viewVertical" | "warning" | "warningCircle" | "warningDiamond" | "zoomIn" | "zoomOut" }
32
+ */
30
33
  icon?: SkfIcon['name'];
31
- /** Position of the icon in relation to the text - @default "left" */
34
+ /** Defines the position of the icon in relation to the text */
32
35
  iconPlacement: 'left' | 'right';
33
- /** Specifies the relationship of the target object to the link object - @default "noreferrer noopener" */
36
+ /** Defines the relationship of the target object to the link object */
34
37
  rel: string;
35
- /** If provided, used on conjunction with onClick property, second argument */
38
+ /** If defined, used on conjunction with onClick property, second argument */
36
39
  route?: string;
37
40
  /** If true, fills the parents horizontal axis */
38
41
  stretch?: boolean;
39
- /** If provided, specifies where to open the linked document */
42
+ /** If defined, specifies where to open the linked document */
40
43
  target?: '_blank' | '_parent' | '_self' | '_top';
41
- /** Type of button - @default "button" */
44
+ /** Defines the type of button */
42
45
  type: 'button' | 'submit' | 'reset';
43
- /** If provided, accepts a function that runs on click. Forwards optional route as second argument. */
46
+ /** If defined, accepts a function that runs on click. Forwards optional route as second argument. */
44
47
  set onClick(onClickFn: ((event: Event, route?: string) => void) | undefined);
45
48
  get onClick(): ((event: Event, route?: string) => void) | undefined;
46
49
  connectedCallback(): void;
@@ -6,10 +6,10 @@ import "lit";
6
6
  import { property as r } from "lit/decorators.js";
7
7
  import { ifDefined as n } from "lit/directives/if-defined.js";
8
8
  import { html as f, literal as d } from "lit/static-html.js";
9
- var k = Object.defineProperty, v = Object.getOwnPropertyDescriptor, o = (h, t, i, l) => {
10
- for (var s = l > 1 ? void 0 : l ? v(t, i) : t, p = h.length - 1, c; p >= 0; p--)
11
- (c = h[p]) && (s = (l ? c(t, i, s) : c(s)) || s);
12
- return l && s && k(t, i, s), s;
9
+ var k = Object.defineProperty, v = Object.getOwnPropertyDescriptor, o = (h, t, i, p) => {
10
+ for (var s = p > 1 ? void 0 : p ? v(t, i) : t, l = h.length - 1, c; l >= 0; l--)
11
+ (c = h[l]) && (s = (p ? c(t, i, s) : c(s)) || s);
12
+ return p && s && k(t, i, s), s;
13
13
  };
14
14
  const a = class a extends m {
15
15
  constructor() {
@@ -20,8 +20,8 @@ const a = class a extends m {
20
20
  set onClick(t) {
21
21
  if (!t) return;
22
22
  this._onClick = t;
23
- const i = (l) => {
24
- t(l, this.href ?? this.route);
23
+ const i = (p) => {
24
+ t(p, this.href ?? this.route);
25
25
  };
26
26
  this._assertValidOnClick(t), this.removeEventListener("click", i), this.addEventListener("click", i);
27
27
  }
@@ -58,7 +58,7 @@ const a = class a extends m {
58
58
  @click=${this._preprocessOnClick}
59
59
  download=${n(t ? this.download : void 0)}
60
60
  href=${n(t ? this.href : void 0)}
61
- id="link"
61
+ id="root"
62
62
  rel=${n(t ? this.rel : void 0)}
63
63
  target=${n(t ? this.target : void 0)}
64
64
  title=${this.title}
@@ -4,7 +4,7 @@ const e = r`
4
4
  display: contents;
5
5
  }
6
6
 
7
- #link {
7
+ #root {
8
8
  align-items: center;
9
9
  color: var(--state-color, var(--color));
10
10
  display: inline-flex;
@@ -1,21 +1,21 @@
1
1
  import { SkfElement } from '@internal/components/skf-element.js';
2
2
  import { type CSSResultGroup } from 'lit';
3
3
  /**
4
- * The `<skf-loader>` component is a progress indicator that uses circular indicators for short, indeterminate activities.
4
+ * The `<skf-loader>` component is a progress indicator that uses circular indicators for short, indeterminate activities
5
5
  *
6
- * @documentation See [InVision DSM](https://skf.invisionapp.com/dsm/ab-skf/4-web-applications/nav/5fa7caf78c01200018354495/asset/619e4125b3d2147c0c584b11) for design principles.
6
+ * @documentation See [zeroheight](https://zeroheight.com/853e936c9/p/8188a9-loader) for design principles
7
7
  *
8
8
  * @tagname skf-loader
9
9
  */
10
10
  export declare class SkfLoader extends SkfElement {
11
+ #private;
11
12
  static styles: CSSResultGroup;
13
+ /** Defines the aria-label */
12
14
  ariaLabel: string;
13
15
  /** If true, inverts the color (to be used on colored backgrounds) */
14
- invert: boolean;
15
- /** If provided, displays an alternative size */
16
+ invert?: boolean;
17
+ /** Defines the size of the loader */
16
18
  size?: 'md' | 'sm';
17
- connectedCallback(): void;
18
- /** @internal */
19
- private getCircle;
19
+ constructor();
20
20
  render(): import("lit").TemplateResult<1>;
21
21
  }
@@ -1,71 +1,45 @@
1
- import { SkfElement as u } from "../../internal/components/skf-element.js";
2
- import { COLORS as c } from "@skf-design-system/ui-assets";
3
- import m from "../../styles/component.styles.js";
4
- import { svg as d, html as h } from "lit";
5
- import { property as a } from "lit/decorators.js";
6
- import v from "./loader.styles.js";
7
- var f = Object.defineProperty, o = (l, t, i, g) => {
8
- for (var e = void 0, s = l.length - 1, p; s >= 0; s--)
9
- (p = l[s]) && (e = p(t, i, e) || e);
10
- return e && f(t, i, e), e;
1
+ var m = (t) => {
2
+ throw TypeError(t);
11
3
  };
12
- const n = class n extends u {
4
+ var f = (t, r, e) => r.has(t) || m("Cannot " + e);
5
+ var p = (t, r, e) => (f(t, r, "read from private field"), e ? e.call(t) : r.get(t)), h = (t, r, e) => r.has(t) ? m("Cannot add the same private member more than once") : r instanceof WeakSet ? r.add(t) : r.set(t, e), y = (t, r, e, l) => (f(t, r, "write to private field"), l ? l.call(t, e) : r.set(t, e), e);
6
+ import { SkfElement as u } from "../../internal/components/skf-element.js";
7
+ import b from "../../styles/component.styles.js";
8
+ import { html as g } from "lit";
9
+ import { property as n } from "lit/decorators.js";
10
+ import _ from "./loader.styles.js";
11
+ var x = Object.defineProperty, c = (t, r, e, l) => {
12
+ for (var i = void 0, a = t.length - 1, d; a >= 0; a--)
13
+ (d = t[a]) && (i = d(r, e, i) || i);
14
+ return i && x(r, e, i), i;
15
+ }, s;
16
+ const v = class v extends u {
13
17
  constructor() {
14
- super(...arguments), this.ariaLabel = "Loading...", this.invert = !1, this.size = "md";
15
- }
16
- connectedCallback() {
17
- super.connectedCallback(), this.setAttribute("role", "progressbar"), this.setAttribute("aria-live", "polite");
18
- }
19
- /** @internal */
20
- getCircle(t, i) {
21
- return d`
22
- <circle
23
- cx=${t}
24
- cy="26"
25
- fill=${this.invert ? c.neutralWhite : c.brandBase}
26
- key=${t}
27
- r="6"
28
- stroke="none"
29
- >
30
- <animate
31
- attributeName="opacity"
32
- begin=${i}
33
- dur="1s"
34
- repeatCount="indefinite"
35
- values="0;1;0"
36
- />
37
- </circle>
38
- `;
18
+ super();
19
+ h(this, s);
20
+ this.ariaLabel = "Loading...", this.size = "md", y(this, s, this.attachInternals()), p(this, s).role = "progressbar", p(this, s).ariaLive = "polite";
39
21
  }
40
22
  render() {
41
- return h`
42
- <div aria-hidden="true" id="loader">
43
- <svg
44
- enableBackground="new 0 0 0 0"
45
- height="100%"
46
- version="1.1"
47
- viewBox="0 0 52 52"
48
- width="100%"
49
- x="0px"
50
- y="0px"
51
- >
52
- ${[this.getCircle(6, 0.1), this.getCircle(26, 0.2), this.getCircle(46, 0.3)]}
53
- </svg>
23
+ return g`
24
+ <div id="root">
25
+ <div class="circle"></div>
26
+ <div class="circle"></div>
27
+ <div class="circle"></div>
54
28
  </div>
55
29
  `;
56
30
  }
57
31
  };
58
- n.styles = [m, v];
59
- let r = n;
60
- o([
61
- a({ type: String, reflect: !0, attribute: "aria-label" })
62
- ], r.prototype, "ariaLabel");
63
- o([
64
- a({ type: Boolean })
65
- ], r.prototype, "invert");
66
- o([
67
- a({ type: String, reflect: !0 })
68
- ], r.prototype, "size");
32
+ s = new WeakMap(), v.styles = [b, _];
33
+ let o = v;
34
+ c([
35
+ n({ reflect: !0, attribute: "aria-label" })
36
+ ], o.prototype, "ariaLabel");
37
+ c([
38
+ n({ type: Boolean })
39
+ ], o.prototype, "invert");
40
+ c([
41
+ n({ type: String, reflect: !0 })
42
+ ], o.prototype, "size");
69
43
  export {
70
- r as SkfLoader
44
+ o as SkfLoader
71
45
  };
@@ -1,18 +1,50 @@
1
1
  import { css as s } from "lit";
2
- const a = s`
3
- :host {
4
- display: inline-flex;
5
- }
2
+ const e = s`
3
+ @layer components {
4
+ :host {
5
+ display: inline-flex;
6
+ }
7
+
8
+ #root {
9
+ display: flex;
10
+ gap: var(--_skf-loader-gap, var(--skf-spacing-50));
11
+
12
+ :host([size='sm']) & {
13
+ --_skf-loader-gap: var(--skf-spacing-25);
14
+ }
15
+ }
6
16
 
7
- #loader {
8
- aspect-ratio: 1;
9
- block-size: var(--_skf-loader-size, var(--skf-size-48));
17
+ .circle {
18
+ animation: skf-loader 0.5s infinite ease-in alternate;
19
+ aspect-ratio: 1;
20
+ background-color: var(--_skf-loader-color, var(--skf-bg-color-emphasised));
21
+ border-radius: 50%;
22
+ inline-size: var(--_skf-loader-size, var(--skf-size-12));
23
+
24
+ &:nth-child(2) {
25
+ animation-delay: 0.1s;
26
+ }
27
+
28
+ &:nth-child(3) {
29
+ animation-delay: 0.2s;
30
+ }
31
+
32
+ :host([invert]) & {
33
+ --_skf-loader-color: var(--skf-bg-color-neutral-1);
34
+ }
35
+
36
+ :host([size='sm']) & {
37
+ --_skf-loader-size: var(--skf-size-4);
38
+ }
39
+ }
10
40
 
11
- :host([size='sm']) & {
12
- --_skf-loader-size: var(--skf-size-24);
41
+ @keyframes skf-loader {
42
+ to {
43
+ opacity: 0;
44
+ }
13
45
  }
14
46
  }
15
47
  `;
16
48
  export {
17
- a as default
49
+ e as default
18
50
  };
@@ -10,10 +10,12 @@ import { type CSSResultGroup } from 'lit';
10
10
  */
11
11
  export declare class SkfLogo extends SkfElement {
12
12
  static styles: CSSResultGroup;
13
- /** The title of the logo */
13
+ /** Defines the title of the logo */
14
14
  title: string;
15
- /** If provided, sets color of the logo */
16
- /** @type { "primary" | "secondary" | "inverse" } */
15
+ /**
16
+ * If defined, sets color of the logo
17
+ * @type { "primary" | "secondary" | "inverse" }
18
+ */
17
19
  color?: Logo;
18
20
  render(): import("lit").TemplateResult<1>;
19
21
  }
@@ -1,12 +1,12 @@
1
1
  import { SkfElement as i } from "../../internal/components/skf-element.js";
2
2
  import m from "../../styles/component.styles.js";
3
3
  import { html as n } from "lit";
4
- import { property as v } from "lit/decorators.js";
4
+ import { property as l } from "lit/decorators.js";
5
5
  import a from "./logo.styles.js";
6
- var d = Object.defineProperty, s = (h, o, l, f) => {
7
- for (var c = void 0, r = h.length - 1, p; r >= 0; r--)
8
- (p = h[r]) && (c = p(o, l, c) || c);
9
- return c && d(o, l, c), c;
6
+ var d = Object.defineProperty, s = (h, o, p, f) => {
7
+ for (var c = void 0, r = h.length - 1, v; r >= 0; r--)
8
+ (v = h[r]) && (c = v(o, p, c) || c);
9
+ return c && d(o, p, c), c;
10
10
  };
11
11
  const e = class e extends i {
12
12
  constructor() {
@@ -14,7 +14,7 @@ const e = class e extends i {
14
14
  }
15
15
  render() {
16
16
  return n`
17
- <svg id="logo" viewBox="0 0 1300 300" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px">
17
+ <svg id="root" viewBox="0 0 1300 300" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px">
18
18
  <title>${this.title}</title>
19
19
  <g>
20
20
  <g>
@@ -58,10 +58,10 @@ c0,5.8-4.3,6.1-9.1,6.1H1230.9z"
58
58
  e.styles = [m, a];
59
59
  let t = e;
60
60
  s([
61
- v()
61
+ l()
62
62
  ], t.prototype, "title");
63
63
  s([
64
- v()
64
+ l()
65
65
  ], t.prototype, "color");
66
66
  export {
67
67
  t as SkfLogo
@@ -1,10 +1,10 @@
1
1
  import { css as o } from "lit";
2
2
  const r = o`
3
3
  :host {
4
- display: contents;
4
+ display: inline-flex;
5
5
  }
6
6
 
7
- #logo {
7
+ #root {
8
8
  aspect-ratio: 13 / 3;
9
9
  block-size: var(--skf-logo-height, var(--skf-size-32));
10
10
  fill: var(--_skf-logo-color, var(--skf-logo-primary));
@@ -5,40 +5,42 @@ import { type CSSResultGroup } from 'lit';
5
5
  /**
6
6
  * The `<skf-radio>` component is used to create a radio input
7
7
  *
8
- * @documentation See [InVision DSM](https://skf.invisionapp.com/dsm/ab-skf/4-web-applications/nav/5fa7caf78c01200018354495/asset/6229d63d9fe16020a60657e5) for design principles
8
+ * @documentation See [zeroheight](https://zeroheight.com/853e936c9/p/78d5dd-radio-button) for design principles
9
9
  *
10
10
  * @attribute {boolean} disabled - If true, sets disabled state
11
11
  * @attribute {boolean} required - If true, value is required or must be checked for the form to be submittable
12
12
  *
13
13
  * @event change {object} - When the value of the input changes
14
14
  *
15
- * @slot Default - Alternatively, you can use the `label` attribute
15
+ * @slot - The radios label. Alternatively, you can use the `label` attribute.
16
16
  *
17
17
  * @tagname skf-radio
18
18
  */
19
19
  export declare class SkfRadio extends FormBase implements FormFieldBaseProps {
20
20
  static styles: CSSResultGroup;
21
- /** @internal */
22
21
  private _initialChecked;
23
- /** If provided, outputs helping hints in console */
24
- debug?: boolean | undefined;
22
+ /** If true, outputs helping hints in console */
23
+ debug?: boolean;
25
24
  /** If true, outputs helping hints in console */
26
25
  checked?: boolean;
27
26
  /** If true, forces component to invalid state until removed */
28
27
  customInvalid?: boolean;
29
28
  /** If true, hides the label visually */
30
- hideLabel: boolean;
31
- /** The input's label. Alternatively, you can use the `label` attribute. */
29
+ hideLabel?: boolean;
30
+ /** If defined, sets the input's label unless the default slot is used. Alternatively, you can use the `label` attribute. */
32
31
  label?: string;
33
- /** If provided, adds name to the input-element */
32
+ /** If defined, adds name to the input-element */
34
33
  name?: string;
35
- /** If provided, renders an alternative A11y text for the asterisk */
34
+ /** If defined, renders an alternative A11y text for the asterisk */
36
35
  requiredLabel?: string;
37
- /** If provided, displays an alternative size */
38
- size?: 'sm' | 'md';
39
- /** If provided, displays provided severity state */
36
+ /** Size of the Radio */
37
+ size: 'sm' | 'md';
38
+ /**
39
+ * If defined, displays provided severity state
40
+ * @type {"success" | "info" | "warning" | "alert"}
41
+ */
40
42
  severity?: FormFieldBaseProps['severity'];
41
- /** If provided, displays valid state after interaction */
43
+ /** If true, displays valid state after interaction */
42
44
  showValid?: boolean;
43
45
  /** The current value of the input field */
44
46
  value: string;
@@ -14,7 +14,7 @@ var k = Object.defineProperty, i = (n, t, r, l) => {
14
14
  };
15
15
  const d = class d extends u {
16
16
  constructor() {
17
- super(...arguments), this._initialChecked = !1, this.debug = !1, this.hideLabel = !1, this.size = "md", this.value = "", this._invalid = !1, this._resetValue = (t) => {
17
+ super(...arguments), this._initialChecked = !1, this.size = "md", this.value = "", this._invalid = !1, this._resetValue = (t) => {
18
18
  t.stopPropagation(), this.checked = this._initialChecked, this.$input && (this.$input.checked = !!this._initialChecked), this.setFormValue(this.checked ? this.value : "");
19
19
  };
20
20
  }
@@ -70,7 +70,7 @@ const d = class d extends u {
70
70
  }
71
71
  render() {
72
72
  return m`
73
- <label id="radio">
73
+ <label id="root">
74
74
  <input
75
75
  ?disabled=${this.disabled}
76
76
  ?required=${this.required}
@@ -115,7 +115,7 @@ i([
115
115
  a({ reflect: !0 })
116
116
  ], e.prototype, "size");
117
117
  i([
118
- a({ reflect: !0 })
118
+ a()
119
119
  ], e.prototype, "severity");
120
120
  i([
121
121
  a({ type: Boolean, attribute: "show-valid" })