@lmvz-ds/components 0.18.2 → 0.19.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 +6 -0
- package/README.md +45 -100
- package/cjs/ds.constants-DSnxZ3ia.js +16 -0
- package/cjs/{icons-swqMn6s2.js → icons-Tg7ySOh-.js} +54 -38
- package/cjs/index.cjs.js +9 -10
- package/cjs/lmvz-button.cjs.entry.js +2 -2
- package/cjs/lmvz-chip.cjs.entry.js +68 -4
- package/cjs/lmvz-components.cjs.js +1 -1
- package/cjs/lmvz-header_2.cjs.entry.js +2 -2
- package/cjs/lmvz-icon.cjs.entry.js +6 -6
- package/cjs/lmvz-input.cjs.entry.js +3 -3
- package/cjs/lmvz-menuitem.cjs.entry.js +2 -2
- package/cjs/lmvz-select.cjs.entry.js +2 -2
- package/cjs/loader.cjs.js +1 -1
- package/cjs/{reactive-controller-host-CtaVAiYJ.js → reactive-controller-host-Bi9eu2bV.js} +9 -9
- package/collection/api/ds.constants.js +2 -0
- package/collection/components/lmvz-button/lmvz-button.js +6 -3
- package/collection/components/lmvz-chip/lmvz-chip.css +84 -1
- package/collection/components/lmvz-chip/lmvz-chip.js +110 -13
- package/collection/components/lmvz-header/lmvz-header.js +2 -2
- package/collection/components/lmvz-icon/lmvz-icon.css +11 -10
- package/collection/components/lmvz-icon/lmvz-icon.js +7 -6
- package/collection/components/lmvz-input/lmvz-input.js +4 -4
- package/collection/components/lmvz-menuitem/lmvz-menuitem.js +11 -5
- package/collection/components/lmvz-select/lmvz-select.js +1 -1
- package/collection/index.js +1 -1
- package/collection/integration/header-integration/header-integration.js +1 -1
- package/collection/utils/aria/aria-validation-controller.js +1 -0
- package/collection/utils/reactive-controller-host.js +9 -9
- package/components/index.js +1 -1
- package/components/lmvz-button.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-menuitem.js +1 -1
- package/components/lmvz-select.js +1 -1
- package/components/{p-DQEkWkMh.js → p-DIrAQ4IB.js} +1 -1
- package/esm/{aria-loader-BF_AYtbb.js → aria-loader-CES8Ae1e.js} +1 -1
- package/esm/ds.constants-Bmi89ll1.js +9 -0
- package/esm/{icons-Ca8oMiRa.js → icons-Bj4dF1-I.js} +55 -40
- package/esm/{index-7Ru1khgk.js → index-BvxaUA12.js} +1 -1
- package/esm/index.js +4 -11
- package/esm/lmvz-button.entry.js +3 -3
- package/esm/lmvz-chip.entry.js +69 -5
- package/esm/lmvz-components.js +1 -1
- package/esm/lmvz-header_2.entry.js +3 -3
- package/esm/lmvz-icon.entry.js +7 -7
- package/esm/lmvz-input.entry.js +4 -4
- package/esm/lmvz-menuitem.entry.js +3 -3
- package/esm/lmvz-select.entry.js +3 -3
- package/esm/loader.js +1 -1
- package/esm/{logger-fiRXhuXK.js → logger-0bL3pydp.js} +1 -1
- package/esm/{reactive-controller-host-sR2jJxNG.js → reactive-controller-host-J2thAxVH.js} +10 -10
- package/hydrate/index.js +92 -27
- package/hydrate/index.mjs +92 -27
- package/lmvz-components/index.esm.js +1 -1
- package/lmvz-components/lmvz-components.esm.js +1 -1
- package/lmvz-components/{p-fiRXhuXK.js → p-0bL3pydp.js} +1 -1
- package/lmvz-components/p-40569208.entry.js +1 -0
- package/lmvz-components/p-49ab22bd.entry.js +1 -0
- package/lmvz-components/{p-6dbb3f13.entry.js → p-6e8acbd9.entry.js} +1 -1
- package/lmvz-components/{p-59383f3a.entry.js → p-9212bd23.entry.js} +1 -1
- package/lmvz-components/p-9626e951.entry.js +1 -0
- package/lmvz-components/p-Bmi89ll1.js +1 -0
- package/lmvz-components/p-Bu4Z_PMf.js +1 -0
- package/lmvz-components/{p-Bkfdgg0T.js → p-BxHnZA0M.js} +1 -1
- package/lmvz-components/{p-DXOTa5VF.js → p-DHZwxmLb.js} +1 -1
- package/lmvz-components/{p-B3dnXEPG.js → p-DYaffOLo.js} +1 -1
- package/lmvz-components/{p-84267405.entry.js → p-e1b847d2.entry.js} +1 -1
- package/lmvz-components/{p-5aa17cd2.entry.js → p-ec96c6b6.entry.js} +1 -1
- package/manifest.json +139 -32
- package/package.json +1 -1
- package/types/api/ds.constants.d.ts +6 -1
- package/types/components/lmvz-action/lmvz-action.d.ts +0 -1
- package/types/components/lmvz-button/lmvz-button.d.ts +0 -1
- package/types/components/lmvz-card/lmvz-card.d.ts +0 -1
- package/types/components/lmvz-chip/lmvz-chip.d.ts +18 -3
- package/types/components/lmvz-header/lmvz-header.d.ts +0 -1
- package/types/components/lmvz-icon/lmvz-icon.d.ts +0 -1
- package/types/components/lmvz-input/lmvz-input.d.ts +0 -1
- package/types/components/lmvz-menuitem/lmvz-menuitem.d.ts +0 -1
- package/types/components/lmvz-select/lmvz-select.d.ts +0 -1
- package/types/components.d.ts +70 -12
- package/types/index.d.ts +1 -2
- package/types/utils/aria/aria-validation-controller.d.ts +1 -2
- package/types/utils/aria/element-activation-controller.d.ts +0 -1
- package/types/utils/aria/list-keyboard-controller.d.ts +0 -1
- package/types/utils/assets.d.ts +0 -1
- package/types/utils/component.d.ts +0 -1
- package/types/utils/environment.d.ts +0 -1
- package/types/utils/http.d.ts +0 -1
- package/types/utils/http.unit.d.ts +0 -1
- package/types/utils/icons/icons-registry.d.ts +0 -1
- package/types/utils/icons/icons.d.ts +0 -1
- package/types/utils/icons/icons.unit.d.ts +0 -1
- package/types/utils/icons/public.d.ts +0 -1
- package/types/utils/public.d.ts +0 -1
- package/types/utils/reactive-controller-host.d.ts +0 -1
- package/lmvz-components/p-0a41cc24.entry.js +0 -1
- package/lmvz-components/p-30b99f11.entry.js +0 -1
- package/lmvz-components/p-5f150890.entry.js +0 -1
- package/lmvz-components/p-Bh2Epkwf.js +0 -1
- /package/components/{p-CBLAeife.js → p-DbeHBSOe.js} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index-C2yDXRqP.js');
|
|
4
|
-
var reactiveControllerHost = require('./reactive-controller-host-
|
|
4
|
+
var reactiveControllerHost = require('./reactive-controller-host-Bi9eu2bV.js');
|
|
5
5
|
require('./aria-loader-CfFuAbJn.js');
|
|
6
6
|
|
|
7
7
|
const chevronDownSvg = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIwLjMzMzQgOC42NjY2M0wxMi4wMDAxIDE3TDMuNjY2NzUgOC42NjY2MyIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=';
|
|
@@ -58,7 +58,7 @@ const LmvzSelect = class extends reactiveControllerHost.ReactiveControllerHost {
|
|
|
58
58
|
render() {
|
|
59
59
|
const hasValue = this.hasValue;
|
|
60
60
|
const shouldShowLabel = hasValue;
|
|
61
|
-
return (index.h(index.Host, { key: '
|
|
61
|
+
return (index.h(index.Host, { key: 'b9f6211fec35e7c03cc9c462cb1f8eb60fc6c96c' }, index.h("div", { key: '43d22daa1492f87f89f9479687b82ee893f10faa', class: "select-wrapper" }, index.h("label", { key: 'cf399d80e31a345cea60286db4aea2d7dd7973d1', htmlFor: this.selectId, class: shouldShowLabel ? 'floating-label' : 'assistive-label' }, this.label, this.required && shouldShowLabel && index.h("span", { key: '6bdd8e0d652f126eb1c64c2a647ac0816cc61b05', "aria-hidden": "true" }, " *")), index.h("div", { key: '5d8497c64e197a71003a0c8e11149993fcefd684', "aria-hidden": "true" }, index.h("span", { key: '95b73705ad81d000ce415a377002e4ae4d63aae6' }, hasValue ? this.selectedLabel : this.label, this.required && !hasValue && index.h("span", { key: '2ff855f0fa89d3c66c59a176f855fdbf18ecb6c2', "aria-hidden": "true" }, " *")), index.h("span", { key: 'a66d4ec65c95b1463223c07aecb17d65a45c6b24' }, index.h("img", { key: '4cd21532ff13a3ecbd229cd79d0a3fa7b3eafc60', src: chevronDownSvg, alt: "" }))), index.h("select", { key: '2a9e46e29f8ef7d116989b58abfacee840dd2275', 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 && index.h("option", { key: '5c5fa4d5e3b120a0085f6fc408d20a56f6547441', value: "", disabled: true, selected: true, hidden: true }), index.h("slot", { key: 'e11909e901624af7d9d5275f2e9715007960eab9' }))), this.helperText && index.h("div", { key: 'fa0d06d3294f303081fd5ffb9aeaff6a8e297901', role: "status" }, this.helperText)));
|
|
62
62
|
}
|
|
63
63
|
static get watchers() { return {
|
|
64
64
|
"value": [{
|
package/cjs/loader.cjs.js
CHANGED
|
@@ -6,7 +6,7 @@ var appGlobals = require('./app-globals-V2Kpy_OQ.js');
|
|
|
6
6
|
const defineCustomElements = async (win, options) => {
|
|
7
7
|
if (typeof window === 'undefined') return undefined;
|
|
8
8
|
await appGlobals.globalScripts();
|
|
9
|
-
return index.bootstrapLazy([["lmvz-header_2.cjs",[[769,"lmvz-header",{"role":[2561],"lmvzActiveNav":[1,"lmvz-active-nav"]},null,{"lmvzActiveNav":[{"handleActiveNavChange":0}]}],[774,"lmvz-menuitem",{"role":[2561],"ti":[2562,"tabindex"]}]]],["lmvz-action.cjs",[[257,"lmvz-action"]]],["lmvz-button.cjs",[[785,"lmvz-button",{"ti":[2562,"tabindex"],"scale":[513],"variant":[513],"disabled":[516],"type":[1],"form":[1]}]]],["lmvz-card.cjs",[[774,"lmvz-card",{"cardTitle":[1,"card-title"],"imageUrl":[1,"image-url"],"description":[1],"primaryActionLabel":[1,"primary-action-label"]}]]],["lmvz-chip.cjs",[[
|
|
9
|
+
return index.bootstrapLazy([["lmvz-header_2.cjs",[[769,"lmvz-header",{"role":[2561],"lmvzActiveNav":[1,"lmvz-active-nav"]},null,{"lmvzActiveNav":[{"handleActiveNavChange":0}]}],[774,"lmvz-menuitem",{"role":[2561],"ti":[2562,"tabindex"]}]]],["lmvz-action.cjs",[[257,"lmvz-action"]]],["lmvz-button.cjs",[[785,"lmvz-button",{"ti":[2562,"tabindex"],"scale":[513],"variant":[513],"disabled":[516],"type":[1],"form":[1]}]]],["lmvz-card.cjs",[[774,"lmvz-card",{"cardTitle":[1,"card-title"],"imageUrl":[1,"image-url"],"description":[1],"primaryActionLabel":[1,"primary-action-label"]}]]],["lmvz-chip.cjs",[[769,"lmvz-chip",{"type":[1537],"size":[1537]},null,{"type":[{"normalizeType":0}],"size":[{"normalizeSize":0}]}]]],["lmvz-icon.cjs",[[514,"lmvz-icon",{"icon":[513],"weight":[513],"size":[513],"iconset":[513],"ariaLabel":[513,"aria-label"],"iconData":[32],"visible":[32]},null,{"icon":[{"loadIconPathData":0}],"iconset":[{"loadIconPathData":0}]}]]],["lmvz-input.cjs",[[838,"lmvz-input",{"value":[1025],"label":[1],"helperText":[1,"helper-text"],"placeholder":[1],"disabled":[516],"readonly":[516],"required":[516],"name":[1],"type":[1],"errorMessage":[1,"error-message"],"autocomplete":[1],"inputmode":[1],"autocorrect":[1],"autocapitalize":[1],"spellcheck":[4],"autofocus":[4],"minlength":[2],"maxlength":[2],"pattern":[1],"min":[8],"max":[8],"step":[8],"form":[1],"error":[6660],"nativeError":[32],"setValue":[64],"focusInput":[64],"blurInput":[64],"select":[64],"checkValidity":[64],"reportValidity":[64],"getInputElement":[64]},null,{"value":[{"handleValueChange":0}],"disabled":[{"handleDisabledChange":0}]}]]],["lmvz-menuitem.cjs",[[774,"lmvz-menuitem",{"role":[2561],"ti":[2562,"tabindex"]}]]],["lmvz-select.cjs",[[774,"lmvz-select",{"value":[1025],"label":[1],"helperText":[1,"helper-text"],"disabled":[516],"required":[516],"name":[1],"selectedLabel":[32]},null,{"value":[{"handleValueChange":0}]}]]]], options);
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
exports.setNonce = index.setNonce;
|
|
@@ -158,34 +158,34 @@ class ReactiveControllerHost {
|
|
|
158
158
|
this.controllers.delete(controller);
|
|
159
159
|
}
|
|
160
160
|
get activeControllers() {
|
|
161
|
-
return Array.from(this.controllers).filter(controller => !controller.disabled);
|
|
161
|
+
return Array.from(this.controllers).filter((controller) => !controller.disabled);
|
|
162
162
|
}
|
|
163
163
|
connectedCallback() {
|
|
164
164
|
if (!this.controllers.size) {
|
|
165
165
|
console.warn('ReactiveControllerHost connected with no controllers registered.', this);
|
|
166
166
|
}
|
|
167
|
-
this.activeControllers.forEach(controller => controller.hostConnected?.());
|
|
167
|
+
this.activeControllers.forEach((controller) => controller.hostConnected?.());
|
|
168
168
|
}
|
|
169
169
|
disconnectedCallback() {
|
|
170
|
-
this.activeControllers.forEach(controller => controller.hostDisconnected?.());
|
|
170
|
+
this.activeControllers.forEach((controller) => controller.hostDisconnected?.());
|
|
171
171
|
}
|
|
172
172
|
componentWillLoad() {
|
|
173
|
-
this.activeControllers.forEach(controller => controller.hostWillLoad?.());
|
|
173
|
+
this.activeControllers.forEach((controller) => controller.hostWillLoad?.());
|
|
174
174
|
}
|
|
175
175
|
componentDidLoad() {
|
|
176
|
-
this.activeControllers.forEach(controller => controller.hostDidLoad?.());
|
|
176
|
+
this.activeControllers.forEach((controller) => controller.hostDidLoad?.());
|
|
177
177
|
}
|
|
178
178
|
componentWillRender() {
|
|
179
|
-
this.activeControllers.forEach(controller => controller.hostWillRender?.());
|
|
179
|
+
this.activeControllers.forEach((controller) => controller.hostWillRender?.());
|
|
180
180
|
}
|
|
181
181
|
componentDidRender() {
|
|
182
|
-
this.activeControllers.forEach(controller => controller.hostDidRender?.());
|
|
182
|
+
this.activeControllers.forEach((controller) => controller.hostDidRender?.());
|
|
183
183
|
}
|
|
184
184
|
componentWillUpdate() {
|
|
185
|
-
this.activeControllers.forEach(controller => controller.hostWillUpdate?.());
|
|
185
|
+
this.activeControllers.forEach((controller) => controller.hostWillUpdate?.());
|
|
186
186
|
}
|
|
187
187
|
componentDidUpdate() {
|
|
188
|
-
this.activeControllers.forEach(controller => controller.hostDidUpdate?.());
|
|
188
|
+
this.activeControllers.forEach((controller) => controller.hostDidUpdate?.());
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
|
|
@@ -5,3 +5,5 @@ export const textSizes = [...sizes, 'xl'];
|
|
|
5
5
|
export const inputTypes = ['text', 'email', 'password', 'tel', 'url', 'search', 'number'];
|
|
6
6
|
export const iconSizes = [...sizes, 'inherit'];
|
|
7
7
|
export const iconWeights = ['thin', 'medium', 'bold', 'filled'];
|
|
8
|
+
export const chipTypes = ['active', 'warning', 'success', 'error', 'neutral'];
|
|
9
|
+
export const chipSizes = ['default', 'small'];
|
|
@@ -57,7 +57,7 @@ export class LmvzButton extends ReactiveControllerHost {
|
|
|
57
57
|
};
|
|
58
58
|
render() {
|
|
59
59
|
this.renderHiddenButton();
|
|
60
|
-
return (h(Host, { key: '
|
|
60
|
+
return (h(Host, { key: 'ce82e749ffb9172a9421d303e0d7cc02de58dff9', "aria-disabled": this.disabled ? 'true' : null }, h("button", { key: 'acd0773f72e76139ec5495eb15fc3a5949029e40', ref: (e) => (this.validationEl = e), disabled: this.disabled, class: classNames(this.variant, { [this.scale ?? '']: !!this.scale, disabled: this.disabled }), ...this.inheritedAttributes }, h("slot", { key: 'f519e0f82e68811a8831214e83e609bd9501fed0' }))));
|
|
61
61
|
}
|
|
62
62
|
static get is() { return "lmvz-button"; }
|
|
63
63
|
static get encapsulation() { return "shadow"; }
|
|
@@ -188,8 +188,11 @@ export class LmvzButton extends ReactiveControllerHost {
|
|
|
188
188
|
"required": false,
|
|
189
189
|
"optional": false,
|
|
190
190
|
"docs": {
|
|
191
|
-
"tags": [
|
|
192
|
-
|
|
191
|
+
"tags": [{
|
|
192
|
+
"name": "default",
|
|
193
|
+
"text": "'button'"
|
|
194
|
+
}],
|
|
195
|
+
"text": "Native button type forwarded to the internal `<button>` element.\nUse `submit` to trigger form submission."
|
|
193
196
|
},
|
|
194
197
|
"getter": false,
|
|
195
198
|
"setter": false,
|
|
@@ -1,3 +1,86 @@
|
|
|
1
1
|
:host {
|
|
2
|
-
|
|
2
|
+
--lmvz-chip-border-color: var(--lmvz-semantic-color-status-on-neutral-subtle, #d4d4d4);
|
|
3
|
+
--lmvz-chip-background-color: var(--lmvz-semantic-color-status-neutral, #fcfcfc);
|
|
4
|
+
--lmvz-chip-foreground-color: var(--lmvz-semantic-color-status-on-neutral, #545454);
|
|
5
|
+
|
|
6
|
+
padding-block: var(--lmvz-dimension-4-6, clamp(0.25rem, 0.22rem + 0.13vw, 0.38rem));
|
|
7
|
+
padding-inline: var(--lmvz-dimension-8-10, clamp(0.5rem, 0.47rem + 0.13vw, 0.63rem));
|
|
8
|
+
border: 1px solid var(--lmvz-chip-border-color);
|
|
9
|
+
border-radius: var(--lmvz-semantic-border-radius-round, 999px);
|
|
10
|
+
font: var(--lmvz-typography-body-xs-strong, 500 clamp(0.69rem, 0.67rem + 0.06vw, 0.75rem) / 1.4
|
|
11
|
+
Router);
|
|
12
|
+
background-color: var(--lmvz-chip-background-color);
|
|
13
|
+
color: var(--lmvz-chip-foreground-color);
|
|
14
|
+
|
|
15
|
+
display: inline-flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
justify-content: center;
|
|
18
|
+
gap: var(--lmvz-dimension-4-6, clamp(0.25rem, 0.22rem + 0.13vw, 0.38rem));
|
|
19
|
+
|
|
20
|
+
/* enable truncated content */
|
|
21
|
+
box-sizing: border-box;
|
|
22
|
+
max-width: 100%;
|
|
23
|
+
overflow: hidden;
|
|
24
|
+
white-space: nowrap;
|
|
25
|
+
|
|
26
|
+
> .content-overflow-wrapper {
|
|
27
|
+
min-width: 0;
|
|
28
|
+
overflow: hidden;
|
|
29
|
+
text-overflow: ellipsis;
|
|
30
|
+
white-space: nowrap;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
:host([size='small']) {
|
|
35
|
+
padding-block: var(--lmvz-dimension-2-4, clamp(0.13rem, 0.09rem + 0.13vw, 0.25rem));
|
|
36
|
+
padding-inline: var(--lmvz-dimension-6-8, clamp(0.38rem, 0.34rem + 0.13vw, 0.5rem));
|
|
37
|
+
font: var(--lmvz-typography-body-2xs-strong, 500 clamp(0.63rem, 0.61rem + 0.06vw, 0.69rem) / 1.4
|
|
38
|
+
Router);
|
|
39
|
+
gap: var(--lmvz-dimension-2-4, clamp(0.13rem, 0.09rem + 0.13vw, 0.25rem));
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
::slotted(*) {
|
|
43
|
+
/* non-inline contents are forbidden for chips */
|
|
44
|
+
/* TODO: validate using ARIA validation tooling, instead of overriding styles */
|
|
45
|
+
display: inline;
|
|
46
|
+
white-space: inherit;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
::slotted(lmvz-icon) {
|
|
50
|
+
--lmvz-component-color: var(--lmvz-chip-foreground-color);
|
|
51
|
+
--lmvz-component-size: var(--lmvz-dimension-12-14, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
:host([size='small']) ::slotted(lmvz-icon) {
|
|
55
|
+
--lmvz-component-size: var(--lmvz-dimension-10-12, clamp(0.63rem, 0.59rem + 0.13vw, 0.75rem));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
:host([type='active']) {
|
|
59
|
+
--lmvz-chip-border-color: var(--lmvz-semantic-color-status-on-active-subtle, #c1e6fa);
|
|
60
|
+
--lmvz-chip-background-color: var(--lmvz-semantic-color-status-active, #f1f9fe);
|
|
61
|
+
--lmvz-chip-foreground-color: var(--lmvz-semantic-color-status-on-active, #0e7ab4);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
:host([type='warning']) {
|
|
65
|
+
--lmvz-chip-border-color: var(--lmvz-semantic-color-status-on-warning-subtle, #ffdf75);
|
|
66
|
+
--lmvz-chip-background-color: var(--lmvz-semantic-color-status-warning, #fffbf0);
|
|
67
|
+
--lmvz-chip-foreground-color: var(--lmvz-semantic-color-status-on-warning, #7a5e00);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
:host([type='success']) {
|
|
71
|
+
--lmvz-chip-border-color: var(--lmvz-semantic-color-status-on-success-subtle, #a5dad3);
|
|
72
|
+
--lmvz-chip-background-color: var(--lmvz-semantic-color-status-success, #f1f9f8);
|
|
73
|
+
--lmvz-chip-foreground-color: var(--lmvz-semantic-color-status-on-success, #37867c);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
:host([type='error']) {
|
|
77
|
+
--lmvz-chip-border-color: var(--lmvz-semantic-color-status-on-danger-subtle, #f7bfc2);
|
|
78
|
+
--lmvz-chip-background-color: var(--lmvz-semantic-color-status-danger, #fdf1f2);
|
|
79
|
+
--lmvz-chip-foreground-color: var(--lmvz-semantic-color-status-on-danger, #e52a31);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
:host([type='neutral']) {
|
|
83
|
+
--lmvz-chip-border-color: var(--lmvz-semantic-color-status-on-neutral-subtle, #d4d4d4);
|
|
84
|
+
--lmvz-chip-background-color: var(--lmvz-semantic-color-status-neutral, #fcfcfc);
|
|
85
|
+
--lmvz-chip-foreground-color: var(--lmvz-semantic-color-status-on-neutral, #545454);
|
|
3
86
|
}
|
|
@@ -1,8 +1,54 @@
|
|
|
1
|
+
import { debounce } from "@lmvz-ds/lib-ts/stream/debounce.js";
|
|
1
2
|
import { Host, h } from "@stencil/core";
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
import { chipSizes, chipTypes } from "../../api/ds.constants.js";
|
|
4
|
+
import { AriaValidationController, isAriaValidationEnabled } from "../../utils/aria/aria-validation-controller";
|
|
5
|
+
import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
|
|
6
|
+
export class LmvzChip extends ReactiveControllerHost {
|
|
7
|
+
ariaValidationController = new AriaValidationController(this);
|
|
8
|
+
beforeSlot;
|
|
9
|
+
defaultSlot;
|
|
10
|
+
afterSlot;
|
|
11
|
+
el;
|
|
12
|
+
get validationEl() {
|
|
13
|
+
return this.el;
|
|
14
|
+
}
|
|
15
|
+
type = 'active';
|
|
16
|
+
size = 'default';
|
|
17
|
+
constructor() {
|
|
18
|
+
super();
|
|
19
|
+
this.addController(this.ariaValidationController);
|
|
20
|
+
}
|
|
21
|
+
normalizeType(value) {
|
|
22
|
+
const normalizedType = chipTypes.includes(value) ? value : 'active';
|
|
23
|
+
if (normalizedType !== this.type) {
|
|
24
|
+
this.type = normalizedType;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
normalizeSize(value) {
|
|
28
|
+
const normalizedSize = chipSizes.includes(value) ? value : 'default';
|
|
29
|
+
if (normalizedSize !== this.size) {
|
|
30
|
+
this.size = normalizedSize;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
componentWillLoad() {
|
|
34
|
+
this.normalizeType(this.type);
|
|
35
|
+
this.normalizeSize(this.size);
|
|
36
|
+
super.componentWillLoad();
|
|
37
|
+
}
|
|
38
|
+
connectedCallback() {
|
|
39
|
+
super.connectedCallback();
|
|
40
|
+
this.checkContent();
|
|
41
|
+
}
|
|
42
|
+
checkContent = debounce(() => {
|
|
43
|
+
if (!isAriaValidationEnabled)
|
|
44
|
+
return;
|
|
45
|
+
const elements = [...(this.beforeSlot?.assignedElements() ?? []), ...(this.defaultSlot?.assignedElements() ?? []), ...(this.afterSlot?.assignedElements() ?? [])];
|
|
46
|
+
if (!elements.length) {
|
|
47
|
+
console.warn('LmvzChip has no assigned content. Please add content to the default slot or the before-text/after-text slots.');
|
|
48
|
+
}
|
|
49
|
+
}, 500);
|
|
4
50
|
render() {
|
|
5
|
-
return h(Host, { key: '
|
|
51
|
+
return (h(Host, { key: 'd34b677a3f6ac2cdb53453c774badb837a3b9e25', type: this.type, size: this.size }, h("slot", { key: 'c6f8beea28cd847f8d8b7c7a075c774f58e39262', name: "before-text", ref: (el) => (this.beforeSlot = el), onSlotchange: () => this.checkContent() }), h("span", { key: 'be784ef977bc1d0eae2fd2d9377642636bd325bc', class: "content-overflow-wrapper" }, h("slot", { key: '3730f2902bcae7917979dedd91264670fbff00de', ref: (el) => (this.defaultSlot = el), onSlotchange: () => this.checkContent() })), h("slot", { key: 'f827a03e407385c7bdfd483073453d97f6f73afb', name: "after-text", ref: (el) => (this.afterSlot = el), onSlotchange: () => this.checkContent() })));
|
|
6
52
|
}
|
|
7
53
|
static get is() { return "lmvz-chip"; }
|
|
8
54
|
static get encapsulation() { return "shadow"; }
|
|
@@ -18,25 +64,76 @@ export class LmvzChip {
|
|
|
18
64
|
}
|
|
19
65
|
static get properties() {
|
|
20
66
|
return {
|
|
21
|
-
"
|
|
67
|
+
"type": {
|
|
22
68
|
"type": "string",
|
|
23
|
-
"mutable":
|
|
69
|
+
"mutable": true,
|
|
24
70
|
"complexType": {
|
|
25
|
-
"original": "
|
|
26
|
-
"resolved": "
|
|
27
|
-
"references": {
|
|
71
|
+
"original": "Chip.Type",
|
|
72
|
+
"resolved": "\"active\" | \"error\" | \"neutral\" | \"success\" | \"warning\"",
|
|
73
|
+
"references": {
|
|
74
|
+
"Chip": {
|
|
75
|
+
"location": "import",
|
|
76
|
+
"path": "../../api/ds.constants.js",
|
|
77
|
+
"id": "src/api/ds.constants.ts::Chip",
|
|
78
|
+
"referenceLocation": "Chip"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
28
81
|
},
|
|
29
|
-
"required":
|
|
82
|
+
"required": false,
|
|
30
83
|
"optional": false,
|
|
31
84
|
"docs": {
|
|
32
|
-
"tags": [
|
|
33
|
-
|
|
85
|
+
"tags": [{
|
|
86
|
+
"name": "default",
|
|
87
|
+
"text": "'active'"
|
|
88
|
+
}],
|
|
89
|
+
"text": "Semantic variant of the chip.\nInvalid values are normalized to `active` at runtime."
|
|
34
90
|
},
|
|
35
91
|
"getter": false,
|
|
36
92
|
"setter": false,
|
|
37
|
-
"reflect":
|
|
38
|
-
"attribute": "
|
|
93
|
+
"reflect": true,
|
|
94
|
+
"attribute": "type",
|
|
95
|
+
"defaultValue": "'active'"
|
|
96
|
+
},
|
|
97
|
+
"size": {
|
|
98
|
+
"type": "string",
|
|
99
|
+
"mutable": true,
|
|
100
|
+
"complexType": {
|
|
101
|
+
"original": "Chip.Size",
|
|
102
|
+
"resolved": "\"default\" | \"small\"",
|
|
103
|
+
"references": {
|
|
104
|
+
"Chip": {
|
|
105
|
+
"location": "import",
|
|
106
|
+
"path": "../../api/ds.constants.js",
|
|
107
|
+
"id": "src/api/ds.constants.ts::Chip",
|
|
108
|
+
"referenceLocation": "Chip"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"required": false,
|
|
113
|
+
"optional": false,
|
|
114
|
+
"docs": {
|
|
115
|
+
"tags": [{
|
|
116
|
+
"name": "default",
|
|
117
|
+
"text": "'default'"
|
|
118
|
+
}],
|
|
119
|
+
"text": "Size variant of the chip.\nInvalid values are normalized to `default` at runtime."
|
|
120
|
+
},
|
|
121
|
+
"getter": false,
|
|
122
|
+
"setter": false,
|
|
123
|
+
"reflect": true,
|
|
124
|
+
"attribute": "size",
|
|
125
|
+
"defaultValue": "'default'"
|
|
39
126
|
}
|
|
40
127
|
};
|
|
41
128
|
}
|
|
129
|
+
static get elementRef() { return "el"; }
|
|
130
|
+
static get watchers() {
|
|
131
|
+
return [{
|
|
132
|
+
"propName": "type",
|
|
133
|
+
"methodName": "normalizeType"
|
|
134
|
+
}, {
|
|
135
|
+
"propName": "size",
|
|
136
|
+
"methodName": "normalizeSize"
|
|
137
|
+
}];
|
|
138
|
+
}
|
|
42
139
|
}
|
|
@@ -84,7 +84,7 @@ export class LmvzHeader extends ReactiveControllerHost {
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
render() {
|
|
87
|
-
return (h(Host, { key: '
|
|
87
|
+
return (h(Host, { key: '74061d97a6d4cdec1f445a91b9e819bb12565681', onFocus: this.delegateFocus.bind(this) }, h("div", { key: 'af7f08ff48a20b7d36df5ee233da7027cd30a047', class: "brand" }, h("slot", { key: '46be4fcf2798ac374ac967bc2742260c4d7e082b', name: "brand" }, h("img", { key: '3ee79f9732758a6ca5dd6e8264c67707917b358b', id: "fallback-logo-lmvz", src: logo, alt: "Lehrmittelverlag Z\u00FCrich" }))), h("nav", { key: '8f37883454544a384bb35a151c4e24bb12c35f40', "aria-label": "Hauptnavigation" }, h("div", { key: 'a3166ad7e924dd72148d05c01160c889c8f07529', role: "menubar", class: "primary-menubar" }, h("slot", { key: 'aa600791e4d8f3463fefbc3b366831e3b3a3eaac', name: "nav-primary", ref: (el) => (this.primarySlot = el) }), h("div", { key: '6471256967f4d14c454205a330b2a97ecfcad7a8', role: "menu", id: "nav-secondary", class: "secondary-menubar", hidden: !this.lmvzActiveNav, ref: (el) => (this.secondaryNav = el) }, h("slot", { key: '1b9b461b958e76184938a1c65d032b296894e2dd', name: this.secondarySlotName, ref: (el) => (this.secondarySlot = el) })))), h("div", { key: '019d87472272df09ce99eeed405771229f326f1a', class: "actions" }, h("slot", { key: '18035fb0a51a26c96dc687547d17d57118a88e87', name: "actions" }))));
|
|
88
88
|
}
|
|
89
89
|
static get is() { return "lmvz-header"; }
|
|
90
90
|
static get encapsulation() { return "shadow"; }
|
|
@@ -132,7 +132,7 @@ export class LmvzHeader extends ReactiveControllerHost {
|
|
|
132
132
|
"optional": true,
|
|
133
133
|
"docs": {
|
|
134
134
|
"tags": [],
|
|
135
|
-
"text": ""
|
|
135
|
+
"text": "Id of the currently active primary navigation item.\nAlso determines which `connect-nav-*` secondary slot is shown."
|
|
136
136
|
},
|
|
137
137
|
"getter": false,
|
|
138
138
|
"setter": false,
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
* @prop --lmvz-icon-color: The icon's color. This is inferred from the context (e.g. button) but can be overridden if needed, or when the icon is used standalone.
|
|
4
4
|
*/
|
|
5
5
|
--lmvz-icon-color: var(--lmvz-component-color, var(--lmvz-semantic-color-on-surface-input-primary, #000000));
|
|
6
|
+
/**
|
|
7
|
+
* @prop --lmvz-icon-size: The icon's size. This is inferred from the context (e.g. button) but can be overridden if needed, or when the icon is used standalone.
|
|
8
|
+
*/
|
|
9
|
+
--lmvz-icon-size: var(--lmvz-component-size, var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem)));
|
|
6
10
|
|
|
7
11
|
display: inline-block;
|
|
8
12
|
|
|
@@ -11,6 +15,8 @@
|
|
|
11
15
|
|
|
12
16
|
svg {
|
|
13
17
|
display: block;
|
|
18
|
+
height: var(--lmvz-icon-size);
|
|
19
|
+
width: auto;
|
|
14
20
|
}
|
|
15
21
|
|
|
16
22
|
svg path {
|
|
@@ -21,36 +27,31 @@
|
|
|
21
27
|
|
|
22
28
|
:host([size='xs']) {
|
|
23
29
|
svg {
|
|
24
|
-
|
|
25
|
-
height: var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem));
|
|
30
|
+
--lmvz-icon-size: var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem));
|
|
26
31
|
}
|
|
27
32
|
}
|
|
28
33
|
|
|
29
34
|
:host([size='sm']) {
|
|
30
35
|
svg {
|
|
31
|
-
|
|
32
|
-
height: var(--lmvz-component-icon-size-sm, clamp(0.88rem, 0.84rem + 0.13vw, 1rem));
|
|
36
|
+
--lmvz-icon-size: var(--lmvz-component-icon-size-sm, clamp(0.88rem, 0.84rem + 0.13vw, 1rem));
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
:host([size='md']) {
|
|
37
41
|
svg {
|
|
38
|
-
|
|
39
|
-
height: var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem));
|
|
42
|
+
--lmvz-icon-size: var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem));
|
|
40
43
|
}
|
|
41
44
|
}
|
|
42
45
|
|
|
43
46
|
:host([size='lg']) {
|
|
44
47
|
svg {
|
|
45
|
-
|
|
46
|
-
height: var(--lmvz-component-icon-size-lg, clamp(1.5rem, 1.44rem + 0.26vw, 1.75rem));
|
|
48
|
+
--lmvz-icon-size: var(--lmvz-component-icon-size-lg, clamp(1.5rem, 1.44rem + 0.26vw, 1.75rem));
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
:host([size='inherit']) {
|
|
51
53
|
svg {
|
|
52
|
-
|
|
53
|
-
height: inherit;
|
|
54
|
+
height: var(--lmvz-component-size, inherit);
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { isValidSVG } from "@lmvz-ds/lib-ts/validation/svg.js";
|
|
1
|
+
import { createValidSVGString, isValidSVG } from "@lmvz-ds/lib-ts/validation/svg.js";
|
|
2
2
|
import { Build, h, Host } from "@stencil/core";
|
|
3
|
+
import { Micro } from "effect";
|
|
3
4
|
import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
|
|
4
5
|
import { resolveIconSvg } from "../../utils/icons/icons";
|
|
5
6
|
import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
|
|
@@ -42,7 +43,7 @@ export class LmvzIcon extends ReactiveControllerHost {
|
|
|
42
43
|
return;
|
|
43
44
|
}
|
|
44
45
|
if (isValidSVG(icon)) {
|
|
45
|
-
this.iconData = icon;
|
|
46
|
+
this.iconData = await Micro.runPromise(createValidSVGString(icon));
|
|
46
47
|
return;
|
|
47
48
|
}
|
|
48
49
|
this.iconData = await resolveIconSvg({
|
|
@@ -56,7 +57,7 @@ export class LmvzIcon extends ReactiveControllerHost {
|
|
|
56
57
|
super.componentDidRender();
|
|
57
58
|
}
|
|
58
59
|
render() {
|
|
59
|
-
return h(Host, { key: '
|
|
60
|
+
return h(Host, { key: 'c1e952e00df287c66c49eb043408514c07c3dc39', role: "img", "aria-hidden": `${this.ariaHidden}`, innerHTML: this.iconData });
|
|
60
61
|
}
|
|
61
62
|
waitUntilVisible(callback, rootMargin = 50) {
|
|
62
63
|
if (!Build.isBrowser || typeof window === 'undefined' || !window.IntersectionObserver) {
|
|
@@ -111,7 +112,7 @@ export class LmvzIcon extends ReactiveControllerHost {
|
|
|
111
112
|
"optional": false,
|
|
112
113
|
"docs": {
|
|
113
114
|
"tags": [],
|
|
114
|
-
"text": "Required\n\nEither a valid name from a registered iconset, or the icon's SVG content (inline).\n\nWill be checked against the
|
|
115
|
+
"text": "Required\n\nEither a valid name from a registered iconset, or the icon's SVG content (inline).\n\nWill be checked against the chosen {@link iconset}."
|
|
115
116
|
},
|
|
116
117
|
"getter": false,
|
|
117
118
|
"setter": false,
|
|
@@ -184,7 +185,7 @@ export class LmvzIcon extends ReactiveControllerHost {
|
|
|
184
185
|
"optional": true,
|
|
185
186
|
"docs": {
|
|
186
187
|
"tags": [],
|
|
187
|
-
"text": "Optional custom icon iconset id. Must reference a registered custom iconset by its exported name."
|
|
188
|
+
"text": "Optional custom icon iconset id. Must reference a registered custom iconset by its exported name.\n\nWill try to resolve from the default iconset if not provided."
|
|
188
189
|
},
|
|
189
190
|
"getter": false,
|
|
190
191
|
"setter": false,
|
|
@@ -203,7 +204,7 @@ export class LmvzIcon extends ReactiveControllerHost {
|
|
|
203
204
|
"optional": true,
|
|
204
205
|
"docs": {
|
|
205
206
|
"tags": [],
|
|
206
|
-
"text": ""
|
|
207
|
+
"text": "Accessible name for assistive technology.\nLeave unset for decorative icons so the icon stays hidden from the accessibility tree."
|
|
207
208
|
},
|
|
208
209
|
"getter": false,
|
|
209
210
|
"setter": false,
|
|
@@ -150,9 +150,9 @@ export class LmvzInput extends ReactiveControllerHost {
|
|
|
150
150
|
render() {
|
|
151
151
|
const hasValue = Boolean(this.value);
|
|
152
152
|
const shouldFloatLabel = hasValue || Boolean(this.placeholder);
|
|
153
|
-
return (h("div", { key: '
|
|
153
|
+
return (h("div", { key: '22be29e5fcd4976fc6c4d125781be00acef0b359', class: classNames('input-container', {
|
|
154
154
|
'interaction-filled': hasValue,
|
|
155
|
-
}) }, h("div", { key: '
|
|
155
|
+
}) }, h("div", { key: 'ffeb620419316976e800b16b4a9fd9538f1efd26', class: "input-wrapper" }, h("slot", { key: '2a1a67f7fde0232b2bb5ce3cc228b869e5ac3516', name: "before-input" }), h("div", { key: '3bbe623cae67d376c60a28306164293a712b1bb5', class: "label-input-group" }, h("label", { key: 'c260b3eb249d5c785fe3b6e223c7428a8c147f50', htmlFor: this.inputId, class: classNames({ floating: shouldFloatLabel }) }, this.label, this.required && (h("span", { key: 'f43dd77efe7e319428dd72ec8933b7587635e767', class: "required-indicator", "aria-hidden": "true" }, ' ', "*"))), h("input", { key: 'eeb821a74a5ac7aab3fab65a48a37d21a22744e6', id: this.inputId, ref: (el) => (this.nativeInputElement = el), type: this.type, min: this.min, max: this.max, step: this.step, value: this.value, name: this.name, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, required: this.required, form: this.form, autocomplete: this.autocomplete, inputmode: this.inputmode, autocorrect: this.autocorrect, autocapitalize: this.autocapitalize, spellcheck: this.spellcheck, autofocus: this.autofocus, minlength: this.minlength, maxlength: this.maxlength, pattern: this.pattern, "aria-invalid": this.error ? 'true' : 'false', "aria-required": this.required ? 'true' : 'false', "aria-describedby": this.describedBy, "aria-errormessage": this.errorId, onInput: this.handleInput, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur })), h("slot", { key: 'dd36a212c05c43ab2a8249750c14a7475b6d65d3', name: "after-input" })), h("div", { key: 'c2aedd67036faf4d3dc459c3c1fab8d07ee5a991', id: this.helperId, role: "status" }, this.helperText || null), h("div", { key: '01d2a6d6df9b3804a595711c7b57b6177d311c39', id: this.errorId, role: "alert" }, (this.showErrorMessage && this.errorMessage) || null)));
|
|
156
156
|
}
|
|
157
157
|
static get is() { return "lmvz-input"; }
|
|
158
158
|
static get encapsulation() { return "scoped"; }
|
|
@@ -701,7 +701,7 @@ export class LmvzInput extends ReactiveControllerHost {
|
|
|
701
701
|
"composed": true,
|
|
702
702
|
"docs": {
|
|
703
703
|
"tags": [],
|
|
704
|
-
"text": ""
|
|
704
|
+
"text": "Emitted whenever the input value changes.\nEvent detail contains the current value."
|
|
705
705
|
},
|
|
706
706
|
"complexType": {
|
|
707
707
|
"original": "string",
|
|
@@ -729,7 +729,7 @@ export class LmvzInput extends ReactiveControllerHost {
|
|
|
729
729
|
"return": "Promise<void>"
|
|
730
730
|
},
|
|
731
731
|
"docs": {
|
|
732
|
-
"text": "",
|
|
732
|
+
"text": "Updates the value programmatically and emits `lmvzInput` with the new value.",
|
|
733
733
|
"tags": []
|
|
734
734
|
}
|
|
735
735
|
},
|
|
@@ -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: '0878343aec1c98c16c073c6cdd3382ee5c980799' }, h("slot", { key: 'f7a87d4c9d786bb4686d406d4313e9b5d79701d6', ref: (e) => (this.validationSlot = e) })));
|
|
25
25
|
}
|
|
26
26
|
static get is() { return "lmvz-menuitem"; }
|
|
27
27
|
static get encapsulation() { return "scoped"; }
|
|
@@ -48,8 +48,11 @@ export class LmvzMenuItem extends ReactiveControllerHost {
|
|
|
48
48
|
"required": false,
|
|
49
49
|
"optional": false,
|
|
50
50
|
"docs": {
|
|
51
|
-
"tags": [
|
|
52
|
-
|
|
51
|
+
"tags": [{
|
|
52
|
+
"name": "default",
|
|
53
|
+
"text": "'menuitem'"
|
|
54
|
+
}],
|
|
55
|
+
"text": "Accessibility role exposed by the host element."
|
|
53
56
|
},
|
|
54
57
|
"getter": true,
|
|
55
58
|
"setter": false,
|
|
@@ -68,8 +71,11 @@ export class LmvzMenuItem extends ReactiveControllerHost {
|
|
|
68
71
|
"required": false,
|
|
69
72
|
"optional": false,
|
|
70
73
|
"docs": {
|
|
71
|
-
"tags": [
|
|
72
|
-
|
|
74
|
+
"tags": [{
|
|
75
|
+
"name": "default",
|
|
76
|
+
"text": "0"
|
|
77
|
+
}],
|
|
78
|
+
"text": "Keeps the host focusable for keyboard navigation inside `lmvz-header`."
|
|
73
79
|
},
|
|
74
80
|
"getter": true,
|
|
75
81
|
"setter": false,
|
|
@@ -50,7 +50,7 @@ export class LmvzSelect extends ReactiveControllerHost {
|
|
|
50
50
|
render() {
|
|
51
51
|
const hasValue = this.hasValue;
|
|
52
52
|
const shouldShowLabel = hasValue;
|
|
53
|
-
return (h(Host, { key: '
|
|
53
|
+
return (h(Host, { key: 'b9f6211fec35e7c03cc9c462cb1f8eb60fc6c96c' }, h("div", { key: '43d22daa1492f87f89f9479687b82ee893f10faa', class: "select-wrapper" }, h("label", { key: 'cf399d80e31a345cea60286db4aea2d7dd7973d1', htmlFor: this.selectId, class: shouldShowLabel ? 'floating-label' : 'assistive-label' }, this.label, this.required && shouldShowLabel && h("span", { key: '6bdd8e0d652f126eb1c64c2a647ac0816cc61b05', "aria-hidden": "true" }, " *")), h("div", { key: '5d8497c64e197a71003a0c8e11149993fcefd684', "aria-hidden": "true" }, h("span", { key: '95b73705ad81d000ce415a377002e4ae4d63aae6' }, hasValue ? this.selectedLabel : this.label, this.required && !hasValue && h("span", { key: '2ff855f0fa89d3c66c59a176f855fdbf18ecb6c2', "aria-hidden": "true" }, " *")), h("span", { key: 'a66d4ec65c95b1463223c07aecb17d65a45c6b24' }, h("img", { key: '4cd21532ff13a3ecbd229cd79d0a3fa7b3eafc60', src: chevronDownSvg, alt: "" }))), h("select", { key: '2a9e46e29f8ef7d116989b58abfacee840dd2275', 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: '5c5fa4d5e3b120a0085f6fc408d20a56f6547441', value: "", disabled: true, selected: true, hidden: true }), h("slot", { key: 'e11909e901624af7d9d5275f2e9715007960eab9' }))), this.helperText && h("div", { key: 'fa0d06d3294f303081fd5ffb9aeaff6a8e297901', role: "status" }, this.helperText)));
|
|
54
54
|
}
|
|
55
55
|
static get is() { return "lmvz-select"; }
|
|
56
56
|
static get encapsulation() { return "scoped"; }
|
package/collection/index.js
CHANGED
|
@@ -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: 'c34834b520d3afa96808822af5e54f8b6f0bff93' }, h("lmvz-header", { key: '044a5a293052e2c850623e38a49a32ce6df599bf', lmvzActiveNav: this.activeNav }, h("lmvz-menuitem", { key: '37b0bf2ed85fd36bbf98e4701d03e5f0786d8989', slot: "nav-primary", id: "lehrmittel", onLmvzActivation: this.activate.bind(this) }, h("a", { key: '7c8d2de074662a27b72bea957c836fcc354ee1d9', href: "#" }, "Lehrmittel")), h("lmvz-menuitem", { key: '64f27e03234382ccc0cfa52b8e71537fb6f67bc3', slot: "nav-primary", id: "verwaltung", onLmvzActivation: this.activate.bind(this) }, h("a", { key: '5d4f53495f8ce7d10940598a0c97e767b857ec58', href: "#" }, "Verwaltung")), h("lmvz-menuitem", { key: 'f74f6e81fc894c0ff9882e32af9e6c01c388cb54', slot: "connect-nav-lehrmittel" }, h("lmvz-icon", { key: 'b4be5b1a26f47d6163811ad273bc1d556e2f5230', ...typedIconFromSet('lmvz', 'edit') }), "Deutsch 7"), h("lmvz-menuitem", { key: '376bc7fa9720ff23cf596c990ab611de9721b512', slot: "connect-nav-lehrmittel" }, h("lmvz-icon", { key: '4b74f0bc6c470d91193370b17bcc985bd530997c', ...typedIconFromSet('lmvz', 'edit') }), "Mathe 2"), h("lmvz-menuitem", { key: '3918a6354633b65e3fcad1fddca2e540a84356e3', slot: "connect-nav-verwaltung" }, h("lmvz-icon", { key: '9d2fdf3bf79a49c2c69447c37e1e0c324fbfaebe', ...typedIconFromSet('lmvz', 'settings') }), "iwas mit Verwaltung"), h("lmvz-menuitem", { key: '8724a35093a6e5e100b55355f5490e5aed510bb8', slot: "connect-nav-verwaltung", "aria-label": "Einstellungen" }, h("lmvz-icon", { key: 'cbf0ac1cd107415949b7f2e7ea9ee188211a3e80', ...typedIconFromSet('lmvz', 'settings') })), h("lmvz-button", { key: '68d6b62bdcae2250e9385663358b1c10a7a58afc', slot: "actions", "aria-label": "Benutzerkonto" }, h("lmvz-icon", { key: '38eb509264c242cad252f6bd633b48747c4c71ca', ...typedIconFromSet('lmvz', 'user'), size: "lg" })))));
|
|
24
24
|
}
|
|
25
25
|
static get is() { return "header-integration"; }
|
|
26
26
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ARIA_VALIDATION_RUNTIME_CHANGED_EVENT, enableAriaValidation, isAriaValidationEnabled, queueValidation, useVerboseLogging, } from "@lmvz-ds/aria-validation";
|
|
2
2
|
import { Build } from "@stencil/core";
|
|
3
|
+
export { isAriaValidationEnabled } from '@lmvz-ds/aria-validation';
|
|
3
4
|
if (Build.isDev && Build.isBrowser) {
|
|
4
5
|
enableAriaValidation();
|
|
5
6
|
}
|