@lmvz-ds/components 0.13.1 → 0.13.3

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.
Files changed (98) hide show
  1. package/dist/cjs/{icons-FIfJEo6G.js → Effect-CpZhfb0D.js} +5153 -1359
  2. package/dist/cjs/aria-loader-BBKbBZLq.js +76 -0
  3. package/dist/cjs/{assets-CJzJZPzV.js → assets-BnJmIx_h.js} +2 -2
  4. package/dist/cjs/icons-Brr4vqiE.js +653 -0
  5. package/dist/cjs/{index-D3BMpL5w.js → index-9ZJx0550.js} +3 -0
  6. package/dist/cjs/index-QRnWYctw.js +35629 -0
  7. package/dist/cjs/index.cjs.js +12 -4
  8. package/dist/cjs/lmvz-action.cjs.entry.js +1 -1
  9. package/dist/cjs/lmvz-button.cjs.entry.js +6 -3
  10. package/dist/cjs/lmvz-card.cjs.entry.js +2 -2
  11. package/dist/cjs/lmvz-chip.cjs.entry.js +1 -1
  12. package/dist/cjs/lmvz-components.cjs.js +1 -1
  13. package/dist/cjs/lmvz-header.cjs.entry.js +8 -5
  14. package/dist/cjs/lmvz-icon.cjs.entry.js +20 -9
  15. package/dist/cjs/lmvz-input.cjs.entry.js +8 -5
  16. package/dist/cjs/lmvz-menuitem.cjs.entry.js +7 -4
  17. package/dist/cjs/loader.cjs.js +1 -1
  18. package/dist/cjs/{reactive-controller-host-BMDEj1kX.js → reactive-controller-host-DWpVosFu.js} +71 -50
  19. package/dist/collection/components/lmvz-button/lmvz-button.js +3 -1
  20. package/dist/collection/components/lmvz-header/lmvz-header.js +5 -3
  21. package/dist/collection/components/lmvz-icon/lmvz-icon.js +14 -5
  22. package/dist/collection/components/lmvz-input/lmvz-input.js +5 -3
  23. package/dist/collection/components/lmvz-menuitem/lmvz-menuitem.js +4 -2
  24. package/dist/collection/index.js +1 -0
  25. package/dist/collection/integration/header-integration.js +1 -3
  26. package/dist/collection/utils/aria/aria-validation-controller.js +68 -27
  27. package/dist/components/index.js +1 -1
  28. package/dist/components/lmvz-action.js +1 -1
  29. package/dist/components/lmvz-button.js +1 -1
  30. package/dist/components/lmvz-card.js +1 -1
  31. package/dist/components/lmvz-chip.js +1 -1
  32. package/dist/components/lmvz-header.js +1 -1
  33. package/dist/components/lmvz-icon.js +1 -1
  34. package/dist/components/lmvz-input.js +1 -1
  35. package/dist/components/lmvz-menuitem.js +1 -1
  36. package/dist/components/p-BaPwpeMs.js +1 -0
  37. package/dist/components/p-Bz0S2cGj.js +1 -0
  38. package/dist/components/p-CSRpdnrt.js +1 -0
  39. package/dist/components/p-DK2hpvEW.js +12 -0
  40. package/dist/{lmvz-components/p-CVf2C8dL.js → components/p-DcMNH3fv.js} +1 -1
  41. package/dist/components/p-DugBvwmd.js +1 -0
  42. package/dist/esm/{icons-CM7lsnuO.js → Effect-DyamyJqO.js} +4951 -1357
  43. package/dist/esm/aria-loader-DB71Xewa.js +69 -0
  44. package/dist/esm/{assets-BelZNJ1W.js → assets-CvV1KMMV.js} +1 -1
  45. package/dist/esm/icons-C69Um2xB.js +649 -0
  46. package/dist/esm/index-CekEw3_K.js +35626 -0
  47. package/dist/esm/{index-T5ljELGS.js → index-smGPjoDX.js} +3 -1
  48. package/dist/esm/index.js +5 -4
  49. package/dist/esm/lmvz-action.entry.js +1 -1
  50. package/dist/esm/lmvz-button.entry.js +6 -3
  51. package/dist/esm/lmvz-card.entry.js +2 -2
  52. package/dist/esm/lmvz-chip.entry.js +1 -1
  53. package/dist/esm/lmvz-components.js +2 -2
  54. package/dist/esm/lmvz-header.entry.js +8 -5
  55. package/dist/esm/lmvz-icon.entry.js +20 -9
  56. package/dist/esm/lmvz-input.entry.js +8 -5
  57. package/dist/esm/lmvz-menuitem.entry.js +7 -4
  58. package/dist/esm/loader.js +2 -2
  59. package/dist/esm/{reactive-controller-host-CZ3dGAjR.js → reactive-controller-host-1nFoJEdT.js} +65 -44
  60. package/dist/lmvz-components/index.esm.js +1 -1
  61. package/dist/lmvz-components/lmvz-components.esm.js +1 -1
  62. package/dist/lmvz-components/{p-d9dc29a1.entry.js → p-0e5aa1a3.entry.js} +1 -1
  63. package/dist/lmvz-components/p-5775a56c.entry.js +1 -0
  64. package/dist/lmvz-components/p-814ee542.entry.js +1 -0
  65. package/dist/lmvz-components/{p-feda2ec5.entry.js → p-9faac8f3.entry.js} +1 -1
  66. package/dist/lmvz-components/p-B3j8zrhV.js +1 -0
  67. package/dist/lmvz-components/p-BEoSvNlI.js +1 -0
  68. package/dist/lmvz-components/p-BTpia82J.js +1 -0
  69. package/dist/{components/p-CdYWDK7m.js → lmvz-components/p-D7GrtdQF.js} +1 -1
  70. package/dist/lmvz-components/p-DyamyJqO.js +1 -0
  71. package/dist/lmvz-components/p-c61f7daa.entry.js +1 -0
  72. package/dist/lmvz-components/p-c6bae21b.entry.js +1 -0
  73. package/dist/lmvz-components/p-cM67HC0Z.js +12 -0
  74. package/dist/lmvz-components/{p-980688a0.entry.js → p-d4b68381.entry.js} +1 -1
  75. package/dist/lmvz-components/p-f1559aa1.entry.js +1 -0
  76. package/dist/lmvz-components/p-smGPjoDX.js +2 -0
  77. package/dist/manifest.json +1 -1
  78. package/dist/types/components/lmvz-button/lmvz-button.d.ts +1 -0
  79. package/dist/types/components/lmvz-header/lmvz-header.d.ts +1 -0
  80. package/dist/types/components/lmvz-icon/lmvz-icon.d.ts +3 -0
  81. package/dist/types/components/lmvz-input/lmvz-input.d.ts +2 -1
  82. package/dist/types/components/lmvz-menuitem/lmvz-menuitem.d.ts +3 -1
  83. package/dist/types/index.d.ts +1 -0
  84. package/dist/types/utils/aria/aria-validation-controller.d.ts +8 -2
  85. package/hydrate/index.js +96 -39
  86. package/hydrate/index.mjs +96 -39
  87. package/package.json +6 -8
  88. package/dist/components/p-BsS3QvWn.js +0 -1
  89. package/dist/components/p-CMteT-Yo.js +0 -1
  90. package/dist/components/p-vi4YzJmv.js +0 -1
  91. package/dist/lmvz-components/p-16878d4c.entry.js +0 -1
  92. package/dist/lmvz-components/p-6e3314ab.entry.js +0 -1
  93. package/dist/lmvz-components/p-8ea1a349.entry.js +0 -1
  94. package/dist/lmvz-components/p-BoR31cjC.js +0 -1
  95. package/dist/lmvz-components/p-CZ3dGAjR.js +0 -1
  96. package/dist/lmvz-components/p-T5ljELGS.js +0 -2
  97. package/dist/lmvz-components/p-a34542fa.entry.js +0 -1
  98. package/dist/lmvz-components/p-d2bf6a3f.entry.js +0 -1
@@ -5,6 +5,8 @@ const BUILD = /* lmvz-components */ { hotModuleReplacement: false, hydratedSelec
5
5
  Stencil Client Platform v4.43.2 | MIT Licensed | https://stenciljs.com
6
6
  */
7
7
 
8
+ var Build = {
9
+ isDev: false};
8
10
  var PrimitiveType = /* @__PURE__ */ ((PrimitiveType2) => {
9
11
  PrimitiveType2["Undefined"] = "undefined";
10
12
  PrimitiveType2["Null"] = "null";
@@ -2736,4 +2738,4 @@ function transformTag(tag) {
2736
2738
  return tag;
2737
2739
  }
2738
2740
 
2739
- export { Host as H, getAssetPath as a, bootstrapLazy as b, createEvent as c, getElement as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
2741
+ export { Build as B, Host as H, getAssetPath as a, bootstrapLazy as b, createEvent as c, getElement as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
package/dist/esm/index.js CHANGED
@@ -1,7 +1,8 @@
1
- import { r as runPromise } from './icons-CM7lsnuO.js';
2
- export { c as clearIconCache } from './icons-CM7lsnuO.js';
3
- import './assets-BelZNJ1W.js';
4
- import './index-T5ljELGS.js';
1
+ export { A as ARIA_VALIDATION_RUNTIME_CHANGED_EVENT, d as disableAriaValidation, e as enableAriaValidation, i as isAriaValidationEnabled, q as queueValidation, u as useVerboseLogging } from './aria-loader-DB71Xewa.js';
2
+ export { c as clearIconCache } from './icons-C69Um2xB.js';
3
+ import { r as runPromise } from './Effect-DyamyJqO.js';
4
+ import './assets-CvV1KMMV.js';
5
+ import './index-smGPjoDX.js';
5
6
 
6
7
  const variants = ['primary', 'secondary', 'tertiary'];
7
8
  const scaleValues = ['small', 'default', 'large'];
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-T5ljELGS.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-smGPjoDX.js';
2
2
 
3
3
  const lmvzActionCss = () => `:host{display:block}`;
4
4
 
@@ -1,13 +1,15 @@
1
- import { g as getElement, r as registerInstance, c as createEvent, h, H as Host } from './index-T5ljELGS.js';
1
+ import { g as getElement, r as registerInstance, c as createEvent, h, H as Host } from './index-smGPjoDX.js';
2
2
  import { c as classNames } from './index-BfTCfPZ1.js';
3
- import { R as ReactiveControllerHost, A as AriaValidationController } from './reactive-controller-host-CZ3dGAjR.js';
3
+ import { R as ReactiveControllerHost, A as AriaValidationController } from './reactive-controller-host-1nFoJEdT.js';
4
4
  import { E as ElementActivationController } from './element-activation-controller-CN0JX9-m.js';
5
5
  import { i as inheritAriaAttributes, f as findFormByRef } from './component-B3JVFwO1.js';
6
+ import './aria-loader-DB71Xewa.js';
6
7
 
7
8
  const lmvzButtonCss = () => ` @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 { h1, h2, h3, h4, h5, h6 { margin: 0; } } :host { 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: contents; } ::slotted(*) { --lmvz-component-color: var(--lmvz-button-color); } `;
8
9
 
9
10
  const LmvzButton = class extends ReactiveControllerHost {
10
11
  get el() { return getElement(this); }
12
+ validationEl;
11
13
  inheritedAttributes = {};
12
14
  formEl = null;
13
15
  formButtonEl = null;
@@ -32,6 +34,7 @@ const LmvzButton = class extends ReactiveControllerHost {
32
34
  }
33
35
  connectedCallback() {
34
36
  this.inheritedAttributes = inheritAriaAttributes(this.el);
37
+ super.connectedCallback();
35
38
  }
36
39
  renderHiddenButton() {
37
40
  const formEl = (this.formEl = findFormByRef(this.form, this.el));
@@ -59,7 +62,7 @@ const LmvzButton = class extends ReactiveControllerHost {
59
62
  };
60
63
  render() {
61
64
  this.renderHiddenButton();
62
- return (h(Host, { key: 'cd4a63b866c801ad7f96f59d15e561a54bfe9ec2', "aria-disabled": this.disabled ? 'true' : null }, h("button", { key: 'a1e3ecb88fb84d724df4939519bb22d4b6725c1d', disabled: this.disabled, class: classNames(this.variant, { [this.scale ?? '']: !!this.scale, disabled: this.disabled }), ...this.inheritedAttributes }, h("slot", { key: 'f1fd32c993b1ef9f6d62d6f3affa169c9368df78' }))));
65
+ return (h(Host, { key: '3f3eda78349322ce5160d7aac1290a73f0adcd4a', "aria-disabled": this.disabled ? 'true' : null }, h("button", { key: 'b132404d8d5f5bf0fa7e845b562c953c5ceec36c', ref: (e) => (this.validationEl = e), disabled: this.disabled, class: classNames(this.variant, { [this.scale ?? '']: !!this.scale, disabled: this.disabled }), ...this.inheritedAttributes }, h("slot", { key: 'ce63f7f1061ec9c3f10cbcfc67998ddbf3e04c3d' }))));
63
66
  }
64
67
  static get delegatesFocus() { return true; }
65
68
  };
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-T5ljELGS.js';
2
- import { c as createAssetUrlSafely } from './assets-BelZNJ1W.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host } from './index-smGPjoDX.js';
2
+ import { c as createAssetUrlSafely } from './assets-CvV1KMMV.js';
3
3
 
4
4
  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 { 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; }`;
5
5
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host } from './index-T5ljELGS.js';
1
+ import { r as registerInstance, h, H as Host } from './index-smGPjoDX.js';
2
2
 
3
3
  const lmvzChipCss = () => `:host{display:block}`;
4
4
 
@@ -1,5 +1,5 @@
1
- import { p as promiseResolve, b as bootstrapLazy } from './index-T5ljELGS.js';
2
- export { s as setNonce } from './index-T5ljELGS.js';
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-smGPjoDX.js';
2
+ export { s as setNonce } from './index-smGPjoDX.js';
3
3
  import { g as globalScripts } from './app-globals-DQuL1Twl.js';
4
4
 
5
5
  /*
@@ -1,6 +1,7 @@
1
- import { g as getElement, r as registerInstance, h, H as Host } from './index-T5ljELGS.js';
2
- import { R as ReactiveControllerHost, A as AriaValidationController } from './reactive-controller-host-CZ3dGAjR.js';
1
+ import { g as getElement, r as registerInstance, h, H as Host } from './index-smGPjoDX.js';
2
+ import { R as ReactiveControllerHost, A as AriaValidationController } from './reactive-controller-host-1nFoJEdT.js';
3
3
  import { g as getDeepActiveElement, c as canReceiveFocus } from './component-B3JVFwO1.js';
4
+ import './aria-loader-DB71Xewa.js';
4
5
 
5
6
  class ListKeyboardNavigationController {
6
7
  host;
@@ -50,6 +51,7 @@ const lmvzHeaderCss = () => `:host{display:flex;width:100vw;flex-direction:row;a
50
51
 
51
52
  const LmvzHeader = class extends ReactiveControllerHost {
52
53
  get el() { return getElement(this); }
54
+ validationEl = this.el;
53
55
  primarySlot;
54
56
  secondarySlot;
55
57
  secondaryNav;
@@ -80,6 +82,7 @@ const LmvzHeader = class extends ReactiveControllerHost {
80
82
  this.primarySlot.addEventListener('slotchange', this.handlePrimaryNavItemsChange.bind(this));
81
83
  this.handlePrimaryNavItemsChange();
82
84
  this.secondarySlot.addEventListener('slotchange', this.handleSecondaryNavItemsChange.bind(this));
85
+ super.componentDidLoad();
83
86
  }
84
87
  handlePrimaryNavItemsChange() {
85
88
  const items = this.primaryMenuitems;
@@ -87,7 +90,7 @@ const LmvzHeader = class extends ReactiveControllerHost {
87
90
  console.warn('Primary slot has no assigned elements. Please add navigation items to the primary slot.');
88
91
  return;
89
92
  }
90
- items.forEach(el => {
93
+ items.forEach((el) => {
91
94
  el.setAttribute('aria-haspopup', 'true');
92
95
  el.setAttribute('aria-controls', `nav-secondary`);
93
96
  });
@@ -106,7 +109,7 @@ const LmvzHeader = class extends ReactiveControllerHost {
106
109
  updateElementsActive() {
107
110
  const items = this.primaryMenuitems;
108
111
  let label;
109
- items.forEach(el => {
112
+ items.forEach((el) => {
110
113
  const isActive = el.id === this.lmvzActiveNav;
111
114
  if (isActive)
112
115
  label = el.textContent || el.id;
@@ -121,7 +124,7 @@ const LmvzHeader = class extends ReactiveControllerHost {
121
124
  }
122
125
  }
123
126
  render() {
124
- return (h(Host, { key: '783c855e49e1a2447107d6205a1b2c50285ccfff', onFocus: this.delegateFocus.bind(this) }, h("div", { key: '84a78b0ed3e170c49a711fa4091f80dbc7003b2f', class: "brand" }, h("slot", { key: '76cc54f17a7bc5f825433fc56351666a93891fd2', name: "brand" }, h("lmvz-icon", { key: 'e196e43720cb4b4c3f79b3071d534b50480f6206', id: "fallback-logo-lmvz", icon: "Logo", size: "inherit", "aria-label": "Lehrmittelverlag Z\u00FCrich" }))), h("nav", { key: 'd25a719752bd4085da5ad18af94afc66e9cabd5e', "aria-label": "Hauptnavigation" }, h("div", { key: '8a12c2c53bd061b3559ce9693780e592b3d7aa32', role: "menubar", class: "primary-menubar" }, h("slot", { key: '4461632675dc657f675883e8ef618e371ace0ad7', name: "nav-primary", ref: el => (this.primarySlot = el) }), h("div", { key: 'c1dabc588ac376db667df32d3edbdd6dce60aaad', role: "menu", id: "nav-secondary", class: "secondary-menubar", hidden: !this.lmvzActiveNav, ref: el => (this.secondaryNav = el) }, h("slot", { key: '74ca44ee2f755ffe9ea3ebc19cc2b227ae22df8b', name: this.secondarySlotName, ref: el => (this.secondarySlot = el) })))), h("div", { key: 'a4d250a5fcd10390aed1f5369c28ddec9aa9ee8d', class: "actions" }, h("slot", { key: '77a499ce12d269e79221ca971cc1b203d179f459', name: "actions" }))));
127
+ return (h(Host, { key: '7c257913615a89b9be8f959b4dc43664ee474113', onFocus: this.delegateFocus.bind(this) }, h("div", { key: '70f33263e629170d1b19cbfb1a00ca1adbbe91e0', class: 'brand' }, h("slot", { key: 'd9c99c51da3210e5459684e59e66baf1622a8946', name: 'brand' }, h("lmvz-icon", { key: '18bd0e88032c023d319bc3fac43c2b09d5098893', id: 'fallback-logo-lmvz', icon: 'Logo', size: 'inherit', "aria-label": 'Lehrmittelverlag Z\u00FCrich' }))), h("nav", { key: 'c56a1e63344e42b1be26fe817705f0265bdb2bcf', "aria-label": 'Hauptnavigation' }, h("div", { key: 'fbaebcb4857b0fba7b81cc35ef6092bb98ae89f8', role: 'menubar', class: 'primary-menubar' }, h("slot", { key: '4a408eacbb41fa57d838581c18389241dce0e634', name: 'nav-primary', ref: (el) => (this.primarySlot = el) }), h("div", { key: '6229842569958c724478c6aa15adc75b07d8417e', role: 'menu', id: 'nav-secondary', class: 'secondary-menubar', hidden: !this.lmvzActiveNav, ref: (el) => (this.secondaryNav = el) }, h("slot", { key: '4dd4278eaa77cfc984e338da6bb1aa7321c6a545', name: this.secondarySlotName, ref: (el) => (this.secondarySlot = el) })))), h("div", { key: '98b7802b0dc2dfe3a7a38bf89ae2b68994734396', class: 'actions' }, h("slot", { key: '5f7682fe0ad34496b887baab7b19641a86c01acb', name: 'actions' }))));
125
128
  }
126
129
  static get watchers() { return {
127
130
  "lmvzActiveNav": [{
@@ -1,13 +1,17 @@
1
- import { g as getElement, r as registerInstance, h, H as Host } from './index-T5ljELGS.js';
2
- import { r as runPromise, f as fetchIconSvg, t as tapError, l as logError, a as catchAll, s as succeed, e as emptyDefaultSvg } from './icons-CM7lsnuO.js';
3
- import { R as ReactiveControllerHost, A as AriaValidationController } from './reactive-controller-host-CZ3dGAjR.js';
4
- import './assets-BelZNJ1W.js';
1
+ import { g as getElement, r as registerInstance, h, H as Host } from './index-smGPjoDX.js';
2
+ import { r as runPromise, t as tapError, l as logError, c as catchAll, s as succeed } from './Effect-DyamyJqO.js';
3
+ import { R as ReactiveControllerHost, A as AriaValidationController } from './reactive-controller-host-1nFoJEdT.js';
4
+ import { f as fetchIconSvg, e as emptyDefaultSvg } from './icons-C69Um2xB.js';
5
+ import './aria-loader-DB71Xewa.js';
6
+ import './assets-CvV1KMMV.js';
5
7
 
6
8
  const lmvzIconCss = () => `.sc-lmvz-icon-h{--lmvz-icon-color:var(--lmvz-component-color, var(--lmvz-semantic-color-on-surface-input-primary, #000000));display:inline-block;line-height:0;svg{display:block}svg>path{stroke:var(--lmvz-icon-color);fill:none}}[size='xs'].sc-lmvz-icon-h{svg{width:var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.69rem + 0.26vw, 1rem));height:var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))}}[size='sm'].sc-lmvz-icon-h{svg{width:var(--lmvz-component-icon-size-sm, clamp(0.88rem, 0.81rem + 0.26vw, 1.13rem));height:var(--lmvz-component-icon-size-sm, clamp(0.88rem, 0.81rem + 0.26vw, 1.13rem))}}[size='md'].sc-lmvz-icon-h{svg{width:var(--lmvz-component-icon-size-md, clamp(1rem, 0.88rem + 0.52vw, 1.5rem));height:var(--lmvz-component-icon-size-md, clamp(1rem, 0.88rem + 0.52vw, 1.5rem))}}[size='lg'].sc-lmvz-icon-h{svg{width:var(--lmvz-component-icon-size-lg, clamp(1.5rem, 1.38rem + 0.52vw, 2rem));height:var(--lmvz-component-icon-size-lg, clamp(1.5rem, 1.38rem + 0.52vw, 2rem))}}[size='inherit'].sc-lmvz-icon-h{svg{width:inherit;height:inherit}}[weight='light'].sc-lmvz-icon-h{svg>path{stroke-width:1}}[weight='medium'].sc-lmvz-icon-h{svg>path{stroke-width:1.5}}[weight='bold'].sc-lmvz-icon-h{svg>path{stroke-width:2}}[weight='filled'].sc-lmvz-icon-h{svg>path{stroke-width:2;fill:var(--lmvz-icon-color)}}`;
7
9
 
8
10
  const LmvzIcon = class extends ReactiveControllerHost {
9
11
  intersectionObserver;
12
+ ariaValidationController = new AriaValidationController(this);
10
13
  get el() { return getElement(this); }
14
+ validationEl;
11
15
  icon;
12
16
  weight = 'medium';
13
17
  size = 'md';
@@ -20,37 +24,44 @@ const LmvzIcon = class extends ReactiveControllerHost {
20
24
  constructor(hostRef) {
21
25
  super();
22
26
  registerInstance(this, hostRef);
23
- this.addController(new AriaValidationController(this));
27
+ this.addController(this.ariaValidationController);
24
28
  }
25
29
  connectedCallback() {
26
30
  this.waitUntilVisible(() => {
27
31
  this.visible = true;
28
32
  this.loadIconPathData();
29
33
  });
34
+ super.connectedCallback();
30
35
  }
31
36
  disconnectedCallback() {
32
37
  if (this.intersectionObserver) {
33
38
  this.intersectionObserver.disconnect();
34
39
  this.intersectionObserver = null;
35
40
  }
41
+ super.disconnectedCallback();
36
42
  }
37
43
  async loadIconPathData() {
38
44
  const { icon, visible } = this;
39
45
  if (!icon || !visible) {
40
46
  return;
41
47
  }
42
- this.iconData = await runPromise(fetchIconSvg(this.icon).pipe(tapError(error => logError(`Error loading icon "${icon}":`, error.message, error.cause, error.stack)), catchAll(() => succeed(emptyDefaultSvg()))));
48
+ this.iconData = await runPromise(fetchIconSvg(this.icon).pipe(tapError((error) => logError(`Error loading icon "${icon}":`, error.message, error.cause, error.stack)), catchAll(() => succeed(emptyDefaultSvg()))));
49
+ }
50
+ componentDidRender() {
51
+ this.validationEl = this.el.querySelector('svg');
52
+ this.ariaValidationController.revalidateAria();
53
+ super.componentDidRender();
43
54
  }
44
55
  render() {
45
- return h(Host, { key: 'd4c1cbfbaf39ebf6aa26415d46100763b9f89b5b', role: "img", "aria-hidden": `${this.ariaHidden}`, innerHTML: this.iconData });
56
+ return h(Host, { key: '8b1ce550253e994650fe91de38496aff7c7eccc2', role: 'img', "aria-hidden": `${this.ariaHidden}`, innerHTML: this.iconData });
46
57
  }
47
58
  waitUntilVisible(callback, rootMargin = 50) {
48
59
  if (typeof window === 'undefined' || !window.IntersectionObserver) {
49
60
  callback();
50
61
  return;
51
62
  }
52
- this.intersectionObserver = new IntersectionObserver(entries => {
53
- entries.some(entry => {
63
+ this.intersectionObserver = new IntersectionObserver((entries) => {
64
+ entries.some((entry) => {
54
65
  if (entry.isIntersecting) {
55
66
  this.intersectionObserver.disconnect();
56
67
  this.intersectionObserver = null;
@@ -1,13 +1,15 @@
1
- import { g as getElement, r as registerInstance, c as createEvent, h } from './index-T5ljELGS.js';
1
+ import { g as getElement, r as registerInstance, c as createEvent, h } from './index-smGPjoDX.js';
2
2
  import { c as classNames } from './index-BfTCfPZ1.js';
3
- import { R as ReactiveControllerHost, A as AriaValidationController } from './reactive-controller-host-CZ3dGAjR.js';
3
+ import { R as ReactiveControllerHost, A as AriaValidationController } from './reactive-controller-host-1nFoJEdT.js';
4
4
  import { a as componentOnReady } from './component-B3JVFwO1.js';
5
+ import './aria-loader-DB71Xewa.js';
5
6
 
6
7
  const lmvzInputCss = () => `@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; } } .sc-lmvz-input-h { display: block; font-family: var(--lmvz-global-font-family-default, Router); --input-radius: var(--lmvz-component-input-radius-default, 999px); --input-bg: var(--lmvz-semantic-color-surface-input-primary, #ffffff); --input-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); --input-border-color-hover: var(--lmvz-semantic-color-border-hover, #c7c7c7); --input-border-color-focus: var(--lmvz-semantic-color-status-on-selected, #0e7ab4); --input-border-width: var(--lmvz-semantic-border-width-default, 1px); --input-height: 48px; --input-padding-x: 16px; --label-color: var(--lmvz-semantic-color-on-surface-input-secondary, #7a7a7a); --input-text-color: var(--lmvz-semantic-color-on-surface-input-primary, #000000); --helper-text-color: var(--lmvz-semantic-color-on-surface-input-secondary, #7a7a7a); --error-text-color: var(--lmvz-semantic-color-status-on-danger, #e52a31); --label-floating-scale: 0.85; --label-minimized-top: -6px; --label-minimized-bg: var(--input-bg); --label-minimized-padding-x: 4px; --input-disabled-opacity: var(--lmvz-component-input-disabled-opacity, 40%); } .input-container.sc-lmvz-input { display: flex; flex-direction: column; position: relative; width: 100%; } .input-wrapper.sc-lmvz-input { background-color: var(--input-bg); border: var(--input-border-width) solid var(--input-border-color); border-radius: var(--input-radius); display: flex; align-items: center; height: var(--input-height); padding: 0 var(--input-padding-x); position: relative; transition: border-color 0.2s ease; gap: 8px; } [disabled].sc-lmvz-input-h .input-wrapper.sc-lmvz-input { opacity: var(--input-disabled-opacity); cursor: not-allowed; pointer-events: none; } .input-container.sc-lmvz-input:focus-within .input-wrapper.sc-lmvz-input { border-color: var(--input-border-color-focus); outline: 2px solid var(--input-border-color-focus); outline-offset: 2px; } .input-container.sc-lmvz-input:has(input:focus-visible) .input-wrapper.sc-lmvz-input { box-shadow: 0 0 0 3px rgb(0 86 214 / 20%); } [error].sc-lmvz-input-h .input-wrapper.sc-lmvz-input { border-color: var(--error-text-color); } [error].sc-lmvz-input-h:focus-within .input-wrapper.sc-lmvz-input { border-color: var(--error-text-color); outline-color: var(--error-text-color); } .sc-lmvz-input-h:not([disabled]) .input-wrapper.sc-lmvz-input:hover { border-color: var(--input-border-color-hover); } .label-input-group.sc-lmvz-input { position: relative; flex-grow: 1; display: flex; align-items: center; height: 100%; } label.sc-lmvz-input { position: absolute; left: 0; top: 50%; transform: translateY(-50%); color: var(--label-color); font-size: 14px; font-family: Router, sans-serif; font-weight: 400; pointer-events: none; transition: all 0.2s ease-out; background-color: transparent; padding: 0; margin: 0; line-height: normal; white-space: nowrap; } label.floating.sc-lmvz-input { top: 0; transform: translateY(-50%) scale(0.85); transform-origin: left top; background-color: var(--label-minimized-bg); padding: 0 var(--label-minimized-padding-x); left: -2px; color: var(--input-text-color); font-weight: 500; } .required-indicator.sc-lmvz-input { color: var(--error-text-color); margin-left: 2px; } input.sc-lmvz-input { border: none; background: transparent; width: 100%; height: 100%; color: var(--input-text-color); font-family: inherit; font-size: 14px; outline: none; padding: 0; margin: 0; font-weight: 400; } input.sc-lmvz-input::placeholder { color: var(--label-color); } div.sc-lmvz-input:empty { display: none; } [role='status'].sc-lmvz-input { padding-top: 8px; padding-left: 12px; font-size: 12px; color: var(--helper-text-color); font-family: Router, sans-serif; font-weight: 500; } [role='alert'].sc-lmvz-input { padding-top: 8px; padding-left: 12px; font-size: 12px; color: var(--error-text-color); font-family: Router, sans-serif; font-weight: 500; } .sc-lmvz-input-s > lmvz-button { --lmvz-button-padding: 4px; }`;
7
8
 
8
9
  let inputIdCounter = 0;
9
10
  const LmvzInput = class extends ReactiveControllerHost {
10
11
  get el() { return getElement(this); }
12
+ validationEl = this.el;
11
13
  lmvzInput;
12
14
  internals;
13
15
  nativeInputElement;
@@ -84,7 +86,7 @@ const LmvzInput = class extends ReactiveControllerHost {
84
86
  }
85
87
  async getInputElement() {
86
88
  if (!this.nativeInputElement) {
87
- await new Promise(resolve => componentOnReady(this.el, resolve));
89
+ await new Promise((resolve) => componentOnReady(this.el, resolve));
88
90
  }
89
91
  return Promise.resolve(this.nativeInputElement);
90
92
  }
@@ -105,6 +107,7 @@ const LmvzInput = class extends ReactiveControllerHost {
105
107
  }
106
108
  componentWillLoad() {
107
109
  this.initialValue = this.value;
110
+ super.componentWillLoad();
108
111
  }
109
112
  formAssociatedCallback(form) {
110
113
  if (!form)
@@ -153,9 +156,9 @@ const LmvzInput = class extends ReactiveControllerHost {
153
156
  render() {
154
157
  const hasValue = Boolean(this.value);
155
158
  const shouldFloatLabel = hasValue || Boolean(this.placeholder);
156
- return (h("div", { key: '4dffa432df9b8ca5d89c02b59cfe25b9321ca162', class: classNames('input-container', {
159
+ return (h("div", { key: '79ab97e1e1d0217d5302ca1dea7087292ef19fc7', class: classNames('input-container', {
157
160
  'interaction-filled': hasValue,
158
- }) }, h("div", { key: 'ade1cd1137acce218d458c1b66b2eb29cf887b70', class: "input-wrapper" }, h("slot", { key: '013dff3540481724658ff754bf3db0585ec3b6f4', name: "before-input" }), h("div", { key: '6587bb63c79f97c31abff5be0a91eb16374971d5', class: "label-input-group" }, h("label", { key: '2ef0a35fbd38b255423d2793415568a661476db3', htmlFor: this.inputId, class: classNames({ floating: shouldFloatLabel }) }, this.label, this.required && (h("span", { key: '0785826710ee4ecea96037cc689c34a43113552e', class: "required-indicator", "aria-hidden": "true" }, ' ', "*"))), h("input", { key: '5ad0d4b2d1c11dd89824db87e331232ba703a05e', id: this.inputId, ref: el => (this.nativeInputElement = el), type: this.type, min: this.min, max: this.max, step: this.step, value: this.value, name: this.name, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, required: this.required, form: this.form, autocomplete: this.autocomplete, inputmode: this.inputmode, autocorrect: this.autocorrect, autocapitalize: this.autocapitalize, spellcheck: this.spellcheck, autofocus: this.autofocus, minlength: this.minlength, maxlength: this.maxlength, pattern: this.pattern, "aria-invalid": this.error ? 'true' : 'false', "aria-required": this.required ? 'true' : 'false', "aria-describedby": this.describedBy, "aria-errormessage": this.errorId, onInput: this.handleInput, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur })), h("slot", { key: 'a23676cc830cac7fbf87fef81a8d05b50b831725', name: "after-input" })), h("div", { key: 'e0a05138954d70508f840b6d5c4f53e74c2f2979', id: this.helperId, role: "status" }, this.helperText || null), h("div", { key: 'fcba57be2d596b3b8aa0ac97b2fd31dc3e77e14b', id: this.errorId, role: "alert" }, (this.showErrorMessage && this.errorMessage) || null)));
161
+ }) }, h("div", { key: '9e59a33c261f610f93e1d6db3a07107f9300bbda', class: 'input-wrapper' }, h("slot", { key: 'fadb3f5e49afa817014cdbd44774462b467827f4', name: 'before-input' }), h("div", { key: '27d592787bb841fbd430c2e8ce0adc10f59b68ec', class: 'label-input-group' }, h("label", { key: 'f83f154f356660ecafde254b5437ce6c42898b54', htmlFor: this.inputId, class: classNames({ floating: shouldFloatLabel }) }, this.label, this.required && (h("span", { key: 'b51463179a2099ecd687ccd2480136379b0d0502', class: 'required-indicator', "aria-hidden": 'true' }, ' ', "*"))), h("input", { key: '30d8308f286e82fba5d2ebdad972509c06294543', id: this.inputId, ref: (el) => (this.nativeInputElement = el), type: this.type, min: this.min, max: this.max, step: this.step, value: this.value, name: this.name, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, required: this.required, form: this.form, autocomplete: this.autocomplete, inputmode: this.inputmode, autocorrect: this.autocorrect, autocapitalize: this.autocapitalize, spellcheck: this.spellcheck, autofocus: this.autofocus, minlength: this.minlength, maxlength: this.maxlength, pattern: this.pattern, "aria-invalid": this.error ? 'true' : 'false', "aria-required": this.required ? 'true' : 'false', "aria-describedby": this.describedBy, "aria-errormessage": this.errorId, onInput: this.handleInput, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur })), h("slot", { key: 'a8448a0827ce24194b21b8281d2b54eb76f24652', name: 'after-input' })), h("div", { key: '79413854b97380812c84f3128d1db053d4154008', id: this.helperId, role: 'status' }, this.helperText || null), h("div", { key: 'd34c6b421688934b69917f6da1f9bb22c220a6f9', id: this.errorId, role: 'alert' }, (this.showErrorMessage && this.errorMessage) || null)));
159
162
  }
160
163
  static get formAssociated() { return true; }
161
164
  static get watchers() { return {
@@ -1,11 +1,14 @@
1
- import { g as getElement, r as registerInstance, c as createEvent, h, H as Host } from './index-T5ljELGS.js';
2
- import { R as ReactiveControllerHost, A as AriaValidationController } from './reactive-controller-host-CZ3dGAjR.js';
1
+ import { g as getElement, r as registerInstance, c as createEvent, h, H as Host } from './index-smGPjoDX.js';
2
+ import { R as ReactiveControllerHost, A as AriaValidationController } from './reactive-controller-host-1nFoJEdT.js';
3
3
  import { E as ElementActivationController } from './element-activation-controller-CN0JX9-m.js';
4
+ import './aria-loader-DB71Xewa.js';
4
5
 
5
6
  const lmvzMenuitemCss = () => `@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; } } .sc-lmvz-menuitem-h { display: inline-flex; flex-direction: row; align-items: center; justify-content: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); border-radius: var(--lmvz-semantic-border-radius-lg, 14px); font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); padding: var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)) var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)); cursor: pointer; --lmvz-menuitem-color: var(--lmvz-semantic-color-int-on-tertiary, #545454); --lmvz-menuitem-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); background: var(--lmvz-menuitem-background); color: var(--lmvz-menuitem-color); } .sc-lmvz-menuitem-h:hover { --lmvz-menuitem-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } .sc-lmvz-menuitem-h:active { --lmvz-menuitem-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } .sc-lmvz-menuitem-h:focus-visible { z-index: 1; } [aria-expanded='true'].sc-lmvz-menuitem-h { --lmvz-menuitem-background: var(--lmvz-semantic-color-status-selected, #f1f9fe); --lmvz-menuitem-color: var(--lmvz-semantic-color-status-on-selected, #0e7ab4); }`;
6
7
 
7
8
  const LmvzMenuItem = class extends ReactiveControllerHost {
8
9
  get el() { return getElement(this); }
10
+ validationEl = this.el;
11
+ validationSlot;
9
12
  get role() {
10
13
  return 'menuitem';
11
14
  }
@@ -17,11 +20,11 @@ const LmvzMenuItem = class extends ReactiveControllerHost {
17
20
  super();
18
21
  registerInstance(this, hostRef);
19
22
  this.lmvzActivation = createEvent(this, "lmvzActivation");
20
- this.addController(new AriaValidationController(this));
23
+ this.addController(new AriaValidationController(this, { validationTiming: 'slot' }));
21
24
  this.addController(new ElementActivationController(this));
22
25
  }
23
26
  render() {
24
- return (h(Host, { key: 'c4a21e628aaf4e983d51ce7b1f38ff66c47ec3ac' }, h("slot", { key: '0040d27a11c4bdd5a49dd54f352ba7d17b53ff7b' })));
27
+ return (h(Host, { key: 'a022a198618ac628cb39c97b29cf0c332b522e79' }, h("slot", { key: 'c8dab82b31b49db3d966cacb1cf9ef5cb1763797', ref: e => (this.validationSlot = e) })));
25
28
  }
26
29
  };
27
30
  LmvzMenuItem.style = lmvzMenuitemCss();
@@ -1,5 +1,5 @@
1
- import { b as bootstrapLazy } from './index-T5ljELGS.js';
2
- export { s as setNonce } from './index-T5ljELGS.js';
1
+ import { b as bootstrapLazy } from './index-smGPjoDX.js';
2
+ export { s as setNonce } from './index-smGPjoDX.js';
3
3
  import { g as globalScripts } from './app-globals-DQuL1Twl.js';
4
4
 
5
5
  const defineCustomElements = async (win, options) => {
@@ -1,21 +1,5 @@
1
- const GLOBAL_STATE_KEY = Symbol('__lmvzAriaValidationRuntimeState');
2
- const ARIA_VALIDATION_RUNTIME_CHANGED_EVENT = 'lmvz:aria-validation-runtime-changed';
3
- const getRuntimeState = () => {
4
- const globalState = globalThis;
5
- if (!globalState[GLOBAL_STATE_KEY]) {
6
- globalState[GLOBAL_STATE_KEY] = {
7
- enabled: false,
8
- };
9
- }
10
- return globalState[GLOBAL_STATE_KEY];
11
- };
12
- const isAriaValidationEnabled = () => getRuntimeState().enabled;
13
- function queueValidation(...args) {
14
- const state = getRuntimeState();
15
- if (!state.enabled || !state.runtime)
16
- return;
17
- state.runtime.enqueueValidation(...args);
18
- }
1
+ import { i as isAriaValidationEnabled, u as useVerboseLogging, A as ARIA_VALIDATION_RUNTIME_CHANGED_EVENT, q as queueValidation } from './aria-loader-DB71Xewa.js';
2
+ import { B as Build } from './index-smGPjoDX.js';
19
3
 
20
4
  class AriaValidationController {
21
5
  host;
@@ -23,10 +7,14 @@ class AriaValidationController {
23
7
  visibilityObserver;
24
8
  elementQueued = false;
25
9
  elementValidated = false;
26
- knownValidationErrors = [];
10
+ elementLoaded = false;
11
+ static knownValidationErrors = [];
27
12
  get disabled() {
28
13
  return !isAriaValidationEnabled();
29
14
  }
15
+ get useVerboseLogging() {
16
+ return this.config?.verboseLogging || Build.isDev || useVerboseLogging();
17
+ }
30
18
  constructor(host, config) {
31
19
  this.host = host;
32
20
  this.config = config;
@@ -37,12 +25,17 @@ class AriaValidationController {
37
25
  this.checkLazyValidation();
38
26
  };
39
27
  hostDidLoad() {
28
+ this.elementLoaded = true;
40
29
  if (typeof window !== 'undefined') {
41
30
  window.addEventListener(ARIA_VALIDATION_RUNTIME_CHANGED_EVENT, this.onRuntimeConfigChange);
42
31
  }
43
32
  if (this.elementQueued || this.elementValidated)
44
33
  return;
45
- if (!this.host.el.checkVisibility()) {
34
+ if (this.config?.validationTiming === 'slot') {
35
+ this.observeSlot();
36
+ return;
37
+ }
38
+ if (!this.host.validationEl?.checkVisibility() || this.config?.validationTiming !== 'load') {
46
39
  this.observeVisibilityOnce();
47
40
  return;
48
41
  }
@@ -57,26 +50,40 @@ class AriaValidationController {
57
50
  window.removeEventListener(ARIA_VALIDATION_RUNTIME_CHANGED_EVENT, this.onRuntimeConfigChange);
58
51
  }
59
52
  }
53
+ revalidateAria() {
54
+ this.enqueueValidation();
55
+ }
56
+ observeSlot() {
57
+ this.host.validationSlot?.addEventListener('slotchange', this.enqueueValidation.bind(this));
58
+ }
60
59
  observeVisibilityOnce() {
61
- this.visibilityObserver = new IntersectionObserver(entries => {
62
- for (const entry of entries) {
63
- if (entry.target !== this.host.el)
64
- continue;
65
- if (!entry.isIntersecting)
66
- continue;
67
- this.checkLazyValidation();
68
- this.discardVisibilityObserver();
69
- }
70
- }, {
71
- root: this.host.el.parentElement,
72
- rootMargin: '0px',
73
- threshold: 0.01,
60
+ window.setTimeout(() => {
61
+ if (!this.host.validationEl)
62
+ return;
63
+ this.visibilityObserver = new IntersectionObserver((entries) => {
64
+ for (const entry of entries) {
65
+ if (entry.target !== this.host.validationEl)
66
+ continue;
67
+ if (!entry.isIntersecting)
68
+ continue;
69
+ this.checkLazyValidation();
70
+ this.discardVisibilityObserver();
71
+ }
72
+ }, {
73
+ root: this.host.validationEl?.parentElement,
74
+ rootMargin: '0px',
75
+ threshold: 0.01,
76
+ });
77
+ this.visibilityObserver.observe(this.host.validationEl);
74
78
  });
75
- this.visibilityObserver.observe(this.host.el);
76
79
  }
77
80
  checkLazyValidation() {
81
+ if (!this.elementLoaded)
82
+ return;
78
83
  if (!this.config?.reValidateOnPropChanges && (this.elementQueued || this.elementValidated))
79
84
  return;
85
+ if (!this.host.validationEl?.checkVisibility())
86
+ return;
80
87
  this.enqueueValidation();
81
88
  }
82
89
  enqueueValidation() {
@@ -84,33 +91,47 @@ class AriaValidationController {
84
91
  return;
85
92
  this.elementQueued = true;
86
93
  queueValidation({
87
- context: { include: this.host.el, exclude: this.knownValidationErrors },
94
+ context: { include: this.host.validationEl, exclude: AriaValidationController.knownValidationErrors },
88
95
  onComplete: (error, results) => {
89
96
  this.elementValidated = true;
97
+ const elementName = this.host.tagName || this.host.validationEl?.tagName || 'Element';
90
98
  if (error) {
91
- console.error('Error running ARIA validation:', error);
99
+ console.error('Error running ARIA validation:', error, elementName);
100
+ if (!this.host.validationEl?.tagName) {
101
+ console.dir(this.host);
102
+ }
92
103
  return;
93
104
  }
105
+ const message = [elementName];
94
106
  if (!results?.violations.length) {
95
- if (this.config?.verboseLogging) {
96
- console.log(`No ARIA validation violations found for ${this.host.el?.tagName || 'element'}.`);
107
+ if (this.useVerboseLogging) {
108
+ console.log(...message, 'has no ARIA violations');
109
+ if (!this.host.validationEl?.tagName) {
110
+ console.dir(this.host);
111
+ }
97
112
  }
98
113
  return;
99
114
  }
100
- const label = `ARIA validation violations found for ${this.host.el?.tagName || 'element'}`;
101
- if (this.config?.verboseLogging) {
115
+ const count = results.violations.length;
116
+ const label = [...message, results.violations.at(0).id, count > 1 ? `(+${count - 1} more)` : ''].filter(Boolean).join(' ');
117
+ if (this.useVerboseLogging) {
102
118
  console.group(label);
103
119
  }
104
120
  else {
105
121
  console.groupCollapsed(label);
106
122
  }
107
- const targets = results.violations.flatMap(violation => {
123
+ const targets = results.violations.flatMap((violation) => {
108
124
  console.dir(violation, { showHidden: true, compact: false });
109
- return violation.nodes.map(node => node.target);
125
+ return violation.nodes.map((node) => node.target);
110
126
  });
111
- console.log('element:', this.host.el);
127
+ if (this.host.validationEl) {
128
+ console.log('element:', this.host.validationEl);
129
+ }
130
+ else {
131
+ console.dir(this.host);
132
+ }
112
133
  console.groupEnd();
113
- this.knownValidationErrors.push(...targets);
134
+ AriaValidationController.knownValidationErrors.push(...targets);
114
135
  },
115
136
  });
116
137
  }
@@ -1 +1 @@
1
- import{r}from"./p-BoR31cjC.js";export{c as clearIconCache}from"./p-BoR31cjC.js";import"./p-CVf2C8dL.js";import"./p-T5ljELGS.js";const e=["primary","secondary","tertiary"],o=["small","default","large"],a=["xs","sm","md","lg"],t=[...a,"xl"],s=["text","email","password","tel","url","search","number"],n=[...a,"inherit"],l=["thin","medium","bold","filled"],i=["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 d(e){return r(e).catch((r=>{console.error("Unhandled error in Effect:",r)}))}export{i as iconNames,n as iconSizes,l as iconWeights,s as inputTypes,d as run,o as scaleValues,a as sizes,t as textSizes,e as variants}
1
+ 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-BTpia82J.js";export{c as clearIconCache}from"./p-BEoSvNlI.js";import{r}from"./p-DyamyJqO.js";import"./p-D7GrtdQF.js";import"./p-smGPjoDX.js";const a=["primary","secondary","tertiary"],o=["small","default","large"],s=["xs","sm","md","lg"],t=[...s,"xl"],n=["text","email","password","tel","url","search","number"],l=[...s,"inherit"],p=["thin","medium","bold","filled"],m=["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 h(e){return r(e).catch((e=>{console.error("Unhandled error in Effect:",e)}))}export{m as iconNames,l as iconSizes,p as iconWeights,n as inputTypes,h as run,o as scaleValues,s as sizes,t as textSizes,a as variants}
@@ -1 +1 @@
1
- import{p as e,b as a}from"./p-T5ljELGS.js";export{s as setNonce}from"./p-T5ljELGS.js";import{g as l}from"./p-DQuL1Twl.js";(()=>{const a=import.meta.url,l={};return""!==a&&(l.resourcesUrl=new URL(".",a).href),e(l)})().then((async e=>(await l(),a([["p-d2bf6a3f",[[769,"lmvz-header",{role:[2561],lmvzActiveNav:[1,"lmvz-active-nav"]},null,{lmvzActiveNav:[{handleActiveNavChange:0}]}]]],["p-feda2ec5",[[257,"lmvz-action"]]],["p-16878d4c",[[785,"lmvz-button",{ti:[2562,"tabindex"],scale:[513],variant:[513],disabled:[516],type:[1],form:[1]}]]],["p-d9dc29a1",[[774,"lmvz-card",{cardTitle:[1,"card-title"],imageUrl:[1,"image-url"],description:[1],primaryActionLabel:[1,"primary-action-label"]}]]],["p-980688a0",[[513,"lmvz-chip",{text:[1]}]]],["p-a34542fa",[[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}]}]]],["p-8ea1a349",[[774,"lmvz-menuitem",{role:[2561],ti:[2562,"tabindex"]}]]],["p-6e3314ab",[[514,"lmvz-icon",{icon:[513],weight:[513],size:[513],ariaLabel:[513,"aria-label"],iconData:[32],visible:[32]},null,{icon:[{loadIconPathData:0}]}]]]],e))));
1
+ import{p as e,b as a}from"./p-smGPjoDX.js";export{s as setNonce}from"./p-smGPjoDX.js";import{g as t}from"./p-DQuL1Twl.js";(()=>{const a=import.meta.url,t={};return""!==a&&(t.resourcesUrl=new URL(".",a).href),e(t)})().then((async e=>(await t(),a([["p-f1559aa1",[[769,"lmvz-header",{role:[2561],lmvzActiveNav:[1,"lmvz-active-nav"]},null,{lmvzActiveNav:[{handleActiveNavChange:0}]}]]],["p-9faac8f3",[[257,"lmvz-action"]]],["p-814ee542",[[785,"lmvz-button",{ti:[2562,"tabindex"],scale:[513],variant:[513],disabled:[516],type:[1],form:[1]}]]],["p-0e5aa1a3",[[774,"lmvz-card",{cardTitle:[1,"card-title"],imageUrl:[1,"image-url"],description:[1],primaryActionLabel:[1,"primary-action-label"]}]]],["p-d4b68381",[[513,"lmvz-chip",{text:[1]}]]],["p-c6bae21b",[[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}]}]]],["p-5775a56c",[[774,"lmvz-menuitem",{role:[2561],ti:[2562,"tabindex"]}]]],["p-c61f7daa",[[514,"lmvz-icon",{icon:[513],weight:[513],size:[513],ariaLabel:[513,"aria-label"],iconData:[32],visible:[32]},null,{icon:[{loadIconPathData:0}]}]]]],e))));
@@ -1 +1 @@
1
- import{r,c as e,h as t,H as a}from"./p-T5ljELGS.js";import{c as o}from"./p-CVf2C8dL.js";const m=class{constructor(t){r(this,t),this.primaryAction=e(this,"primaryAction")}cardTitle;imageUrl;description;primaryActionLabel="";primaryAction;get fallbackImage(){return o("card-placeholder.svg")}_onPrimaryClick(){this.primaryAction.emit()}_onOverflowClick(r){console.log(r)}render(){return t(a,{key:"ba2e8d9e25428c744da2470cbd677306c56b09ae",role:"article"},t("div",{key:"54ff7545559a4b6fb00c94909717234f4dfedd7c",class:"top"},t("div",{key:"7bff35f247b6e8aca9b6346103139daa65ca16a3",class:"image-wrapper",style:{backgroundImage:`url(${this.imageUrl??this.fallbackImage})`}},t("div",{key:"c2c3d21227175b9dc0a55c75294f6c21bc713a26",class:"chip-slot"},t("slot",{key:"1a7002aab5fc3f9f698c3d1678f8819ea36f91d3",name:"chip"})))),t("div",{key:"a313321abe4da83db4b2ba64fdefa28edde93d41",class:"bottom"},t("header",{key:"f5ba333fcaa59d5b4f61dee94aba4628f49db9d7"},t("h2",{key:"b7d9ad6944b136476703cde89f885b189583eef1",class:"title"},this.cardTitle)),t("p",{key:"6594626904a4f9fbc53d5956b71bbdefe00add8c",class:"description"},this.description),t("div",{key:"d8bbfebeb572fcf6990160a0dba7c5ae8a5a7fc7",class:"actions"},t("button",{key:"6311a97a18412f8fbf8eb33e8a0f7a17700e71c6",class:"primary",onClick:this._onPrimaryClick.bind(this),"data-testid":"primary"},this.primaryActionLabel),t("button",{key:"12033ad5018d100f84f0149d83dc965d8e5b2c66",class:"tertiary","aria-label":"More actions",onClick:this._onOverflowClick},t("span",{key:"e11f8008542b4f7f70d1273bb31200c50d02aabb",class:"icon-placeholder"},"...")))))}static get assetsDirs(){return["../../assets"]}};m.style="@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 { 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; }";export{m as lmvz_card}
1
+ import{r,c as e,h as t,H as a}from"./p-smGPjoDX.js";import{c as o}from"./p-D7GrtdQF.js";const m=class{constructor(t){r(this,t),this.primaryAction=e(this,"primaryAction")}cardTitle;imageUrl;description;primaryActionLabel="";primaryAction;get fallbackImage(){return o("card-placeholder.svg")}_onPrimaryClick(){this.primaryAction.emit()}_onOverflowClick(r){console.log(r)}render(){return t(a,{key:"ba2e8d9e25428c744da2470cbd677306c56b09ae",role:"article"},t("div",{key:"54ff7545559a4b6fb00c94909717234f4dfedd7c",class:"top"},t("div",{key:"7bff35f247b6e8aca9b6346103139daa65ca16a3",class:"image-wrapper",style:{backgroundImage:`url(${this.imageUrl??this.fallbackImage})`}},t("div",{key:"c2c3d21227175b9dc0a55c75294f6c21bc713a26",class:"chip-slot"},t("slot",{key:"1a7002aab5fc3f9f698c3d1678f8819ea36f91d3",name:"chip"})))),t("div",{key:"a313321abe4da83db4b2ba64fdefa28edde93d41",class:"bottom"},t("header",{key:"f5ba333fcaa59d5b4f61dee94aba4628f49db9d7"},t("h2",{key:"b7d9ad6944b136476703cde89f885b189583eef1",class:"title"},this.cardTitle)),t("p",{key:"6594626904a4f9fbc53d5956b71bbdefe00add8c",class:"description"},this.description),t("div",{key:"d8bbfebeb572fcf6990160a0dba7c5ae8a5a7fc7",class:"actions"},t("button",{key:"6311a97a18412f8fbf8eb33e8a0f7a17700e71c6",class:"primary",onClick:this._onPrimaryClick.bind(this),"data-testid":"primary"},this.primaryActionLabel),t("button",{key:"12033ad5018d100f84f0149d83dc965d8e5b2c66",class:"tertiary","aria-label":"More actions",onClick:this._onOverflowClick},t("span",{key:"e11f8008542b4f7f70d1273bb31200c50d02aabb",class:"icon-placeholder"},"...")))))}static get assetsDirs(){return["../../assets"]}};m.style="@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 { 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; }";export{m as lmvz_card}