@lmvz-ds/components 0.29.0 → 0.31.0
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/CHANGELOG.md +14 -0
- package/cjs/{ds.constants-JXqgKnXL.js → ds.constants-CKeXfK-s.js} +12 -0
- package/cjs/{component-C7cavwmZ.js → element.util-Cq4y-_iX.js} +42 -31
- package/cjs/index.cjs.js +8 -1
- package/cjs/{list-keyboard-controller-CzZdPBeH.js → list-keyboard-controller-StN6Yn8W.js} +13 -8
- package/cjs/lmvz-action-list.cjs.entry.js +79 -0
- package/cjs/lmvz-button-group.cjs.entry.js +43 -47
- package/cjs/lmvz-button_2.cjs.entry.js +10 -8
- package/cjs/lmvz-card.cjs.entry.js +2 -2
- package/cjs/lmvz-checkbox.cjs.entry.js +2 -2
- package/cjs/lmvz-chip.cjs.entry.js +3 -3
- package/cjs/lmvz-components.cjs.js +1 -1
- package/cjs/lmvz-header_2.cjs.entry.js +3 -3
- package/cjs/lmvz-input.cjs.entry.js +6 -6
- package/cjs/lmvz-link.cjs.entry.js +69 -0
- package/cjs/lmvz-menuitem.cjs.entry.js +2 -2
- package/cjs/lmvz-message.cjs.entry.js +2 -2
- package/cjs/lmvz-modal.cjs.entry.js +5 -5
- package/cjs/lmvz-radio.cjs.entry.js +3 -3
- package/cjs/lmvz-select.cjs.entry.js +2 -2
- package/cjs/lmvz-snackbar.cjs.entry.js +2 -2
- package/cjs/lmvz-spinner.cjs.entry.js +1 -1
- package/cjs/lmvz-tab.cjs.entry.js +2 -2
- package/cjs/lmvz-tabs.cjs.entry.js +4 -4
- package/cjs/lmvz-toggle.cjs.entry.js +5 -5
- package/cjs/loader.cjs.js +1 -1
- package/cjs/stencil.util-DzvzXSwk.js +25 -0
- package/collection/api/ds.constants.js +1 -0
- package/collection/collection-manifest.json +2 -0
- package/collection/components/lmvz-action-list/lmvz-action-list.css +93 -0
- package/collection/components/lmvz-action-list/lmvz-action-list.js +104 -0
- package/collection/components/lmvz-button/lmvz-button.css +67 -44
- package/collection/components/lmvz-button/lmvz-button.js +28 -7
- package/collection/components/lmvz-button-group/lmvz-button-group.css +35 -3
- package/collection/components/lmvz-button-group/lmvz-button-group.js +54 -38
- package/collection/components/lmvz-card/lmvz-card.css +66 -47
- package/collection/components/lmvz-card/lmvz-card.js +2 -2
- package/collection/components/lmvz-checkbox/lmvz-checkbox.css +8 -5
- package/collection/components/lmvz-checkbox/lmvz-checkbox.js +2 -2
- package/collection/components/lmvz-chip/lmvz-chip.css +4 -2
- package/collection/components/lmvz-chip/lmvz-chip.js +7 -7
- package/collection/components/lmvz-header/lmvz-header.js +2 -2
- package/collection/components/lmvz-icon/lmvz-icon.js +2 -2
- package/collection/components/lmvz-input/lmvz-input.css +2 -2
- package/collection/components/lmvz-input/lmvz-input.js +5 -5
- package/collection/components/lmvz-link/lmvz-link.css +44 -0
- package/collection/components/lmvz-link/lmvz-link.js +183 -0
- package/collection/components/lmvz-menuitem/lmvz-menuitem.css +2 -1
- package/collection/components/lmvz-menuitem/lmvz-menuitem.js +2 -2
- package/collection/components/lmvz-message/lmvz-message.css +2 -1
- package/collection/components/lmvz-message/lmvz-message.js +1 -1
- package/collection/components/lmvz-modal/lmvz-modal.css +11 -2
- package/collection/components/lmvz-modal/lmvz-modal.js +3 -3
- package/collection/components/lmvz-radio/lmvz-radio.css +4 -2
- package/collection/components/lmvz-radio/lmvz-radio.js +2 -2
- package/collection/components/lmvz-select/lmvz-select.css +4 -3
- package/collection/components/lmvz-select/lmvz-select.js +2 -2
- package/collection/components/lmvz-snackbar/lmvz-snackbar.css +2 -1
- package/collection/components/lmvz-snackbar/lmvz-snackbar.js +1 -1
- package/collection/components/lmvz-spinner/lmvz-spinner.js +1 -1
- package/collection/components/lmvz-tab/lmvz-tab.css +11 -3
- package/collection/components/lmvz-tab/lmvz-tab.js +1 -1
- package/collection/components/lmvz-tabs/lmvz-tabs.css +7 -0
- package/collection/components/lmvz-tabs/lmvz-tabs.js +2 -2
- package/collection/components/lmvz-toggle/lmvz-toggle.css +2 -1
- package/collection/components/lmvz-toggle/lmvz-toggle.js +3 -3
- package/collection/index.js +1 -1
- package/collection/integration/header-integration/header-integration.js +1 -1
- package/collection/styles/fragments/_focus-within.css +2 -2
- package/collection/utils/aria/aria.constants.js +53 -0
- package/collection/utils/aria/list-keyboard-controller.js +12 -7
- package/collection/utils/async/async.util.js +62 -0
- package/collection/utils/data/event.utilt.js +19 -0
- package/collection/utils/data/number.util.js +6 -0
- package/collection/utils/data/object.util.js +20 -0
- package/collection/utils/data/time.util.js +3 -0
- package/collection/utils/element/element.util.js +117 -0
- package/collection/utils/{assets.js → stencil/assets.js} +1 -1
- package/collection/utils/stencil/stencil.util.js +12 -0
- package/components/index.d.ts +4 -0
- package/components/index.d.ts.bak +4 -0
- package/components/index.js +1 -1
- package/components/lmvz-action-list.d.ts +11 -0
- package/components/lmvz-action-list.d.ts.bak +11 -0
- package/components/lmvz-action-list.js +1 -0
- package/components/lmvz-button-group.js +1 -1
- package/components/lmvz-button.js +1 -1
- package/components/lmvz-card.js +1 -1
- package/components/lmvz-checkbox.js +1 -1
- package/components/lmvz-chip.js +1 -1
- package/components/lmvz-header.js +1 -1
- package/components/lmvz-icon.js +1 -1
- package/components/lmvz-input.js +1 -1
- package/components/lmvz-link.d.ts +11 -0
- package/components/lmvz-link.d.ts.bak +11 -0
- package/components/lmvz-link.js +1 -0
- package/components/lmvz-menuitem.js +1 -1
- package/components/lmvz-message.js +1 -1
- package/components/lmvz-modal.js +1 -1
- package/components/lmvz-radio.js +1 -1
- package/components/lmvz-select.js +1 -1
- package/components/lmvz-snackbar.js +1 -1
- package/components/lmvz-spinner.js +1 -1
- package/components/lmvz-tab.js +1 -1
- package/components/lmvz-tabs.js +1 -1
- package/components/lmvz-toggle.js +1 -1
- package/components/p-B0H9qIwE.js +1 -0
- package/components/p-B4m1n4et.js +1 -0
- package/components/p-CJRqhXjK.js +1 -0
- package/components/p-CxfT9IA1.js +1 -0
- package/components/{p-CXakymyP.js → p-DJ90327O.js} +1 -1
- package/components/p-DeO5Vbxh.js +1 -0
- package/components/p-DuEtnKRj.js +1 -0
- package/esm/ds.constants-DuEtnKRj.js +18 -0
- package/esm/{component-DOTK1OW3.js → element.util-CxfT9IA1.js} +37 -31
- package/esm/index.js +1 -1
- package/esm/{list-keyboard-controller-Coi8XfUH.js → list-keyboard-controller-BKa9Kd2t.js} +12 -7
- package/esm/lmvz-action-list.entry.js +77 -0
- package/esm/lmvz-button-group.entry.js +35 -39
- package/esm/lmvz-button_2.entry.js +9 -7
- package/esm/lmvz-card.entry.js +2 -2
- package/esm/lmvz-checkbox.entry.js +2 -2
- package/esm/lmvz-chip.entry.js +3 -3
- package/esm/lmvz-components.js +1 -1
- package/esm/lmvz-header_2.entry.js +3 -3
- package/esm/lmvz-input.entry.js +5 -5
- package/esm/lmvz-link.entry.js +67 -0
- package/esm/lmvz-menuitem.entry.js +2 -2
- package/esm/lmvz-message.entry.js +2 -2
- package/esm/lmvz-modal.entry.js +3 -3
- package/esm/lmvz-radio.entry.js +3 -3
- package/esm/lmvz-select.entry.js +2 -2
- package/esm/lmvz-snackbar.entry.js +2 -2
- package/esm/lmvz-spinner.entry.js +1 -1
- package/esm/lmvz-tab.entry.js +2 -2
- package/esm/lmvz-tabs.entry.js +4 -4
- package/esm/lmvz-toggle.entry.js +4 -4
- package/esm/loader.js +1 -1
- package/esm/stencil.util-CJRqhXjK.js +23 -0
- package/hydrate/index.js +586 -396
- package/hydrate/index.mjs +586 -396
- package/lmvz-components/index.esm.js +1 -1
- package/lmvz-components/lmvz-components.esm.js +1 -1
- package/lmvz-components/p-1ce90ea7.entry.js +1 -0
- package/lmvz-components/{p-4484ab62.entry.js → p-24125bcf.entry.js} +1 -1
- package/lmvz-components/p-25a78ead.entry.js +1 -0
- package/lmvz-components/p-4072b2fb.entry.js +1 -0
- package/lmvz-components/p-48109e1d.entry.js +1 -0
- package/lmvz-components/{p-3b3e532f.entry.js → p-582f44ff.entry.js} +1 -1
- package/lmvz-components/p-592d509b.entry.js +1 -0
- package/lmvz-components/{p-7fd7e04c.entry.js → p-6f61c24d.entry.js} +1 -1
- package/lmvz-components/{p-5fcc6f84.entry.js → p-703b10b5.entry.js} +1 -1
- package/lmvz-components/p-74c7521c.entry.js +1 -0
- package/lmvz-components/{p-7e9938e7.entry.js → p-80a26307.entry.js} +1 -1
- package/lmvz-components/p-8e1f66dd.entry.js +1 -0
- package/lmvz-components/p-947e1fe6.entry.js +1 -0
- package/lmvz-components/p-B4m1n4et.js +1 -0
- package/lmvz-components/p-CJRqhXjK.js +1 -0
- package/lmvz-components/p-CxfT9IA1.js +1 -0
- package/lmvz-components/p-DuEtnKRj.js +1 -0
- package/lmvz-components/{p-2981a238.entry.js → p-b79af711.entry.js} +1 -1
- package/lmvz-components/p-c00f0d96.entry.js +1 -0
- package/lmvz-components/p-c0d05a97.entry.js +1 -0
- package/lmvz-components/p-c3e8092e.entry.js +1 -0
- package/lmvz-components/{p-fe7999d4.entry.js → p-ed3c2b13.entry.js} +1 -1
- package/lmvz-components/{p-af4e26da.entry.js → p-fa2cd315.entry.js} +1 -1
- package/manifest.json +336 -14
- package/package.json +9 -1
- package/types/api/ds.constants.d.ts +1 -37
- package/types/api/ds.types.d.ts +68 -1
- package/types/components/lmvz-action-list/lmvz-action-list.d.ts +15 -0
- package/types/components/lmvz-button/lmvz-button.d.ts +6 -3
- package/types/components/lmvz-button-group/lmvz-button-group.d.ts +2 -0
- package/types/components/lmvz-checkbox/lmvz-checkbox.d.ts +1 -1
- package/types/components/lmvz-chip/lmvz-chip.d.ts +2 -2
- package/types/components/lmvz-header/lmvz-header.d.ts +1 -1
- package/types/components/lmvz-icon/lmvz-icon.d.ts +1 -1
- package/types/components/lmvz-input/lmvz-input.d.ts +1 -1
- package/types/components/lmvz-link/lmvz-link.d.ts +13 -0
- package/types/components/lmvz-menuitem/lmvz-menuitem.d.ts +1 -1
- package/types/components/lmvz-modal/lmvz-modal.d.ts +1 -1
- package/types/components/lmvz-radio/lmvz-radio.d.ts +1 -1
- package/types/components/lmvz-select/lmvz-select.d.ts +1 -1
- package/types/components/lmvz-tabs/lmvz-tabs.d.ts +1 -1
- package/types/components/lmvz-toggle/lmvz-toggle.d.ts +1 -1
- package/types/components.d.ts +153 -2
- package/types/index.d.ts +1 -1
- package/types/utils/aria/aria-validation-controller.d.ts +3 -3
- package/types/utils/aria/aria.constants.d.ts +1 -0
- package/types/utils/aria/element-activation-controller.d.ts +1 -1
- package/types/utils/aria/list-keyboard-controller.d.ts +4 -1
- package/types/utils/async/async.util.d.ts +8 -0
- package/types/utils/data/event.utilt.d.ts +4 -0
- package/types/utils/data/number.util.d.ts +2 -0
- package/types/utils/data/object.util.d.ts +5 -0
- package/types/utils/data/time.util.d.ts +1 -0
- package/types/utils/element/element.util.d.ts +21 -0
- package/types/utils/radio/radio-group-controller.d.ts +1 -1
- package/types/utils/{reactive-controller-host.d.ts → stencil/reactive-controller-host.d.ts} +1 -1
- package/types/utils/stencil/stencil.util.d.ts +6 -0
- package/collection/utils/component.js +0 -270
- package/collection/utils/http.js +0 -21
- package/collection/utils/http.unit.js +0 -47
- package/components/p-BxPuC-EQ.js +0 -1
- package/components/p-CtaMrBNE.js +0 -1
- package/components/p-DBZE-Jyu.js +0 -1
- package/components/p-DOTK1OW3.js +0 -1
- package/esm/ds.constants-DWePb-zu.js +0 -13
- package/lmvz-components/p-087853c3.entry.js +0 -1
- package/lmvz-components/p-35b5efdc.entry.js +0 -1
- package/lmvz-components/p-4ba3f830.entry.js +0 -1
- package/lmvz-components/p-83ab106c.entry.js +0 -1
- package/lmvz-components/p-87d207e7.entry.js +0 -1
- package/lmvz-components/p-912776f8.entry.js +0 -1
- package/lmvz-components/p-CtaMrBNE.js +0 -1
- package/lmvz-components/p-DOTK1OW3.js +0 -1
- package/lmvz-components/p-DWePb-zu.js +0 -1
- package/lmvz-components/p-ca497e57.entry.js +0 -1
- package/lmvz-components/p-d8b55d55.entry.js +0 -1
- package/lmvz-components/p-f030f6f6.entry.js +0 -1
- package/types/utils/component.d.ts +0 -33
- package/types/utils/http.d.ts +0 -26
- package/types/utils/http.unit.d.ts +0 -1
- /package/collection/utils/{reactive-controller-host.js → stencil/reactive-controller-host.js} +0 -0
- /package/types/utils/{assets.d.ts → stencil/assets.d.ts} +0 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { toValidSvgStringWithFallback } from "@lmvz-ds/lib-ts/validation/svg.js";
|
|
2
|
+
import { Host, h } from "@stencil/core";
|
|
3
|
+
import { linkTypes } from "../../api/ds.constants.js";
|
|
4
|
+
import arrowRightSvg from "@lmvz-ds/icons/assets/arrow-right.svg";
|
|
5
|
+
import externalSvg from "@lmvz-ds/icons/assets/external.svg";
|
|
6
|
+
const ARROW_RIGHT_SVG = toValidSvgStringWithFallback(arrowRightSvg);
|
|
7
|
+
const EXTERNAL_SVG = toValidSvgStringWithFallback(externalSvg);
|
|
8
|
+
export class LmvzLink {
|
|
9
|
+
href = '';
|
|
10
|
+
target;
|
|
11
|
+
rel;
|
|
12
|
+
type = 'internal';
|
|
13
|
+
externalLabel = '(öffnet in neuem Tab)';
|
|
14
|
+
normalizeType(value) {
|
|
15
|
+
const normalized = linkTypes.includes(value) ? value : 'internal';
|
|
16
|
+
if (normalized !== this.type) {
|
|
17
|
+
this.type = normalized;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
componentWillLoad() {
|
|
21
|
+
this.normalizeType(this.type);
|
|
22
|
+
}
|
|
23
|
+
computeHref() {
|
|
24
|
+
if (!this.href)
|
|
25
|
+
return undefined;
|
|
26
|
+
const trimmed = this.href.trim();
|
|
27
|
+
if (/^javascript:/i.test(trimmed) || /^data:/i.test(trimmed))
|
|
28
|
+
return undefined;
|
|
29
|
+
return this.href;
|
|
30
|
+
}
|
|
31
|
+
computeRel() {
|
|
32
|
+
if (this.target !== '_blank') {
|
|
33
|
+
return this.rel || undefined;
|
|
34
|
+
}
|
|
35
|
+
const tokens = new Set((this.rel ?? '')
|
|
36
|
+
.split(/\s+/)
|
|
37
|
+
.map((t) => t.trim())
|
|
38
|
+
.filter(Boolean));
|
|
39
|
+
tokens.add('noopener');
|
|
40
|
+
tokens.add('noreferrer');
|
|
41
|
+
return [...tokens].join(' ');
|
|
42
|
+
}
|
|
43
|
+
render() {
|
|
44
|
+
const rel = this.computeRel();
|
|
45
|
+
const iconSvg = this.type === 'external' ? EXTERNAL_SVG : ARROW_RIGHT_SVG;
|
|
46
|
+
const isBlank = this.target === '_blank';
|
|
47
|
+
return (h(Host, { key: '338116d5af3112ec2a4a09b652048b733565a7d4' }, h("a", { key: 'ae70aa2320ea2eeca56a14714de4dcfb06b8c94c', href: this.computeHref(), target: this.target, rel: rel }, h("slot", { key: '4852b3336a94a46f363a83fb2c4f6d267f680d3d' }), h("lmvz-icon", { key: 'e7f72016611a7d741eef7c81a047e026c699bdef', "aria-hidden": "true", icon: iconSvg }), isBlank && h("span", { key: 'b4138b479b7c36c3b16c8e96fc6e39736222b26f', class: "sr-only" }, this.externalLabel))));
|
|
48
|
+
}
|
|
49
|
+
static get is() { return "lmvz-link"; }
|
|
50
|
+
static get encapsulation() { return "shadow"; }
|
|
51
|
+
static get delegatesFocus() { return true; }
|
|
52
|
+
static get originalStyleUrls() {
|
|
53
|
+
return {
|
|
54
|
+
"$": ["lmvz-link.css"]
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
static get styleUrls() {
|
|
58
|
+
return {
|
|
59
|
+
"$": ["lmvz-link.css"]
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
static get properties() {
|
|
63
|
+
return {
|
|
64
|
+
"href": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"mutable": false,
|
|
67
|
+
"complexType": {
|
|
68
|
+
"original": "string",
|
|
69
|
+
"resolved": "string",
|
|
70
|
+
"references": {}
|
|
71
|
+
},
|
|
72
|
+
"required": false,
|
|
73
|
+
"optional": false,
|
|
74
|
+
"docs": {
|
|
75
|
+
"tags": [],
|
|
76
|
+
"text": "The URL the link points to. Mirrors the native anchor `href` attribute."
|
|
77
|
+
},
|
|
78
|
+
"getter": false,
|
|
79
|
+
"setter": false,
|
|
80
|
+
"reflect": true,
|
|
81
|
+
"attribute": "href",
|
|
82
|
+
"defaultValue": "''"
|
|
83
|
+
},
|
|
84
|
+
"target": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"mutable": false,
|
|
87
|
+
"complexType": {
|
|
88
|
+
"original": "'_self' | '_blank' | '_parent' | '_top'",
|
|
89
|
+
"resolved": "\"_blank\" | \"_parent\" | \"_self\" | \"_top\" | undefined",
|
|
90
|
+
"references": {}
|
|
91
|
+
},
|
|
92
|
+
"required": false,
|
|
93
|
+
"optional": true,
|
|
94
|
+
"docs": {
|
|
95
|
+
"tags": [],
|
|
96
|
+
"text": "Where to open the linked document."
|
|
97
|
+
},
|
|
98
|
+
"getter": false,
|
|
99
|
+
"setter": false,
|
|
100
|
+
"reflect": true,
|
|
101
|
+
"attribute": "target"
|
|
102
|
+
},
|
|
103
|
+
"rel": {
|
|
104
|
+
"type": "string",
|
|
105
|
+
"mutable": false,
|
|
106
|
+
"complexType": {
|
|
107
|
+
"original": "string",
|
|
108
|
+
"resolved": "string | undefined",
|
|
109
|
+
"references": {}
|
|
110
|
+
},
|
|
111
|
+
"required": false,
|
|
112
|
+
"optional": true,
|
|
113
|
+
"docs": {
|
|
114
|
+
"tags": [],
|
|
115
|
+
"text": "Relationship of the linked URL. When `target=\"_blank\"`, `noopener` and\n`noreferrer` are automatically added if not already present."
|
|
116
|
+
},
|
|
117
|
+
"getter": false,
|
|
118
|
+
"setter": false,
|
|
119
|
+
"reflect": false,
|
|
120
|
+
"attribute": "rel"
|
|
121
|
+
},
|
|
122
|
+
"type": {
|
|
123
|
+
"type": "string",
|
|
124
|
+
"mutable": true,
|
|
125
|
+
"complexType": {
|
|
126
|
+
"original": "Link.Type",
|
|
127
|
+
"resolved": "\"external\" | \"internal\"",
|
|
128
|
+
"references": {
|
|
129
|
+
"Link": {
|
|
130
|
+
"location": "import",
|
|
131
|
+
"path": "../../api/ds.types.js",
|
|
132
|
+
"id": "src/api/ds.types.d.ts::Link",
|
|
133
|
+
"referenceLocation": "Link"
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"required": false,
|
|
138
|
+
"optional": false,
|
|
139
|
+
"docs": {
|
|
140
|
+
"tags": [{
|
|
141
|
+
"name": "default",
|
|
142
|
+
"text": "'internal'"
|
|
143
|
+
}],
|
|
144
|
+
"text": "Navigation type. Drives the icon shown after the label text.\n- `internal` \u2192 arrow-right icon\n- `external` \u2192 external icon\nInvalid values are normalized to `internal`."
|
|
145
|
+
},
|
|
146
|
+
"getter": false,
|
|
147
|
+
"setter": false,
|
|
148
|
+
"reflect": true,
|
|
149
|
+
"attribute": "type",
|
|
150
|
+
"defaultValue": "'internal'"
|
|
151
|
+
},
|
|
152
|
+
"externalLabel": {
|
|
153
|
+
"type": "string",
|
|
154
|
+
"mutable": false,
|
|
155
|
+
"complexType": {
|
|
156
|
+
"original": "string",
|
|
157
|
+
"resolved": "string",
|
|
158
|
+
"references": {}
|
|
159
|
+
},
|
|
160
|
+
"required": false,
|
|
161
|
+
"optional": false,
|
|
162
|
+
"docs": {
|
|
163
|
+
"tags": [{
|
|
164
|
+
"name": "default",
|
|
165
|
+
"text": "'(\u00F6ffnet in neuem Tab)'"
|
|
166
|
+
}],
|
|
167
|
+
"text": "Visually-hidden text appended inside the anchor when `target=\"_blank\"`.\nProvides an accessible cue for screen reader users."
|
|
168
|
+
},
|
|
169
|
+
"getter": false,
|
|
170
|
+
"setter": false,
|
|
171
|
+
"reflect": false,
|
|
172
|
+
"attribute": "external-label",
|
|
173
|
+
"defaultValue": "'(\u00F6ffnet in neuem Tab)'"
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
static get watchers() {
|
|
178
|
+
return [{
|
|
179
|
+
"propName": "type",
|
|
180
|
+
"methodName": "normalizeType"
|
|
181
|
+
}];
|
|
182
|
+
}
|
|
183
|
+
}
|
|
@@ -44,7 +44,8 @@
|
|
|
44
44
|
justify-content: center;
|
|
45
45
|
gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem));
|
|
46
46
|
border-radius: var(--lmvz-semantic-border-radius-lg, 14px);
|
|
47
|
-
font: var(--lmvz-typography-body-md)
|
|
47
|
+
font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5
|
|
48
|
+
Router);
|
|
48
49
|
padding: var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)) var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem));
|
|
49
50
|
cursor: pointer;
|
|
50
51
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
2
|
import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
|
|
3
3
|
import { ElementActivationController } from "../../utils/aria/element-activation-controller";
|
|
4
|
-
import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
|
|
4
|
+
import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
|
|
5
5
|
export class LmvzMenuItem extends ReactiveControllerHost {
|
|
6
6
|
el;
|
|
7
7
|
get validationEl() {
|
|
@@ -21,7 +21,7 @@ export class LmvzMenuItem extends ReactiveControllerHost {
|
|
|
21
21
|
this.addController(new ElementActivationController(this));
|
|
22
22
|
}
|
|
23
23
|
render() {
|
|
24
|
-
return (h(Host, { key: '
|
|
24
|
+
return (h(Host, { key: '9c86e99a0427a5d11925a30bcdb9f88124006413' }, h("slot", { key: '9a578cdf49bd1edd981d68d7b28c39b784980345', ref: (e) => (this.validationSlot = e) })));
|
|
25
25
|
}
|
|
26
26
|
static get is() { return "lmvz-menuitem"; }
|
|
27
27
|
static get encapsulation() { return "scoped"; }
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
border: var(--lmvz-semantic-border-width-default, 1px) solid;
|
|
11
11
|
border-radius: var(--lmvz-semantic-border-radius-md, 6px);
|
|
12
12
|
|
|
13
|
-
font: var(--lmvz-typography-body-md-strong)
|
|
13
|
+
font: var(--lmvz-typography-body-md-strong, 500 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5
|
|
14
|
+
Router);
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
/* neutral maps to status-active tokens to preserve Figma's "neutral" naming convention;
|
|
@@ -60,7 +60,7 @@ export class LmvzMessage {
|
|
|
60
60
|
}
|
|
61
61
|
render() {
|
|
62
62
|
const role = this.live === 'assertive' ? 'alert' : this.live === 'polite' ? 'status' : 'note';
|
|
63
|
-
return (h(Host, { key: '
|
|
63
|
+
return (h(Host, { key: 'f422e8ee4bb4466757c081bc6b33761db15cb02d', role: role }, this.leadingIcon && h("span", { key: 'c4077083db459a65cacce2cbb8e8dbb477572d95', class: "leading-icon", "aria-hidden": "true", innerHTML: TYPE_SVG[this.type] }), h("span", { key: '77c3af94194adc2b663c6d6626951e5789e17686', class: "message" }, h("slot", { key: '8db714f6bd0ac80a3c77a2768431baa37a63b3d1', ref: (el) => (this.messageSlot = el), onSlotchange: this.handleSlotChange })), this.actionLabel && (h("lmvz-button", { key: 'f75e835f39e97ea217727b55dc842ceda004834b', variant: "tertiary", scale: "small", onLmvzActivation: this.handleActionClick }, this.actionLabel)), this.dismissible && (h("lmvz-button", { key: '51b04ad48a68e0843445104e303eae5bb4cdd351', variant: "tertiary", scale: "small", "aria-label": this.closeLabel, onClick: this.handleDismissClick }, h("lmvz-icon", { key: '5949210f479a6a19f1c4bb9d3c91a77a1c0ad8a6', "aria-hidden": "true", icon: CLOSE_SM_SVG })))));
|
|
64
64
|
}
|
|
65
65
|
static get is() { return "lmvz-message"; }
|
|
66
66
|
static get encapsulation() { return "shadow"; }
|
|
@@ -55,6 +55,13 @@ h6 {
|
|
|
55
55
|
display: none !important;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
hr {
|
|
59
|
+
height: 0;
|
|
60
|
+
border: none;
|
|
61
|
+
margin: var(--lmvz-dimension-4-8, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)) 0;
|
|
62
|
+
border-top: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-subtle, #f0f0f0);
|
|
63
|
+
}
|
|
64
|
+
|
|
58
65
|
}
|
|
59
66
|
:host {
|
|
60
67
|
display: contents;
|
|
@@ -109,13 +116,15 @@ dialog::backdrop {
|
|
|
109
116
|
}
|
|
110
117
|
.title {
|
|
111
118
|
min-inline-size: 0;
|
|
112
|
-
font: var(--lmvz-typography-heading-lg)
|
|
119
|
+
font: var(--lmvz-typography-heading-lg, 500 clamp(1.25rem, 1.19rem + 0.26vw, 1.5rem) / 1.5
|
|
120
|
+
Router);
|
|
113
121
|
}
|
|
114
122
|
.has-title .title {
|
|
115
123
|
flex: 1 1 auto;
|
|
116
124
|
}
|
|
117
125
|
.body {
|
|
118
|
-
font: var(--lmvz-typography-body-md)
|
|
126
|
+
font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5
|
|
127
|
+
Router);
|
|
119
128
|
flex: 1;
|
|
120
129
|
overflow: scroll;
|
|
121
130
|
/* min-block-size: clamp(8rem, 40vw, 60vh); */
|
|
@@ -2,8 +2,8 @@ import closeIcon from "@lmvz-ds/icons/assets/close-sm.svg";
|
|
|
2
2
|
import { toValidSvgStringWithFallback } from "@lmvz-ds/lib-ts/validation/svg.js";
|
|
3
3
|
import { Host, h } from "@stencil/core";
|
|
4
4
|
import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
|
|
5
|
-
import { getDeepActiveElement, inheritAriaAttributes } from "../../utils/
|
|
6
|
-
import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
|
|
5
|
+
import { getDeepActiveElement, inheritAriaAttributes } from "../../utils/element/element.util";
|
|
6
|
+
import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
|
|
7
7
|
const closeIconSvg = toValidSvgStringWithFallback(closeIcon);
|
|
8
8
|
let modalIdCounter = 0;
|
|
9
9
|
export class LmvzModal extends ReactiveControllerHost {
|
|
@@ -223,7 +223,7 @@ export class LmvzModal extends ReactiveControllerHost {
|
|
|
223
223
|
this.hasHeader = this.hasAssignedContent(this.headerSlot);
|
|
224
224
|
};
|
|
225
225
|
render() {
|
|
226
|
-
return (h(Host, { key: '
|
|
226
|
+
return (h(Host, { key: '8b5f506cdac223a440309d472639fe965b94f8c2' }, h("dialog", { key: '0b70ac4d9590266271052c4d7fdef03c684d9b72', ref: (element) => (this.dialogEl = element), onCancel: this.handleDialogCancel, onClose: this.handleDialogClose, ...this.dialogAccessibilityAttributes }, h("div", { key: '25b529bec1905408c2041b7370ab37586eade47d', class: "modal-shell" }, h("header", { key: 'd86ae4a6f4ac7f6efd38385f1407d1f6bfbb1abb', class: { header: true, 'has-title': this.hasHeader } }, h("div", { key: '7fd7059bfb0b90834895a87c2f2598e2e8c2ba80', class: "title", id: this.dialogTitleId, hidden: !this.hasHeader }, h("slot", { key: 'b6eb7885e220e5def4c3c8420d5b83f4a7e30907', name: "header", ref: (element) => (this.headerSlot = element), onSlotchange: this.handleHeaderSlotChange })), h("lmvz-button", { key: 'dcebb06482cdef7423c6b62ef877ca9aaabf55a4', ref: (element) => (this.closeButtonEl = element), type: "button", class: "close-button", "aria-label": this.closeLabel, onClick: this.handleCloseButtonClick, variant: "tertiary" }, h("lmvz-icon", { key: '0db22c68fe164ed2a33bfaeacf9eac619424f464', icon: closeIconSvg }))), h("div", { key: 'ef402c343f2c68210351f7556eec08f2e9be851b', class: "body" }, h("slot", { key: '3fe86dc88c88c2cf7bfe3429c62cb2047b64611a' })), h("footer", { key: '92b7bdab1ffe700749fc029723f70913f436397d', class: "actions", hidden: !this.buttonGroupEl?.hasActions }, h("lmvz-button-group", { key: '7e1b310fb1b20449ead14d0702af4977c74198dd', ref: (element) => (this.buttonGroupEl = element) }, h("slot", { key: 'cb2187ab2758c61e80b65f9fc55c6be5f9fd0458', name: "actions" })))))));
|
|
227
227
|
}
|
|
228
228
|
static get is() { return "lmvz-modal"; }
|
|
229
229
|
static get encapsulation() { return "shadow"; }
|
|
@@ -110,14 +110,16 @@ input {
|
|
|
110
110
|
min-width: 0;
|
|
111
111
|
}
|
|
112
112
|
label {
|
|
113
|
-
font: var(--lmvz-typography-body-md)
|
|
113
|
+
font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5
|
|
114
|
+
Router);
|
|
114
115
|
color: var(--radio-label-color);
|
|
115
116
|
cursor: pointer;
|
|
116
117
|
transition: color var(--radio-duration) var(--radio-easing);
|
|
117
118
|
}
|
|
118
119
|
.helper-text {
|
|
119
120
|
display: block;
|
|
120
|
-
font: var(--lmvz-typography-body-sm)
|
|
121
|
+
font: var(--lmvz-typography-body-sm, 400 clamp(0.69rem, 0.67rem + 0.06vw, 0.75rem) / 1.5
|
|
122
|
+
Router);
|
|
121
123
|
color: var(--radio-helper-color);
|
|
122
124
|
margin-block-start: 2px;
|
|
123
125
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { h, Host } from "@stencil/core";
|
|
2
2
|
import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
|
|
3
3
|
import { RadioGroupController } from "../../utils/radio/radio-group-controller";
|
|
4
|
-
import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
|
|
4
|
+
import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
|
|
5
5
|
let radioIdCounter = 0;
|
|
6
6
|
export class LmvzRadio extends ReactiveControllerHost {
|
|
7
7
|
el;
|
|
@@ -137,7 +137,7 @@ export class LmvzRadio extends ReactiveControllerHost {
|
|
|
137
137
|
this.radioGroupController.setFocused(target);
|
|
138
138
|
}
|
|
139
139
|
render() {
|
|
140
|
-
return (h(Host, { key: '
|
|
140
|
+
return (h(Host, { key: '9b8fbfe18376f9411f792630065dfd219f9ddb32' }, h("input", { key: '24a0675eff854bbd751c07905db4be11e5353d11', type: "radio", id: this.radioId, name: this.name ?? undefined, value: this.value, checked: this.checked, disabled: this.disabled, required: this.required, autoFocus: this.autofocus, "aria-invalid": this.error ? 'true' : undefined, "aria-describedby": this.helperId, ref: (el) => (this.nativeInput = el), onChange: this.handleChange }), h("span", { key: 'f888c1f76f6f929609584d378dbe0974fd980f68', class: "circle", "aria-hidden": "true" }, this.checked && h("span", { key: '57fbb1e7abdca10861cf8709d4300459e1f62e5c', class: "dot" })), h("span", { key: '1c845611162be86500e8475ac37412e2d3f2fd99', class: "content" }, h("label", { key: '1399f4d34ff0e6d369cefc9f5d08208a4dee593f', htmlFor: this.radioId }, this.label), h("span", { key: '1345435ff2f4773260ea3f73e943f043c2b88bdb', "aria-live": "polite", class: "helper-text", id: this.helperId }, this.helperText))));
|
|
141
141
|
}
|
|
142
142
|
static get is() { return "lmvz-radio"; }
|
|
143
143
|
static get encapsulation() { return "scoped"; }
|
|
@@ -140,12 +140,13 @@ div[aria-hidden] {
|
|
|
140
140
|
color: var(--lmvz-semantic-color-status-on-active-alternate, #ffffff);
|
|
141
141
|
}
|
|
142
142
|
.select-wrapper:focus-within div[aria-hidden] {
|
|
143
|
-
outline: var(--lmvz-ds-outline);
|
|
144
|
-
outline-offset: var(--lmvz-ds-outline-offset);
|
|
143
|
+
outline: var(--lmvz-ds-outline, 1px solid #0e7ab4);
|
|
144
|
+
outline-offset: var(--lmvz-ds-outline-offset, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem));
|
|
145
145
|
}
|
|
146
146
|
div[aria-hidden] > span:first-child {
|
|
147
147
|
flex: 1 0 0;
|
|
148
|
-
font: var(--lmvz-typography-body-md-strong)
|
|
148
|
+
font: var(--lmvz-typography-body-md-strong, 500 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5
|
|
149
|
+
Router);
|
|
149
150
|
color: var(--lmvz-select-text-color);
|
|
150
151
|
overflow: hidden;
|
|
151
152
|
text-overflow: ellipsis;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { h, Host } from "@stencil/core";
|
|
2
2
|
import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
|
|
3
|
-
import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
|
|
3
|
+
import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
|
|
4
4
|
let selectIdCounter = 0;
|
|
5
5
|
export class LmvzSelect extends ReactiveControllerHost {
|
|
6
6
|
el;
|
|
@@ -51,7 +51,7 @@ export class LmvzSelect extends ReactiveControllerHost {
|
|
|
51
51
|
render() {
|
|
52
52
|
const hasValue = this.hasValue;
|
|
53
53
|
const shouldShowLabel = hasValue;
|
|
54
|
-
return (h(Host, { key: '
|
|
54
|
+
return (h(Host, { key: 'c753006bdabf1723fa9ff61eb35f58d5bef3157b', "data-highlighted": String(this.highlighted) }, h("div", { key: '6b06056fd48ef4f837cbe17383756e3726c68f90', class: hasValue ? 'select-wrapper has-value' : 'select-wrapper' }, h("label", { key: '819901582fc449566a112cd4544fa0af903a7011', htmlFor: this.selectId, class: shouldShowLabel ? 'floating-label' : 'assistive-label' }, this.label, this.required && shouldShowLabel && h("span", { key: '14ad70c1cf1a96c7398698fa86baeadd5fe4257b', "aria-hidden": "true" }, " *")), h("div", { key: '589c6946bee6e320a36dfa0ed765ff9e02af4c2f', "aria-hidden": "true" }, h("span", { key: '04444223ed66a5ddff3eb7bd581cf5a7e615cf6b' }, hasValue ? this.selectedLabel : this.label, this.required && !hasValue && h("span", { key: '9631d4a655514957a4564be939d8bd16c3a036f0', "aria-hidden": "true" }, " *")), h("span", { key: '3950abf6ee9528adb5895fe6bc88be67b39d458e' }, h("svg", { key: '98a0a380e9ca5044ca1fefb03b74bfc178974a60', width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { key: '19fe8b40e315fabee982ba37fe2d397493429519', d: "M20.3334 8.66663L12.0001 17L3.66675 8.66663", stroke: "currentColor", "stroke-width": "1.75", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("select", { key: '7480ff36ef3acfe10fb0122bfdf7feb5af406c67', id: this.selectId, ref: (el) => (this.nativeSelectEl = el), name: this.name, disabled: this.disabled, required: this.required, "aria-label": this.label, onChange: this.handleChange }, !hasValue && h("option", { key: '5d00f696c2c4d7c35c180018a4c487cbb0229d37', value: "", disabled: true, selected: true, hidden: true }), h("slot", { key: '218fe11d224d7ca72c8555301d41d8878b6b34b4' }))), this.helperText && h("div", { key: 'edbb738590305f6724a590a3532fd9284a187866', role: "status" }, this.helperText)));
|
|
55
55
|
}
|
|
56
56
|
static get is() { return "lmvz-select"; }
|
|
57
57
|
static get encapsulation() { return "scoped"; }
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
gap: var(--lmvz-dimension-8-12, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem));
|
|
18
18
|
|
|
19
19
|
pointer-events: auto;
|
|
20
|
-
font: var(--lmvz-typography-body-md-strong)
|
|
20
|
+
font: var(--lmvz-typography-body-md-strong, 500 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5
|
|
21
|
+
Router);
|
|
21
22
|
|
|
22
23
|
/* this will be picked up by lmvz-icon as well */
|
|
23
24
|
--lmvz-component-color: var(--lmvz-semantic-color-status-on-success, #37867c);
|
|
@@ -58,7 +58,7 @@ export class LmvzSnackbar {
|
|
|
58
58
|
this.el.dispatchEvent(new CustomEvent('lmvzAction', { bubbles: false, composed: false }));
|
|
59
59
|
};
|
|
60
60
|
render() {
|
|
61
|
-
return (h(Host, { key: '
|
|
61
|
+
return (h(Host, { key: 'f207854371f8423ff8dc9b732d1dabe1ab06e0b1', class: this.animationClass }, h("lmvz-icon", { key: 'e0ffdd4c51d11f94aa33c5a9678a15e4162d4bdd', icon: STATUS_SVG[this.status], size: "md", weight: "bold" }), h("span", { key: 'fcce1cbef0597af7e86de7b33a4f8a40c09f0cc8', class: "message" }, this.message), this.actionLabel && (h("lmvz-button", { key: '3cdbd81ba0c9102d0539c913f530e2abfbed0fb6', variant: "tertiary", scale: "small", onLmvzActivation: this.handleActionClick }, this.actionLabel))));
|
|
62
62
|
}
|
|
63
63
|
static get is() { return "lmvz-snackbar"; }
|
|
64
64
|
static get encapsulation() { return "shadow"; }
|
|
@@ -4,7 +4,7 @@ export class LmvzSpinner {
|
|
|
4
4
|
ariaLabel;
|
|
5
5
|
render() {
|
|
6
6
|
const hasLabel = !!this.ariaLabel?.trim();
|
|
7
|
-
return (h(Host, { key: '
|
|
7
|
+
return (h(Host, { key: '1953e9328170f6203b0936fd051fcaae44cba1d6', role: hasLabel ? 'status' : undefined, "aria-label": hasLabel ? this.ariaLabel : undefined, "aria-hidden": hasLabel ? undefined : 'true' }, h("svg", { key: '4393e17fe0b2e899cdd84f0bfba2047d3a08bac1', part: "indicator", viewBox: "0 0 16 16", "aria-hidden": "true" }, h("circle", { key: 'a321ad329e7a94680b37f2e11bb0ab3ef6344708', pathLength: "100", cx: "8", cy: "8", r: "6" }))));
|
|
8
8
|
}
|
|
9
9
|
static get is() { return "lmvz-spinner"; }
|
|
10
10
|
static get encapsulation() { return "shadow"; }
|
|
@@ -22,6 +22,13 @@ h6 {
|
|
|
22
22
|
display: none !important;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
hr {
|
|
26
|
+
height: 0;
|
|
27
|
+
border: none;
|
|
28
|
+
margin: var(--lmvz-dimension-4-8, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)) 0;
|
|
29
|
+
border-top: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-subtle, #f0f0f0);
|
|
30
|
+
}
|
|
31
|
+
|
|
25
32
|
}
|
|
26
33
|
:host {
|
|
27
34
|
display: inline-block;
|
|
@@ -51,7 +58,8 @@ button {
|
|
|
51
58
|
background: var(--lmvz-tab-background);
|
|
52
59
|
color: var(--lmvz-tab-color);
|
|
53
60
|
|
|
54
|
-
font: var(--lmvz-typography-body-md-strong)
|
|
61
|
+
font: var(--lmvz-typography-body-md-strong, 500 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5
|
|
62
|
+
Router);
|
|
55
63
|
cursor: pointer;
|
|
56
64
|
white-space: nowrap;
|
|
57
65
|
transition:
|
|
@@ -59,8 +67,8 @@ button {
|
|
|
59
67
|
color 0.15s ease;
|
|
60
68
|
}
|
|
61
69
|
button:focus-visible {
|
|
62
|
-
outline: var(--lmvz-ds-outline);
|
|
63
|
-
outline-offset: var(--lmvz-ds-outline-offset);
|
|
70
|
+
outline: var(--lmvz-ds-outline, 1px solid #0e7ab4);
|
|
71
|
+
outline-offset: var(--lmvz-ds-outline-offset, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem));
|
|
64
72
|
z-index: 1;
|
|
65
73
|
}
|
|
66
74
|
button:disabled {
|
|
@@ -14,7 +14,7 @@ export class LmvzTab {
|
|
|
14
14
|
this.el.dispatchEvent(new CustomEvent('lmvzTabReady', { bubbles: true, composed: false }));
|
|
15
15
|
}
|
|
16
16
|
render() {
|
|
17
|
-
return (h(Host, { key: '
|
|
17
|
+
return (h(Host, { key: '642a74020dfe8e3f96ebbdf8067b1eba5c07bd15' }, h("button", { key: 'b786b259aed2f2e1f61f3ef14959f564841b3761', part: "button", role: "tab", disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, tabIndex: 0 }, h("slot", { key: 'e29265a24673c39397266ef21419cebdf9a05a2c', name: "media", ref: (el) => (this.mediaSlotEl = el), onSlotchange: this.handleMediaSlotChange }), h("span", { key: 'c74ae843e36f85291e404955056ba1f34d0393e7', class: "label" }, h("slot", { key: '0f13548f3ec10a126016bfc92aa93a4c21b86e0f' })), h("span", { key: '2f969a70550975bffd1884a55b12fec733331b01', "aria-hidden": "true", part: "indicator", class: "indicator" }))));
|
|
18
18
|
}
|
|
19
19
|
static get is() { return "lmvz-tab"; }
|
|
20
20
|
static get encapsulation() { return "shadow"; }
|
|
@@ -22,6 +22,13 @@ h6 {
|
|
|
22
22
|
display: none !important;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
hr {
|
|
26
|
+
height: 0;
|
|
27
|
+
border: none;
|
|
28
|
+
margin: var(--lmvz-dimension-4-8, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)) 0;
|
|
29
|
+
border-top: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-subtle, #f0f0f0);
|
|
30
|
+
}
|
|
31
|
+
|
|
25
32
|
}
|
|
26
33
|
:host {
|
|
27
34
|
display: inline-block;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
2
|
import { DirectionalFocusController } from "../../utils/aria/list-keyboard-controller";
|
|
3
|
-
import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
|
|
3
|
+
import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
|
|
4
4
|
let tabsIdCounter = 0;
|
|
5
5
|
export class LmvzTabs extends ReactiveControllerHost {
|
|
6
6
|
el;
|
|
@@ -232,7 +232,7 @@ export class LmvzTabs extends ReactiveControllerHost {
|
|
|
232
232
|
this.selectTab(value);
|
|
233
233
|
};
|
|
234
234
|
render() {
|
|
235
|
-
return (h(Host, { key: '
|
|
235
|
+
return (h(Host, { key: '0247aeab4ec148274ab25c78a5444d14c1b70d89', onClick: this.handleTabClick, onKeydown: this.handleKeydown }, h("div", { key: 'aa8baa8e55f84ee0fa75ce02a172adebfe4fefcd', role: "tablist", "aria-orientation": this.orientation, class: "tablist" }, h("slot", { key: 'b626f8dc73503c5013fa2e0a7623752eeb6f733f', ref: (el) => (this.tabSlotEl = el) })), h("div", { key: '230e7cc4686d643e8562aa93db6b2a3e94fccb5f', part: "panels-container", class: "panels-container" }, h("slot", { key: '713f88911b7cb14d3487d0945aac818b6727dee7', name: "panels", ref: (el) => (this.panelSlotEl = el) }))));
|
|
236
236
|
}
|
|
237
237
|
static get is() { return "lmvz-tabs"; }
|
|
238
238
|
static get encapsulation() { return "shadow"; }
|
|
@@ -110,7 +110,8 @@ input {
|
|
|
110
110
|
background-color: var(--lmvz-semantic-color-status-on-active, #0e7ab4);
|
|
111
111
|
}
|
|
112
112
|
label {
|
|
113
|
-
font: var(--lmvz-typography-body-md)
|
|
113
|
+
font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5
|
|
114
|
+
Router);
|
|
114
115
|
color: var(--lmvz-semantic-color-on-surface-primary, #000000);
|
|
115
116
|
cursor: pointer;
|
|
116
117
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
2
|
import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
|
|
4
|
+
import { componentOnReady } from "../../utils/stencil/stencil.util";
|
|
5
5
|
let toggleIdCounter = 0;
|
|
6
6
|
export class LmvzToggle extends ReactiveControllerHost {
|
|
7
7
|
el;
|
|
@@ -65,7 +65,7 @@ export class LmvzToggle extends ReactiveControllerHost {
|
|
|
65
65
|
this.lmvzChange.emit(newChecked);
|
|
66
66
|
};
|
|
67
67
|
render() {
|
|
68
|
-
return (h(Host, { key: '
|
|
68
|
+
return (h(Host, { key: '56c73859d7eeb40842744a29392598678268d7e8' }, h("span", { key: '145915fb9d77976328c39c00e7ef73426220b3ca', class: "track" }, h("input", { key: '4363e8e3a614ce18da19abc70257b82363b291da', type: "checkbox", role: "switch", id: this.toggleId, checked: this.checked, disabled: this.disabled, required: this.required, name: this.name, value: this.value, form: this.form, ref: (el) => (this.nativeInputElement = el), onChange: this.handleChange }), h("span", { key: '794ef6a50e8442dd1c460df7c42ffcf3009aab15', class: "thumb", "aria-hidden": "true" })), h("label", { key: '9432dc73d637ea8dbeb5c3b3ff8d0941c662f707', htmlFor: this.toggleId }, this.label)));
|
|
69
69
|
}
|
|
70
70
|
static get is() { return "lmvz-toggle"; }
|
|
71
71
|
static get encapsulation() { return "scoped"; }
|
package/collection/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from '@lmvz-ds/aria-validation';
|
|
2
|
-
export
|
|
2
|
+
export * from './api/ds.constants';
|
|
3
3
|
export * from './components/lmvz-message/public';
|
|
4
4
|
export * from './components/lmvz-snackbar/public';
|
|
5
5
|
export * from './utils/public';
|
|
@@ -20,7 +20,7 @@ export class HeaderIntegration {
|
|
|
20
20
|
this.activeNav = navId;
|
|
21
21
|
}
|
|
22
22
|
render() {
|
|
23
|
-
return (h(Host, { key: '
|
|
23
|
+
return (h(Host, { key: 'ebc2b4339568b47368f941f4b4771ccbaa6a4eeb' }, h("lmvz-header", { key: '85a1799f16e513db71e0475dd8d85d2fb880c002', lmvzActiveNav: this.activeNav }, h("lmvz-menuitem", { key: '6c50b1a6308c20e93ff93fe9a33ebee413b265c2', slot: "nav-primary", id: "lehrmittel", onLmvzActivation: this.activate.bind(this) }, h("a", { key: '665c24100d40b0285bf0c6387e3d59bc2842ff51', href: "#" }, "Lehrmittel")), h("lmvz-menuitem", { key: '15655bcb6e443837df2427d930b980fdb198a038', slot: "nav-primary", id: "verwaltung", onLmvzActivation: this.activate.bind(this) }, h("a", { key: '90f0fddc72671b948dc7fcedd2e1592aeeb97c1d', href: "#" }, "Verwaltung")), h("lmvz-menuitem", { key: '6997f5e88ae16639c72d3c65c5d37a690a4d8c22', slot: "connect-nav-lehrmittel" }, h("lmvz-icon", { key: '8aefbaac518eb8ace38945cbaa892d4532e60f78', ...typedIconFromSet('lmvz', 'edit') }), "Deutsch 7"), h("lmvz-menuitem", { key: '1ee162b6adeb0151815122edb35c245d77635697', slot: "connect-nav-lehrmittel" }, h("lmvz-icon", { key: 'bc40228254458c8ad5099d227e81f02e3cf760dd', ...typedIconFromSet('lmvz', 'edit') }), "Mathe 2"), h("lmvz-menuitem", { key: '57ead3b0ef5c3db1a1910827e3161e6030df9064', slot: "connect-nav-verwaltung" }, h("lmvz-icon", { key: '56b8c01e30764a6cc6687589034f580f359d4856', ...typedIconFromSet('lmvz', 'settings') }), "iwas mit Verwaltung"), h("lmvz-menuitem", { key: 'd0f3058017c06d7cf0a2301d6aec0a9fdb410685', slot: "connect-nav-verwaltung", "aria-label": "Einstellungen" }, h("lmvz-icon", { key: '39fe3ec2d11cc716ec385a7cd4ca9e1ef8fa05df', ...typedIconFromSet('lmvz', 'settings') })), h("lmvz-button", { key: '175bc0c4f5593b2a9f3985f5a487eeadf5e2e1fe', slot: "actions", "aria-label": "Benutzerkonto" }, h("lmvz-icon", { key: '4873746ad3d8e2ee424c69074ec52e71844f7f2d', ...typedIconFromSet('lmvz', 'user'), size: "lg" })))));
|
|
24
24
|
}
|
|
25
25
|
static get is() { return "header-integration"; }
|
|
26
26
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
:host(:focus-within) {
|
|
2
|
-
outline: var(--lmvz-ds-outline);
|
|
3
|
-
outline-offset: var(--lmvz-ds-outline-offset);
|
|
2
|
+
outline: var(--lmvz-ds-outline, 1px solid #0e7ab4);
|
|
3
|
+
outline-offset: var(--lmvz-ds-outline-offset, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem));
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
/* Forced Colors / Windows High Contrast */
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export const ariaAttributes = [
|
|
2
|
+
'role',
|
|
3
|
+
'aria-activedescendant',
|
|
4
|
+
'aria-atomic',
|
|
5
|
+
'aria-autocomplete',
|
|
6
|
+
'aria-braillelabel',
|
|
7
|
+
'aria-brailleroledescription',
|
|
8
|
+
'aria-busy',
|
|
9
|
+
'aria-checked',
|
|
10
|
+
'aria-colcount',
|
|
11
|
+
'aria-colindex',
|
|
12
|
+
'aria-colindextext',
|
|
13
|
+
'aria-colspan',
|
|
14
|
+
'aria-controls',
|
|
15
|
+
'aria-current',
|
|
16
|
+
'aria-describedby',
|
|
17
|
+
'aria-description',
|
|
18
|
+
'aria-details',
|
|
19
|
+
'aria-disabled',
|
|
20
|
+
'aria-errormessage',
|
|
21
|
+
'aria-expanded',
|
|
22
|
+
'aria-flowto',
|
|
23
|
+
'aria-haspopup',
|
|
24
|
+
'aria-hidden',
|
|
25
|
+
'aria-invalid',
|
|
26
|
+
'aria-keyshortcuts',
|
|
27
|
+
'aria-label',
|
|
28
|
+
'aria-labelledby',
|
|
29
|
+
'aria-level',
|
|
30
|
+
'aria-live',
|
|
31
|
+
'aria-multiline',
|
|
32
|
+
'aria-multiselectable',
|
|
33
|
+
'aria-orientation',
|
|
34
|
+
'aria-owns',
|
|
35
|
+
'aria-placeholder',
|
|
36
|
+
'aria-posinset',
|
|
37
|
+
'aria-pressed',
|
|
38
|
+
'aria-readonly',
|
|
39
|
+
'aria-relevant',
|
|
40
|
+
'aria-required',
|
|
41
|
+
'aria-roledescription',
|
|
42
|
+
'aria-rowcount',
|
|
43
|
+
'aria-rowindex',
|
|
44
|
+
'aria-rowindextext',
|
|
45
|
+
'aria-rowspan',
|
|
46
|
+
'aria-selected',
|
|
47
|
+
'aria-setsize',
|
|
48
|
+
'aria-sort',
|
|
49
|
+
'aria-valuemax',
|
|
50
|
+
'aria-valuemin',
|
|
51
|
+
'aria-valuenow',
|
|
52
|
+
'aria-valuetext',
|
|
53
|
+
];
|