@skf-design-system/ui-components 0.0.1-beta.4 → 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.
- package/README.md +26 -6
- package/custom-elements.json +18265 -0
- package/dist/components/accordion/accordion.component.d.ts +9 -5
- package/dist/components/accordion/accordion.component.js +22 -19
- package/dist/components/accordion/accordion.d.ts +1 -1
- package/dist/components/accordion/accordion.styles.js +3 -3
- package/dist/components/alert/alert.component.d.ts +7 -4
- package/dist/components/alert/alert.component.js +21 -19
- package/dist/components/alert/alert.styles.js +50 -47
- package/dist/components/button/button.component.d.ts +24 -0
- package/dist/components/button/button.component.js +80 -56
- package/dist/components/button/button.styles.js +2 -1
- package/dist/components/card/card.component.d.ts +3 -3
- package/dist/components/card/card.component.js +16 -19
- package/dist/components/card/card.styles.js +11 -3
- package/dist/components/checkbox/checkbox.component.d.ts +17 -15
- package/dist/components/checkbox/checkbox.component.js +95 -89
- package/dist/components/checkbox/checkbox.styles.js +7 -2
- package/dist/components/checkbox/checkbox.test.d.ts +1 -0
- package/dist/components/collapse/collapse.component.d.ts +9 -6
- package/dist/components/collapse/collapse.component.js +39 -36
- package/dist/components/collapse/collapse.styles.js +3 -3
- package/dist/components/collapse/collapse.test.d.ts +1 -0
- package/dist/components/divider/divider.component.d.ts +13 -10
- package/dist/components/divider/divider.component.js +34 -29
- package/dist/components/divider/divider.styles.js +1 -5
- package/dist/components/heading/heading.component.d.ts +12 -2
- package/dist/components/heading/heading.component.js +14 -14
- package/dist/components/heading/heading.styles.js +1 -1
- package/dist/components/icon/icon.component.d.ts +14 -8
- package/dist/components/icon/icon.component.js +6 -6
- package/dist/components/icon/icon.styles.js +56 -54
- package/dist/components/input/input.component.d.ts +44 -29
- package/dist/components/input/input.component.js +118 -111
- package/dist/components/link/link.component.d.ts +15 -12
- package/dist/components/link/link.component.js +7 -7
- package/dist/components/link/link.styles.js +1 -1
- package/dist/components/loader/loader.component.d.ts +7 -7
- package/dist/components/loader/loader.component.js +35 -61
- package/dist/components/loader/loader.styles.js +42 -10
- package/dist/components/logo/logo.component.d.ts +5 -3
- package/dist/components/logo/logo.component.js +8 -8
- package/dist/components/logo/logo.styles.js +2 -2
- package/dist/components/progress/progress.component.d.ts +22 -0
- package/dist/components/progress/progress.component.js +40 -0
- package/dist/components/progress/progress.d.ts +8 -0
- package/dist/components/progress/progress.js +6 -0
- package/dist/components/progress/progress.styles.d.ts +1 -0
- package/dist/components/progress/progress.styles.js +47 -0
- package/dist/components/radio/radio.component.d.ts +18 -18
- package/dist/components/radio/radio.component.js +94 -78
- package/dist/components/radio/radio.styles.js +6 -1
- package/dist/components/select/select.component.d.ts +140 -0
- package/dist/components/select/select.component.js +327 -0
- package/dist/components/select/select.controllers.d.ts +59 -0
- package/dist/components/select/select.controllers.js +172 -0
- package/dist/components/select/select.d.ts +8 -0
- package/dist/components/select/select.js +6 -0
- package/dist/components/select/select.styles.d.ts +1 -0
- package/dist/components/select/select.styles.js +131 -0
- package/dist/components/select-option/select-option.component.d.ts +77 -0
- package/dist/components/select-option/select-option.component.js +123 -0
- package/dist/components/select-option/select-option.controllers.d.ts +9 -0
- package/dist/components/select-option/select-option.d.ts +8 -0
- package/dist/components/select-option/select-option.js +6 -0
- package/dist/components/select-option/select-option.styles.d.ts +1 -0
- package/dist/components/select-option/select-option.styles.js +53 -0
- package/dist/components/select-option-group/select-option-group.component.d.ts +16 -0
- package/dist/components/select-option-group/select-option-group.component.js +31 -0
- package/dist/components/select-option-group/select-option-group.d.ts +8 -0
- package/dist/components/select-option-group/select-option-group.js +6 -0
- package/dist/components/select-option-group/select-option-group.style.d.ts +1 -0
- package/dist/components/select-option-group/select-option-group.style.js +18 -0
- package/dist/components/switch/switch.component.d.ts +2 -3
- package/dist/components/switch/switch.component.js +5 -2
- package/dist/components/switch/switch.styles.js +6 -1
- package/dist/components/switch/switch.test.d.ts +1 -0
- package/dist/components/tab/tab.component.d.ts +29 -0
- package/dist/components/tab/tab.component.js +57 -0
- package/dist/components/tab/tab.d.ts +8 -0
- package/dist/components/tab/tab.js +6 -0
- package/dist/components/tab/tab.styles.d.ts +1 -0
- package/dist/components/tab/tab.styles.js +123 -0
- package/dist/components/tab-group/tab-group.component.d.ts +43 -0
- package/dist/components/tab-group/tab-group.component.js +98 -0
- package/dist/components/tab-group/tab-group.d.ts +8 -0
- package/dist/components/tab-group/tab-group.js +6 -0
- package/dist/components/tab-group/tab-group.styles.d.ts +1 -0
- package/dist/components/tab-group/tab-group.styles.js +75 -0
- package/dist/components/tab-panel/tab-panel.component.d.ts +19 -0
- package/dist/components/tab-panel/tab-panel.component.js +36 -0
- package/dist/components/tab-panel/tab-panel.d.ts +8 -0
- package/dist/components/tab-panel/tab-panel.js +6 -0
- package/dist/components/tab-panel/tab-panel.styles.d.ts +1 -0
- package/dist/components/tab-panel/tab-panel.styles.js +13 -0
- package/dist/components/tag/tag.component.d.ts +25 -4
- package/dist/components/tag/tag.component.js +66 -29
- package/dist/components/tag/tag.styles.js +6 -5
- package/dist/components/textarea/textarea.component.d.ts +26 -23
- package/dist/components/textarea/textarea.component.js +20 -17
- package/dist/components/toast/toast.component.d.ts +35 -0
- package/dist/components/toast/toast.component.js +52 -0
- package/dist/components/toast/toast.d.ts +8 -0
- package/dist/components/toast/toast.js +6 -0
- package/dist/components/toast/toast.singleton.d.ts +26 -0
- package/dist/components/toast/toast.singleton.js +53 -0
- package/dist/components/toast/toast.styles.d.ts +1 -0
- package/dist/components/toast/toast.styles.js +9 -0
- package/dist/components/toast-item/toast-item.component.d.ts +21 -0
- package/dist/components/toast-item/toast-item.component.js +65 -0
- package/dist/components/toast-item/toast-item.d.ts +6 -0
- package/dist/components/toast-item/toast-item.js +2 -0
- package/dist/components/toast-item/toast-item.styles.d.ts +2 -0
- package/dist/components/toast-item/toast-item.styles.js +16 -0
- package/dist/components/toast-wrapper/toast-wrapper.component.d.ts +24 -0
- package/dist/components/toast-wrapper/toast-wrapper.component.js +37 -0
- package/dist/components/toast-wrapper/toast-wrapper.d.ts +8 -0
- package/dist/components/toast-wrapper/toast-wrapper.js +6 -0
- package/dist/components/toast-wrapper/toast-wrapper.styles.d.ts +1 -0
- package/dist/components/toast-wrapper/toast-wrapper.styles.js +20 -0
- package/dist/custom-elements.json +2146 -616
- package/dist/index.d.ts +8 -0
- package/dist/index.js +60 -36
- package/dist/internal/components/formBase.d.ts +19 -1
- package/dist/internal/components/formBase.js +29 -17
- package/dist/internal/components/hint/hint.component.js +12 -10
- package/dist/internal/components/hint/hint.styles.js +26 -10
- package/dist/internal/components/skf-element.d.ts +4 -4
- package/dist/internal/components/skf-element.js +15 -19
- package/dist/internal/helpers/array.d.ts +4 -0
- package/dist/internal/helpers/findMatchingTags.d.ts +2 -0
- package/dist/internal/helpers/findMatchingTags.js +12 -0
- package/dist/internal/helpers/hintSeverity.d.ts +2 -0
- package/dist/internal/helpers/hintSeverity.js +6 -0
- package/dist/internal/helpers/raiseError.d.ts +28 -0
- package/dist/internal/helpers/raiseError.js +29 -0
- package/dist/internal/helpers/watch.d.ts +27 -0
- package/dist/internal/helpers/watch.js +28 -0
- package/dist/internal/storybook/shadowRootTraverser.d.ts +16 -6
- package/dist/react/index.d.ts +9 -0
- package/dist/react/index.js +9 -0
- package/dist/react/skf-button/index.d.ts +7 -1
- package/dist/react/skf-button/index.js +5 -1
- package/dist/react/skf-progress/index.d.ts +3 -0
- package/dist/react/skf-progress/index.js +13 -0
- package/dist/react/skf-select/index.d.ts +21 -0
- package/dist/react/skf-select/index.js +21 -0
- package/dist/react/skf-select-option/index.d.ts +9 -0
- package/dist/react/skf-select-option/index.js +17 -0
- package/dist/react/skf-select-option-group/index.d.ts +3 -0
- package/dist/react/skf-select-option-group/index.js +13 -0
- package/dist/react/skf-tab/index.d.ts +12 -0
- package/dist/react/skf-tab/index.js +18 -0
- package/dist/react/skf-tab-group/index.d.ts +3 -0
- package/dist/react/skf-tab-group/index.js +13 -0
- package/dist/react/skf-tab-panel/index.d.ts +3 -0
- package/dist/react/skf-tab-panel/index.js +13 -0
- package/dist/react/skf-toast/index.d.ts +3 -0
- package/dist/react/skf-toast/index.js +13 -0
- package/dist/react/skf-toast-wrapper/index.d.ts +3 -0
- package/dist/react/skf-toast-wrapper/index.js +13 -0
- package/dist/styles/form-field.styles.js +11 -7
- package/dist/types/jsx/custom-element-jsx.d.ts +166 -995
- package/dist/types/vue/index.d.ts +368 -94
- package/dist/vscode.html-custom-data.json +408 -106
- package/dist/web-types.json +932 -281
- package/package.json +39 -35
@@ -1,18 +1,50 @@
|
|
1
1
|
import { css as s } from "lit";
|
2
|
-
const
|
3
|
-
|
4
|
-
|
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
|
-
|
8
|
-
|
9
|
-
|
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
|
-
|
12
|
-
|
41
|
+
@keyframes skf-loader {
|
42
|
+
to {
|
43
|
+
opacity: 0;
|
44
|
+
}
|
13
45
|
}
|
14
46
|
}
|
15
47
|
`;
|
16
48
|
export {
|
17
|
-
|
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
|
-
/**
|
13
|
+
/** Defines the title of the logo */
|
14
14
|
title: string;
|
15
|
-
/**
|
16
|
-
|
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
|
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,
|
7
|
-
for (var c = void 0, r = h.length - 1,
|
8
|
-
(
|
9
|
-
return c && d(o,
|
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="
|
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
|
-
|
61
|
+
l()
|
62
62
|
], t.prototype, "title");
|
63
63
|
s([
|
64
|
-
|
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:
|
4
|
+
display: inline-flex;
|
5
5
|
}
|
6
6
|
|
7
|
-
#
|
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));
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { SkfElement } from '@internal/components/skf-element';
|
2
|
+
import { type CSSResultGroup } from 'lit';
|
3
|
+
/**
|
4
|
+
* The `<skf-progress>` element displays an indicator showing the completion progress of a task, typically displayed as a progress bar
|
5
|
+
*
|
6
|
+
* @documentation See [zeroheight](https://zeroheight.com/****) for design principles
|
7
|
+
*
|
8
|
+
* @tagname skf-progress
|
9
|
+
*/
|
10
|
+
export declare class SkfProgress extends SkfElement {
|
11
|
+
#private;
|
12
|
+
static styles: CSSResultGroup;
|
13
|
+
static formAssociated: boolean;
|
14
|
+
/** If true, the progress-bar's fill value is animated */
|
15
|
+
animated?: boolean;
|
16
|
+
/** Describes how much work the task indicated by the progress element requires */
|
17
|
+
max: number;
|
18
|
+
/** Specifies how much of the task that has been completed */
|
19
|
+
value: number;
|
20
|
+
constructor();
|
21
|
+
render(): import("lit").TemplateResult<1>;
|
22
|
+
}
|
@@ -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 @@
|
|
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
|
+
};
|
@@ -5,40 +5,40 @@ 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 [
|
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
|
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
|
24
|
-
debug?: boolean
|
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
|
-
/** If
|
30
|
-
hideLabel: boolean;
|
31
|
-
/** The input's label. Alternatively, you can use the `label` attribute. */
|
28
|
+
/** If defined, sets the input's label unless the default slot is used. Alternatively, you can use the `label` attribute. */
|
32
29
|
label?: string;
|
33
|
-
/** If
|
30
|
+
/** If defined, adds name to the input-element */
|
34
31
|
name?: string;
|
35
|
-
/** If
|
32
|
+
/** If defined, renders an alternative A11y text for the asterisk */
|
36
33
|
requiredLabel?: string;
|
37
|
-
/**
|
38
|
-
size
|
39
|
-
/**
|
34
|
+
/** Size of the Radio */
|
35
|
+
size: 'sm' | 'md';
|
36
|
+
/**
|
37
|
+
* If defined, displays provided severity state
|
38
|
+
* @type {"success" | "info" | "warning" | "alert"}
|
39
|
+
*/
|
40
40
|
severity?: FormFieldBaseProps['severity'];
|
41
|
-
/** If
|
41
|
+
/** If true, displays valid state after interaction */
|
42
42
|
showValid?: boolean;
|
43
43
|
/** The current value of the input field */
|
44
44
|
value: string;
|
@@ -48,11 +48,11 @@ export declare class SkfRadio extends FormBase implements FormFieldBaseProps {
|
|
48
48
|
/** @internal */
|
49
49
|
private $input?;
|
50
50
|
connectedCallback(): void;
|
51
|
-
willUpdate(changedProperties: Map<string | number | symbol, unknown>): void;
|
52
51
|
protected firstUpdated(): void;
|
53
|
-
|
54
|
-
|
55
|
-
|
52
|
+
handleInvalidChange(): void;
|
53
|
+
handleDebugInvalid(): void;
|
54
|
+
handleCheckedChanged(): void;
|
55
|
+
handleCustomInvalidChange(): void;
|
56
56
|
/** @internal */
|
57
57
|
private _resetValue;
|
58
58
|
/** @internal */
|
@@ -1,134 +1,150 @@
|
|
1
1
|
import "../icon/icon.js";
|
2
|
-
import { FormBase as
|
3
|
-
import {
|
4
|
-
import p from "../../
|
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
|
7
|
-
import { ifDefined as
|
8
|
-
import { live as
|
9
|
-
import
|
10
|
-
var k = Object.defineProperty, i = (
|
11
|
-
for (var
|
12
|
-
(h =
|
13
|
-
return
|
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
|
16
|
+
const d = class d extends c {
|
16
17
|
constructor() {
|
17
|
-
super(...arguments), this._initialChecked = !1, this.
|
18
|
-
|
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
|
29
|
-
(
|
30
|
-
var
|
31
|
-
|
32
|
-
}), this.addEventListener("invalid", (
|
33
|
-
this.pristine = !1, this._invalid = !0, this.customErrorDisplay &&
|
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
|
-
|
37
|
-
|
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
|
-
|
40
|
-
|
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
|
-
|
48
|
-
|
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
|
53
|
-
if (!
|
54
|
-
(this.form ?? document).querySelectorAll(`skf-radio[name="${
|
55
|
-
const
|
56
|
-
|
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
|
62
|
-
if (this._invalid = !1, this.customInvalid)
|
63
|
-
this.
|
64
|
-
|
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
|
67
|
-
|
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
|
}
|
71
78
|
render() {
|
72
79
|
return m`
|
73
|
-
<label id="
|
80
|
+
<label id="root">
|
74
81
|
<input
|
75
82
|
?disabled=${this.disabled}
|
76
83
|
?required=${this.required}
|
77
|
-
.checked=${
|
84
|
+
.checked=${_(!!this.checked)}
|
78
85
|
aria-invalid=${!!this._invalid}
|
79
|
-
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 ?
|
92
|
+
${this.required ? p(this.requiredLabel) : null}
|
86
93
|
</div>
|
87
94
|
</label>
|
88
95
|
`;
|
89
96
|
}
|
90
97
|
};
|
91
|
-
d.styles = [
|
92
|
-
let
|
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
|
-
|
95
|
-
],
|
110
|
+
r()
|
111
|
+
], t.prototype, "label", 2);
|
96
112
|
i([
|
97
|
-
|
98
|
-
],
|
113
|
+
r()
|
114
|
+
], t.prototype, "name", 2);
|
99
115
|
i([
|
100
|
-
|
101
|
-
],
|
116
|
+
r({ attribute: "required-label" })
|
117
|
+
], t.prototype, "requiredLabel", 2);
|
102
118
|
i([
|
103
|
-
|
104
|
-
],
|
119
|
+
r({ reflect: !0 })
|
120
|
+
], t.prototype, "size", 2);
|
105
121
|
i([
|
106
|
-
|
107
|
-
],
|
122
|
+
r()
|
123
|
+
], t.prototype, "severity", 2);
|
108
124
|
i([
|
109
|
-
|
110
|
-
],
|
125
|
+
r({ type: Boolean, attribute: "show-valid" })
|
126
|
+
], t.prototype, "showValid", 2);
|
111
127
|
i([
|
112
|
-
|
113
|
-
],
|
128
|
+
r()
|
129
|
+
], t.prototype, "value", 2);
|
114
130
|
i([
|
115
|
-
|
116
|
-
],
|
131
|
+
f()
|
132
|
+
], t.prototype, "_invalid", 2);
|
117
133
|
i([
|
118
|
-
|
119
|
-
],
|
134
|
+
y("input")
|
135
|
+
], t.prototype, "$input", 2);
|
120
136
|
i([
|
121
|
-
|
122
|
-
],
|
137
|
+
n("_invalid")
|
138
|
+
], t.prototype, "handleInvalidChange", 1);
|
123
139
|
i([
|
124
|
-
|
125
|
-
],
|
140
|
+
n("_invalid", { afterUpdate: !0 })
|
141
|
+
], t.prototype, "handleDebugInvalid", 1);
|
126
142
|
i([
|
127
|
-
|
128
|
-
],
|
143
|
+
n("checked")
|
144
|
+
], t.prototype, "handleCheckedChanged", 1);
|
129
145
|
i([
|
130
|
-
|
131
|
-
],
|
146
|
+
n("customInvalid")
|
147
|
+
], t.prototype, "handleCustomInvalidChange", 1);
|
132
148
|
export {
|
133
|
-
|
149
|
+
t as SkfRadio
|
134
150
|
};
|
@@ -8,11 +8,16 @@ const e = [
|
|
8
8
|
contain: initial;
|
9
9
|
}
|
10
10
|
|
11
|
-
#
|
11
|
+
#root {
|
12
12
|
align-items: center;
|
13
|
+
color: var(--_skf-radio-color, var(--skf-text-color-primary));
|
13
14
|
display: flex;
|
14
15
|
grid-gap: var(--skf-spacing-50);
|
15
16
|
|
17
|
+
:host([disabled]) & {
|
18
|
+
--_skf-radio-color: var(--skf-interactive-text-color-disabled);
|
19
|
+
}
|
20
|
+
|
16
21
|
:host([size='sm']) & {
|
17
22
|
--_skf-radio-size: var(--skf-size-20);
|
18
23
|
|