@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
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
require('./assets-BnJmIx_h.js');
|
|
7
|
-
require('./index-9ZJx0550.js');
|
|
3
|
+
var icons = require('./icons-BOM23oli.js');
|
|
4
|
+
require('./assets-XY-cBmal.js');
|
|
5
|
+
require('./index-B1Puzu82.js');
|
|
8
6
|
|
|
9
7
|
const variants = ['primary', 'secondary', 'tertiary'];
|
|
10
8
|
const scaleValues = ['small', 'default', 'large'];
|
|
@@ -81,18 +79,18 @@ const iconNames = [
|
|
|
81
79
|
];
|
|
82
80
|
|
|
83
81
|
function run(effect) {
|
|
84
|
-
return
|
|
82
|
+
return icons.runPromise(effect).catch(error => {
|
|
85
83
|
console.error('Unhandled error in Effect:', error);
|
|
86
84
|
});
|
|
87
85
|
}
|
|
88
86
|
|
|
89
|
-
exports.ARIA_VALIDATION_RUNTIME_CHANGED_EVENT =
|
|
90
|
-
exports.disableAriaValidation = ariaLoader.disableAriaValidation;
|
|
91
|
-
exports.enableAriaValidation = ariaLoader.enableAriaValidation;
|
|
92
|
-
exports.isAriaValidationEnabled = ariaLoader.isAriaValidationEnabled;
|
|
93
|
-
exports.queueValidation = ariaLoader.queueValidation;
|
|
94
|
-
exports.useVerboseLogging = ariaLoader.useVerboseLogging;
|
|
87
|
+
exports.ARIA_VALIDATION_RUNTIME_CHANGED_EVENT = icons.ARIA_VALIDATION_RUNTIME_CHANGED_EVENT;
|
|
95
88
|
exports.clearIconCache = icons.clearIconCache;
|
|
89
|
+
exports.disableAriaValidation = icons.disableAriaValidation;
|
|
90
|
+
exports.enableAriaValidation = icons.enableAriaValidation;
|
|
91
|
+
exports.isAriaValidationEnabled = icons.isAriaValidationEnabled;
|
|
92
|
+
exports.queueValidation = icons.queueValidation;
|
|
93
|
+
exports.useVerboseLogging = icons.useVerboseLogging;
|
|
96
94
|
exports.iconNames = iconNames;
|
|
97
95
|
exports.iconSizes = iconSizes;
|
|
98
96
|
exports.iconWeights = iconWeights;
|
|
@@ -102,3 +100,6 @@ exports.scaleValues = scaleValues;
|
|
|
102
100
|
exports.sizes = sizes;
|
|
103
101
|
exports.textSizes = textSizes;
|
|
104
102
|
exports.variants = variants;
|
|
103
|
+
//# sourceMappingURL=index.cjs.js.map
|
|
104
|
+
|
|
105
|
+
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","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"],"names":["Effect.runPromise"],"mappings":";;;;;;AAAO,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU;AAEpD,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO;AAChD,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AACrC,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI;AAEjC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ;AAGjF,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,EAAE,SAAS;AACtC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;AACvD,MAAM,SAAS,GAAG;IACvB,MAAM;IACN,SAAS;IACT,SAAS;IACT,OAAO;IACP,OAAO;IACP,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,UAAU;IACV,MAAM;IACN,UAAU;IACV,WAAW;IACX,cAAc;IACd,cAAc;IACd,eAAe;IACf,YAAY;IACZ,SAAS;IACT,UAAU;IACV,KAAK;IACL,UAAU;IACV,WAAW;IACX,QAAQ;IACR,UAAU;IACV,MAAM;IACN,UAAU;IACV,UAAU;IACV,UAAU;IACV,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,WAAW;IACX,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,KAAK;IACL,OAAO;IACP,YAAY;IACZ,MAAM;IACN,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,UAAU;IACV,OAAO;IACP,eAAe;IACf,MAAM;IACN,UAAU;IACV,MAAM;IACN,eAAe;IACf,MAAM;IACN,SAAS;IACT,QAAQ;IACR,MAAM;IACN,aAAa;IACb,eAAe;IACf,UAAU;IACV,OAAO;IACP,GAAG;IACH,SAAS;;;ACvEL,SAAU,GAAG,CAAmD,MAAS,EAAA;IAC7E,OAAOA,gBAAiB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,IAAG;AAC7C,QAAA,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC;AAEpD,KAAC,CAAQ;AACX;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-B1Puzu82.js');
|
|
4
4
|
|
|
5
5
|
const lmvzActionCss = () => `:host{display:block}`;
|
|
6
6
|
|
|
@@ -14,9 +14,12 @@ const LmvzAction = class {
|
|
|
14
14
|
this.actionClick.emit(event);
|
|
15
15
|
}
|
|
16
16
|
render() {
|
|
17
|
-
return (index.h(index.Host, { key: '
|
|
17
|
+
return (index.h(index.Host, { key: '15c0f20e08cd5019abfd3bb71ec69d175dc5ba48', onClick: this._onClick.bind(this) }, index.h("slot", { key: 'f71a7853168d1b66b0a50b0f971d140385530ac3' })));
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
20
|
LmvzAction.style = lmvzActionCss();
|
|
21
21
|
|
|
22
22
|
exports.lmvz_action = LmvzAction;
|
|
23
|
+
//# sourceMappingURL=lmvz-action.entry.cjs.js.map
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=lmvz-action.cjs.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"lmvz-action.cjs.entry.js","mappings":";;;;AAAA,MAAM,aAAa,GAAG,MAAM,CAAC,oBAAoB,CAAC;;MCQrC,UAAU,GAAA,MAAA;;;;;AACZ,IAAA,WAAW;AAEZ,IAAA,QAAQ,CAAC,KAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;IAG9B,MAAM,GAAA;AACJ,QAAA,QACEA,OAAA,CAACC,UAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA,EACrCD,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACR;;;;;;;","names":["h","Host"],"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"],"version":3}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var assets = require('./assets-
|
|
3
|
+
var index = require('./index-B1Puzu82.js');
|
|
4
|
+
var assets = require('./assets-XY-cBmal.js');
|
|
5
5
|
|
|
6
6
|
const lmvzCardCss = () => `@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'), local('Router'); font-weight: 400 normal; } @font-face { font-family: Router; src: local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'), local('Router'); font-weight: 500; } @font-face { font-family: Router; src: local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'), local('Router'); font-weight: 700 bold; } } @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } } .sc-lmvz-card-h { button { --lmvz-button-color: var(--lmvz-component-color, var(--lmvz-semantic-color-int-on-primary, #ffffff)); --lmvz-button-padding-inline: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-padding-block: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); --lmvz-button-radius: var(--lmvz-component-input-radius-default, 999px); --lmvz-button-border-width: 0; --lmvz-button-border-color: transparent; --lmvz-button-background: var(--lmvz-semantic-color-int-primary, #000000); display: inline-flex; align-items: center; justify-content: center; gap: var(--lmvz-button-gap); padding-block: var(--lmvz-button-padding-block); padding-inline: var(--lmvz-button-padding-inline); border-radius: var(--lmvz-button-radius); border: var(--lmvz-button-border-width) solid var(--lmvz-button-border-color); background-color: var(--lmvz-button-background); color: var(--lmvz-button-color); cursor: pointer; font: var(--lmvz-button-font); text-align: center; text-decoration: none; white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; } button > * { font: inherit; color: inherit; } button:focus-visible { outline: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-status-selected, #f1f9fe); outline-offset: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); } button:is([disabled], .disabled) { cursor: not-allowed; pointer-events: none; opacity: var(--lmvz-component-input-disabled-opacity, 40%); } button:not([disabled]):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-hover, #2e2e2e); } button:not([disabled]):active { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-active, #545454); } button.secondary { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0); --lmvz-button-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-button-border-width: var(--lmvz-semantic-border-width-default, 1px); --lmvz-button-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); } button.secondary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0); --lmvz-button-border-color: var(--lmvz-semantic-color-border-hover, #c7c7c7); } button.secondary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-active, #d4d4d4); --lmvz-button-border-color: var(--lmvz-semantic-color-border-active, #d4d4d4); } button.tertiary { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); --lmvz-button-color: var(--lmvz-semantic-color-int-on-tertiary, #545454); } button.tertiary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } button.tertiary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } button.small { --lmvz-button-padding-inline: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-padding-block: var(--lmvz-component-input-sm-padding-y, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-gap: var(--lmvz-component-input-sm-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } button.large { --lmvz-button-padding-inline: var(--lmvz-component-input-lg-padding-x, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-padding-block: var(--lmvz-component-input-lg-padding-y, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-gap: var(--lmvz-component-input-lg-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); } display: flex; min-width: var(--lmvz-other-component-card-minwidth, 20.4375rem); max-width: var(--lmvz-other-component-card-maxwidth, 21.6875rem); flex-direction: column; align-items: flex-start; border-radius: var(--lmvz-semantic-border-radius-lg, 14px); border: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-default, #e0e0e0); background: var(--lmvz-semantic-color-surface-primary, #ffffff); } *.sc-lmvz-card { color: var(--lmvz-semantic-color-on-surface-primary, #000000); font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } .top.sc-lmvz-card { display: flex; padding: var(--lmvz-dimension-8-12, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); flex-direction: column; justify-content: center; align-items: center; align-self: stretch; } .bottom.sc-lmvz-card { display: flex; min-width: 150px; padding: var(--lmvz-dimension-4-6, clamp(0.25rem, 0.22rem + 0.13vw, 0.38rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)); flex-direction: column; align-items: flex-start; align-self: stretch; } .title.sc-lmvz-card { margin: 0; display: flex; justify-content: center; align-items: center; align-self: stretch; padding-bottom: var(--lmvz-global-s4, 4px); overflow-wrap: break-word; font: var(--lmvz-typography-heading-2xl, 500 clamp(2rem, 1.94rem + 0.26vw, 2.25rem) / 1.2 Router); } .description.sc-lmvz-card { display: flex; margin: 0; padding-bottom: var(--lmvz-component-body-sm-padding-bottom, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); align-items: flex-start; align-self: stretch; white-space: pre-line; font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } .image-wrapper.sc-lmvz-card { aspect-ratio: 4 / 3; width: 100%; background-size: cover; background-position: center; flex: 1 0 0; align-self: stretch; border-radius: var(--lmvz-semantic-border-radius-md, 6px); } .actions.sc-lmvz-card { margin-top: var(--lmvz-component-form-wrapper-gap-y, clamp(1.13rem, 0.97rem + 0.65vw, 1.75rem)); display: flex; align-items: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); align-self: stretch; } button.primary.sc-lmvz-card, lmvz-button.primary.sc-lmvz-card { display: flex; justify-content: center; align-items: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); flex: 1 0 0; }`;
|
|
7
7
|
|
|
@@ -28,10 +28,13 @@ const LmvzCard = class {
|
|
|
28
28
|
const imgStyle = {
|
|
29
29
|
backgroundImage: `url(${this.imageUrl ?? this.fallbackImage})`,
|
|
30
30
|
};
|
|
31
|
-
return (index.h(index.Host, { key: '
|
|
31
|
+
return (index.h(index.Host, { key: '46c2832b4f90b9eb222749632bc7ad59cd645e10', role: "article" }, index.h("div", { key: 'cc387fe96cff2dd04c24f75cf838a2bf6f438279', class: "top" }, index.h("div", { key: 'f9a54a5f81378ef4265e1d74c36c78af002e8874', class: "image-wrapper", style: imgStyle }, index.h("div", { key: '76daed00408f7ae9ee46977637ddcd3d4f846380', class: "chip-slot" }, index.h("slot", { key: '6ad522ef7428166b876d0218ef8d801c4ef337f1', name: "chip" })))), index.h("div", { key: '9c9799668ac199cfecbe10061e271d70d70e2d07', class: "bottom" }, index.h("header", { key: '1bec743235bea5c7ab163225ffbd7bc6cf11f754' }, index.h("h2", { key: '06f8e14153328bc5ca920e71e09d9343047c440c', class: "title" }, this.cardTitle)), index.h("p", { key: '86b95db4e6464ca3236b4a03798013c3580819bf', class: "description" }, this.description), index.h("div", { key: '553dc998d5318a4730196baa0b9baff3a0a3369f', class: "actions" }, index.h("button", { key: '7532d01b46769198c23a1b1015c187fdefce146a', class: "primary", onClick: this._onPrimaryClick.bind(this), "data-testid": "primary" }, this.primaryActionLabel), index.h("button", { key: '633d679ae59b1896aa2a06e04b4564569cf27a7d', class: "tertiary", "aria-label": "More actions", onClick: this._onOverflowClick }, index.h("span", { key: 'b72c45f93d259502b9d7c5ffb19e292a53c60ec6', class: "icon-placeholder" }, "..."))))));
|
|
32
32
|
}
|
|
33
33
|
static get assetsDirs() { return ["../../assets"]; }
|
|
34
34
|
};
|
|
35
35
|
LmvzCard.style = lmvzCardCss();
|
|
36
36
|
|
|
37
37
|
exports.lmvz_card = LmvzCard;
|
|
38
|
+
//# sourceMappingURL=lmvz-card.entry.cjs.js.map
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=lmvz-card.cjs.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"lmvz-card.cjs.entry.js","mappings":";;;;;AAAA,MAAM,WAAW,GAAG,MAAM,CAAC,ioPAAioP,CAAC;;MCWhpP,QAAQ,GAAA,MAAA;;;;;AAEX,IAAA,SAAS;AAGT,IAAA,QAAQ;AAGR,IAAA,WAAW;IAGX,kBAAkB,GAAW,EAAE;AAG9B,IAAA,aAAa;AAEtB,IAAA,IAAY,aAAa,GAAA;AACvB,QAAA,OAAOA,2BAAoB,CAAC,sBAAsB,CAAC;;IAG7C,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;;AAGnB,IAAA,gBAAgB,CAAC,KAAmB,EAAA;AAE1C,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;;IAGpB,MAAM,GAAA;AACJ,QAAA,MAAM,QAAQ,GAAG;YACf,eAAe,EAAE,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAA,CAAA,CAAG;SAC/D;QACD,QACEC,OAAA,CAACC,UAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,IAAI,EAAC,SAAS,EAAA,EAClBD,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,KAAK,EAAA,EACdA,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,eAAe,EAAC,KAAK,EAAE,QAAQ,EAAA,EACxCA,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,WAAW,EAAA,EACpBA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,MAAM,EAAA,CAAQ,CACrB,CACF,CACF,EACNA,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,QAAQ,EAAA,EACjBA,OAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACEA,OAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAI,KAAK,EAAC,OAAO,EAAA,EAAE,IAAI,CAAC,SAAS,CAAM,CAChC,EACTA,OAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAG,KAAK,EAAC,aAAa,IAAE,IAAI,CAAC,WAAW,CAAK,EAE7CA,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,SAAS,EAAA,EAClBA,OAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA,aAAA,EAAc,SAAS,IACpF,IAAI,CAAC,kBAAkB,CACjB,EAETA,OAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,KAAK,EAAC,UAAU,EAAA,YAAA,EAAY,cAAc,EAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAA,EAC/EA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,kBAAkB,EAAA,EAAA,KAAA,CAAW,CAClC,CAIL,CACF,CACD;;;;;;;;","names":["createAssetUrlSafely","h","Host"],"sources":["src/components/lmvz-card/lmvz-card.css?tag=lmvz-card&encapsulation=scoped","src/components/lmvz-card/lmvz-card.tsx"],"sourcesContent":["@import '~@lmvz-ds/lib-styles/define-layers.css';\n\n@import '~@lmvz-ds/lib-styles/fragments/_routerFont.css' layer(lmvz-ds.theme);\n@import '~@lmvz-ds/lib-styles/fragments/_reset.css' layer(lmvz-ds.reset);\n\n:host {\n /** component dependencies */\n /* * the (invalid nested) import will be handled by postcss */\n /* stylelint-disable no-invalid-position-at-import-rule */\n @import '~@lmvz-ds/lib-styles/fragments/_buttons.css';\n\n display: flex;\n min-width: var(--lmvz-other-component-card-minwidth);\n max-width: var(--lmvz-other-component-card-maxwidth);\n flex-direction: column;\n align-items: flex-start;\n\n border-radius: var(--lmvz-semantic-border-radius-lg);\n border: var(--lmvz-semantic-border-width-default) solid var(--lmvz-semantic-color-border-default);\n background: var(--lmvz-semantic-color-surface-primary);\n}\n\n* {\n color: var(--lmvz-semantic-color-on-surface-primary);\n font: var(--lmvz-typography-body-md);\n}\n\n.top {\n display: flex;\n padding: var(--lmvz-dimension-8-12);\n flex-direction: column;\n justify-content: center;\n align-items: center;\n align-self: stretch;\n}\n\n.bottom {\n display: flex;\n min-width: 150px;\n padding: var(--lmvz-dimension-4-6) var(--lmvz-dimension-10-14) var(--lmvz-dimension-10-14) var(--lmvz-dimension-10-14);\n flex-direction: column;\n align-items: flex-start;\n align-self: stretch;\n}\n\n.title {\n margin: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n align-self: stretch;\n\n padding-bottom: var(--lmvz-global-s4);\n overflow-wrap: break-word;\n font: var(--lmvz-typography-heading-2xl);\n}\n\n.description {\n display: flex;\n margin: 0;\n padding-bottom: var(--lmvz-component-body-sm-padding-bottom);\n align-items: flex-start;\n align-self: stretch;\n white-space: pre-line;\n font: var(--lmvz-typography-body-md);\n}\n\n.image-wrapper {\n aspect-ratio: 4 / 3;\n width: 100%;\n background-size: cover;\n background-position: center;\n flex: 1 0 0;\n align-self: stretch;\n border-radius: var(--lmvz-semantic-border-radius-md);\n}\n\n.actions {\n margin-top: var(--lmvz-component-form-wrapper-gap-y);\n display: flex;\n align-items: center;\n gap: var(--lmvz-component-input-md-gap-x);\n align-self: stretch;\n}\n\nbutton.primary,\nlmvz-button.primary {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: var(--lmvz-component-input-md-gap-x);\n flex: 1 0 0;\n}\n\n/* .overflow-button {\n anchor-name: --overflow-button;\n} */\n\n/* menu {\n position: fixed;\n position-anchor: --overflow-button;\n\n inset-block-start: anchor(end);\n inset-inline-end: anchor(self-end);\n margin: 5px 0 0 5px;\n} */\n","import type { EventEmitter } from '@stencil/core';\nimport { Component, Event, h, Host, Prop } from '@stencil/core';\n\nimport { createAssetUrlSafely } from '../../utils/assets';\n\n@Component({\n tag: 'lmvz-card',\n styleUrl: 'lmvz-card.css',\n scoped: true,\n assetsDirs: ['../../assets'],\n})\nexport class LmvzCard {\n /** Card title (required) */\n @Prop() cardTitle!: string;\n\n /** Optional image URL; placeholder used if omitted */\n @Prop() imageUrl?: string;\n\n /** Optional description */\n @Prop() description?: string;\n\n /** Primary action button label */\n @Prop() primaryActionLabel: string = '';\n\n /** Event emitted when primary button is clicked */\n @Event() primaryAction!: EventEmitter<PointerEvent>;\n\n private get fallbackImage() {\n return createAssetUrlSafely('card-placeholder.svg');\n }\n\n private _onPrimaryClick() {\n this.primaryAction.emit();\n }\n\n private _onOverflowClick(event: PointerEvent) {\n // TODO: show menu\n console.log(event);\n }\n\n render() {\n const imgStyle = {\n backgroundImage: `url(${this.imageUrl ?? this.fallbackImage})`,\n };\n return (\n <Host role=\"article\">\n <div class=\"top\">\n <div class=\"image-wrapper\" style={imgStyle}>\n <div class=\"chip-slot\">\n <slot name=\"chip\"></slot>\n </div>\n </div>\n </div>\n <div class=\"bottom\">\n <header>\n <h2 class=\"title\">{this.cardTitle}</h2>\n </header>\n <p class=\"description\">{this.description}</p>\n {/* TODO: hide unless actions are available https://stackoverflow.com/questions/53796599/how-to-determine-number-of-children-in-a-slot */}\n <div class=\"actions\">\n <button class=\"primary\" onClick={this._onPrimaryClick.bind(this)} data-testid=\"primary\">\n {this.primaryActionLabel}\n </button>\n {/* popoverTarget=\"mypopover\" */}\n <button class=\"tertiary\" aria-label=\"More actions\" onClick={this._onOverflowClick}>\n <span class=\"icon-placeholder\">...</span>\n </button>\n {/* <menu id=\"mypopover\" popover=\"manual\">\n <li>TEST</li>\n </menu> */}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-B1Puzu82.js');
|
|
4
4
|
|
|
5
5
|
const lmvzChipCss = () => `:host{display:block}`;
|
|
6
6
|
|
|
@@ -10,9 +10,12 @@ const LmvzChip = class {
|
|
|
10
10
|
}
|
|
11
11
|
text;
|
|
12
12
|
render() {
|
|
13
|
-
return index.h(index.Host, { key: '
|
|
13
|
+
return index.h(index.Host, { key: 'd128e24bb90891ebd13d13a8e27c06782363cace' }, this.text);
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
16
|
LmvzChip.style = lmvzChipCss();
|
|
17
17
|
|
|
18
18
|
exports.lmvz_chip = LmvzChip;
|
|
19
|
+
//# sourceMappingURL=lmvz-chip.entry.cjs.js.map
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=lmvz-chip.cjs.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"lmvz-chip.cjs.entry.js","mappings":";;;;AAAA,MAAM,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC;;MCOnC,QAAQ,GAAA,MAAA;;;;AACX,IAAA,IAAI;IAEZ,MAAM,GAAA;AACJ,QAAA,OAAOA,QAACC,UAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,IAAI,CAAC,IAAI,CAAQ;;;;;;;","names":["h","Host"],"sources":["src/components/lmvz-chip/lmvz-chip.css?tag=lmvz-chip&encapsulation=shadow","src/components/lmvz-chip/lmvz-chip.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'lmvz-chip',\n styleUrl: 'lmvz-chip.css',\n shadow: true,\n})\nexport class LmvzChip {\n @Prop() text!: string;\n\n render() {\n return <Host>{this.text}</Host>;\n }\n}\n"],"version":3}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-B1Puzu82.js');
|
|
4
4
|
var appGlobals = require('./app-globals-V2Kpy_OQ.js');
|
|
5
5
|
|
|
6
6
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
7
7
|
/*
|
|
8
|
-
Stencil Client Patch Browser v4.43.
|
|
8
|
+
Stencil Client Patch Browser v4.43.3 | MIT Licensed | https://stenciljs.com
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
var patchBrowser = () => {
|
|
@@ -19,7 +19,10 @@ var patchBrowser = () => {
|
|
|
19
19
|
|
|
20
20
|
patchBrowser().then(async (options) => {
|
|
21
21
|
await appGlobals.globalScripts();
|
|
22
|
-
return index.bootstrapLazy([["lmvz-
|
|
22
|
+
return index.bootstrapLazy([["lmvz-action.cjs",[[257,"lmvz-action"]]],["lmvz-card.cjs",[[774,"lmvz-card",{"cardTitle":[1,"card-title"],"imageUrl":[1,"image-url"],"description":[1],"primaryActionLabel":[1,"primary-action-label"]}]]],["lmvz-chip.cjs",[[513,"lmvz-chip",{"text":[1]}]]],["header-integration_7.cjs",[[513,"header-integration",{"activeNav":[1025,"active-nav"]}],[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}]}],[774,"lmvz-select",{"value":[1025],"label":[1],"helperText":[1,"helper-text"],"disabled":[516],"required":[516],"name":[1],"selectedLabel":[32]},null,{"value":[{"handleValueChange":0}]}],[785,"lmvz-button",{"ti":[2562,"tabindex"],"scale":[513],"variant":[513],"disabled":[516],"type":[1],"form":[1]}],[769,"lmvz-header",{"role":[2561],"lmvzActiveNav":[1,"lmvz-active-nav"]},null,{"lmvzActiveNav":[{"handleActiveNavChange":0}]}],[514,"lmvz-icon",{"icon":[513],"weight":[513],"size":[513],"ariaLabel":[513,"aria-label"],"iconData":[32],"visible":[32]},null,{"icon":[{"loadIconPathData":0}]}],[774,"lmvz-menuitem",{"role":[2561],"ti":[2562,"tabindex"]}]]]], options);
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
exports.setNonce = index.setNonce;
|
|
26
|
+
//# sourceMappingURL=lmvz-components.cjs.js.map
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=lmvz-components.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lmvz-components.cjs.js","sources":["../../node_modules/.pnpm/@stencil+core@4.43.3/node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.43.3 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, H, promiseResolve, win } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? win.document && Array.from(win.document.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"names":["promiseResolve","globalScripts","bootstrapLazy"],"mappings":";;;;;;AAAA;AACA;AACA;;AAKA,IAAI,YAAY,GAAG,MAAM;AAUzB,EAAE,MAAM,UAAU,GAAG,wQAAe;AACpC,EAAE,MAAM,IAAI,GAAiE,EAAE;AAC/E,EAAE,IAAI,UAAU,KAAK,EAAE,EAAE;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI;AACrD;AACA,EAAE,OAAOA,oBAAc,CAAC,IAAI,CAAC;AAC7B,CAAC;;ACnBD,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK;AACvC,EAAE,MAAMC,wBAAa,EAAE;AACvB,EAAE,OAAOC,mBAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D,CAAC,CAAC;;;;","x_google_ignoreList":[0]}
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-B1Puzu82.js');
|
|
4
4
|
var appGlobals = require('./app-globals-V2Kpy_OQ.js');
|
|
5
5
|
|
|
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-
|
|
9
|
+
return index.bootstrapLazy([["lmvz-action.cjs",[[257,"lmvz-action"]]],["lmvz-card.cjs",[[774,"lmvz-card",{"cardTitle":[1,"card-title"],"imageUrl":[1,"image-url"],"description":[1],"primaryActionLabel":[1,"primary-action-label"]}]]],["lmvz-chip.cjs",[[513,"lmvz-chip",{"text":[1]}]]],["header-integration_7.cjs",[[513,"header-integration",{"activeNav":[1025,"active-nav"]}],[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}]}],[774,"lmvz-select",{"value":[1025],"label":[1],"helperText":[1,"helper-text"],"disabled":[516],"required":[516],"name":[1],"selectedLabel":[32]},null,{"value":[{"handleValueChange":0}]}],[785,"lmvz-button",{"ti":[2562,"tabindex"],"scale":[513],"variant":[513],"disabled":[516],"type":[1],"form":[1]}],[769,"lmvz-header",{"role":[2561],"lmvzActiveNav":[1,"lmvz-active-nav"]},null,{"lmvzActiveNav":[{"handleActiveNavChange":0}]}],[514,"lmvz-icon",{"icon":[513],"weight":[513],"size":[513],"ariaLabel":[513,"aria-label"],"iconData":[32],"visible":[32]},null,{"icon":[{"loadIconPathData":0}]}],[774,"lmvz-menuitem",{"role":[2561],"ti":[2562,"tabindex"]}]]]], options);
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
exports.setNonce = index.setNonce;
|
|
13
13
|
exports.defineCustomElements = defineCustomElements;
|
|
14
|
+
//# sourceMappingURL=loader.cjs.js.map
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=loader.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.cjs.js","sources":["@lazy-external-entrypoint?app-data=conditional"],"sourcesContent":["export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\nexport const defineCustomElements = async (win, options) => {\n if (typeof window === 'undefined') return undefined;\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n};\n"],"names":["globalScripts","bootstrapLazy"],"mappings":";;;;;AAGY,MAAC,oBAAoB,GAAG,OAAO,GAAG,EAAE,OAAO,KAAK;AAC5D,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,OAAO,SAAS;AACrD,EAAE,MAAMA,wBAAa,EAAE;AACvB,EAAE,OAAOC,mBAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ds.constants.js","sourceRoot":"","sources":["../../../src/api/ds.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAU,CAAC;AAEtE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAU,CAAC;AAClE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AACvD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,CAAU,CAAC;AAEnD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAGnG,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,EAAE,SAAS,CAAU,CAAC;AACxD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AACzE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,MAAM;IACN,SAAS;IACT,SAAS;IACT,OAAO;IACP,OAAO;IACP,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,UAAU;IACV,MAAM;IACN,UAAU;IACV,WAAW;IACX,cAAc;IACd,cAAc;IACd,eAAe;IACf,YAAY;IACZ,SAAS;IACT,UAAU;IACV,KAAK;IACL,UAAU;IACV,WAAW;IACX,QAAQ;IACR,UAAU;IACV,MAAM;IACN,UAAU;IACV,UAAU;IACV,UAAU;IACV,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,WAAW;IACX,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,KAAK;IACL,OAAO;IACP,YAAY;IACZ,MAAM;IACN,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,UAAU;IACV,OAAO;IACP,eAAe;IACf,MAAM;IACN,UAAU;IACV,MAAM;IACN,eAAe;IACf,MAAM;IACN,SAAS;IACT,QAAQ;IACR,MAAM;IACN,aAAa;IACb,eAAe;IACf,UAAU;IACV,OAAO;IACP,GAAG;IACH,SAAS;CACD,CAAC","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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC","sourcesContent":["export type * from './aria-types';\nexport * from './ds.constants';\nexport type * from './ds.types';\n"]}
|
|
@@ -5,7 +5,7 @@ export class LmvzAction {
|
|
|
5
5
|
this.actionClick.emit(event);
|
|
6
6
|
}
|
|
7
7
|
render() {
|
|
8
|
-
return (h(Host, { key: '
|
|
8
|
+
return (h(Host, { key: '15c0f20e08cd5019abfd3bb71ec69d175dc5ba48', onClick: this._onClick.bind(this) }, h("slot", { key: 'f71a7853168d1b66b0a50b0f971d140385530ac3' })));
|
|
9
9
|
}
|
|
10
10
|
static get is() { return "lmvz-action"; }
|
|
11
11
|
static get encapsulation() { return "shadow"; }
|
|
@@ -43,3 +43,4 @@ export class LmvzAction {
|
|
|
43
43
|
}];
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
+
//# sourceMappingURL=lmvz-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lmvz-action.js","sourceRoot":"","sources":["../../../../src/components/lmvz-action/lmvz-action.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAO1D,MAAM,OAAO,UAAU;IACZ,WAAW,CAA4B;IAExC,QAAQ,CAAC,KAAiB;QAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACrC,8DAAa,CACR,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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"]}
|
|
@@ -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: 'c6f44d3765d579e04ab91272747035d8589e2ff2', "aria-disabled": this.disabled ? 'true' : null }, h("button", { key: '9d48dfc7a6a23df1eda46e9c9035520789a08d4c', ref: (e) => (this.validationEl = e), disabled: this.disabled, class: classNames(this.variant, { [this.scale ?? '']: !!this.scale, disabled: this.disabled }), ...this.inheritedAttributes }, h("slot", { key: '95e9fb932e477c7d6e933d2c00e6a3728e55c256' }))));
|
|
61
61
|
}
|
|
62
62
|
static get is() { return "lmvz-button"; }
|
|
63
63
|
static get encapsulation() { return "shadow"; }
|
|
@@ -202,7 +202,7 @@ export class LmvzButton extends ReactiveControllerHost {
|
|
|
202
202
|
"mutable": false,
|
|
203
203
|
"complexType": {
|
|
204
204
|
"original": "FormRef",
|
|
205
|
-
"resolved": "HTMLFormElement | string",
|
|
205
|
+
"resolved": "HTMLFormElement | string | undefined",
|
|
206
206
|
"references": {
|
|
207
207
|
"FormRef": {
|
|
208
208
|
"location": "import",
|
|
@@ -245,3 +245,4 @@ export class LmvzButton extends ReactiveControllerHost {
|
|
|
245
245
|
}
|
|
246
246
|
static get elementRef() { return "el"; }
|
|
247
247
|
}
|
|
248
|
+
//# sourceMappingURL=lmvz-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lmvz-button.js","sourceRoot":"","sources":["../../../../src/components/lmvz-button/lmvz-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, Host, Prop, h, type EventEmitter } from '@stencil/core';\nimport classNames from 'classnames';\nimport type { Button } from '../../api';\nimport { AriaValidationController, type AriaValidationHost } from '../../utils/aria/aria-validation-controller';\nimport { ElementActivationController, type ElementActivationHost } from '../../utils/aria/element-activation-controller';\nimport { findFormByRef, inheritAriaAttributes, type Attributes, type FormRef } from '../../utils/component';\nimport { ReactiveControllerHost } from '../../utils/reactive-controller-host';\n\n/**\n * @slot default - Slot for the content of the button\n */\n@Component({\n tag: 'lmvz-button',\n styleUrl: './lmvz-button.css',\n shadow: { delegatesFocus: true },\n})\nexport class LmvzButton extends ReactiveControllerHost implements AriaValidationHost, ElementActivationHost {\n @Element() el!: HTMLLmvzButtonElement;\n\n validationEl: HTMLButtonElement | undefined;\n\n private inheritedAttributes: Attributes = {};\n private formEl: HTMLFormElement | null = null;\n private formButtonEl: HTMLButtonElement | null = null;\n\n /**\n * Event emitted when the button is activated, either by a click or by pressing \"Enter\" when the button is focused.\n */\n @Event() lmvzActivation!: EventEmitter<void>;\n\n @Prop({ reflect: true, attribute: 'tabindex' }) get ti() {\n return 0;\n }\n\n /**\n * Scale of the button\n * @default 'default'\n */\n @Prop({ reflect: true }) scale: Button.Scale = 'default';\n\n /**\n * Variant of the button\n * @default 'secondary', since the primary button should be marked as such in context\n */\n @Prop({ reflect: true }) variant: Button.Variant = 'secondary';\n\n /**\n * Whether the button is disabled\n * @default false\n */\n @Prop({ reflect: true }) disabled = false;\n\n @Prop() type: 'submit' | 'button' = 'button';\n\n /**\n * The HTML form element or form element id. Used to submit a form when the button is not a child of the form.\n */\n @Prop() form?: FormRef;\n\n constructor() {\n super();\n this.addController(new AriaValidationController(this));\n this.addController(\n new ElementActivationController(this, {\n localHandler: this.handleClick.bind(this),\n keys: ['Enter'],\n }),\n );\n }\n\n override connectedCallback() {\n this.inheritedAttributes = inheritAriaAttributes(this.el);\n super.connectedCallback();\n }\n\n /**\n * This renders a hidden native button element inside the associated form.\n * This allows users to submit a form by pressing \"Enter\" when a text\n * field inside of the form is focused, even though our native button is in the Shadow DOM.\n */\n private renderHiddenButton() {\n const formEl = (this.formEl = findFormByRef(this.form, this.el));\n if (!formEl) return;\n\n const { formButtonEl } = this;\n\n // append only once\n if (formButtonEl !== null && formEl.contains(formButtonEl)) return;\n\n const newFormButtonEl = (this.formButtonEl = document.createElement('button'));\n newFormButtonEl.type = 'submit';\n newFormButtonEl.style.display = 'none';\n newFormButtonEl.disabled = this.disabled;\n\n formEl.appendChild(newFormButtonEl);\n }\n\n private submitForm(ev: Event) {\n if (this.formEl && this.formButtonEl) {\n ev.preventDefault();\n this.formButtonEl.click();\n }\n }\n\n private handleClick = (ev: Event) => {\n if (this.type === 'submit') {\n this.submitForm(ev);\n }\n };\n\n render() {\n this.renderHiddenButton();\n\n return (\n <Host aria-disabled={this.disabled ? 'true' : null}>\n <button\n ref={(e) => (this.validationEl = e)}\n disabled={this.disabled}\n class={classNames(this.variant, { [this.scale ?? '']: !!this.scale, disabled: this.disabled })}\n {...this.inheritedAttributes}\n >\n <slot></slot>\n </button>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -19,7 +19,7 @@ export class LmvzCard {
|
|
|
19
19
|
const imgStyle = {
|
|
20
20
|
backgroundImage: `url(${this.imageUrl ?? this.fallbackImage})`,
|
|
21
21
|
};
|
|
22
|
-
return (h(Host, { key: '
|
|
22
|
+
return (h(Host, { key: '46c2832b4f90b9eb222749632bc7ad59cd645e10', role: "article" }, h("div", { key: 'cc387fe96cff2dd04c24f75cf838a2bf6f438279', class: "top" }, h("div", { key: 'f9a54a5f81378ef4265e1d74c36c78af002e8874', class: "image-wrapper", style: imgStyle }, h("div", { key: '76daed00408f7ae9ee46977637ddcd3d4f846380', class: "chip-slot" }, h("slot", { key: '6ad522ef7428166b876d0218ef8d801c4ef337f1', name: "chip" })))), h("div", { key: '9c9799668ac199cfecbe10061e271d70d70e2d07', class: "bottom" }, h("header", { key: '1bec743235bea5c7ab163225ffbd7bc6cf11f754' }, h("h2", { key: '06f8e14153328bc5ca920e71e09d9343047c440c', class: "title" }, this.cardTitle)), h("p", { key: '86b95db4e6464ca3236b4a03798013c3580819bf', class: "description" }, this.description), h("div", { key: '553dc998d5318a4730196baa0b9baff3a0a3369f', class: "actions" }, h("button", { key: '7532d01b46769198c23a1b1015c187fdefce146a', class: "primary", onClick: this._onPrimaryClick.bind(this), "data-testid": "primary" }, this.primaryActionLabel), h("button", { key: '633d679ae59b1896aa2a06e04b4564569cf27a7d', class: "tertiary", "aria-label": "More actions", onClick: this._onOverflowClick }, h("span", { key: 'b72c45f93d259502b9d7c5ffb19e292a53c60ec6', class: "icon-placeholder" }, "..."))))));
|
|
23
23
|
}
|
|
24
24
|
static get is() { return "lmvz-card"; }
|
|
25
25
|
static get encapsulation() { return "scoped"; }
|
|
@@ -60,7 +60,7 @@ export class LmvzCard {
|
|
|
60
60
|
"mutable": false,
|
|
61
61
|
"complexType": {
|
|
62
62
|
"original": "string",
|
|
63
|
-
"resolved": "string",
|
|
63
|
+
"resolved": "string | undefined",
|
|
64
64
|
"references": {}
|
|
65
65
|
},
|
|
66
66
|
"required": false,
|
|
@@ -79,7 +79,7 @@ export class LmvzCard {
|
|
|
79
79
|
"mutable": false,
|
|
80
80
|
"complexType": {
|
|
81
81
|
"original": "string",
|
|
82
|
-
"resolved": "string",
|
|
82
|
+
"resolved": "string | undefined",
|
|
83
83
|
"references": {}
|
|
84
84
|
},
|
|
85
85
|
"required": false,
|
|
@@ -139,3 +139,4 @@ export class LmvzCard {
|
|
|
139
139
|
}];
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
+
//# sourceMappingURL=lmvz-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lmvz-card.js","sourceRoot":"","sources":["../../../../src/components/lmvz-card/lmvz-card.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAQ1D,MAAM,OAAO,QAAQ;IAEX,SAAS,CAAU;IAGnB,QAAQ,CAAU;IAGlB,WAAW,CAAU;IAGrB,kBAAkB,GAAW,EAAE,CAAC;IAG/B,aAAa,CAA8B;IAEpD,IAAY,aAAa;QACvB,OAAO,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;IACtD,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAEO,gBAAgB,CAAC,KAAmB;QAE1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,MAAM,QAAQ,GAAG;YACf,eAAe,EAAE,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,GAAG;SAC/D,CAAC;QACF,OAAO,CACL,EAAC,IAAI,qDAAC,IAAI,EAAC,SAAS;YAClB,4DAAK,KAAK,EAAC,KAAK;gBACd,4DAAK,KAAK,EAAC,eAAe,EAAC,KAAK,EAAE,QAAQ;oBACxC,4DAAK,KAAK,EAAC,WAAW;wBACpB,6DAAM,IAAI,EAAC,MAAM,GAAQ,CACrB,CACF,CACF;YACN,4DAAK,KAAK,EAAC,QAAQ;gBACjB;oBACE,2DAAI,KAAK,EAAC,OAAO,IAAE,IAAI,CAAC,SAAS,CAAM,CAChC;gBACT,0DAAG,KAAK,EAAC,aAAa,IAAE,IAAI,CAAC,WAAW,CAAK;gBAE7C,4DAAK,KAAK,EAAC,SAAS;oBAClB,+DAAQ,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAc,SAAS,IACpF,IAAI,CAAC,kBAAkB,CACjB;oBAET,+DAAQ,KAAK,EAAC,UAAU,gBAAY,cAAc,EAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB;wBAC/E,6DAAM,KAAK,EAAC,kBAAkB,UAAW,CAClC,CAIL,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import type { EventEmitter } from '@stencil/core';\nimport { Component, Event, h, Host, Prop } from '@stencil/core';\n\nimport { createAssetUrlSafely } from '../../utils/assets';\n\n@Component({\n tag: 'lmvz-card',\n styleUrl: 'lmvz-card.css',\n scoped: true,\n assetsDirs: ['../../assets'],\n})\nexport class LmvzCard {\n /** Card title (required) */\n @Prop() cardTitle!: string;\n\n /** Optional image URL; placeholder used if omitted */\n @Prop() imageUrl?: string;\n\n /** Optional description */\n @Prop() description?: string;\n\n /** Primary action button label */\n @Prop() primaryActionLabel: string = '';\n\n /** Event emitted when primary button is clicked */\n @Event() primaryAction!: EventEmitter<PointerEvent>;\n\n private get fallbackImage() {\n return createAssetUrlSafely('card-placeholder.svg');\n }\n\n private _onPrimaryClick() {\n this.primaryAction.emit();\n }\n\n private _onOverflowClick(event: PointerEvent) {\n // TODO: show menu\n console.log(event);\n }\n\n render() {\n const imgStyle = {\n backgroundImage: `url(${this.imageUrl ?? this.fallbackImage})`,\n };\n return (\n <Host role=\"article\">\n <div class=\"top\">\n <div class=\"image-wrapper\" style={imgStyle}>\n <div class=\"chip-slot\">\n <slot name=\"chip\"></slot>\n </div>\n </div>\n </div>\n <div class=\"bottom\">\n <header>\n <h2 class=\"title\">{this.cardTitle}</h2>\n </header>\n <p class=\"description\">{this.description}</p>\n {/* TODO: hide unless actions are available https://stackoverflow.com/questions/53796599/how-to-determine-number-of-children-in-a-slot */}\n <div class=\"actions\">\n <button class=\"primary\" onClick={this._onPrimaryClick.bind(this)} data-testid=\"primary\">\n {this.primaryActionLabel}\n </button>\n {/* popoverTarget=\"mypopover\" */}\n <button class=\"tertiary\" aria-label=\"More actions\" onClick={this._onOverflowClick}>\n <span class=\"icon-placeholder\">...</span>\n </button>\n {/* <menu id=\"mypopover\" popover=\"manual\">\n <li>TEST</li>\n </menu> */}\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import { Host, h } from "@stencil/core";
|
|
|
2
2
|
export class LmvzChip {
|
|
3
3
|
text;
|
|
4
4
|
render() {
|
|
5
|
-
return h(Host, { key: '
|
|
5
|
+
return h(Host, { key: 'd128e24bb90891ebd13d13a8e27c06782363cace' }, this.text);
|
|
6
6
|
}
|
|
7
7
|
static get is() { return "lmvz-chip"; }
|
|
8
8
|
static get encapsulation() { return "shadow"; }
|
|
@@ -26,7 +26,7 @@ export class LmvzChip {
|
|
|
26
26
|
"resolved": "string",
|
|
27
27
|
"references": {}
|
|
28
28
|
},
|
|
29
|
-
"required":
|
|
29
|
+
"required": true,
|
|
30
30
|
"optional": false,
|
|
31
31
|
"docs": {
|
|
32
32
|
"tags": [],
|
|
@@ -40,3 +40,4 @@ export class LmvzChip {
|
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
+
//# sourceMappingURL=lmvz-chip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lmvz-chip.js","sourceRoot":"","sources":["../../../../src/components/lmvz-chip/lmvz-chip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAOzD,MAAM,OAAO,QAAQ;IACX,IAAI,CAAU;IAEtB,MAAM;QACJ,OAAO,EAAC,IAAI,uDAAE,IAAI,CAAC,IAAI,CAAQ,CAAC;IAClC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'lmvz-chip',\n styleUrl: 'lmvz-chip.css',\n shadow: true,\n})\nexport class LmvzChip {\n @Prop() text!: string;\n\n render() {\n return <Host>{this.text}</Host>;\n }\n}\n"]}
|
|
@@ -13,10 +13,10 @@ export class LmvzHeader extends ReactiveControllerHost {
|
|
|
13
13
|
secondaryNav;
|
|
14
14
|
keyboardNavigationController = new ListKeyboardNavigationController(this);
|
|
15
15
|
get primaryMenuitems() {
|
|
16
|
-
return this.primarySlot
|
|
16
|
+
return this.primarySlot?.assignedElements({ flatten: false }) || [];
|
|
17
17
|
}
|
|
18
18
|
get secondaryMenuitems() {
|
|
19
|
-
return this.secondarySlot
|
|
19
|
+
return this.secondarySlot?.assignedElements({ flatten: true }) || [];
|
|
20
20
|
}
|
|
21
21
|
get role() {
|
|
22
22
|
return 'banner';
|
|
@@ -34,9 +34,9 @@ export class LmvzHeader extends ReactiveControllerHost {
|
|
|
34
34
|
this.updateElementsActive();
|
|
35
35
|
}
|
|
36
36
|
componentDidLoad() {
|
|
37
|
-
this.primarySlot
|
|
37
|
+
this.primarySlot?.addEventListener('slotchange', this.handlePrimaryNavItemsChange.bind(this));
|
|
38
38
|
this.handlePrimaryNavItemsChange();
|
|
39
|
-
this.secondarySlot
|
|
39
|
+
this.secondarySlot?.addEventListener('slotchange', this.handleSecondaryNavItemsChange.bind(this));
|
|
40
40
|
super.componentDidLoad();
|
|
41
41
|
}
|
|
42
42
|
handlePrimaryNavItemsChange() {
|
|
@@ -64,14 +64,18 @@ export class LmvzHeader extends ReactiveControllerHost {
|
|
|
64
64
|
}
|
|
65
65
|
updateElementsActive() {
|
|
66
66
|
const items = this.primaryMenuitems;
|
|
67
|
-
|
|
67
|
+
if (!items.length)
|
|
68
|
+
return;
|
|
69
|
+
let label = '';
|
|
68
70
|
items.forEach((el) => {
|
|
69
71
|
const isActive = el.id === this.lmvzActiveNav;
|
|
70
72
|
if (isActive)
|
|
71
73
|
label = el.textContent || el.id;
|
|
72
74
|
el.setAttribute('aria-expanded', isActive ? 'true' : 'false');
|
|
73
75
|
});
|
|
74
|
-
|
|
76
|
+
if (!label)
|
|
77
|
+
return;
|
|
78
|
+
this.secondaryNav?.setAttribute('aria-label', `Untermenü für ${label}`);
|
|
75
79
|
}
|
|
76
80
|
delegateFocus() {
|
|
77
81
|
const firstFocusable = this.primaryMenuitems[0];
|
|
@@ -80,7 +84,7 @@ export class LmvzHeader extends ReactiveControllerHost {
|
|
|
80
84
|
}
|
|
81
85
|
}
|
|
82
86
|
render() {
|
|
83
|
-
return (h(Host, { key: '
|
|
87
|
+
return (h(Host, { key: '35883b5d4a92d10b5b010d822fb2233604464f9b', onFocus: this.delegateFocus.bind(this) }, h("div", { key: '6fdec3af75bab2b076651b8cfef4aec8e23326a6', class: "brand" }, h("slot", { key: '3127b4223b8bebfe425efc7ce45626f37fbf76b9', name: "brand" }, h("img", { key: '20b3dd598e320c6950fb08bbd55dd80c47552eaf', id: "fallback-logo-lmvz", src: logo, alt: "Lehrmittelverlag Z\u00FCrich" }))), h("nav", { key: 'c3bf07f78930085c1a7b89421506bcd41d139911', "aria-label": "Hauptnavigation" }, h("div", { key: 'fbc5199080f52da4f10c8c14fbbc0877ecc5f31c', role: "menubar", class: "primary-menubar" }, h("slot", { key: '4210d213dcf7a1a27a73f2a9cf7ff97fec62f0db', name: "nav-primary", ref: (el) => (this.primarySlot = el) }), h("div", { key: '7b91c269f75e1245f75d471ec5bb7eeabfe1094d', role: "menu", id: "nav-secondary", class: "secondary-menubar", hidden: !this.lmvzActiveNav, ref: (el) => (this.secondaryNav = el) }, h("slot", { key: 'e23eb0f222b49d912bb45870df6d9b0d01f43788', name: this.secondarySlotName, ref: (el) => (this.secondarySlot = el) })))), h("div", { key: '4b19026d5b2e54aa7aed072ce57de4acaa75cb4f', class: "actions" }, h("slot", { key: '8f02d5d178bb60b40604fcd1be74d373d89c911f', name: "actions" }))));
|
|
84
88
|
}
|
|
85
89
|
static get is() { return "lmvz-header"; }
|
|
86
90
|
static get encapsulation() { return "shadow"; }
|
|
@@ -121,7 +125,7 @@ export class LmvzHeader extends ReactiveControllerHost {
|
|
|
121
125
|
"mutable": false,
|
|
122
126
|
"complexType": {
|
|
123
127
|
"original": "string",
|
|
124
|
-
"resolved": "string",
|
|
128
|
+
"resolved": "string | undefined",
|
|
125
129
|
"references": {}
|
|
126
130
|
},
|
|
127
131
|
"required": false,
|
|
@@ -145,3 +149,4 @@ export class LmvzHeader extends ReactiveControllerHost {
|
|
|
145
149
|
}];
|
|
146
150
|
}
|
|
147
151
|
}
|
|
152
|
+
//# sourceMappingURL=lmvz-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lmvz-header.js","sourceRoot":"","sources":["../../../../src/components/lmvz-header/lmvz-header.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Prop, Watch } from '@stencil/core';\nimport logo from '../../assets/icons/Logo.svg';\nimport { AriaValidationController, type AriaValidationHost } from '../../utils/aria/aria-validation-controller';\nimport { ListKeyboardNavigationController, type ListKeyboardNavigationHost } from '../../utils/aria/list-keyboard-controller';\nimport { ReactiveControllerHost } from '../../utils/reactive-controller-host';\n\n/**\n * An accessible, application-style navigation header component, that renders two connected levels of navigation.\n *\n * @slot brand - The branding area, typically containing a logo and/or site title.\n *\n * @slot nav-primary - The first level of the navigation.\n * This is required and must only contain <lmvz-menuitem> elements.\n * Each menuitem should have an id, which will be used to link it to the corresponding secondary nav items.\n *\n * @slot connect-nav-`lmvzActiveNav` - The second level of the navigation. This is optional and must also contain <lmvz-menuitem> elements.\n * Only if the secondary nav items' `slot=\"${name}\"` matches \"connect-nav-`lmvzActiveNav`\"\n * (including lmvzActiveNav from the component's props),\n * then these secondary items will be displayed in the second level navigation.\n *\n * @slot actions - An optional slot for actions, such as user profile, settings, logout, etc. This content is aligned to the right side of the header.\n */\n@Component({\n tag: 'lmvz-header',\n styleUrl: './lmvz-header.css',\n shadow: true,\n})\nexport class LmvzHeader extends ReactiveControllerHost implements AriaValidationHost, ListKeyboardNavigationHost {\n @Element() readonly el!: HTMLElement;\n get validationEl() {\n return this.el;\n }\n\n private primarySlot?: HTMLSlotElement;\n private secondarySlot?: HTMLSlotElement;\n private secondaryNav?: HTMLElement;\n\n private keyboardNavigationController = new ListKeyboardNavigationController(this);\n\n private get primaryMenuitems() {\n return this.primarySlot?.assignedElements({ flatten: false }) || [];\n }\n\n private get secondaryMenuitems() {\n return this.secondarySlot?.assignedElements({ flatten: true }) || [];\n }\n\n @Prop({ reflect: true }) get role() {\n return 'banner';\n }\n\n @Prop() lmvzActiveNav?: string;\n\n get secondarySlotName() {\n return `connect-nav-${this.lmvzActiveNav}`;\n }\n\n constructor() {\n super();\n this.addController(new AriaValidationController(this, { reValidateOnPropChanges: true }));\n this.addController(this.keyboardNavigationController);\n }\n\n @Watch('lmvzActiveNav')\n handleActiveNavChange() {\n this.updateElementsActive();\n }\n\n override componentDidLoad() {\n this.primarySlot?.addEventListener('slotchange', this.handlePrimaryNavItemsChange.bind(this));\n this.handlePrimaryNavItemsChange(); // initial check for already assigned elements\n this.secondarySlot?.addEventListener('slotchange', this.handleSecondaryNavItemsChange.bind(this));\n super.componentDidLoad();\n }\n\n private handlePrimaryNavItemsChange() {\n const items = this.primaryMenuitems;\n if (!items.length) {\n console.warn('Primary slot has no assigned elements. Please add navigation items to the primary slot.');\n return;\n }\n\n items.forEach((el) => {\n el.setAttribute('aria-haspopup', 'true');\n el.setAttribute('aria-controls', `nav-secondary`);\n });\n this.updateElementsActive();\n this.updateKeyboardNavSubjects();\n }\n\n private handleSecondaryNavItemsChange() {\n const items = this.secondaryMenuitems;\n if (!items.length) {\n // It's valid to have no secondary items for a given primary item, so we just return early without warning\n return;\n }\n this.updateKeyboardNavSubjects();\n }\n\n private updateKeyboardNavSubjects() {\n this.keyboardNavigationController.updateElements([...this.primaryMenuitems, ...this.secondaryMenuitems]);\n }\n\n private updateElementsActive() {\n const items = this.primaryMenuitems;\n if (!items.length) return;\n\n let label = '';\n items.forEach((el) => {\n const isActive = el.id === this.lmvzActiveNav;\n if (isActive) label = el.textContent || el.id;\n el.setAttribute('aria-expanded', isActive ? 'true' : 'false');\n });\n if (!label) return;\n\n this.secondaryNav?.setAttribute('aria-label', `Untermenü für ${label}`);\n }\n\n private delegateFocus() {\n // If the header itself receives focus, delegate it to the first focusable element in the primary nav\n const firstFocusable = this.primaryMenuitems[0] as HTMLElement | undefined;\n if (firstFocusable) {\n firstFocusable.focus();\n }\n }\n\n render() {\n return (\n <Host onFocus={this.delegateFocus.bind(this)}>\n <div class=\"brand\">\n <slot name=\"brand\">\n <img id=\"fallback-logo-lmvz\" src={logo} alt=\"Lehrmittelverlag Zürich\" />\n </slot>\n {/* brand image, title, etc. */}\n </div>\n\n <nav aria-label=\"Hauptnavigation\">\n <div role=\"menubar\" class=\"primary-menubar\">\n <slot name=\"nav-primary\" ref={(el) => (this.primarySlot = el)}></slot>\n\n <div role=\"menu\" id=\"nav-secondary\" class=\"secondary-menubar\" hidden={!this.lmvzActiveNav} ref={(el) => (this.secondaryNav = el)}>\n <slot name={this.secondarySlotName} ref={(el) => (this.secondarySlot = el)}></slot>\n </div>\n </div>\n </nav>\n\n <div class=\"actions\">\n <slot name=\"actions\"></slot>\n {/* user avatar, name, settings, etc. */}\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../../src/components/lmvz-icon/icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAI7E,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,uGAAuG,CAAC,CAAC;AAGxJ,MAAM,eAAe,GAAG,GAAG,EAAE,CAC3B,KAAK,CAAC,IAAI,CAAC;IACT,QAAQ,EAAE,GAAG;IACb,UAAU,EAAE,QAAQ,CAAC,QAAQ;IAC7B,MAAM,EAAE,CAAC,GAAiB,EAAE,EAAE,CAC5B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,IAAI,GAAG,GAAoB,CAAC;QAClC,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,IAAI,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC,CAAC;CACL,CAAC,CAAC;AAEL,IAAI,aAAa,GAA+D,IAAI,CAAC;AAarF,MAAM,UAAU,YAAY,CAAC,IAAmB;IAC9C,MAAM,GAAG,GAAiB,IAAI,CAAC;IAC/B,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,aAAa,GAAG,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAoD,CAAC;IAC1F,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,UAAU,CAAC,yDAAyD,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { Cache, Duration, Effect } from 'effect';\nimport { Icon } from '../..';\nimport { createAssetUrlSafely } from '../../utils/assets';\nimport type { UnwrapEffect } from '../../utils/effect';\nimport { httpClient, responseAsText } from '../../utils/http';\nimport { createValidSVGString, SVGString } from '../../utils/validation/svg';\n\nexport type IconData = SVGString;\nexport type IconCacheKey = `${Icon.IconName}`;\nexport const emptyDefaultSvg = () => SVGString(`<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"></svg>`);\n\n// Create a cache for icon data (concurrent-safe, TTL infinite)\nconst createIconCache = () =>\n Cache.make({\n capacity: 200,\n timeToLive: Duration.infinity,\n lookup: (key: IconCacheKey) =>\n Effect.gen(function* () {\n const name = key as Icon.IconName;\n const assetPath = createAssetUrlSafely(`${name}.svg`, 'icons');\n const res = yield* httpClient(assetPath);\n const responseString = yield* responseAsText(res);\n return yield* createValidSVGString(responseString);\n }),\n });\n\nlet cacheInstance: UnwrapEffect<ReturnType<typeof createIconCache>>[0] | null = null;\n\n/**\n * Fetches an icon from the cache by name, falling back to an empty default SVG if not found.\n *\n * @param name - The name of the icon to fetch from the cache.\n * @returns An Effect that yields a valid SVG string (branded), always.\n *\n * @example\n * ```typescript\n * const iconEffect = fetchIcon('home');\n * ```\n */\nexport function fetchIconSvg(name: Icon.IconName) {\n const key: IconCacheKey = name;\n return Effect.gen(function* () {\n if (!cacheInstance) {\n cacheInstance = yield* createIconCache();\n }\n return yield* cacheInstance.get(key) satisfies Effect.Effect<SVGString, unknown, never>;\n });\n}\n\nexport function clearIconCache() {\n return Effect.gen(function* () {\n if (cacheInstance) {\n yield* cacheInstance.invalidateAll;\n } else {\n Effect.logWarning('Attempted to clear icon cache before it was initialized');\n }\n });\n}\n"]}
|