@skf-design-system/ui-components 1.0.0-alpha.27 → 1.0.0-alpha.28

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 (91) hide show
  1. package/README.md +26 -6
  2. package/custom-elements.json +18265 -0
  3. package/dist/components/alert/alert.component.js +20 -18
  4. package/dist/components/alert/alert.styles.js +50 -47
  5. package/dist/components/button/button.component.d.ts +24 -0
  6. package/dist/components/button/button.component.js +79 -55
  7. package/dist/components/button/button.styles.js +1 -0
  8. package/dist/components/checkbox/checkbox.component.d.ts +3 -8
  9. package/dist/components/checkbox/checkbox.component.js +95 -90
  10. package/dist/components/checkbox/checkbox.styles.js +2 -2
  11. package/dist/components/input/input.component.d.ts +10 -0
  12. package/dist/components/input/input.component.js +89 -82
  13. package/dist/components/progress/progress.component.d.ts +22 -0
  14. package/dist/components/progress/progress.component.js +40 -0
  15. package/dist/components/progress/progress.d.ts +8 -0
  16. package/dist/components/progress/progress.js +6 -0
  17. package/dist/components/progress/progress.styles.d.ts +1 -0
  18. package/dist/components/progress/progress.styles.js +47 -0
  19. package/dist/components/radio/radio.component.d.ts +4 -6
  20. package/dist/components/radio/radio.component.js +93 -77
  21. package/dist/components/select/select.component.d.ts +5 -2
  22. package/dist/components/select/select.component.js +103 -88
  23. package/dist/components/select/select.controllers.js +5 -2
  24. package/dist/components/switch/switch.component.js +4 -1
  25. package/dist/components/tab/tab.component.d.ts +29 -0
  26. package/dist/components/tab/tab.component.js +57 -0
  27. package/dist/components/tab/tab.d.ts +8 -0
  28. package/dist/components/tab/tab.js +6 -0
  29. package/dist/components/tab/tab.styles.d.ts +1 -0
  30. package/dist/components/tab/tab.styles.js +123 -0
  31. package/dist/components/tab-group/tab-group.component.d.ts +43 -0
  32. package/dist/components/tab-group/tab-group.component.js +98 -0
  33. package/dist/components/tab-group/tab-group.d.ts +8 -0
  34. package/dist/components/tab-group/tab-group.js +6 -0
  35. package/dist/components/tab-group/tab-group.styles.d.ts +1 -0
  36. package/dist/components/tab-group/tab-group.styles.js +75 -0
  37. package/dist/components/tab-panel/tab-panel.component.d.ts +19 -0
  38. package/dist/components/tab-panel/tab-panel.component.js +36 -0
  39. package/dist/components/tab-panel/tab-panel.d.ts +8 -0
  40. package/dist/components/tab-panel/tab-panel.js +6 -0
  41. package/dist/components/tab-panel/tab-panel.styles.d.ts +1 -0
  42. package/dist/components/tab-panel/tab-panel.styles.js +13 -0
  43. package/dist/components/textarea/textarea.component.js +5 -5
  44. package/dist/components/toast/toast.component.d.ts +35 -0
  45. package/dist/components/toast/toast.component.js +52 -0
  46. package/dist/components/toast/toast.d.ts +8 -0
  47. package/dist/components/toast/toast.js +6 -0
  48. package/dist/components/toast/toast.singleton.d.ts +26 -0
  49. package/dist/components/toast/toast.singleton.js +53 -0
  50. package/dist/components/toast/toast.styles.d.ts +1 -0
  51. package/dist/components/toast/toast.styles.js +9 -0
  52. package/dist/components/toast-item/toast-item.component.d.ts +21 -0
  53. package/dist/components/toast-item/toast-item.component.js +65 -0
  54. package/dist/components/toast-item/toast-item.d.ts +6 -0
  55. package/dist/components/toast-item/toast-item.js +2 -0
  56. package/dist/components/toast-item/toast-item.styles.d.ts +2 -0
  57. package/dist/components/toast-item/toast-item.styles.js +16 -0
  58. package/dist/components/toast-wrapper/toast-wrapper.component.d.ts +24 -0
  59. package/dist/components/toast-wrapper/toast-wrapper.component.js +37 -0
  60. package/dist/components/toast-wrapper/toast-wrapper.d.ts +8 -0
  61. package/dist/components/toast-wrapper/toast-wrapper.js +6 -0
  62. package/dist/components/toast-wrapper/toast-wrapper.styles.d.ts +1 -0
  63. package/dist/components/toast-wrapper/toast-wrapper.styles.js +20 -0
  64. package/dist/custom-elements.json +1167 -311
  65. package/dist/index.d.ts +5 -0
  66. package/dist/index.js +57 -42
  67. package/dist/internal/components/formBase.d.ts +1 -0
  68. package/dist/internal/components/formBase.js +11 -11
  69. package/dist/internal/helpers/watch.d.ts +27 -0
  70. package/dist/internal/helpers/watch.js +28 -0
  71. package/dist/react/index.d.ts +6 -0
  72. package/dist/react/index.js +6 -0
  73. package/dist/react/skf-button/index.d.ts +7 -1
  74. package/dist/react/skf-button/index.js +5 -1
  75. package/dist/react/skf-progress/index.d.ts +3 -0
  76. package/dist/react/skf-progress/index.js +13 -0
  77. package/dist/react/skf-tab/index.d.ts +12 -0
  78. package/dist/react/skf-tab/index.js +18 -0
  79. package/dist/react/skf-tab-group/index.d.ts +3 -0
  80. package/dist/react/skf-tab-group/index.js +13 -0
  81. package/dist/react/skf-tab-panel/index.d.ts +3 -0
  82. package/dist/react/skf-tab-panel/index.js +13 -0
  83. package/dist/react/skf-toast/index.d.ts +3 -0
  84. package/dist/react/skf-toast/index.js +13 -0
  85. package/dist/react/skf-toast-wrapper/index.d.ts +3 -0
  86. package/dist/react/skf-toast-wrapper/index.js +13 -0
  87. package/dist/types/jsx/custom-element-jsx.d.ts +115 -1096
  88. package/dist/types/vue/index.d.ts +147 -8
  89. package/dist/vscode.html-custom-data.json +116 -16
  90. package/dist/web-types.json +304 -35
  91. package/package.json +27 -27
@@ -0,0 +1,40 @@
1
+ var h = (t) => {
2
+ throw TypeError(t);
3
+ };
4
+ var f = (t, e, r) => e.has(t) || h("Cannot " + r);
5
+ var v = (t, e, r) => (f(t, e, "read from private field"), r ? r.call(t) : e.get(t)), y = (t, e, r) => e.has(t) ? h("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, r), c = (t, e, r, a) => (f(t, e, "write to private field"), a ? a.call(t, r) : e.set(t, r), r);
6
+ import { SkfElement as d } from "../../internal/components/skf-element.js";
7
+ import x from "../../styles/component.styles.js";
8
+ import { html as b } from "lit";
9
+ import { property as m } from "lit/decorators.js";
10
+ import { styles as _ } from "./progress.styles.js";
11
+ var N = Object.defineProperty, n = (t, e, r, a) => {
12
+ for (var o = void 0, l = t.length - 1, u; l >= 0; l--)
13
+ (u = t[l]) && (o = u(e, r, o) || o);
14
+ return o && N(e, r, o), o;
15
+ }, i;
16
+ const p = class p extends d {
17
+ constructor() {
18
+ super();
19
+ y(this, i);
20
+ this.max = 1, this.value = 0, c(this, i, this.attachInternals()), v(this, i).role = "progressbar";
21
+ }
22
+ render() {
23
+ const r = this.value / this.max * 100;
24
+ return b`<div id="root" style="--_skf-progress-value: ${r}%"></div>`;
25
+ }
26
+ };
27
+ i = new WeakMap(), p.styles = [x, _], p.formAssociated = !0;
28
+ let s = p;
29
+ n([
30
+ m({ type: Boolean, reflect: !0 })
31
+ ], s.prototype, "animated");
32
+ n([
33
+ m({ type: Number })
34
+ ], s.prototype, "max");
35
+ n([
36
+ m({ type: Number })
37
+ ], s.prototype, "value");
38
+ export {
39
+ s as SkfProgress
40
+ };
@@ -0,0 +1,8 @@
1
+ import { SkfProgress } from './progress.component';
2
+ export * from './progress.component';
3
+ export default SkfProgress;
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ 'skf-progress': SkfProgress;
7
+ }
8
+ }
@@ -0,0 +1,6 @@
1
+ import { SkfProgress as r } from "./progress.component.js";
2
+ r.define("skf-progress");
3
+ export {
4
+ r as SkfProgress,
5
+ r as default
6
+ };
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,47 @@
1
+ import { css as r } from "lit";
2
+ const e = r`
3
+ @layer components {
4
+ #root {
5
+ background: var(--skf-bg-color-neutral-3);
6
+ block-size: var(--skf-size-8);
7
+ border-radius: 0.25rem; /* Missing token */
8
+ overflow: hidden;
9
+
10
+ &::after {
11
+ background-color: var(--skf-bg-color-emphasised);
12
+ block-size: inherit;
13
+ border-radius: inherit;
14
+ content: '';
15
+ display: block;
16
+ inline-size: var(--_skf-progress-value, auto);
17
+ transition: inline-size calc(var(--skf-motion-duration-slow) * 1ms)
18
+ cubic-bezier(0.4, 0.93, 0.71, 0.89);
19
+ }
20
+
21
+ :host([animated]) &::after {
22
+ animation: skf-progress-animation calc(var(--skf-motion-duration-slow) * 1ms) linear
23
+ infinite reverse;
24
+ background-image: linear-gradient(
25
+ -45deg,
26
+ rgba(255 255 255 / 20%) 25%,
27
+ transparent 25%,
28
+ transparent 50%,
29
+ rgba(255 255 255 / 20%) 50%,
30
+ rgba(255 255 255 / 20%) 75%,
31
+ transparent 75%,
32
+ transparent
33
+ );
34
+ background-size: 50px 50px;
35
+ }
36
+ }
37
+
38
+ @keyframes skf-progress-animation {
39
+ to {
40
+ background-position: 50px 50px;
41
+ }
42
+ }
43
+ }
44
+ `;
45
+ export {
46
+ e as styles
47
+ };
@@ -25,8 +25,6 @@ export declare class SkfRadio extends FormBase implements FormFieldBaseProps {
25
25
  checked?: boolean;
26
26
  /** If true, forces component to invalid state until removed */
27
27
  customInvalid?: boolean;
28
- /** If true, hides the label visually */
29
- hideLabel?: boolean;
30
28
  /** If defined, sets the input's label unless the default slot is used. Alternatively, you can use the `label` attribute. */
31
29
  label?: string;
32
30
  /** If defined, adds name to the input-element */
@@ -50,11 +48,11 @@ export declare class SkfRadio extends FormBase implements FormFieldBaseProps {
50
48
  /** @internal */
51
49
  private $input?;
52
50
  connectedCallback(): void;
53
- willUpdate(changedProperties: Map<string | number | symbol, unknown>): void;
54
51
  protected firstUpdated(): void;
55
- updated(changedProperties: Map<string | number | symbol, unknown>): void;
56
- attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
57
- debugOutput(): void;
52
+ handleInvalidChange(): void;
53
+ handleDebugInvalid(): void;
54
+ handleCheckedChanged(): void;
55
+ handleCustomInvalidChange(): void;
58
56
  /** @internal */
59
57
  private _resetValue;
60
58
  /** @internal */
@@ -1,70 +1,77 @@
1
1
  import "../icon/icon.js";
2
- import { FormBase as u } from "../../internal/components/formBase.js";
3
- import { Asterisk as c } from "../../internal/templates/asterisk.js";
4
- import p from "../../styles/component.styles.js";
2
+ import { FormBase as c } from "../../internal/components/formBase.js";
3
+ import { watch as n } from "../../internal/helpers/watch.js";
4
+ import { Asterisk as p } from "../../internal/templates/asterisk.js";
5
+ import v from "../../styles/component.styles.js";
5
6
  import { html as m } from "lit";
6
- import { property as a, state as v, query as f } from "lit/decorators.js";
7
- import { ifDefined as y } from "lit/directives/if-defined.js";
8
- import { live as b } from "lit/directives/live.js";
9
- import _ from "./radio.styles.js";
10
- var k = Object.defineProperty, i = (n, t, r, l) => {
11
- for (var s = void 0, o = n.length - 1, h; o >= 0; o--)
12
- (h = n[o]) && (s = h(t, r, s) || s);
13
- return s && k(t, r, s), s;
7
+ import { property as r, state as f, query as y } from "lit/decorators.js";
8
+ import { ifDefined as b } from "lit/directives/if-defined.js";
9
+ import { live as _ } from "lit/directives/live.js";
10
+ import g from "./radio.styles.js";
11
+ var k = Object.defineProperty, C = Object.getOwnPropertyDescriptor, i = (u, e, s, o) => {
12
+ for (var a = o > 1 ? void 0 : o ? C(e, s) : e, l = u.length - 1, h; l >= 0; l--)
13
+ (h = u[l]) && (a = (o ? h(e, s, a) : h(a)) || a);
14
+ return o && a && k(e, s, a), a;
14
15
  };
15
- const d = class d extends u {
16
+ const d = class d extends c {
16
17
  constructor() {
17
- super(...arguments), this._initialChecked = !1, this.size = "md", this.value = "", this._invalid = !1, this._resetValue = (t) => {
18
- t.stopPropagation(), this.checked = this._initialChecked, this.$input && (this.$input.checked = !!this._initialChecked), this.setFormValue(this.checked ? this.value : "");
18
+ super(...arguments), this._initialChecked = !1, this.size = "md", this.value = "", this._invalid = !1, this._resetValue = (e) => {
19
+ e.stopPropagation(), this.checked = this._initialChecked, this.$input && (this.$input.checked = !!this._initialChecked), this.setFormValue(this.checked ? this.value : "");
19
20
  };
20
21
  }
21
22
  connectedCallback() {
22
23
  super.connectedCallback(), this._validateInput();
23
24
  }
24
- willUpdate(t) {
25
- t.has("_invalid") && (this._invalid ? (this.setAttribute("invalid", ""), this.showValid || this.removeAttribute("valid"), this.checkValidity()) : (this.removeAttribute("invalid"), !this.pristine && this.showValid && this.setAttribute("valid", "true")));
26
- }
27
25
  firstUpdated() {
28
- var t;
29
- (t = this.$input) == null || t.addEventListener("change", (r) => {
30
- var l;
31
- r.stopPropagation(), this.pristine = !1, this.checked = (l = this.$input) == null ? void 0 : l.checked, this._validateInput(), this.checked ? this.setFormValue(this.value) : this.setFormValue(""), this.emitEvent("change");
32
- }), this.addEventListener("invalid", (r) => {
33
- this.pristine = !1, this._invalid = !0, this.customErrorDisplay && r.preventDefault();
26
+ var e;
27
+ (e = this.$input) == null || e.addEventListener("change", (s) => {
28
+ var o;
29
+ s.stopPropagation(), this.pristine = !1, this.checked = (o = this.$input) == null ? void 0 : o.checked, this._validateInput(), this.checked ? this.setFormValue(this.value) : this.setFormValue(""), this.emitEvent("change");
30
+ }), this.addEventListener("invalid", (s) => {
31
+ this.pristine = !1, this._invalid = !0, this.customErrorDisplay && s.preventDefault();
34
32
  }), this._initialChecked = this.checked, this.addEventListener("reset", this._resetValue);
35
33
  }
36
- updated(t) {
37
- super.updated(t), t.has("_invalid") && this._invalid && this.debug && this.debugOutput(), t.has("checked") && this.form && this.setFormValue(this.checked ? this.value : null);
34
+ handleInvalidChange() {
35
+ this._invalid ? (this.setAttribute("invalid", ""), this.showValid && this.removeAttribute("valid"), this.checkValidity()) : (this.removeAttribute("invalid"), !this.pristine && this.showValid && this.setAttribute("valid", "true"));
36
+ }
37
+ handleDebugInvalid() {
38
+ this._invalid && this.debug && !this.validity.valid && console.log(`Radio invalidity reason: ${this._internals.validationMessage}`);
38
39
  }
39
- attributeChangedCallback(t, r, l) {
40
- if (super.attributeChangedCallback(t, r, l), t === "checked" && l !== null && this._uncheckSiblingRadios(), t === "custom-invalid")
41
- if (typeof l == "string") {
42
- const o = String(l).trim() || "Custom error";
43
- this.pristine = !1, this._invalid = !0, this._internals.setValidity({ customError: !0 }, o), this.checkValidity();
44
- } else
45
- this.setValidity({}), this._validateInput();
40
+ handleCheckedChanged() {
41
+ this.setFormValue(this.checked ? this.value : null), this.checked && this._uncheckSiblingRadios();
46
42
  }
47
- debugOutput() {
48
- this.debug && !this._internals.validity.valid && console.log(`Radio invalidity reason: ${this._internals.validationMessage}`);
43
+ handleCustomInvalidChange() {
44
+ if (this.customInvalid) {
45
+ const s = (
46
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
47
+ this.getAttribute("data-customerror") || "Set a custom error message using the data-customerror attribute"
48
+ );
49
+ this.pristine = !1, this._invalid = !0, this.setValidity({ customError: !0 }, s), this.checkValidity();
50
+ } else
51
+ this.setValidity({}), this._validateInput();
49
52
  }
50
53
  /** @internal */
51
54
  _uncheckSiblingRadios() {
52
- const t = this.name;
53
- if (!t) return;
54
- (this.form ?? document).querySelectorAll(`skf-radio[name="${t}"]`).forEach((s) => {
55
- const o = this.form === s.form, h = !this.form && !s.form;
56
- s !== this && (o || h) && (s.checked = !1);
55
+ const e = this.name;
56
+ if (!e) return;
57
+ (this.form ?? document).querySelectorAll(`skf-radio[name="${e}"]`).forEach((a) => {
58
+ const l = this.form === a.form, h = !this.form && !a.form;
59
+ a !== this && (l || h) && (a.checked = !1);
57
60
  });
58
61
  }
59
62
  /** @internal */
60
63
  _validateInput() {
61
- var t;
62
- if (this._invalid = !1, this.customInvalid)
63
- this.setValidity({ customError: !0 }, "Custom error"), this._invalid = !0;
64
- else if (this.required && !this.checked) {
64
+ var e;
65
+ if (this._invalid = !1, this.customInvalid) {
66
+ const s = this.getAttribute("data-customerror");
67
+ this.setValidity({ customError: !0 }, this.withFallback(s)), this._invalid = !0;
68
+ } else if (this.required && !this.checked) {
65
69
  this.pristine || (this._invalid = !0);
66
- const r = this.hasAttribute("data-valuemissing") ? this.getAttribute("data-valuemissing") : ((t = this.$input) == null ? void 0 : t.validationMessage) ?? "Please check this box if you want to proceed";
67
- this.setValidity({ valueMissing: !0 }, String(r));
70
+ const s = this.hasAttribute("data-valuemissing") ? this.getAttribute("data-valuemissing") : (
71
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
72
+ ((e = this.$input) == null ? void 0 : e.validationMessage) || "Please check this radio if you want to proceed"
73
+ );
74
+ this.setValidity({ valueMissing: !0 }, this.withFallback(s));
68
75
  } else
69
76
  this.setValidity({});
70
77
  }
@@ -74,61 +81,70 @@ const d = class d extends u {
74
81
  <input
75
82
  ?disabled=${this.disabled}
76
83
  ?required=${this.required}
77
- .checked=${b(!!this.checked)}
84
+ .checked=${_(!!this.checked)}
78
85
  aria-invalid=${!!this._invalid}
79
- name=${y(this.name)}
86
+ name=${b(this.name)}
80
87
  type="radio"
81
88
  value=${this.value}
82
89
  />
83
90
  <div id="label">
84
91
  <slot>${this.label}</slot>
85
- ${this.required ? c(this.requiredLabel) : null}
92
+ ${this.required ? p(this.requiredLabel) : null}
86
93
  </div>
87
94
  </label>
88
95
  `;
89
96
  }
90
97
  };
91
- d.styles = [p, _];
92
- let e = d;
98
+ d.styles = [v, g];
99
+ let t = d;
100
+ i([
101
+ r({ type: Boolean })
102
+ ], t.prototype, "debug", 2);
103
+ i([
104
+ r({ type: Boolean, reflect: !0 })
105
+ ], t.prototype, "checked", 2);
106
+ i([
107
+ r({ type: Boolean, attribute: "custom-invalid" })
108
+ ], t.prototype, "customInvalid", 2);
93
109
  i([
94
- a({ type: Boolean })
95
- ], e.prototype, "debug");
110
+ r()
111
+ ], t.prototype, "label", 2);
96
112
  i([
97
- a({ type: Boolean, reflect: !0 })
98
- ], e.prototype, "checked");
113
+ r()
114
+ ], t.prototype, "name", 2);
99
115
  i([
100
- a({ type: Boolean, attribute: "custom-invalid" })
101
- ], e.prototype, "customInvalid");
116
+ r({ attribute: "required-label" })
117
+ ], t.prototype, "requiredLabel", 2);
102
118
  i([
103
- a({ type: Boolean, attribute: "hide-label", reflect: !0 })
104
- ], e.prototype, "hideLabel");
119
+ r({ reflect: !0 })
120
+ ], t.prototype, "size", 2);
105
121
  i([
106
- a()
107
- ], e.prototype, "label");
122
+ r()
123
+ ], t.prototype, "severity", 2);
108
124
  i([
109
- a()
110
- ], e.prototype, "name");
125
+ r({ type: Boolean, attribute: "show-valid" })
126
+ ], t.prototype, "showValid", 2);
111
127
  i([
112
- a({ attribute: "required-label" })
113
- ], e.prototype, "requiredLabel");
128
+ r()
129
+ ], t.prototype, "value", 2);
114
130
  i([
115
- a({ reflect: !0 })
116
- ], e.prototype, "size");
131
+ f()
132
+ ], t.prototype, "_invalid", 2);
117
133
  i([
118
- a()
119
- ], e.prototype, "severity");
134
+ y("input")
135
+ ], t.prototype, "$input", 2);
120
136
  i([
121
- a({ type: Boolean, attribute: "show-valid" })
122
- ], e.prototype, "showValid");
137
+ n("_invalid")
138
+ ], t.prototype, "handleInvalidChange", 1);
123
139
  i([
124
- a()
125
- ], e.prototype, "value");
140
+ n("_invalid", { afterUpdate: !0 })
141
+ ], t.prototype, "handleDebugInvalid", 1);
126
142
  i([
127
- v()
128
- ], e.prototype, "_invalid");
143
+ n("checked")
144
+ ], t.prototype, "handleCheckedChanged", 1);
129
145
  i([
130
- f("input")
131
- ], e.prototype, "$input");
146
+ n("customInvalid")
147
+ ], t.prototype, "handleCustomInvalidChange", 1);
132
148
  export {
133
- e as SkfRadio
149
+ t as SkfRadio
134
150
  };
@@ -44,9 +44,11 @@ export declare class SkfSelect extends FormBase {
44
44
  /** If defined, sets the hint text under the select component in the form */
45
45
  hint?: string;
46
46
  /** A readonly property that returns the selected value(s) in a array */
47
- get getSelectedValues(): string[];
47
+ set selectedValues(values: string[]);
48
+ get selectedValues(): string[];
48
49
  /** A readonly property that returns the selected slot(s) text content in a array */
49
- get getSelectedOptionsText(): (string | null)[];
50
+ set selectedOptionsText(values: string[]);
51
+ get selectedOptionsText(): string[];
50
52
  /** If defined, displays provided label */
51
53
  label?: string;
52
54
  /** If defined, limits the number of selectable options */
@@ -66,6 +68,7 @@ export declare class SkfSelect extends FormBase {
66
68
  /** Size of the Select */
67
69
  size: 'sm' | 'md';
68
70
  /** Read only, returns the selected value. (if multiple: in a comma separated string) */
71
+ set value(newValue: string);
69
72
  get value(): string;
70
73
  /** Stores the selected SkfSelectOption tag(s) in a array. Is the source of truth for the internal state. */
71
74
  /** @internal */