@lmvz-ds/components 0.15.2 → 0.16.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/dist/cjs/app-globals-V2Kpy_OQ.js +3 -0
- package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -0
- package/dist/cjs/{assets-BnJmIx_h.js → assets-XY-cBmal.js} +5 -2
- package/dist/cjs/assets-XY-cBmal.js.map +1 -0
- package/dist/cjs/header-integration_7.cjs.entry.js +1024 -0
- package/dist/cjs/header-integration_7.cjs.entry.js.map +1 -0
- package/dist/cjs/{Effect-CpZhfb0D.js → icons-BOM23oli.js} +1010 -236
- package/dist/cjs/icons-BOM23oli.js.map +1 -0
- package/dist/cjs/{index-9ZJx0550.js → index-B1Puzu82.js} +11 -651
- package/dist/cjs/index-B1Puzu82.js.map +1 -0
- package/dist/cjs/{index-QRnWYctw.js → index-ww_DCXU7.js} +431 -426
- package/dist/cjs/index-ww_DCXU7.js.map +1 -0
- package/dist/cjs/index.cjs.js +13 -12
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/lmvz-action.cjs.entry.js +5 -2
- package/dist/cjs/lmvz-action.cjs.entry.js.map +1 -0
- package/dist/cjs/lmvz-card.cjs.entry.js +6 -3
- package/dist/cjs/lmvz-card.cjs.entry.js.map +1 -0
- package/dist/cjs/lmvz-chip.cjs.entry.js +5 -2
- package/dist/cjs/lmvz-chip.cjs.entry.js.map +1 -0
- package/dist/cjs/lmvz-components.cjs.js +6 -3
- package/dist/cjs/lmvz-components.cjs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +5 -2
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/collection/api/ds.constants.js +1 -0
- package/dist/collection/api/ds.constants.js.map +1 -0
- package/dist/collection/api/index.js +1 -0
- package/dist/collection/api/index.js.map +1 -0
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/lmvz-action/lmvz-action.js +2 -1
- package/dist/collection/components/lmvz-action/lmvz-action.js.map +1 -0
- package/dist/collection/components/lmvz-button/lmvz-button.js +3 -2
- package/dist/collection/components/lmvz-button/lmvz-button.js.map +1 -0
- package/dist/collection/components/lmvz-card/lmvz-card.js +4 -3
- package/dist/collection/components/lmvz-card/lmvz-card.js.map +1 -0
- package/dist/collection/components/lmvz-chip/lmvz-chip.js +3 -2
- package/dist/collection/components/lmvz-chip/lmvz-chip.js.map +1 -0
- package/dist/collection/components/lmvz-header/lmvz-header.js +13 -8
- package/dist/collection/components/lmvz-header/lmvz-header.js.map +1 -0
- package/dist/collection/components/lmvz-icon/icons.js +1 -0
- package/dist/collection/components/lmvz-icon/icons.js.map +1 -0
- package/dist/collection/components/lmvz-icon/lmvz-icon.js +8 -7
- package/dist/collection/components/lmvz-icon/lmvz-icon.js.map +1 -0
- package/dist/collection/components/lmvz-icon/public.js +1 -0
- package/dist/collection/components/lmvz-icon/public.js.map +1 -0
- package/dist/collection/components/lmvz-icon/test/icons.unit.js +1 -0
- package/dist/collection/components/lmvz-icon/test/icons.unit.js.map +1 -0
- package/dist/collection/components/lmvz-input/lmvz-input.js +32 -27
- package/dist/collection/components/lmvz-input/lmvz-input.js.map +1 -0
- package/dist/collection/components/lmvz-menuitem/lmvz-menuitem.js +5 -2
- package/dist/collection/components/lmvz-menuitem/lmvz-menuitem.js.map +1 -0
- package/dist/collection/components/lmvz-select/lmvz-select.css +1 -1
- package/dist/collection/components/lmvz-select/lmvz-select.js +5 -4
- package/dist/collection/components/lmvz-select/lmvz-select.js.map +1 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/integration/header-integration.js +4 -3
- package/dist/collection/integration/header-integration.js.map +1 -0
- package/dist/collection/utils/aria/aria-validation-controller.js +1 -0
- package/dist/collection/utils/aria/aria-validation-controller.js.map +1 -0
- package/dist/collection/utils/aria/element-activation-controller.js +1 -0
- package/dist/collection/utils/aria/element-activation-controller.js.map +1 -0
- package/dist/collection/utils/aria/list-keyboard-controller.js +7 -4
- package/dist/collection/utils/aria/list-keyboard-controller.js.map +1 -0
- package/dist/collection/utils/assets.js +1 -0
- package/dist/collection/utils/assets.js.map +1 -0
- package/dist/collection/utils/component.js +7 -4
- package/dist/collection/utils/component.js.map +1 -0
- package/dist/collection/utils/effect.js +1 -0
- package/dist/collection/utils/effect.js.map +1 -0
- package/dist/collection/utils/environment.js +1 -0
- package/dist/collection/utils/environment.js.map +1 -0
- package/dist/collection/utils/http.js +1 -0
- package/dist/collection/utils/http.js.map +1 -0
- package/dist/collection/utils/http.unit.js +1 -0
- package/dist/collection/utils/http.unit.js.map +1 -0
- package/dist/collection/utils/public.js +1 -0
- package/dist/collection/utils/public.js.map +1 -0
- package/dist/collection/utils/reactive-controller-host.js +1 -0
- package/dist/collection/utils/reactive-controller-host.js.map +1 -0
- package/dist/collection/utils/validation/svg.js +1 -0
- package/dist/collection/utils/validation/svg.js.map +1 -0
- package/dist/components/header-integration.d.ts +11 -0
- package/dist/components/header-integration.js +2 -0
- package/dist/components/header-integration.js.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +2 -1
- package/dist/components/index.js.map +1 -0
- package/dist/components/lmvz-action.js +2 -1
- package/dist/components/lmvz-action.js.map +1 -0
- package/dist/components/lmvz-button.js +2 -1
- package/dist/components/lmvz-button.js.map +1 -0
- package/dist/components/lmvz-card.js +2 -1
- package/dist/components/lmvz-card.js.map +1 -0
- package/dist/components/lmvz-chip.js +2 -1
- package/dist/components/lmvz-chip.js.map +1 -0
- package/dist/components/lmvz-header.js +2 -1
- package/dist/components/lmvz-header.js.map +1 -0
- package/dist/components/lmvz-icon.js +2 -1
- package/dist/components/lmvz-icon.js.map +1 -0
- package/dist/components/lmvz-input.js +2 -1
- package/dist/components/lmvz-input.js.map +1 -0
- package/dist/components/lmvz-menuitem.js +2 -1
- package/dist/components/lmvz-menuitem.js.map +1 -0
- package/dist/components/lmvz-select.js +2 -1
- package/dist/components/lmvz-select.js.map +1 -0
- package/dist/components/p-B2g3aN-E.js +2 -0
- package/dist/components/p-B2g3aN-E.js.map +1 -0
- package/dist/components/p-BXdOuZTp.js +2 -0
- package/dist/components/p-BXdOuZTp.js.map +1 -0
- package/dist/components/p-BfTCfPZ1.js +3 -2
- package/dist/components/p-BfTCfPZ1.js.map +1 -0
- package/dist/components/p-BpCjj39Z.js +2 -0
- package/dist/components/p-BpCjj39Z.js.map +1 -0
- package/dist/components/p-BsHYIl56.js +2 -0
- package/dist/components/p-BsHYIl56.js.map +1 -0
- package/dist/components/p-C5rqq3bf.js +2 -0
- package/dist/components/p-C5rqq3bf.js.map +1 -0
- package/dist/components/p-CI0tffvo.js +2 -0
- package/dist/components/p-CI0tffvo.js.map +1 -0
- package/dist/components/p-CN0JX9-m.js +2 -1
- package/dist/components/p-CN0JX9-m.js.map +1 -0
- package/dist/components/p-ClmDNIy4.js +2 -0
- package/dist/components/p-ClmDNIy4.js.map +1 -0
- package/dist/components/p-DQEkWkMh.js +2 -0
- package/dist/components/p-DQEkWkMh.js.map +1 -0
- package/dist/components/p-X5fEFT9T.js +2 -0
- package/dist/components/p-X5fEFT9T.js.map +1 -0
- package/dist/components/p-vIq2biqy.js +13 -0
- package/dist/components/p-vIq2biqy.js.map +1 -0
- package/dist/esm/app-globals-DQuL1Twl.js +3 -0
- package/dist/esm/app-globals-DQuL1Twl.js.map +1 -0
- package/dist/esm/{assets-CvV1KMMV.js → assets-BD98wsl7.js} +4 -1
- package/dist/esm/assets-BD98wsl7.js.map +1 -0
- package/dist/esm/header-integration_7.entry.js +1016 -0
- package/dist/esm/header-integration_7.entry.js.map +1 -0
- package/dist/esm/{Effect-DyamyJqO.js → icons-D1lxdRXP.js} +975 -174
- package/dist/esm/icons-D1lxdRXP.js.map +1 -0
- package/dist/esm/{index-CekEw3_K.js → index-DoNkkDv1.js} +6 -1
- package/dist/esm/index-DoNkkDv1.js.map +1 -0
- package/dist/esm/{index-smGPjoDX.js → index-WeqgWisK.js} +11 -651
- package/dist/esm/index-WeqgWisK.js.map +1 -0
- package/dist/esm/index.js +7 -5
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lmvz-action.entry.js +5 -2
- package/dist/esm/lmvz-action.entry.js.map +1 -0
- package/dist/esm/lmvz-card.entry.js +6 -3
- package/dist/esm/lmvz-card.entry.js.map +1 -0
- package/dist/esm/lmvz-chip.entry.js +5 -2
- package/dist/esm/lmvz-chip.entry.js.map +1 -0
- package/dist/esm/lmvz-components.js +7 -4
- package/dist/esm/lmvz-components.js.map +1 -0
- package/dist/esm/loader.js +6 -3
- package/dist/esm/loader.js.map +1 -0
- package/dist/ext-libs.d.ts +1 -0
- package/dist/lmvz-components/index.esm.js +2 -1
- package/dist/lmvz-components/index.esm.js.map +1 -0
- package/dist/lmvz-components/lmvz-components.esm.js +2 -1
- package/dist/lmvz-components/lmvz-components.esm.js.map +1 -0
- package/dist/lmvz-components/p-33485219.entry.js +2 -0
- package/dist/lmvz-components/p-33485219.entry.js.map +1 -0
- package/dist/lmvz-components/p-76032c32.entry.js +2 -0
- package/dist/lmvz-components/p-76032c32.entry.js.map +1 -0
- package/dist/lmvz-components/p-7aeec9a8.entry.js +7 -0
- package/dist/lmvz-components/p-7aeec9a8.entry.js.map +1 -0
- package/dist/lmvz-components/p-84e0a9dd.entry.js +2 -0
- package/dist/lmvz-components/p-84e0a9dd.entry.js.map +1 -0
- package/dist/lmvz-components/p-CkJb8WVZ.js +2 -0
- package/dist/lmvz-components/p-CkJb8WVZ.js.map +1 -0
- package/dist/lmvz-components/p-DQuL1Twl.js +2 -1
- package/dist/lmvz-components/p-DQuL1Twl.js.map +1 -0
- package/dist/lmvz-components/p-WeqgWisK.js +3 -0
- package/dist/lmvz-components/p-WeqgWisK.js.map +1 -0
- package/dist/lmvz-components/p-Z9X0_ik0.js +2 -0
- package/dist/lmvz-components/p-Z9X0_ik0.js.map +1 -0
- package/dist/lmvz-components/p-eP0oxQ44.js +13 -0
- package/dist/lmvz-components/p-eP0oxQ44.js.map +1 -0
- package/dist/manifest.json +196 -76
- package/dist/stencil.config.base.js +45 -0
- package/dist/stencil.config.base.js.map +1 -0
- package/dist/stencil.config.dev.js +22 -0
- package/dist/stencil.config.dev.js.map +1 -0
- package/dist/stencil.config.integration.js +27 -0
- package/dist/stencil.config.integration.js.map +1 -0
- package/dist/stencil.config.js +16 -0
- package/dist/stencil.config.js.map +1 -0
- package/dist/stencil.config.prod.js +30 -0
- package/dist/stencil.config.prod.js.map +1 -0
- package/dist/types/Users/patrick.nemenz/workspace/lmvz/lmvz-ds/packages/components/.stencil/stencil.config.base.d.ts +2 -0
- package/dist/types/Users/patrick.nemenz/workspace/lmvz/lmvz-ds/packages/components/.stencil/stencil.config.d.ts +2 -0
- package/dist/types/Users/patrick.nemenz/workspace/lmvz/lmvz-ds/packages/components/.stencil/stencil.config.dev.d.ts +2 -0
- package/dist/types/Users/patrick.nemenz/workspace/lmvz/lmvz-ds/packages/components/.stencil/stencil.config.integration.d.ts +2 -0
- package/dist/types/Users/patrick.nemenz/workspace/lmvz/lmvz-ds/packages/components/.stencil/stencil.config.prod.d.ts +2 -0
- package/dist/types/components/lmvz-action/lmvz-action.d.ts +1 -1
- package/dist/types/components/lmvz-button/lmvz-button.d.ts +2 -2
- package/dist/types/components/lmvz-card/lmvz-card.d.ts +1 -1
- package/dist/types/components/lmvz-header/lmvz-header.d.ts +3 -3
- package/dist/types/components/lmvz-icon/lmvz-icon.d.ts +4 -4
- package/dist/types/components/lmvz-input/lmvz-input.d.ts +3 -3
- package/dist/types/components/lmvz-menuitem/lmvz-menuitem.d.ts +3 -3
- package/dist/types/components/lmvz-select/lmvz-select.d.ts +1 -1
- package/dist/types/components.d.ts +21 -3
- package/dist/types/index.d.ts +1 -1
- package/dist/types/integration/header-integration.d.ts +5 -0
- package/dist/types/utils/aria/aria-validation-controller.d.ts +1 -1
- package/dist/types/utils/aria/element-activation-controller.d.ts +1 -1
- package/dist/types/utils/component.d.ts +2 -2
- package/dist/types/utils/http.d.ts +3 -3
- package/dist/types/utils/validation/svg.d.ts +1 -1
- package/hydrate/index.js +907 -440
- package/hydrate/index.mjs +907 -440
- package/package.json +33 -73
- package/readme.md +2 -2
- package/dist/cjs/aria-loader-B7b45RMv.js +0 -86
- package/dist/cjs/component-CRc6eHcV.js +0 -138
- package/dist/cjs/element-activation-controller-DC_6T0Rt.js +0 -31
- package/dist/cjs/icons-Brr4vqiE.js +0 -653
- package/dist/cjs/lmvz-button_3.cjs.entry.js +0 -399
- package/dist/cjs/lmvz-header.cjs.entry.js +0 -144
- package/dist/cjs/lmvz-icon.cjs.entry.js +0 -87
- package/dist/cjs/lmvz-menuitem.cjs.entry.js +0 -34
- package/dist/cjs/reactive-controller-host-Ai9l4S9S.js +0 -189
- package/dist/collection/utils/typing.js +0 -1
- package/dist/components/p-B3JVFwO1.js +0 -1
- package/dist/components/p-BaPwpeMs.js +0 -1
- package/dist/components/p-CSRpdnrt.js +0 -1
- package/dist/components/p-DK2hpvEW.js +0 -12
- package/dist/components/p-DR19QMDG.js +0 -1
- package/dist/components/p-DcMNH3fv.js +0 -1
- package/dist/esm/aria-loader-Ddn7Qz_6.js +0 -79
- package/dist/esm/component-DpoTUPzl.js +0 -132
- package/dist/esm/element-activation-controller-CN0JX9-m.js +0 -29
- package/dist/esm/icons-C69Um2xB.js +0 -649
- package/dist/esm/lmvz-button_3.entry.js +0 -395
- package/dist/esm/lmvz-header.entry.js +0 -142
- package/dist/esm/lmvz-icon.entry.js +0 -85
- package/dist/esm/lmvz-menuitem.entry.js +0 -32
- package/dist/esm/reactive-controller-host-CdAJ3t-B.js +0 -186
- package/dist/lmvz-components/p-70ca3319.entry.js +0 -1
- package/dist/lmvz-components/p-73648317.entry.js +0 -1
- package/dist/lmvz-components/p-8ed959da.entry.js +0 -1
- package/dist/lmvz-components/p-9526c364.entry.js +0 -1
- package/dist/lmvz-components/p-9faac8f3.entry.js +0 -1
- package/dist/lmvz-components/p-B7KSylv_.js +0 -1
- package/dist/lmvz-components/p-BEoSvNlI.js +0 -1
- package/dist/lmvz-components/p-CN0JX9-m.js +0 -1
- package/dist/lmvz-components/p-D7GrtdQF.js +0 -1
- package/dist/lmvz-components/p-D7RHrBYK.js +0 -1
- package/dist/lmvz-components/p-DpoTUPzl.js +0 -1
- package/dist/lmvz-components/p-DyamyJqO.js +0 -1
- package/dist/lmvz-components/p-cM67HC0Z.js +0 -12
- package/dist/lmvz-components/p-d4b68381.entry.js +0 -1
- package/dist/lmvz-components/p-ea1a9d4a.entry.js +0 -6
- package/dist/lmvz-components/p-smGPjoDX.js +0 -2
- package/dist/types/utils/typing.d.ts +0 -3
|
@@ -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: '7d1abb943f79e90451b43c9221801b80a2f61346' }, h("div", { key: 'ded3e45246ab38e89d444c59239cdc63a2c4d4fc', class: "select-wrapper" }, h("label", { key: 'cb68ff79976c2fb55d4cc827f9e90ba2597a8a43', htmlFor: this.selectId, class: shouldShowLabel ? 'floating-label' : 'assistive-label' }, this.label, this.required && shouldShowLabel && h("span", { key: 'ab77eaea1645b95d90f00ffb609bbd7a1704f7bc', "aria-hidden": "true" }, " *")), h("div", { key: '45cee00478a6cc31c10dddf69d8e6687fc8f440d', "aria-hidden": "true" }, h("span", { key: '0c5d425ea8843234aa6abd94a207377e2a675686' }, hasValue ? this.selectedLabel : this.label, this.required && !hasValue && h("span", { key: 'ebef5322371ee0253b50dd801b80cbb6402c067a', "aria-hidden": "true" }, " *")), h("span", { key: 'a12d31dc29563444f728133f181b48914d31705b' }, h("img", { key: 'dd3f175d1ca2b9ccc6c2bfa2075e5da62016a896', src: chevronDownSvg, alt: "" }))), h("select", { key: 'a196f3b824177d1b45971c38341bf6a2939dda82', 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: '536cc559def0e9ffa4b2150693ece9a597c238d1', value: "", disabled: true, selected: true, hidden: true }), h("slot", { key: 'ad9fed96b9f8c1d8257511bb1d5ab5ee756973ce' }))), this.helperText && h("div", { key: '4723b44d781c900be5aae7ece2a0be04b6c744b9', role: "status" }, this.helperText)));
|
|
54
54
|
}
|
|
55
55
|
static get is() { return "lmvz-select"; }
|
|
56
56
|
static get encapsulation() { return "scoped"; }
|
|
@@ -71,7 +71,7 @@ export class LmvzSelect extends ReactiveControllerHost {
|
|
|
71
71
|
"mutable": true,
|
|
72
72
|
"complexType": {
|
|
73
73
|
"original": "string",
|
|
74
|
-
"resolved": "string",
|
|
74
|
+
"resolved": "string | undefined",
|
|
75
75
|
"references": {}
|
|
76
76
|
},
|
|
77
77
|
"required": false,
|
|
@@ -109,7 +109,7 @@ export class LmvzSelect extends ReactiveControllerHost {
|
|
|
109
109
|
"mutable": false,
|
|
110
110
|
"complexType": {
|
|
111
111
|
"original": "string",
|
|
112
|
-
"resolved": "string",
|
|
112
|
+
"resolved": "string | undefined",
|
|
113
113
|
"references": {}
|
|
114
114
|
},
|
|
115
115
|
"required": false,
|
|
@@ -174,7 +174,7 @@ export class LmvzSelect extends ReactiveControllerHost {
|
|
|
174
174
|
"mutable": false,
|
|
175
175
|
"complexType": {
|
|
176
176
|
"original": "string",
|
|
177
|
-
"resolved": "string",
|
|
177
|
+
"resolved": "string | undefined",
|
|
178
178
|
"references": {}
|
|
179
179
|
},
|
|
180
180
|
"required": false,
|
|
@@ -221,3 +221,4 @@ export class LmvzSelect extends ReactiveControllerHost {
|
|
|
221
221
|
}];
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
|
+
//# sourceMappingURL=lmvz-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lmvz-select.js","sourceRoot":"","sources":["../../../../src/components/lmvz-select/lmvz-select.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, type EventEmitter, h, Host, Prop, State, Watch } from '@stencil/core';\nimport chevronDownSvg from '../../assets/icons/chevron-down.svg';\nimport { AriaValidationController, type AriaValidationHost } from '../../utils/aria/aria-validation-controller';\nimport { ReactiveControllerHost } from '../../utils/reactive-controller-host';\n\nlet selectIdCounter = 0;\n\n/**\n * Select component with floating label and pill-shaped trigger.\n * Wraps a native `<select>` element for full keyboard and form support.\n *\n * @example\n * ```html\n * <lmvz-select label=\"Country\" name=\"country\">\n * <option value=\"ch\">Switzerland</option>\n * <option value=\"de\">Germany</option>\n * <option value=\"at\">Austria</option>\n * </lmvz-select>\n * ```\n *\n * @example\n * ```typescript\n * const select = document.querySelector('lmvz-select');\n * select.addEventListener('lmvzChange', (e) => console.log(e.detail));\n * ```\n *\n * @slot default - Native `<option>` or `<optgroup>` elements.\n */\n@Component({\n tag: 'lmvz-select',\n styleUrl: './lmvz-select.css',\n scoped: true,\n})\nexport class LmvzSelect extends ReactiveControllerHost implements AriaValidationHost {\n @Element() readonly el!: HTMLElement;\n get validationEl() {\n return this.el;\n }\n\n private selectId = `lmvz-select-${selectIdCounter++}`;\n private nativeSelectEl?: HTMLSelectElement;\n\n constructor() {\n super();\n this.addController(new AriaValidationController(this));\n }\n\n /**\n * Emitted when the user selects a new option. Detail contains the new value.\n */\n @Event() lmvzChange!: EventEmitter<string>;\n\n /**\n * Currently selected value.\n */\n @Prop({ mutable: true }) value?: string;\n\n /**\n * Label text displayed as a placeholder when no value is selected,\n * and floated above the trigger when a value is present.\n */\n @Prop() label!: string;\n\n /**\n * Helper text displayed below the select field.\n */\n @Prop() helperText?: string;\n\n /**\n * Whether the select is disabled.\n * @default false\n */\n @Prop({ reflect: true }) disabled = false;\n\n /**\n * Whether a value is required.\n * @default false\n */\n @Prop({ reflect: true }) required = false;\n\n /**\n * Name attribute passed to the native select for form submission.\n */\n @Prop() name?: string;\n\n @State() private selectedLabel = '';\n\n private get hasValue() {\n return Boolean(this.value);\n }\n\n override componentDidLoad() {\n this.syncSelectedLabel();\n super.componentDidLoad();\n }\n\n @Watch('value')\n protected handleValueChange(newValue: string | undefined) {\n if (this.nativeSelectEl && this.nativeSelectEl.value !== (newValue ?? '')) {\n this.nativeSelectEl.value = newValue ?? '';\n }\n this.syncSelectedLabel();\n }\n\n private syncSelectedLabel() {\n if (!this.nativeSelectEl) return;\n const idx = this.nativeSelectEl.selectedIndex;\n this.selectedLabel = idx >= 0 ? (this.nativeSelectEl.options[idx]?.text ?? '') : '';\n }\n\n private handleChange = (event: Event) => {\n const select = event.target as HTMLSelectElement;\n this.value = select.value;\n this.syncSelectedLabel();\n this.lmvzChange.emit(select.value);\n };\n\n render() {\n const hasValue = this.hasValue;\n const shouldShowLabel = hasValue;\n\n return (\n <Host>\n <div class=\"select-wrapper\">\n <label htmlFor={this.selectId} class={shouldShowLabel ? 'floating-label' : 'assistive-label'}>\n {this.label}\n {this.required && shouldShowLabel && <span aria-hidden=\"true\"> *</span>}\n </label>\n\n <div aria-hidden=\"true\">\n <span>\n {hasValue ? this.selectedLabel : this.label}\n {this.required && !hasValue && <span aria-hidden=\"true\"> *</span>}\n </span>\n <span>\n <img src={chevronDownSvg} alt=\"\" />\n </span>\n </div>\n\n <select\n id={this.selectId}\n ref={(el) => (this.nativeSelectEl = el)}\n name={this.name}\n disabled={this.disabled}\n required={this.required}\n aria-label={this.label}\n onChange={this.handleChange}\n >\n {!hasValue && <option value=\"\" disabled selected hidden></option>}\n <slot />\n </select>\n </div>\n\n {this.helperText && <div role=\"status\">{this.helperText}</div>}\n </Host>\n );\n }\n}\n"]}
|
package/dist/collection/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAUA,cAAc,0BAA0B,CAAC;AAGzC,cAAc,OAAO,CAAC;AAItB,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC","sourcesContent":["/**\n * @fileoverview entry point for your component library\n *\n * This is the entry point for your component library. Use this file to export utilities,\n * constants or data structure that accompany your components.\n *\n * DO NOT use this file to export your components. Instead, use the recommended approaches\n * to consume components of this package as outlined in the `README.md`.\n */\n\nexport * from '@lmvz-ds/aria-validation';\nexport type * from './components.d.ts';\n\nexport * from './api';\n// the following are _currently_ not implicitly exported by Stencil, but we want to export them for better DX in Storybook stories and tests\nexport type { LmvzDS, Typography } from './api';\n\nexport * from './components/lmvz-icon/public';\nexport * from './utils/public';\n"]}
|
|
@@ -15,7 +15,7 @@ export class HeaderIntegration {
|
|
|
15
15
|
this.activeNav = navId;
|
|
16
16
|
}
|
|
17
17
|
render() {
|
|
18
|
-
return (h(Host, { key: '
|
|
18
|
+
return (h(Host, { key: 'c70b22cccc010b6a18ec6003e31b9fb905cd669e' }, h("lmvz-header", { key: 'bf4f3a9c603dcfeee519dc1e78d8e9cd6e836f98', lmvzActiveNav: this.activeNav }, h("lmvz-menuitem", { key: '64f3b9e2a6d5bb7feab15169d0de61e64a4002f1', slot: "nav-primary", id: "lehrmittel", onLmvzActivation: this.activate.bind(this) }, h("a", { key: '2af5799904621d8b48640694a16f3858b0a5ccf9', href: "#" }, "Lehrmittel")), h("lmvz-menuitem", { key: '54ed8090f68463bea9a18b290b1a1e707259119f', slot: "nav-primary", id: "verwaltung", onLmvzActivation: this.activate.bind(this) }, h("a", { key: '98b8d121e0fca6b0630bc664cbfeb9307ce5b7e5', href: "#" }, "Verwaltung")), h("lmvz-menuitem", { key: 'c656b1a95940f1e14cf905a20c4679e92ca456ee', slot: "connect-nav-lehrmittel" }, h("lmvz-icon", { key: 'd9d16fe6d1d0ac183724881f7f1b41ce04f3c607', icon: "book" }), "Deutsch 7"), h("lmvz-menuitem", { key: '7aaf7887accf7fc388fe425718bdf2f703686f98', slot: "connect-nav-lehrmittel" }, h("lmvz-icon", { key: 'e2791405657a2de9527057f6c6767260cd9d21af', icon: "book" }), "Mathe 2"), h("lmvz-menuitem", { key: 'c99fd516f891ae6bd6a76c92e504cf17ec3c0820', slot: "connect-nav-verwaltung" }, h("lmvz-icon", { key: '78d9563d8c9a78f6b7bee0ad79ac0c51d8575790', icon: "cog" }), "iwas mit Verwaltung"), h("lmvz-menuitem", { key: '225f8207ee869d5e37bb9d6dbd7881a6fe636637', slot: "connect-nav-verwaltung", "aria-label": "Einstellungen" }, h("lmvz-icon", { key: '0d89fcb8bfbb3918ff14d783cfc087c658df151a', icon: "cog" })), h("lmvz-button", { key: '2637addd2ee7158087d6ab50808e6f900acabbf2', slot: "actions", "aria-label": "Benutzerkonto" }, h("lmvz-icon", { key: 'c927e171d6f29474f18e2c222fff50c4947a0b3b', icon: "user" })))));
|
|
19
19
|
}
|
|
20
20
|
static get is() { return "header-integration"; }
|
|
21
21
|
static get encapsulation() { return "shadow"; }
|
|
@@ -27,11 +27,11 @@ export class HeaderIntegration {
|
|
|
27
27
|
"mutable": true,
|
|
28
28
|
"complexType": {
|
|
29
29
|
"original": "string",
|
|
30
|
-
"resolved": "string",
|
|
30
|
+
"resolved": "string | undefined",
|
|
31
31
|
"references": {}
|
|
32
32
|
},
|
|
33
33
|
"required": false,
|
|
34
|
-
"optional":
|
|
34
|
+
"optional": true,
|
|
35
35
|
"docs": {
|
|
36
36
|
"tags": [],
|
|
37
37
|
"text": ""
|
|
@@ -44,3 +44,4 @@ export class HeaderIntegration {
|
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
+
//# sourceMappingURL=header-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-integration.js","sourceRoot":"","sources":["../../../src/integration/header-integration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAWzD,MAAM,OAAO,iBAAiB;IACH,SAAS,CAAU;IAEpC,QAAQ,CAAC,KAAwB;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,aAAsC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAuB,CAAC;QAC7E,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,oEAAa,aAAa,EAAE,IAAI,CAAC,SAAS;gBAExC,sEAAe,IAAI,EAAC,aAAa,EAAC,EAAE,EAAC,YAAY,EAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC1F,0DAAG,IAAI,EAAC,GAAG,iBAAe,CACZ;gBAChB,sEAAe,IAAI,EAAC,aAAa,EAAC,EAAE,EAAC,YAAY,EAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC1F,0DAAG,IAAI,EAAC,GAAG,iBAAe,CACZ;gBAChB,sEAAe,IAAI,EAAC,wBAAwB;oBAC1C,kEAAW,IAAI,EAAC,MAAM,GAAa;gCACrB;gBAChB,sEAAe,IAAI,EAAC,wBAAwB;oBAC1C,kEAAW,IAAI,EAAC,MAAM,GAAa;8BACrB;gBAChB,sEAAe,IAAI,EAAC,wBAAwB;oBAC1C,kEAAW,IAAI,EAAC,KAAK,GAAa;0CACpB;gBAChB,sEAAe,IAAI,EAAC,wBAAwB,gBAAY,eAAe;oBACrE,kEAAW,IAAI,EAAC,KAAK,GAAa,CACpB;gBAEhB,oEAAa,IAAI,EAAC,SAAS,gBAAY,eAAe;oBACpD,kEAAW,IAAI,EAAC,MAAM,GAAa,CACvB,CACF,CACT,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'header-integration',\n styles: `\n .active button {\n background-color: var(--lmvz-semantic-color-status-selected);\n }\n `,\n shadow: true,\n})\nexport class HeaderIntegration {\n @Prop({ mutable: true }) activeNav?: string;\n\n private activate(event: CustomEvent<void>) {\n const target = event.currentTarget as HTMLLmvzButtonElement;\n const navItem = target.closest('[slot=\"nav-primary\"]') as HTMLElement | null;\n if (!navItem) return;\n\n const navId = navItem.id;\n if (!navId) {\n console.warn('Nav item does not have an id:', navItem);\n return;\n }\n\n console.log('Activating nav item:', navId);\n this.activeNav = navId;\n }\n\n render() {\n return (\n <Host>\n <lmvz-header lmvzActiveNav={this.activeNav}>\n {/* <lmvz-icon icon=\"Logo\" slot=\"brand\" aria-hidden></lmvz-icon> */}\n <lmvz-menuitem slot=\"nav-primary\" id=\"lehrmittel\" onLmvzActivation={this.activate.bind(this)}>\n <a href=\"#\">Lehrmittel</a>\n </lmvz-menuitem>\n <lmvz-menuitem slot=\"nav-primary\" id=\"verwaltung\" onLmvzActivation={this.activate.bind(this)}>\n <a href=\"#\">Verwaltung</a>\n </lmvz-menuitem>\n <lmvz-menuitem slot=\"connect-nav-lehrmittel\">\n <lmvz-icon icon=\"book\"></lmvz-icon>Deutsch 7\n </lmvz-menuitem>\n <lmvz-menuitem slot=\"connect-nav-lehrmittel\">\n <lmvz-icon icon=\"book\"></lmvz-icon>Mathe 2\n </lmvz-menuitem>\n <lmvz-menuitem slot=\"connect-nav-verwaltung\">\n <lmvz-icon icon=\"cog\"></lmvz-icon>iwas mit Verwaltung\n </lmvz-menuitem>\n <lmvz-menuitem slot=\"connect-nav-verwaltung\" aria-label=\"Einstellungen\">\n <lmvz-icon icon=\"cog\"></lmvz-icon>\n </lmvz-menuitem>\n\n <lmvz-button slot=\"actions\" aria-label=\"Benutzerkonto\">\n <lmvz-icon icon=\"user\"></lmvz-icon>\n </lmvz-button>\n </lmvz-header>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aria-validation-controller.js","sourceRoot":"","sources":["../../../../src/utils/aria/aria-validation-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ARIA_VALIDATION_RUNTIME_CHANGED_EVENT,\n enableAriaValidation,\n isAriaValidationEnabled,\n queueValidation,\n UnlabelledFrameSelector,\n useVerboseLogging,\n} from '@lmvz-ds/aria-validation';\nimport { Build } from '@stencil/core';\nimport type { ReactiveController } from '../reactive-controller-host';\n\nexport type AriaValidationHost<T extends HTMLElement = HTMLElement> = {\n validationEl: T | undefined; // might by undefined due to timing (e.g. if the element is rendered conditionally), so the controller should handle this case\n validationSlot?: HTMLSlotElement;\n};\n\ntype Config = {\n reValidateOnPropChanges?: boolean;\n verboseLogging?: boolean;\n validationTiming?: 'load' | 'slot';\n};\n\nif (Build.isDev) {\n enableAriaValidation();\n}\n\n/**\n * A controller that performs ARIA validation on the host component and its children once the component is visible.\n *\n * The host class must provide a member `el`, using stencil's @Element() decorator.\n * The controller will run axe-core validation on this element and log any ARIA violations to the console,\n * at the appropriate lifecycle points. Though the controller makes some effort to anticipate the correct validation timing,\n * it may be necessary to adjust the timing based on the specific use case, using the `validationTiming` config option.\n *\n * This is a basic implementation that allows for further enhancements, such as:\n * - different timings: on load, on demand, on attribute change, etc.\n * - context-based, stateful optimization (such as only validating children that are relevant for the host's ARIA role)\n */\nexport class AriaValidationController implements ReactiveController {\n private visibilityObserver?: IntersectionObserver;\n private elementQueued = false;\n private elementValidated = false;\n private elementLoaded = false;\n private static knownValidationErrors: UnlabelledFrameSelector[] = [];\n\n get disabled() {\n return !isAriaValidationEnabled();\n }\n\n private get useVerboseLogging() {\n return this.config?.verboseLogging || Build.isDev || useVerboseLogging();\n }\n\n constructor(\n private readonly host: AriaValidationHost,\n private readonly config?: Config,\n ) {}\n\n private readonly onRuntimeConfigChange = () => {\n if (!isAriaValidationEnabled()) return;\n\n this.checkLazyValidation();\n };\n\n hostDidLoad() {\n this.elementLoaded = true;\n if (typeof window !== 'undefined') {\n window.addEventListener(ARIA_VALIDATION_RUNTIME_CHANGED_EVENT, this.onRuntimeConfigChange);\n }\n\n if (this.elementQueued || this.elementValidated) return;\n\n if (this.config?.validationTiming === 'slot') {\n this.observeSlot();\n return;\n }\n\n if (!this.host.validationEl?.checkVisibility() || this.config?.validationTiming !== 'load') {\n this.observeVisibilityOnce();\n return;\n }\n\n this.enqueueValidation();\n }\n\n hostDidUpdate() {\n this.checkLazyValidation();\n }\n\n hostDisconnected() {\n this.discardVisibilityObserver();\n if (typeof window !== 'undefined') {\n window.removeEventListener(ARIA_VALIDATION_RUNTIME_CHANGED_EVENT, this.onRuntimeConfigChange);\n }\n }\n\n revalidateAria() {\n this.enqueueValidation();\n }\n\n private observeSlot() {\n this.host.validationSlot?.addEventListener('slotchange', this.enqueueValidation.bind(this));\n }\n\n private observeVisibilityOnce() {\n window.setTimeout(() => {\n if (!this.host.validationEl) return;\n\n this.visibilityObserver = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.target !== this.host.validationEl) continue;\n if (!entry.isIntersecting) continue;\n\n this.checkLazyValidation();\n\n // stop observing once the element is visible and validation is triggered\n this.discardVisibilityObserver();\n }\n },\n {\n root: this.host.validationEl?.parentElement,\n rootMargin: '0px',\n threshold: 0.01, // 1% visible is enough to count as visible\n },\n );\n this.visibilityObserver.observe(this.host.validationEl);\n });\n }\n\n private checkLazyValidation() {\n if (!this.elementLoaded) return;\n\n if (!this.config?.reValidateOnPropChanges && (this.elementQueued || this.elementValidated)) return;\n\n if (!this.host.validationEl?.checkVisibility()) return;\n\n this.enqueueValidation();\n }\n\n private enqueueValidation() {\n if (!isAriaValidationEnabled()) return;\n\n this.elementQueued = true;\n\n queueValidation({\n context: { include: this.host.validationEl, exclude: AriaValidationController.knownValidationErrors },\n onComplete: (error, results) => {\n this.elementValidated = true;\n const elementName = (this.host as unknown as HTMLElement).tagName || this.host.validationEl?.tagName || 'Element';\n\n if (error) {\n console.error('Error running ARIA validation:', error, elementName);\n if (!this.host.validationEl?.tagName) {\n console.dir(this.host);\n }\n return;\n }\n\n const message = [elementName];\n\n if (!results?.violations.length) {\n if (this.useVerboseLogging) {\n console.log(...message, 'has no ARIA violations');\n if (!this.host.validationEl?.tagName) {\n console.dir(this.host);\n }\n }\n return;\n }\n\n const count = results.violations.length;\n const label = [...message, results.violations.at(0)!.id, count > 1 ? `(+${count - 1} more)` : ''].filter(Boolean).join(' ');\n if (this.useVerboseLogging) {\n console.group(label);\n } else {\n console.groupCollapsed(label);\n }\n const targets = results.violations.flatMap((violation) => {\n console.dir(violation, { showHidden: true, compact: false });\n return violation.nodes.map((node) => node.target);\n });\n if (this.host.validationEl) {\n console.log('element:', this.host.validationEl);\n } else {\n console.dir(this.host);\n }\n console.groupEnd();\n\n AriaValidationController.knownValidationErrors.push(...targets);\n },\n });\n }\n\n private discardVisibilityObserver() {\n if (!this.visibilityObserver) return;\n this.visibilityObserver.disconnect();\n this.visibilityObserver = undefined;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element-activation-controller.js","sourceRoot":"","sources":["../../../../src/utils/aria/element-activation-controller.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,2BAA2B;IAE5B;IACA;IAFV,YACU,IAA2B,EAC3B,MAAe;QADf,SAAI,GAAJ,IAAI,CAAuB;QAC3B,WAAM,GAAN,MAAM,CAAS;IACtB,CAAC;IAEJ,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,yDAAyD,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEO,aAAa,GAAG,CAAC,KAAoB,EAAE,EAAE;QAE/C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAE9D,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;IAEM,gBAAgB,GAAG,CAAC,KAAY,EAAE,EAAE;QAC1C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;CACH","sourcesContent":["import type { EventEmitter } from '@stencil/core';\nimport type { ReactiveController } from '../reactive-controller-host';\n\nexport type ElementActivationHost = {\n el: HTMLElement;\n lmvzActivation: EventEmitter<void>;\n};\n\ntype Config = {\n localHandler?: (event: Event) => unknown;\n keys?: string[];\n};\n\nexport class ElementActivationController implements ReactiveController {\n constructor(\n private host: ElementActivationHost,\n private config?: Config,\n ) {}\n\n hostDidLoad() {\n if (!this.host.el.hasAttribute('tabindex')) {\n console.warn('Interactive element does not have a tabindex attribute!', this.host.el);\n }\n this.host.el.addEventListener('keydown', this.handleKeyDown.bind(this));\n this.host.el.addEventListener('click', this.handleActivation.bind(this));\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n // Activate on Enter or Space key press\n if ((this.config?.keys ?? ['Enter', ' ']).includes(event.key)) {\n // Prevent default scrolling behavior for Space key\n event.preventDefault();\n this.handleActivation(event);\n }\n };\n\n private handleActivation = (event: Event) => {\n this.host.lmvzActivation.emit();\n if (this.config?.localHandler) {\n this.config.localHandler(event);\n }\n };\n}\n"]}
|
|
@@ -23,22 +23,25 @@ export class ListKeyboardNavigationController {
|
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
25
|
getNextFocusableElement(current, direction) {
|
|
26
|
+
if (!current)
|
|
27
|
+
return undefined;
|
|
26
28
|
const { elements } = this;
|
|
27
29
|
const currentIndex = elements.indexOf(current);
|
|
28
30
|
if (currentIndex === -1)
|
|
29
|
-
return
|
|
30
|
-
let nextIndex =
|
|
31
|
+
return undefined;
|
|
32
|
+
let nextIndex = undefined;
|
|
31
33
|
if (direction === 'down') {
|
|
32
34
|
nextIndex = (currentIndex + 1) % elements.length;
|
|
33
35
|
}
|
|
34
36
|
else if (direction === 'up') {
|
|
35
37
|
nextIndex = (currentIndex - 1 + elements.length) % elements.length;
|
|
36
38
|
}
|
|
37
|
-
if (nextIndex ==
|
|
38
|
-
return
|
|
39
|
+
if (nextIndex == undefined)
|
|
40
|
+
return undefined;
|
|
39
41
|
const candidate = elements[nextIndex];
|
|
40
42
|
if (!canReceiveFocus(candidate))
|
|
41
43
|
return this.getNextFocusableElement(candidate, direction);
|
|
42
44
|
return candidate;
|
|
43
45
|
}
|
|
44
46
|
}
|
|
47
|
+
//# sourceMappingURL=list-keyboard-controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-keyboard-controller.js","sourceRoot":"","sources":["../../../../src/utils/aria/list-keyboard-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AASrE,MAAM,OAAO,gCAAgC;IAIxB;IAHX,QAAQ,GAAc,EAAE,CAAC;IAEjC,YACmB,IAAgC;QAAhC,SAAI,GAAJ,IAAI,CAA4B;IAEhD,CAAC;IAEJ,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/D,CAAC;IAED,cAAc,CAAC,QAAmB;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEO,aAAa,GAAG,CAAC,KAAoB,EAAE,EAAE;QAC/C,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO;QAE/E,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3H,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,CAAC,cAAc,EAAE,CAAC;YACtB,WAA2B,CAAC,KAAK,EAAE,EAAE,CAAC;QACzC,CAAC;IACH,CAAC,CAAC;IAEM,uBAAuB,CAAC,OAAmC,EAAE,SAAwB;QAC3F,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,YAAY,KAAK,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QAE1C,IAAI,SAAS,GAAuB,SAAS,CAAC;QAC9C,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,SAAS,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;QACnD,CAAC;aAAM,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC9B,SAAS,GAAG,CAAC,YAAY,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;QACrE,CAAC;QAED,IAAI,SAAS,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;QAE7C,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAE3F,OAAO,SAAS,CAAC;IACnB,CAAC;CACF","sourcesContent":["import { canReceiveFocus, getDeepActiveElement } from '../component';\nimport type { ReactiveController } from '../reactive-controller-host';\n\nexport type ListKeyboardNavigationHost = {\n el: HTMLElement;\n};\n\n// type Config = {};\n\nexport class ListKeyboardNavigationController implements ReactiveController {\n private elements: Element[] = [];\n\n constructor(\n private readonly host: ListKeyboardNavigationHost,\n // private readonly config?: Config,\n ) {}\n\n hostDidRender() {\n this.host.el.addEventListener('keydown', this.handleKeydown);\n }\n\n updateElements(elements: Element[]) {\n this.elements = elements;\n }\n\n private handleKeydown = (event: KeyboardEvent) => {\n const { key } = event;\n if (!['ArrowDown', 'ArrowRight', 'ArrowUp', 'ArrowLeft'].includes(key)) return;\n\n const activeElement = getDeepActiveElement(document);\n const nextElement = this.getNextFocusableElement(activeElement, ['ArrowDown', 'ArrowRight'].includes(key) ? 'down' : 'up');\n if (nextElement) {\n event.preventDefault();\n (nextElement as HTMLElement).focus?.();\n }\n };\n\n private getNextFocusableElement(current: Element | undefined | null, direction: 'down' | 'up'): Element | undefined {\n if (!current) return undefined;\n const { elements } = this;\n const currentIndex = elements.indexOf(current);\n if (currentIndex === -1) return undefined;\n\n let nextIndex: number | undefined = undefined;\n if (direction === 'down') {\n nextIndex = (currentIndex + 1) % elements.length;\n } else if (direction === 'up') {\n nextIndex = (currentIndex - 1 + elements.length) % elements.length;\n }\n\n if (nextIndex == undefined) return undefined;\n\n const candidate = elements[nextIndex];\n if (!canReceiveFocus(candidate)) return this.getNextFocusableElement(candidate, direction);\n\n return candidate;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/utils/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAU1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,iBAAsC,EAAE,EAAE;IAG3F,MAAM,iBAAiB,GAAG,QAAQ,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAChF,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,mCAAmC,IAAI,cAAc,iBAAiB;oMAC6G,CAAC,CAAC;QAClM,OAAO,IAAI,GAAG,CAAC,iBAAiB,EAAE,eAAe,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC;AAEF,SAAS,QAAQ,CAAC,GAAG,KAA6B;IAChD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAChF,CAAC","sourcesContent":["import { getAssetPath } from '@stencil/core';\nimport { getLocationBase } from './environment';\n\nconst relativeAssetsPath = '../../assets';\n\n/**\n * Attempts to create an asset URL using Stencil's `getAssetPath` utility, and falls back to a default URL if that fails (e.g. because the app using the library hasn't configured the asset path correctly).\n * This is a workaround for Stencil's behavior of throwing an error when `getAssetPath` is called without a valid asset path configuration, which can happen in certain environments like Storybook.\n *\n * @param file - The filename of the asset to create a URL for, relative to the configured asset path.\n * @param pathFromAssetRoot - The path from the asset root to the asset directory (e.g. 'icons' for assets located at <pkg-root>/assets/icons/).\n * @returns A string URL for the asset, or a fallback URL if the creation fails.\n */\nexport const createAssetUrlSafely = (file: string, pathFromAssetRoot?: string | undefined) => {\n // * dist output target expects assets to be located at <pkg-root>/assets/...\n // * this base path is used in components' assetDirs declaration, but with the relative ../../assets/\n const relativeAssetPath = joinPath(relativeAssetsPath, pathFromAssetRoot, file);\n try {\n return getAssetPath(relativeAssetPath);\n } catch {\n console.warn(`Failed to create URL for asset \"${file}\" in path \"${pathFromAssetRoot}\".\n Please provide an absolute URL in your app's 'setAssetPath(...)' configuration! Falling back to a relative URL, which may work in some environments but is not guaranteed to be correct.`);\n return new URL(relativeAssetPath, getLocationBase());\n }\n};\n\nfunction joinPath(...parts: (string | undefined)[]) {\n return parts.filter(Boolean).join('/').replace('//', '/').replace('/./', '/');\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export const transitionEndAsync = (el, expectedDuration = 0) => {
|
|
2
|
-
return new Promise(resolve => {
|
|
2
|
+
return new Promise((resolve) => {
|
|
3
3
|
transitionEnd(el, expectedDuration, resolve);
|
|
4
4
|
});
|
|
5
5
|
};
|
|
@@ -47,7 +47,7 @@ export const hasLazyBuild = (stencilEl) => {
|
|
|
47
47
|
};
|
|
48
48
|
export const inheritAttributes = (el, attributes = []) => {
|
|
49
49
|
const attributeObject = {};
|
|
50
|
-
attributes.forEach(attr => {
|
|
50
|
+
attributes.forEach((attr) => {
|
|
51
51
|
if (el.hasAttribute(attr)) {
|
|
52
52
|
const value = el.getAttribute(attr);
|
|
53
53
|
if (value !== null) {
|
|
@@ -114,7 +114,7 @@ const ariaAttributes = [
|
|
|
114
114
|
export const inheritAriaAttributes = (el, ignoreList) => {
|
|
115
115
|
let attributesToInherit = ariaAttributes;
|
|
116
116
|
if (ignoreList && ignoreList.length > 0) {
|
|
117
|
-
attributesToInherit = attributesToInherit.filter(attr => !ignoreList.includes(attr));
|
|
117
|
+
attributesToInherit = attributesToInherit.filter((attr) => !ignoreList.includes(attr));
|
|
118
118
|
}
|
|
119
119
|
return inheritAttributes(el, attributesToInherit);
|
|
120
120
|
};
|
|
@@ -228,7 +228,7 @@ export function getDeepActiveElement(root = document) {
|
|
|
228
228
|
if (!activeElement) {
|
|
229
229
|
return null;
|
|
230
230
|
}
|
|
231
|
-
while (activeElement
|
|
231
|
+
while (activeElement?.shadowRoot) {
|
|
232
232
|
const next = activeElement.shadowRoot.activeElement;
|
|
233
233
|
if (!next) {
|
|
234
234
|
break;
|
|
@@ -238,6 +238,8 @@ export function getDeepActiveElement(root = document) {
|
|
|
238
238
|
return activeElement;
|
|
239
239
|
}
|
|
240
240
|
export function canReceiveFocus(el) {
|
|
241
|
+
if (!el)
|
|
242
|
+
return false;
|
|
241
243
|
return (el instanceof HTMLElement && el.tabIndex >= 0 && !el.hasAttribute('disabled') && el.getAttribute('aria-hidden') !== 'true' && el.checkVisibility() && el.offsetParent !== null);
|
|
242
244
|
}
|
|
243
245
|
export function findFormByRef(form, el) {
|
|
@@ -266,3 +268,4 @@ export function findFormByRef(form, el) {
|
|
|
266
268
|
}
|
|
267
269
|
return el.closest('form');
|
|
268
270
|
}
|
|
271
|
+
//# sourceMappingURL=component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/utils/component.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Adapted from ionic-team/ionic-framework/core/src/utils/helpers.ts\n * v8.7.17\n *\n * Major changes are marked with `// ! LMVZ-DS` comments\n *\n * MIT License\n *\n * Copyright (c) 2015-present Drifty Co.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n// ! LMVZ-DS:\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { EventEmitter } from '@stencil/core';\n\ndeclare const __zone_symbol__requestAnimationFrame: typeof window.requestAnimationFrame;\ndeclare const requestAnimationFrame: typeof window.requestAnimationFrame;\n\nexport const transitionEndAsync = (el: HTMLElement | null, expectedDuration = 0) => {\n return new Promise((resolve) => {\n transitionEnd(el, expectedDuration, resolve);\n });\n};\n\n/**\n * Allows developer to wait for a transition\n * to finish and fallback to a timer if the\n * transition is cancelled or otherwise\n * never finishes. Also see transitionEndAsync\n * which is an await-able version of this.\n */\nconst transitionEnd = (el: HTMLElement | null, expectedDuration = 0, callback: (ev?: TransitionEvent) => void) => {\n let unRegTrans: (() => void) | undefined;\n let animationTimeout: number | undefined;\n const opts: AddEventListenerOptions = { passive: true };\n const ANIMATION_FALLBACK_TIMEOUT = 500;\n\n const unregister = () => {\n if (unRegTrans) {\n unRegTrans();\n }\n };\n\n const onTransitionEnd = (ev?: Event) => {\n if (ev === undefined || el === ev.target) {\n unregister();\n callback(ev as TransitionEvent);\n }\n };\n\n if (el) {\n el.addEventListener('webkitTransitionEnd', onTransitionEnd, opts);\n el.addEventListener('transitionend', onTransitionEnd, opts);\n animationTimeout = setTimeout(onTransitionEnd, expectedDuration + ANIMATION_FALLBACK_TIMEOUT) as unknown as number;\n\n unRegTrans = () => {\n if (animationTimeout !== undefined) {\n clearTimeout(animationTimeout);\n animationTimeout = undefined;\n }\n el.removeEventListener('webkitTransitionEnd', onTransitionEnd, opts);\n el.removeEventListener('transitionend', onTransitionEnd, opts);\n };\n }\n\n return unregister;\n};\n\n/**\n * Waits for a component to be ready for\n * both custom element and non-custom element builds.\n * If non-custom element build, el.componentOnReady\n * will be used.\n * For custom element builds, we wait a frame\n * so that the inner contents of the component\n * have a chance to render.\n *\n * Use this utility rather than calling\n * el.componentOnReady yourself.\n */\nexport const componentOnReady = (el: any, callback: any) => {\n if (el.componentOnReady) {\n el.componentOnReady().then((resolvedEl: any) => callback(resolvedEl));\n } else {\n raf(() => callback(el));\n }\n};\n\n/**\n * This functions checks if a Stencil component is using\n * the lazy loaded build of Stencil. Returns `true` if\n * the component is lazy loaded. Returns `false` otherwise.\n */\nexport const hasLazyBuild = (stencilEl: HTMLElement) => {\n return (stencilEl as any).componentOnReady !== undefined;\n};\n\nexport type Attributes = { [key: string]: any };\n\n/**\n * Elements inside of web components sometimes need to inherit global attributes\n * set on the host. For example, the inner input in `ion-input` should inherit\n * the `title` attribute that developers set directly on `ion-input`. This\n * helper function should be called in componentWillLoad and assigned to a variable\n * that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nexport const inheritAttributes = (el: HTMLElement, attributes: string[] = []) => {\n const attributeObject: Attributes = {};\n\n attributes.forEach((attr) => {\n if (el.hasAttribute(attr)) {\n const value = el.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = el.getAttribute(attr);\n }\n el.removeAttribute(attr);\n }\n });\n\n return attributeObject;\n};\n\n/**\n * List of available ARIA attributes + `role`.\n * Removed deprecated attributes.\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes\n */\nconst ariaAttributes = [\n 'role',\n 'aria-activedescendant',\n 'aria-atomic',\n 'aria-autocomplete',\n 'aria-braillelabel',\n 'aria-brailleroledescription',\n 'aria-busy',\n 'aria-checked',\n 'aria-colcount',\n 'aria-colindex',\n 'aria-colindextext',\n 'aria-colspan',\n 'aria-controls',\n 'aria-current',\n 'aria-describedby',\n 'aria-description',\n 'aria-details',\n 'aria-disabled',\n 'aria-errormessage',\n 'aria-expanded',\n 'aria-flowto',\n 'aria-haspopup',\n 'aria-hidden',\n 'aria-invalid',\n 'aria-keyshortcuts',\n 'aria-label',\n 'aria-labelledby',\n 'aria-level',\n 'aria-live',\n 'aria-multiline',\n 'aria-multiselectable',\n 'aria-orientation',\n 'aria-owns',\n 'aria-placeholder',\n 'aria-posinset',\n 'aria-pressed',\n 'aria-readonly',\n 'aria-relevant',\n 'aria-required',\n 'aria-roledescription',\n 'aria-rowcount',\n 'aria-rowindex',\n 'aria-rowindextext',\n 'aria-rowspan',\n 'aria-selected',\n 'aria-setsize',\n 'aria-sort',\n 'aria-valuemax',\n 'aria-valuemin',\n 'aria-valuenow',\n 'aria-valuetext',\n];\n\n/**\n * Returns an array of aria attributes that should be copied from\n * the shadow host element to a target within the light DOM.\n * @param el The element that the attributes should be copied from.\n * @param ignoreList The list of aria-attributes to ignore reflecting and removing from the host.\n * Use this in instances where we manually specify aria attributes on the `<Host>` element.\n */\nexport const inheritAriaAttributes = (el: HTMLElement, ignoreList?: string[]) => {\n let attributesToInherit = ariaAttributes;\n if (ignoreList && ignoreList.length > 0) {\n attributesToInherit = attributesToInherit.filter((attr) => !ignoreList.includes(attr));\n }\n return inheritAttributes(el, attributesToInherit);\n};\n\nexport const addEventListener = (el: any, eventName: string, callback: any, opts?: any) => {\n return el.addEventListener(eventName, callback, opts);\n};\n\nexport const removeEventListener = (el: any, eventName: string, callback: any, opts?: any) => {\n return el.removeEventListener(eventName, callback, opts);\n};\n\n/**\n * Gets the root context of a shadow dom element\n * On newer browsers this will be the shadowRoot,\n * but for older browser this may just be the\n * element itself.\n *\n * Useful for whenever you need to explicitly\n * do \"myElement.shadowRoot!.querySelector(...)\".\n */\nexport const getElementRoot = (el: HTMLElement, fallback: HTMLElement = el) => {\n return el.shadowRoot || fallback;\n};\n\n/**\n * Patched version of requestAnimationFrame that avoids ngzone\n * Use only when you know ngzone should not run\n */\nexport const raf = (h: FrameRequestCallback) => {\n if (typeof __zone_symbol__requestAnimationFrame === 'function') {\n return __zone_symbol__requestAnimationFrame(h);\n }\n if (typeof requestAnimationFrame === 'function') {\n return requestAnimationFrame(h);\n }\n return setTimeout(h);\n};\n\nexport const hasShadowDom = (el: HTMLElement) => {\n return !!el.shadowRoot && !!(el as any).attachShadow;\n};\n\nexport const focusVisibleElement = (el: HTMLElement) => {\n el.focus();\n\n // ! LMVZ-DS: removed ion-focusable handling\n};\n\n/**\n * This method is used to add a hidden input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param always Add a hidden input even if the container does not use Shadow\n * @param container The element where the input will be added\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n */\nexport const renderHiddenInput = (always: boolean, container: HTMLElement, name: string, value: string | undefined | null, disabled: boolean) => {\n if (always || hasShadowDom(container)) {\n let input = container.querySelector('input.aux-input') as HTMLInputElement | null;\n if (!input) {\n input = container.ownerDocument!.createElement('input');\n input.type = 'hidden';\n input.classList.add('aux-input');\n container.appendChild(input);\n }\n input.disabled = disabled;\n input.name = name;\n input.value = value || '';\n }\n};\n\nexport const clamp = (min: number, n: number, max: number) => {\n return Math.max(min, Math.min(n, max));\n};\n\nexport const assert = (actual: any, reason: string) => {\n if (!actual) {\n const message = 'ASSERT: ' + reason;\n console.error(message);\n debugger; // eslint-disable-line\n throw new Error(message);\n }\n};\n\nexport const now = (ev: UIEvent) => {\n return ev.timeStamp || Date.now();\n};\n\nexport const pointerCoord = (ev: any): { x: number; y: number } => {\n // get X coordinates for either a mouse click\n // or a touch depending on the given event\n if (ev) {\n const changedTouches = ev.changedTouches;\n if (changedTouches && changedTouches.length > 0) {\n const touch = changedTouches[0];\n return { x: touch.clientX, y: touch.clientY };\n }\n if (ev.pageX !== undefined) {\n return { x: ev.pageX, y: ev.pageY };\n }\n }\n return { x: 0, y: 0 };\n};\n\n// ! removed isEndSide (for RTL handling) via menu-interface\n\nexport const deferEvent = (event: EventEmitter): EventEmitter => {\n return debounceEvent(event, 0);\n};\n\nexport const debounceEvent = (event: EventEmitter, wait: number): EventEmitter => {\n const original = (event as any)._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n } as EventEmitter;\n};\n\nexport const debounce = (func: (...args: any[]) => void, wait = 0) => {\n let timer: any;\n return (...args: any[]): any => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n\n/**\n * Check whether the two string maps are shallow equal.\n *\n * undefined is treated as an empty map.\n *\n * @returns whether the keys are the same and the values are shallow equal.\n */\nexport const shallowEqualStringMap = (map1: { [k: string]: any } | undefined, map2: { [k: string]: any } | undefined): boolean => {\n map1 ??= {};\n map2 ??= {};\n\n if (map1 === map2) {\n return true;\n }\n\n const keys1 = Object.keys(map1);\n\n if (keys1.length !== Object.keys(map2).length) {\n return false;\n }\n\n for (const k1 of keys1) {\n if (!(k1 in map2)) {\n return false;\n }\n if (map1[k1] !== map2[k1]) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * Checks input for usable number. Not NaN and not Infinite.\n */\nexport const isSafeNumber = (input: unknown): input is number => {\n return typeof input === 'number' && !isNaN(input) && isFinite(input);\n};\n\n// CUSTOM LMVZ-DS utilities for components\n\nexport function getDeepActiveElement(root = document) {\n let activeElement = root.activeElement;\n\n // No focus at all\n if (!activeElement) {\n return null;\n }\n\n // Walk through shadow DOMs\n while (activeElement?.shadowRoot) {\n const next: Element | null = activeElement.shadowRoot.activeElement;\n if (!next) {\n // Focus is effectively on the host element itself\n break;\n }\n activeElement = next;\n }\n\n return activeElement;\n}\n\nexport function canReceiveFocus(el: Element | undefined): boolean {\n if (!el) return false;\n return (\n el instanceof HTMLElement && el.tabIndex >= 0 && !el.hasAttribute('disabled') && el.getAttribute('aria-hidden') !== 'true' && el.checkVisibility() && el.offsetParent !== null\n );\n}\n\nexport type FormRef = string | HTMLFormElement | undefined;\n\n/**\n * Finds the form element based on the provided `form` selector or element reference.\n */\nexport function findFormByRef(form: FormRef, el: HTMLElement): HTMLFormElement | null {\n if (form instanceof HTMLFormElement) {\n return form;\n }\n if (typeof form === 'string') {\n // Check if the string provided is a form id.\n const el: HTMLElement | null = document.getElementById(form);\n if (el) {\n if (el instanceof HTMLFormElement) {\n return el;\n } else {\n /**\n * The developer referenced the form using an id string,\n * but the element with that id is not a form element.\n */\n console.warn(`No Form found with selector: \"#${form}\". Verify that the element with id exists and is actually a <form> element.`, el);\n return null;\n }\n } else {\n /**\n * The developer referenced the form using an id string,\n * but the element with that id could not be found in the DOM.\n */\n console.warn(`No Form found with selector: \"#${form}\". Verify that the id is correct and the form is rendered in the DOM.`, el);\n return null;\n }\n }\n if (form !== undefined) {\n /**\n * The developer specified an HTMLElement for the form attribute,\n * but the element is not a HTMLFormElement.\n * This will also catch if the developer passes null as the form attribute.\n */\n console.warn(`The provided \"form\" element is invalid. Verify that the form is a HTMLFormElement and rendered in the DOM.`, el);\n return null;\n }\n /**\n * If the form element is not set, the button may be inside\n * of a form element. Query the closest form element to the button.\n */\n return el.closest('form');\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect.js","sourceRoot":"","sources":["../../../src/utils/effect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,MAAM,UAAU,GAAG,CAAmD,MAAS;IAC7E,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAC7C,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;IAErD,CAAC,CAAQ,CAAC;AACZ,CAAC","sourcesContent":["import { Effect } from 'effect';\n\nexport type UnwrapEffect<T> = T extends Effect.Effect<infer A, infer E, infer R> ? [A, E, R] : never;\n\nexport function run<T extends Effect.Effect<unknown, unknown, never>>(effect: T): T extends Effect.Effect<infer A, infer E, never> ? Promise<A | E> : never {\n return Effect.runPromise(effect).catch(error => {\n console.error('Unhandled error in Effect:', error);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/utils/environment.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;AAC5D,CAAC","sourcesContent":["export function getLocationBase() {\n return import.meta?.url ?? window?.location?.origin ?? '';\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/utils/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE/C,MAAM,OAAO,UAAW,SAAQ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAqB;CAAG;AACrF,MAAM,OAAO,aAAc,SAAQ,IAAI,CAAC,WAAW,CAAC,eAAe,CAAkB;CAAG;AAExF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAiC,EAAE,IAAkB,EAAE,EAAE,CAClF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;QACxC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;QAC7B,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;KACjD,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC,CAAC;AAEL,MAAM,OAAO,iBAAkB,SAAQ,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAQ;IACjF,YAAY,KAAY;QACtB,KAAK,CAAC,IAAI,KAAK,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;CACF;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAa,EAAE,EAAE,CAC9C,MAAM,CAAC,UAAU,CAAC;IAChB,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE;IACrB,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,iBAAiB,CAAC,KAAc,CAAC;CACtD,CAAC,CAAC","sourcesContent":["import { Data, Micro as Effect } from 'effect';\n\nexport class FetchError extends Data.TaggedError('FetchError')<{ cause: unknown }> {}\nexport class NotFoundError extends Data.TaggedError('NotFoundError')<{ url: string }> {}\n\nexport const httpClient = (input: RequestInfo | URL | string, init?: RequestInit) =>\n Effect.gen(function* () {\n const response = yield* Effect.tryPromise({\n try: () => fetch(input, init),\n catch: error => new FetchError({ cause: error }),\n });\n\n if (response.status === 404) {\n return yield* Effect.fail(new NotFoundError({ url: response.url }));\n }\n\n return response;\n });\n\nexport class ResponseTextError extends Data.TaggedError('ResponseTextError')<Error> {\n constructor(error: Error) {\n super(new Error(`Failed to read response text`, { cause: error }));\n }\n}\n\nexport const responseAsText = (res: Response) =>\n Effect.tryPromise({\n try: () => res.text(),\n catch: error => new ResponseTextError(error as Error),\n });\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.unit.js","sourceRoot":"","sources":["../../../src/utils/http.unit.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it, vi } from '@stencil/vitest';\n\nimport { Micro as Effect } from 'effect';\nimport { FetchError, NotFoundError, ResponseTextError, httpClient, responseAsText } from './http';\n\ndescribe('Http Utils', () => {\n describe('httpClient', () => {\n it('should return response on successful fetch', async () => {\n const mockResponse = { status: 200, url: 'https://example.com' };\n global.fetch = vi.fn().mockResolvedValueOnce(mockResponse);\n\n const result = await Effect.runPromise(httpClient('https://example.com'));\n\n expect(result).toEqual(mockResponse);\n });\n\n it('should handle fetch errors', async () => {\n const error = new Error('Network error');\n global.fetch = vi.fn().mockRejectedValueOnce(error);\n\n const result = await Effect.runPromise(Effect.flip(httpClient('https://example.com')));\n\n expect(result).toBeInstanceOf(FetchError);\n expect(result.cause).toBe(error);\n });\n\n it('should return NotFoundError on 404 status', async () => {\n const mockResponse = { status: 404, url: 'https://example.com/notfound' };\n global.fetch = vi.fn().mockResolvedValueOnce(mockResponse);\n\n const result = await Effect.runPromise(Effect.flip(httpClient('https://example.com/notfound')));\n\n expect(result).toBeInstanceOf(NotFoundError);\n });\n\n it('should pass RequestInit options to fetch', async () => {\n const mockResponse = { status: 200, url: 'https://example.com' };\n global.fetch = vi.fn().mockResolvedValueOnce(mockResponse);\n const init = { method: 'POST', headers: { 'Content-Type': 'application/json' } };\n\n await Effect.runPromise(httpClient('https://example.com', init));\n\n expect(global.fetch).toHaveBeenCalledWith('https://example.com', init);\n });\n });\n\n describe('responseAsText', () => {\n it('should return text from response', async () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const mockResponse = { text: vi.fn().mockResolvedValueOnce('Hello World') } as any;\n\n const result = await Effect.runPromise(responseAsText(mockResponse));\n\n expect(result).toBe('Hello World');\n });\n\n it('should handle text reading errors', async () => {\n const error = new Error('Read error');\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const mockResponse = { text: vi.fn().mockRejectedValueOnce(error) } as any;\n\n const result = await Effect.runPromise(Effect.flip(responseAsText(mockResponse)));\n\n expect(result).toBeInstanceOf(ResponseTextError);\n expect(result.message).toContain('Failed to read response text');\n });\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/utils/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC","sourcesContent":["export { run } from './effect';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-controller-host.js","sourceRoot":"","sources":["../../../src/utils/reactive-controller-host.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,sBAAsB;IACzB,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;IAE1C,aAAa,CAAC,UAA8B;QACpD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAES,gBAAgB,CAAC,UAA8B;QACvD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,IAAY,iBAAiB;QAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjF,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAE3B,OAAO,CAAC,IAAI,CAAC,kEAAkE,EAAE,IAAI,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;CACF","sourcesContent":["import { ComponentInterface } from '@stencil/core';\n\nexport interface ReactiveController {\n hostConnected?(): void;\n hostDisconnected?(): void;\n hostWillLoad?(): Promise<void> | void;\n hostDidLoad?(): void;\n hostWillRender?(): Promise<void> | void;\n hostDidRender?(): void;\n hostWillUpdate?(): Promise<void> | void;\n hostDidUpdate?(): void;\n readonly disabled?: boolean;\n}\n\nexport class ReactiveControllerHost implements ComponentInterface {\n private controllers = new Set<ReactiveController>();\n\n protected addController(controller: ReactiveController) {\n this.controllers.add(controller);\n }\n\n protected removeController(controller: ReactiveController) {\n this.controllers.delete(controller);\n }\n\n private get activeControllers() {\n return Array.from(this.controllers).filter(controller => !controller.disabled);\n }\n\n connectedCallback() {\n if (!this.controllers.size) {\n // sanity check - likely indicates a setup error\n console.warn('ReactiveControllerHost connected with no controllers registered.', this);\n }\n this.activeControllers.forEach(controller => controller.hostConnected?.());\n }\n\n disconnectedCallback() {\n this.activeControllers.forEach(controller => controller.hostDisconnected?.());\n }\n\n componentWillLoad() {\n this.activeControllers.forEach(controller => controller.hostWillLoad?.());\n }\n\n componentDidLoad() {\n this.activeControllers.forEach(controller => controller.hostDidLoad?.());\n }\n\n componentWillRender() {\n this.activeControllers.forEach(controller => controller.hostWillRender?.());\n }\n\n componentDidRender() {\n this.activeControllers.forEach(controller => controller.hostDidRender?.());\n }\n\n componentWillUpdate() {\n this.activeControllers.forEach(controller => controller.hostWillUpdate?.());\n }\n\n componentDidUpdate() {\n this.activeControllers.forEach(controller => controller.hostDidUpdate?.());\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg.js","sourceRoot":"","sources":["../../../../src/utils/validation/svg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGtD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAY,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAC1G,MAAM,OAAO,oBAAqB,SAAQ,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAQ;IACvF,YAAY,KAAY,EAAE,IAAY;QACpC,KAAK,CAAC,IAAI,KAAK,CAAC,oCAAoC,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAClF,CAAC;CACF;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAE,EAAE,CAClD,MAAM,CAAC,GAAG,CAAC;IACT,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,oBAAoB,CAAC,KAAc,EAAE,WAAW,CAAC;CACtE,CAAC,CAAC;AAEL,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QACzD,OAAO,GAAG,CAAC,eAAe,CAAC,QAAQ,KAAK,KAAK,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["import { Brand, Data, Micro as Effect } from 'effect';\n\nexport type SVGString = string & Brand.Brand<'SVG'>;\nexport const SVGString = Brand.refined<SVGString>(isValidSVG, () => Brand.error('SVG data is malformed'));\nexport class BrandValidationError extends Data.TaggedError('BrandValidationError')<Error> {\n constructor(error: Error, type: string) {\n super(new Error(`Brand validation failed for type ${type}.`, { cause: error }));\n }\n}\n\nexport const createValidSVGString = (svg: string) =>\n Effect.try({\n try: () => SVGString(svg),\n catch: error => new BrandValidationError(error as Error, 'SVGString'),\n });\n\nfunction isValidSVG(svg: string): boolean {\n if (typeof svg !== 'string') {\n return false;\n }\n try {\n const parser = new DOMParser();\n const doc = parser.parseFromString(svg, 'image/svg+xml');\n return doc.documentElement.nodeName === 'svg';\n } catch {\n return false;\n }\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface HeaderIntegration extends Components.HeaderIntegration, HTMLElement {}
|
|
4
|
+
export const HeaderIntegration: {
|
|
5
|
+
prototype: HeaderIntegration;
|
|
6
|
+
new (): HeaderIntegration;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{p as e,H as t,h as c,c as a,t as n}from"./p-C5rqq3bf.js";import{d as o}from"./p-BpCjj39Z.js";import{d as i}from"./p-BXdOuZTp.js";import{d as m}from"./p-B2g3aN-E.js";import{d as s}from"./p-X5fEFT9T.js";const f=e(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow()}activeNav;activate(e){const t=e.currentTarget;const c=t.closest('[slot="nav-primary"]');if(!c)return;const a=c.id;if(!a){console.warn("Nav item does not have an id:",c);return}console.log("Activating nav item:",a);this.activeNav=a}render(){return c(a,{key:"c70b22cccc010b6a18ec6003e31b9fb905cd669e"},c("lmvz-header",{key:"bf4f3a9c603dcfeee519dc1e78d8e9cd6e836f98",lmvzActiveNav:this.activeNav},c("lmvz-menuitem",{key:"64f3b9e2a6d5bb7feab15169d0de61e64a4002f1",slot:"nav-primary",id:"lehrmittel",onLmvzActivation:this.activate.bind(this)},c("a",{key:"2af5799904621d8b48640694a16f3858b0a5ccf9",href:"#"},"Lehrmittel")),c("lmvz-menuitem",{key:"54ed8090f68463bea9a18b290b1a1e707259119f",slot:"nav-primary",id:"verwaltung",onLmvzActivation:this.activate.bind(this)},c("a",{key:"98b8d121e0fca6b0630bc664cbfeb9307ce5b7e5",href:"#"},"Verwaltung")),c("lmvz-menuitem",{key:"c656b1a95940f1e14cf905a20c4679e92ca456ee",slot:"connect-nav-lehrmittel"},c("lmvz-icon",{key:"d9d16fe6d1d0ac183724881f7f1b41ce04f3c607",icon:"book"}),"Deutsch 7"),c("lmvz-menuitem",{key:"7aaf7887accf7fc388fe425718bdf2f703686f98",slot:"connect-nav-lehrmittel"},c("lmvz-icon",{key:"e2791405657a2de9527057f6c6767260cd9d21af",icon:"book"}),"Mathe 2"),c("lmvz-menuitem",{key:"c99fd516f891ae6bd6a76c92e504cf17ec3c0820",slot:"connect-nav-verwaltung"},c("lmvz-icon",{key:"78d9563d8c9a78f6b7bee0ad79ac0c51d8575790",icon:"cog"}),"iwas mit Verwaltung"),c("lmvz-menuitem",{key:"225f8207ee869d5e37bb9d6dbd7881a6fe636637",slot:"connect-nav-verwaltung","aria-label":"Einstellungen"},c("lmvz-icon",{key:"0d89fcb8bfbb3918ff14d783cfc087c658df151a",icon:"cog"})),c("lmvz-button",{key:"2637addd2ee7158087d6ab50808e6f900acabbf2",slot:"actions","aria-label":"Benutzerkonto"},c("lmvz-icon",{key:"c927e171d6f29474f18e2c222fff50c4947a0b3b",icon:"user"}))))}static get style(){return`.active button {\n background-color: var(--lmvz-semantic-color-status-selected);\n }`}},[513,"header-integration",{activeNav:[1025,"active-nav"]}]);function r(){if(typeof customElements==="undefined"){return}const e=["header-integration","lmvz-button","lmvz-header","lmvz-icon","lmvz-menuitem"];e.forEach((e=>{switch(e){case"header-integration":if(!customElements.get(n(e))){customElements.define(n(e),f)}break;case"lmvz-button":if(!customElements.get(n(e))){o()}break;case"lmvz-header":if(!customElements.get(n(e))){i()}break;case"lmvz-icon":if(!customElements.get(n(e))){m()}break;case"lmvz-menuitem":if(!customElements.get(n(e))){s()}break}}))}const l=f;const d=r;export{l as HeaderIntegration,d as defineCustomElement};
|
|
2
|
+
//# sourceMappingURL=header-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HeaderIntegration","__stencil_proxyCustomElement","HTMLElement","activeNav","activate","event","target","currentTarget","navItem","closest","navId","id","console","warn","log","this","render","h","Host","key","lmvzActiveNav","slot","onLmvzActivation","bind","href","icon"],"sources":["src/integration/header-integration.tsx"],"sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'header-integration',\n styles: `\n .active button {\n background-color: var(--lmvz-semantic-color-status-selected);\n }\n `,\n shadow: true,\n})\nexport class HeaderIntegration {\n @Prop({ mutable: true }) activeNav?: string;\n\n private activate(event: CustomEvent<void>) {\n const target = event.currentTarget as HTMLLmvzButtonElement;\n const navItem = target.closest('[slot=\"nav-primary\"]') as HTMLElement | null;\n if (!navItem) return;\n\n const navId = navItem.id;\n if (!navId) {\n console.warn('Nav item does not have an id:', navItem);\n return;\n }\n\n console.log('Activating nav item:', navId);\n this.activeNav = navId;\n }\n\n render() {\n return (\n <Host>\n <lmvz-header lmvzActiveNav={this.activeNav}>\n {/* <lmvz-icon icon=\"Logo\" slot=\"brand\" aria-hidden></lmvz-icon> */}\n <lmvz-menuitem slot=\"nav-primary\" id=\"lehrmittel\" onLmvzActivation={this.activate.bind(this)}>\n <a href=\"#\">Lehrmittel</a>\n </lmvz-menuitem>\n <lmvz-menuitem slot=\"nav-primary\" id=\"verwaltung\" onLmvzActivation={this.activate.bind(this)}>\n <a href=\"#\">Verwaltung</a>\n </lmvz-menuitem>\n <lmvz-menuitem slot=\"connect-nav-lehrmittel\">\n <lmvz-icon icon=\"book\"></lmvz-icon>Deutsch 7\n </lmvz-menuitem>\n <lmvz-menuitem slot=\"connect-nav-lehrmittel\">\n <lmvz-icon icon=\"book\"></lmvz-icon>Mathe 2\n </lmvz-menuitem>\n <lmvz-menuitem slot=\"connect-nav-verwaltung\">\n <lmvz-icon icon=\"cog\"></lmvz-icon>iwas mit Verwaltung\n </lmvz-menuitem>\n <lmvz-menuitem slot=\"connect-nav-verwaltung\" aria-label=\"Einstellungen\">\n <lmvz-icon icon=\"cog\"></lmvz-icon>\n </lmvz-menuitem>\n\n <lmvz-button slot=\"actions\" aria-label=\"Benutzerkonto\">\n <lmvz-icon icon=\"user\"></lmvz-icon>\n </lmvz-button>\n </lmvz-header>\n </Host>\n );\n }\n}\n"],"mappings":"sNAWaA,EAAiBC,EAAA,MAAAD,UAAAE,E,iFACHC,UAEjB,QAAAC,CAASC,GACf,MAAMC,EAASD,EAAME,cACrB,MAAMC,EAAUF,EAAOG,QAAQ,wBAC/B,IAAKD,EAAS,OAEd,MAAME,EAAQF,EAAQG,GACtB,IAAKD,EAAO,CACVE,QAAQC,KAAK,gCAAiCL,GAC9C,M,CAGFI,QAAQE,IAAI,uBAAwBJ,GACpCK,KAAKZ,UAAYO,C,CAGnB,MAAAM,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,eAAAE,IAAA,2CAAaC,cAAeL,KAAKZ,WAE/Bc,EAAA,iBAAAE,IAAA,2CAAeE,KAAK,cAAcV,GAAG,aAAaW,iBAAkBP,KAAKX,SAASmB,KAAKR,OACrFE,EAAA,KAAAE,IAAA,2CAAGK,KAAK,KAAG,eAEbP,EAAA,iBAAAE,IAAA,2CAAeE,KAAK,cAAcV,GAAG,aAAaW,iBAAkBP,KAAKX,SAASmB,KAAKR,OACrFE,EAAA,KAAAE,IAAA,2CAAGK,KAAK,KAAG,eAEbP,EAAA,iBAAAE,IAAA,2CAAeE,KAAK,0BAClBJ,EAAA,aAAAE,IAAA,2CAAWM,KAAK,SACF,aAChBR,EAAA,iBAAAE,IAAA,2CAAeE,KAAK,0BAClBJ,EAAA,aAAAE,IAAA,2CAAWM,KAAK,SACF,WAChBR,EAAA,iBAAAE,IAAA,2CAAeE,KAAK,0BAClBJ,EAAA,aAAAE,IAAA,2CAAWM,KAAK,QACF,uBAChBR,EAAA,iBAAAE,IAAA,2CAAeE,KAAK,yBAAwB,aAAY,iBACtDJ,EAAA,aAAAE,IAAA,2CAAWM,KAAK,SAGlBR,EAAA,eAAAE,IAAA,2CAAaE,KAAK,UAAS,aAAY,iBACrCJ,EAAA,aAAAE,IAAA,2CAAWM,KAAK,W","ignoreList":[]}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/* LmvzComponents custom elements */
|
|
2
|
+
export { HeaderIntegration as HeaderIntegration } from '../types/integration/header-integration';
|
|
3
|
+
export { defineCustomElement as defineCustomElementHeaderIntegration } from './header-integration';
|
|
2
4
|
export { LmvzAction as LmvzAction } from '../types/components/lmvz-action/lmvz-action';
|
|
3
5
|
export { defineCustomElement as defineCustomElementLmvzAction } from './lmvz-action';
|
|
4
6
|
export { LmvzButton as LmvzButton } from '../types/components/lmvz-button/lmvz-button';
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export{g as getAssetPath,r as render,s as setAssetPath,a as setNonce,b as setPlatformOptions}from"./p-
|
|
1
|
+
export{g as getAssetPath,r as render,s as setAssetPath,a as setNonce,b as setPlatformOptions}from"./p-C5rqq3bf.js";export{A as ARIA_VALIDATION_RUNTIME_CHANGED_EVENT,d as disableAriaValidation,e as enableAriaValidation,i as isAriaValidationEnabled,q as queueValidation,u as useVerboseLogging}from"./p-CI0tffvo.js";export{c as clearIconCache}from"./p-B2g3aN-E.js";import{r as t}from"./p-BsHYIl56.js";export{HeaderIntegration,defineCustomElement as defineCustomElementHeaderIntegration}from"./header-integration.js";export{LmvzAction,defineCustomElement as defineCustomElementLmvzAction}from"./lmvz-action.js";export{LmvzButton,defineCustomElement as defineCustomElementLmvzButton}from"./lmvz-button.js";export{LmvzCard,defineCustomElement as defineCustomElementLmvzCard}from"./lmvz-card.js";export{LmvzChip,defineCustomElement as defineCustomElementLmvzChip}from"./lmvz-chip.js";export{LmvzHeader,defineCustomElement as defineCustomElementLmvzHeader}from"./lmvz-header.js";export{LmvzIcon,defineCustomElement as defineCustomElementLmvzIcon}from"./lmvz-icon.js";export{LmvzInput,defineCustomElement as defineCustomElementLmvzInput}from"./lmvz-input.js";export{LmvzMenuitem,defineCustomElement as defineCustomElementLmvzMenuitem}from"./lmvz-menuitem.js";export{LmvzSelect,defineCustomElement as defineCustomElementLmvzSelect}from"./lmvz-select.js";const o=["primary","secondary","tertiary"];const n=["small","default","large"];const m=["xs","sm","md","lg"];const l=[...m,"xl"];const f=["text","email","password","tel","url","search","number"];const p=[...m,"inherit"];const v=["thin","medium","bold","filled"];const h=["Logo","actions","adduser","alert","apple","arrow-down","arrow-left","arrow-right","arrow-up","book","bookmark","checkmark","chevron-down","chevron-left","chevron-right","chevron-up","close-l","close-sm","cog","computer","dashboard","delete","download","edit","external","facebook","favorite","filter","group","hide","home","info","instagram","letter","linkedin","logout","map","minus","navigation","plus","qr-scan","question","reader","reset","school","search","send","settings","share","shopping-cart","show","snapchat","sort","speech-bubble","star","student","upload","user","warn-circle","warn-triangle","whatsapp","world","x","youtube"];function C(e){return t(e).catch((e=>{console.error("Unhandled error in Effect:",e)}))}export{h as iconNames,p as iconSizes,v as iconWeights,f as inputTypes,C as run,n as scaleValues,m as sizes,l as textSizes,o as variants};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["variants","scaleValues","sizes","textSizes","inputTypes","iconSizes","iconWeights","iconNames","run","effect","Effect.runPromise","catch","error","console"],"sources":["src/api/ds.constants.ts","src/utils/effect.ts"],"sourcesContent":["export const variants = ['primary', 'secondary', 'tertiary'] as const;\n\nexport const scaleValues = ['small', 'default', 'large'] as const;\nexport const sizes = ['xs', 'sm', 'md', 'lg'] as const;\nexport const textSizes = [...sizes, 'xl'] as const;\n\nexport const inputTypes = ['text', 'email', 'password', 'tel', 'url', 'search', 'number'] as const;\n\n// TODO: generate from available tokens (component/icon/size)\nexport const iconSizes = [...sizes, 'inherit'] as const;\nexport const iconWeights = ['thin', 'medium', 'bold', 'filled'] as const;\nexport const iconNames = [\n 'Logo',\n 'actions',\n 'adduser',\n 'alert',\n 'apple',\n 'arrow-down',\n 'arrow-left',\n 'arrow-right',\n 'arrow-up',\n 'book',\n 'bookmark',\n 'checkmark',\n 'chevron-down',\n 'chevron-left',\n 'chevron-right',\n 'chevron-up',\n 'close-l',\n 'close-sm',\n 'cog',\n 'computer',\n 'dashboard',\n 'delete',\n 'download',\n 'edit',\n 'external',\n 'facebook',\n 'favorite',\n 'filter',\n 'group',\n 'hide',\n 'home',\n 'info',\n 'instagram',\n 'letter',\n 'linkedin',\n 'logout',\n 'map',\n 'minus',\n 'navigation',\n 'plus',\n 'qr-scan',\n 'question',\n 'reader',\n 'reset',\n 'school',\n 'search',\n 'send',\n 'settings',\n 'share',\n 'shopping-cart',\n 'show',\n 'snapchat',\n 'sort',\n 'speech-bubble',\n 'star',\n 'student',\n 'upload',\n 'user',\n 'warn-circle',\n 'warn-triangle',\n 'whatsapp',\n 'world',\n 'x',\n 'youtube',\n] as const;\n","import { Effect } from 'effect';\n\nexport type UnwrapEffect<T> = T extends Effect.Effect<infer A, infer E, infer R> ? [A, E, R] : never;\n\nexport function run<T extends Effect.Effect<unknown, unknown, never>>(effect: T): T extends Effect.Effect<infer A, infer E, never> ? Promise<A | E> : never {\n return Effect.runPromise(effect).catch(error => {\n console.error('Unhandled error in Effect:', error);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n}\n"],"mappings":"g0CAAO,MAAMA,EAAW,CAAC,UAAW,YAAa,YAE1C,MAAMC,EAAc,CAAC,QAAS,UAAW,SACzC,MAAMC,EAAQ,CAAC,KAAM,KAAM,KAAM,MACjC,MAAMC,EAAY,IAAID,EAAO,MAE7B,MAAME,EAAa,CAAC,OAAQ,QAAS,WAAY,MAAO,MAAO,SAAU,UAGzE,MAAMC,EAAY,IAAIH,EAAO,WAC7B,MAAMI,EAAc,CAAC,OAAQ,SAAU,OAAQ,UAC/C,MAAMC,EAAY,CACvB,OACA,UACA,UACA,QACA,QACA,aACA,aACA,cACA,WACA,OACA,WACA,YACA,eACA,eACA,gBACA,aACA,UACA,WACA,MACA,WACA,YACA,SACA,WACA,OACA,WACA,WACA,WACA,SACA,QACA,OACA,OACA,OACA,YACA,SACA,WACA,SACA,MACA,QACA,aACA,OACA,UACA,WACA,SACA,QACA,SACA,SACA,OACA,WACA,QACA,gBACA,OACA,WACA,OACA,gBACA,OACA,UACA,SACA,OACA,cACA,gBACA,WACA,QACA,IACA,WCvEI,SAAUC,EAAsDC,GACpE,OAAOC,EAAkBD,GAAQE,OAAMC,IACrCC,QAAQD,MAAM,6BAA8BA,EAAM,GAGtD,Q","ignoreList":[]}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
import{p as t,H as
|
|
1
|
+
import{p as t,H as s,d as c,h as e,c as i,t as n}from"./p-C5rqq3bf.js";const o=()=>`:host{display:block}`;const a=t(class t extends s{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.actionClick=c(this,"actionClick")}actionClick;_onClick(t){this.actionClick.emit(t)}render(){return e(i,{key:"15c0f20e08cd5019abfd3bb71ec69d175dc5ba48",onClick:this._onClick.bind(this)},e("slot",{key:"f71a7853168d1b66b0a50b0f971d140385530ac3"}))}static get style(){return o()}},[257,"lmvz-action"]);function l(){if(typeof customElements==="undefined"){return}const t=["lmvz-action"];t.forEach((t=>{switch(t){case"lmvz-action":if(!customElements.get(n(t))){customElements.define(n(t),a)}break}}))}const r=a;const f=l;export{r as LmvzAction,f as defineCustomElement};
|
|
2
|
+
//# sourceMappingURL=lmvz-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["lmvzActionCss","LmvzAction","__stencil_proxyCustomElement","HTMLElement","actionClick","_onClick","event","this","emit","render","h","Host","key","onClick","bind"],"sources":["src/components/lmvz-action/lmvz-action.css?tag=lmvz-action&encapsulation=shadow","src/components/lmvz-action/lmvz-action.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import type { EventEmitter } from '@stencil/core';\nimport { Component, Event, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'lmvz-action',\n styleUrl: 'lmvz-action.css',\n shadow: true,\n})\nexport class LmvzAction {\n @Event() actionClick!: EventEmitter<MouseEvent>;\n\n private _onClick(event: MouseEvent) {\n this.actionClick.emit(event);\n }\n\n render() {\n return (\n <Host onClick={this._onClick.bind(this)}>\n <slot></slot>\n </Host>\n );\n }\n}\n"],"mappings":"uEAAA,MAAMA,EAAgB,IAAM,uB,MCQfC,EAAUC,EAAA,MAAAD,UAAAE,E,wHACZC,YAED,QAAAC,CAASC,GACfC,KAAKH,YAAYI,KAAKF,E,CAGxB,MAAAG,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CAACC,QAASN,KAAKF,SAASS,KAAKP,OAChCG,EAAA,QAAAE,IAAA,6C","ignoreList":[]}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{L as o,d as s}from"./p-BpCjj39Z.js";const p=o;const t=s;export{p as LmvzButton,t as defineCustomElement};
|
|
2
|
+
//# sourceMappingURL=lmvz-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":[],"mappings":"","ignoreList":[]}
|