@lmvz-ds/components 0.22.1 → 0.24.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.
Files changed (113) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/cjs/{aria-loader-Cec1zR2g.js → aria-loader-BRo2FTGh.js} +1 -0
  3. package/cjs/index.cjs.js +1 -1
  4. package/cjs/lmvz-button_3.cjs.entry.js +375 -0
  5. package/cjs/lmvz-card.cjs.entry.js +2 -2
  6. package/cjs/lmvz-checkbox.cjs.entry.js +4 -4
  7. package/cjs/lmvz-chip.cjs.entry.js +3 -3
  8. package/cjs/lmvz-components.cjs.js +1 -1
  9. package/cjs/lmvz-header_2.cjs.entry.js +3 -3
  10. package/cjs/lmvz-input.cjs.entry.js +5 -5
  11. package/cjs/lmvz-menuitem.cjs.entry.js +4 -4
  12. package/cjs/lmvz-modal.cjs.entry.js +6 -109
  13. package/cjs/lmvz-select.cjs.entry.js +4 -4
  14. package/cjs/lmvz-toggle.cjs.entry.js +4 -4
  15. package/cjs/loader.cjs.js +1 -1
  16. package/cjs/{reactive-controller-host-DnSTWHCF.js → reactive-controller-host-BOFg4vL-.js} +1 -1
  17. package/collection/collection-manifest.json +1 -0
  18. package/collection/components/lmvz-button/lmvz-button.css +60 -41
  19. package/collection/components/lmvz-button/lmvz-button.js +6 -7
  20. package/collection/components/lmvz-button-group/lmvz-button-group.css +14 -0
  21. package/collection/components/lmvz-button-group/lmvz-button-group.js +216 -0
  22. package/collection/components/lmvz-card/lmvz-card.css +59 -40
  23. package/collection/components/lmvz-card/lmvz-card.js +1 -1
  24. package/collection/components/lmvz-checkbox/lmvz-checkbox.css +12 -8
  25. package/collection/components/lmvz-checkbox/lmvz-checkbox.js +1 -1
  26. package/collection/components/lmvz-chip/lmvz-chip.js +1 -1
  27. package/collection/components/lmvz-header/lmvz-header.js +1 -1
  28. package/collection/components/lmvz-icon/lmvz-icon.js +1 -1
  29. package/collection/components/lmvz-input/lmvz-input.css +12 -8
  30. package/collection/components/lmvz-input/lmvz-input.js +2 -2
  31. package/collection/components/lmvz-menuitem/lmvz-menuitem.css +12 -8
  32. package/collection/components/lmvz-menuitem/lmvz-menuitem.js +1 -1
  33. package/collection/components/lmvz-modal/lmvz-modal.css +36 -38
  34. package/collection/components/lmvz-modal/lmvz-modal.js +4 -108
  35. package/collection/components/lmvz-select/lmvz-select.css +12 -8
  36. package/collection/components/lmvz-select/lmvz-select.js +1 -1
  37. package/collection/components/lmvz-toggle/lmvz-toggle.css +12 -8
  38. package/collection/components/lmvz-toggle/lmvz-toggle.js +1 -1
  39. package/collection/integration/header-integration/header-integration.js +1 -1
  40. package/components/index.d.ts +2 -0
  41. package/components/index.d.ts.bak +2 -0
  42. package/components/index.js +1 -1
  43. package/components/lmvz-button-group.d.ts +11 -0
  44. package/components/lmvz-button-group.d.ts.bak +11 -0
  45. package/components/lmvz-button-group.js +1 -0
  46. package/components/lmvz-button.js +1 -1
  47. package/components/lmvz-card.js +1 -1
  48. package/components/lmvz-checkbox.js +1 -1
  49. package/components/lmvz-chip.js +1 -1
  50. package/components/lmvz-header.js +1 -1
  51. package/components/lmvz-icon.js +1 -1
  52. package/components/lmvz-input.js +1 -1
  53. package/components/lmvz-menuitem.js +1 -1
  54. package/components/lmvz-modal.js +1 -1
  55. package/components/lmvz-select.js +1 -1
  56. package/components/lmvz-toggle.js +1 -1
  57. package/components/p-CcnyKhAw.js +1 -0
  58. package/components/p-CdDO7mQa.js +1 -0
  59. package/components/p-Cg2XX_J-.js +1 -0
  60. package/components/p-DSvYtVoD.js +1 -0
  61. package/components/p-slgmfnHm.js +1 -0
  62. package/esm/{aria-loader-BVolm0lC.js → aria-loader-GfsGHZHY.js} +1 -1
  63. package/esm/index.js +1 -1
  64. package/esm/lmvz-button_3.entry.js +371 -0
  65. package/esm/lmvz-card.entry.js +2 -2
  66. package/esm/lmvz-checkbox.entry.js +4 -4
  67. package/esm/lmvz-chip.entry.js +3 -3
  68. package/esm/lmvz-components.js +1 -1
  69. package/esm/lmvz-header_2.entry.js +3 -3
  70. package/esm/lmvz-input.entry.js +5 -5
  71. package/esm/lmvz-menuitem.entry.js +4 -4
  72. package/esm/lmvz-modal.entry.js +6 -109
  73. package/esm/lmvz-select.entry.js +4 -4
  74. package/esm/lmvz-toggle.entry.js +4 -4
  75. package/esm/loader.js +1 -1
  76. package/esm/{reactive-controller-host-lF2kXM1x.js → reactive-controller-host-CroMsXdS.js} +1 -1
  77. package/hydrate/index.js +273 -189
  78. package/hydrate/index.mjs +273 -189
  79. package/lmvz-components/index.esm.js +1 -1
  80. package/lmvz-components/lmvz-components.esm.js +1 -1
  81. package/lmvz-components/p-2824a56b.entry.js +1 -0
  82. package/lmvz-components/p-4263c9b2.entry.js +1 -0
  83. package/lmvz-components/p-4f5c3c4a.entry.js +1 -0
  84. package/lmvz-components/p-6f8cbc4f.entry.js +1 -0
  85. package/lmvz-components/p-88adb9fa.entry.js +1 -0
  86. package/lmvz-components/{p-DCTzMRMQ.js → p-BRl6zKXT.js} +1 -1
  87. package/lmvz-components/p-CdDO7mQa.js +1 -0
  88. package/lmvz-components/p-a7c3074a.entry.js +1 -0
  89. package/lmvz-components/p-b3b04d46.entry.js +1 -0
  90. package/lmvz-components/p-d1dacf7e.entry.js +1 -0
  91. package/lmvz-components/{p-d984e118.entry.js → p-f6d1d9df.entry.js} +1 -1
  92. package/lmvz-components/p-fefefc54.entry.js +1 -0
  93. package/manifest.json +111 -12
  94. package/package.json +5 -1
  95. package/types/components/lmvz-button/lmvz-button.d.ts +1 -1
  96. package/types/components/lmvz-button-group/lmvz-button-group.d.ts +20 -0
  97. package/types/components/lmvz-modal/lmvz-modal.d.ts +1 -16
  98. package/types/components.d.ts +27 -3
  99. package/cjs/lmvz-button_2.cjs.entry.js +0 -198
  100. package/components/p-Boj0PCdB.js +0 -1
  101. package/components/p-Cc6dOWwS.js +0 -1
  102. package/components/p-DBc1BzQb.js +0 -1
  103. package/esm/lmvz-button_2.entry.js +0 -195
  104. package/lmvz-components/p-08a08b63.entry.js +0 -1
  105. package/lmvz-components/p-1b181e90.entry.js +0 -1
  106. package/lmvz-components/p-23fb2476.entry.js +0 -1
  107. package/lmvz-components/p-6bb145e4.entry.js +0 -1
  108. package/lmvz-components/p-7a310b1e.entry.js +0 -1
  109. package/lmvz-components/p-b7940687.entry.js +0 -1
  110. package/lmvz-components/p-db8306a5.entry.js +0 -1
  111. package/lmvz-components/p-dhVSUYqd.js +0 -1
  112. package/lmvz-components/p-ea335543.entry.js +0 -1
  113. package/lmvz-components/p-f8ea0eb2.entry.js +0 -1
@@ -56,9 +56,19 @@ export declare namespace Components {
56
56
  "value"?: string;
57
57
  /**
58
58
  * Variant of the button
59
- * @default 'secondary', since the primary button should be marked as such in context
59
+ * @default 'secondary'
60
60
  */
61
- "variant": Button.Variant;
61
+ "variant"?: Button.Variant;
62
+ }
63
+ export interface LmvzButtonGroup {
64
+ /**
65
+ * @readonly
66
+ */
67
+ "hasActions": boolean;
68
+ /**
69
+ * @readonly
70
+ */
71
+ "primaryEnabledAction": HTMLButtonElement | undefined;
62
72
  }
63
73
  export interface LmvzCard {
64
74
  /**
@@ -566,10 +576,20 @@ export declare namespace JSX {
566
576
  "value"?: string;
567
577
  /**
568
578
  * Variant of the button
569
- * @default 'secondary', since the primary button should be marked as such in context
579
+ * @default 'secondary'
570
580
  */
571
581
  "variant"?: Button.Variant;
572
582
  }
583
+ export interface LmvzButtonGroup {
584
+ /**
585
+ * @readonly
586
+ */
587
+ "hasActions"?: boolean;
588
+ /**
589
+ * @readonly
590
+ */
591
+ "primaryEnabledAction"?: HTMLButtonElement | undefined;
592
+ }
573
593
  export interface LmvzCard {
574
594
  /**
575
595
  * Card title (required)
@@ -989,6 +1009,9 @@ export declare namespace JSX {
989
1009
  "name": string;
990
1010
  "value": string;
991
1011
  }
1012
+ export interface LmvzButtonGroupAttributes {
1013
+ "hasActions": boolean;
1014
+ }
992
1015
  export interface LmvzCardAttributes {
993
1016
  "cardTitle": string;
994
1017
  "imageUrl": string;
@@ -1078,6 +1101,7 @@ export declare namespace JSX {
1078
1101
  export interface IntrinsicElements {
1079
1102
  "lmvz-action": LmvzAction;
1080
1103
  "lmvz-button": Omit<LmvzButton, keyof LmvzButtonAttributes> & { [K in keyof LmvzButton & keyof LmvzButtonAttributes]?: LmvzButton[K] } & { [K in keyof LmvzButton & keyof LmvzButtonAttributes as `attr:${K}`]?: LmvzButtonAttributes[K] } & { [K in keyof LmvzButton & keyof LmvzButtonAttributes as `prop:${K}`]?: LmvzButton[K] };
1104
+ "lmvz-button-group": Omit<LmvzButtonGroup, keyof LmvzButtonGroupAttributes> & { [K in keyof LmvzButtonGroup & keyof LmvzButtonGroupAttributes]?: LmvzButtonGroup[K] } & { [K in keyof LmvzButtonGroup & keyof LmvzButtonGroupAttributes as `attr:${K}`]?: LmvzButtonGroupAttributes[K] } & { [K in keyof LmvzButtonGroup & keyof LmvzButtonGroupAttributes as `prop:${K}`]?: LmvzButtonGroup[K] };
1081
1105
  "lmvz-card": Omit<LmvzCard, keyof LmvzCardAttributes> & { [K in keyof LmvzCard & keyof LmvzCardAttributes]?: LmvzCard[K] } & { [K in keyof LmvzCard & keyof LmvzCardAttributes as `attr:${K}`]?: LmvzCardAttributes[K] } & { [K in keyof LmvzCard & keyof LmvzCardAttributes as `prop:${K}`]?: LmvzCard[K] } & OneOf<"cardTitle", LmvzCard["cardTitle"], LmvzCardAttributes["cardTitle"]>;
1082
1106
  "lmvz-checkbox": Omit<LmvzCheckbox, keyof LmvzCheckboxAttributes> & { [K in keyof LmvzCheckbox & keyof LmvzCheckboxAttributes]?: LmvzCheckbox[K] } & { [K in keyof LmvzCheckbox & keyof LmvzCheckboxAttributes as `attr:${K}`]?: LmvzCheckboxAttributes[K] } & { [K in keyof LmvzCheckbox & keyof LmvzCheckboxAttributes as `prop:${K}`]?: LmvzCheckbox[K] } & OneOf<"label", LmvzCheckbox["label"], LmvzCheckboxAttributes["label"]>;
1083
1107
  "lmvz-chip": Omit<LmvzChip, keyof LmvzChipAttributes> & { [K in keyof LmvzChip & keyof LmvzChipAttributes]?: LmvzChip[K] } & { [K in keyof LmvzChip & keyof LmvzChipAttributes as `attr:${K}`]?: LmvzChipAttributes[K] } & { [K in keyof LmvzChip & keyof LmvzChipAttributes as `prop:${K}`]?: LmvzChip[K] };
@@ -1,198 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('./index-lW-SEvL7.js');
4
- var index$1 = require('./index-Bp6Dd2i1.js');
5
- var reactiveControllerHost = require('./reactive-controller-host-DnSTWHCF.js');
6
- var elementActivationController = require('./element-activation-controller-DC_6T0Rt.js');
7
- var component = require('./component-C7cavwmZ.js');
8
- var svg = require('./svg-BMBduILB.js');
9
- var icons = require('./icons-BQASWgk-.js');
10
- require('./aria-loader-Cec1zR2g.js');
11
- require('./logger-DsM6xg6V.js');
12
-
13
- 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 { body { margin: 0; } 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-on-active, #0e7ab4); 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, #0f8acc); } 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); } `;
14
-
15
- const LmvzButton = class extends reactiveControllerHost.ReactiveControllerHost {
16
- get el() { return index.getElement(this); }
17
- validationEl;
18
- inheritedAttributes = {};
19
- formEl = null;
20
- formButtonEl = null;
21
- lmvzActivation;
22
- get ti() {
23
- return 0;
24
- }
25
- scale = 'default';
26
- variant = 'secondary';
27
- disabled = false;
28
- type = 'button';
29
- form;
30
- formMethod;
31
- name;
32
- value;
33
- constructor(hostRef) {
34
- super();
35
- index.registerInstance(this, hostRef);
36
- this.lmvzActivation = index.createEvent(this, "lmvzActivation", 7);
37
- this.addController(new reactiveControllerHost.AriaValidationController(this));
38
- this.addController(new elementActivationController.ElementActivationController(this, {
39
- localHandler: this.handleClick.bind(this),
40
- keys: ['Enter'],
41
- }));
42
- }
43
- connectedCallback() {
44
- this.inheritedAttributes = component.inheritAriaAttributes(this.el);
45
- super.connectedCallback();
46
- }
47
- disconnectedCallback() {
48
- this.formButtonEl?.remove();
49
- this.formButtonEl = null;
50
- this.formEl = null;
51
- super.disconnectedCallback();
52
- }
53
- renderHiddenButton() {
54
- if (this.type !== 'submit') {
55
- this.formButtonEl?.remove();
56
- this.formButtonEl = null;
57
- this.formEl = null;
58
- return;
59
- }
60
- const formEl = component.findFormByRef(this.form, this.el);
61
- if (!formEl) {
62
- this.formButtonEl?.remove();
63
- this.formButtonEl = null;
64
- this.formEl = null;
65
- return;
66
- }
67
- this.formEl = formEl;
68
- const formButtonEl = this.formButtonEl ?? document.createElement('button');
69
- formButtonEl.type = 'submit';
70
- formButtonEl.style.display = 'none';
71
- formButtonEl.disabled = this.disabled;
72
- formButtonEl.name = this.name ?? '';
73
- formButtonEl.value = this.value ?? '';
74
- if (this.formMethod) {
75
- formButtonEl.setAttribute('formmethod', this.formMethod);
76
- }
77
- else {
78
- formButtonEl.removeAttribute('formmethod');
79
- }
80
- if (this.formButtonEl !== formButtonEl) {
81
- this.formButtonEl = formButtonEl;
82
- }
83
- if (formButtonEl.parentElement !== formEl) {
84
- formButtonEl.remove();
85
- formEl.appendChild(formButtonEl);
86
- }
87
- }
88
- submitForm(ev) {
89
- if (this.formEl && this.formButtonEl) {
90
- ev.preventDefault();
91
- this.formButtonEl.click();
92
- }
93
- }
94
- handleClick = (ev) => {
95
- if (this.type === 'submit') {
96
- this.submitForm(ev);
97
- }
98
- };
99
- render() {
100
- this.renderHiddenButton();
101
- return (index.h(index.Host, { key: '6c44aa8a4b40927313461b5139e88066b855dca6', "aria-disabled": this.disabled ? 'true' : null }, index.h("button", { key: '3696f0ad46a03fe9573571b46a56772def87bf53', ref: (e) => (this.validationEl = e), disabled: this.disabled, type: this.type, class: index$1.classNames(this.variant, { [this.scale ?? '']: !!this.scale, disabled: this.disabled }), ...this.inheritedAttributes }, index.h("slot", { key: '3ecce9c6ae978b72b14a807d93248a4566a13f4b' }))));
102
- }
103
- static get delegatesFocus() { return true; }
104
- };
105
- LmvzButton.style = lmvzButtonCss();
106
-
107
- const lmvzIconCss = () => `.sc-lmvz-icon-h{--lmvz-icon-color:var(--lmvz-component-color, var(--lmvz-semantic-color-on-surface-input-primary, #000000));--lmvz-icon-size:var(--lmvz-component-size, var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem)));display:inline-block;line-height:0;svg{display:block;height:var(--lmvz-icon-size);width:auto}svg path{stroke:var(--lmvz-icon-color);fill:none}}[size='xs'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem))}}[size='sm'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-sm, clamp(0.88rem, 0.84rem + 0.13vw, 1rem))}}[size='md'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem))}}[size='lg'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-lg, clamp(1.5rem, 1.44rem + 0.26vw, 1.75rem))}}[size='inherit'].sc-lmvz-icon-h{svg{height:var(--lmvz-component-size, 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)}}`;
108
-
109
- const LmvzIcon = class extends reactiveControllerHost.ReactiveControllerHost {
110
- intersectionObserver;
111
- ariaValidationController = new reactiveControllerHost.AriaValidationController(this);
112
- get el() { return index.getElement(this); }
113
- validationEl;
114
- icon;
115
- weight = 'medium';
116
- size = 'md';
117
- iconset;
118
- iconData;
119
- visible = false;
120
- ariaLabel;
121
- get ariaHidden() {
122
- return !this.ariaLabel;
123
- }
124
- constructor(hostRef) {
125
- super();
126
- index.registerInstance(this, hostRef);
127
- this.addController(this.ariaValidationController);
128
- }
129
- connectedCallback() {
130
- this.waitUntilVisible(() => {
131
- this.visible = true;
132
- this.loadIconPathData();
133
- });
134
- super.connectedCallback();
135
- }
136
- disconnectedCallback() {
137
- if (this.intersectionObserver && typeof this.intersectionObserver.disconnect === 'function') {
138
- this.intersectionObserver.disconnect();
139
- }
140
- this.intersectionObserver = undefined;
141
- super.disconnectedCallback();
142
- }
143
- async loadIconPathData() {
144
- const { icon, iconset, visible } = this;
145
- if (!icon || !visible) {
146
- return;
147
- }
148
- const maybeIcon = svg.parseSvgString(icon);
149
- if (maybeIcon) {
150
- this.iconData = maybeIcon;
151
- return;
152
- }
153
- this.iconData = await icons.resolveIconSvg({
154
- icon,
155
- iconset,
156
- });
157
- }
158
- componentDidRender() {
159
- this.validationEl = this.el.querySelector('svg');
160
- this.ariaValidationController.revalidateAria();
161
- super.componentDidRender();
162
- }
163
- render() {
164
- return index.h(index.Host, { key: 'e76fe28500b3545b8917ecdad590da5bc04ed38f', role: "img", "aria-hidden": `${this.ariaHidden}`, innerHTML: this.iconData });
165
- }
166
- waitUntilVisible(callback, rootMargin = 50) {
167
- if (typeof window === 'undefined' || !window.IntersectionObserver) {
168
- callback();
169
- return;
170
- }
171
- this.intersectionObserver = new IntersectionObserver((entries) => {
172
- entries.some((entry) => {
173
- if (entry.isIntersecting) {
174
- if (this.intersectionObserver && typeof this.intersectionObserver.disconnect === 'function') {
175
- this.intersectionObserver.disconnect();
176
- }
177
- this.intersectionObserver = undefined;
178
- callback();
179
- return true;
180
- }
181
- return false;
182
- });
183
- }, { rootMargin: `${rootMargin}px` });
184
- this.intersectionObserver.observe(this.el);
185
- }
186
- static get watchers() { return {
187
- "icon": [{
188
- "loadIconPathData": 0
189
- }],
190
- "iconset": [{
191
- "loadIconPathData": 0
192
- }]
193
- }; }
194
- };
195
- LmvzIcon.style = lmvzIconCss();
196
-
197
- exports.lmvz_button = LmvzButton;
198
- exports.lmvz_icon = LmvzIcon;
@@ -1 +0,0 @@
1
- import{p as i,h as e,H as o,t as n}from"./p-CK8cAKcB.js";import{t,e as s,p as c}from"./p-CcxjkCOx.js";import{R as r,a}from"./p-DBc1BzQb.js";const l=Symbol.for("LMVZ__iconProviderRegistry"),m={};function v(){return"undefined"==typeof window?m:window[l]??(window[l]={})}function h(i,e){const o=v(),n=i;Object.prototype.hasOwnProperty.call(o,n)&&console.warn(`Icon provider with name "${n}" is already registered. Overwriting existing provider.`),o[n]=e}function d(i){const e=v();if(i)return e[i];const o=Object.keys(e);if(0===o.length)return;o.length>1&&console.warn(`Multiple icon providers registered (${o.join(", ")}). Using the first one: "${o[0]}".`);const n=o[0];return n?e[n]:void 0}function z(i,e){return{iconset:i,icon:e}}const p=i(class extends r{intersectionObserver;ariaValidationController=new a(this);get el(){return this}validationEl;icon;weight="medium";size="md";iconset;iconData;visible=!1;ariaLabel;get ariaHidden(){return!this.ariaLabel}constructor(i){super(!1),!1!==i&&this.__registerHost(),this.addController(this.ariaValidationController)}connectedCallback(){this.waitUntilVisible((()=>{this.visible=!0,this.loadIconPathData()})),super.connectedCallback()}disconnectedCallback(){this.intersectionObserver&&"function"==typeof this.intersectionObserver.disconnect&&this.intersectionObserver.disconnect(),this.intersectionObserver=void 0,super.disconnectedCallback()}async loadIconPathData(){const{icon:i,iconset:e,visible:o}=this;if(!i||!o)return;const n=c(i);this.iconData=n||await async function(i){const{icon:e,iconset:o}=i;return await(async()=>{const i=d(o);if(i)try{const n=await Promise.resolve(i.resolve(e));if(!n?.svg)return void console.warn(`Icon "${e}"${o?` from set "${o}"`:""} not found in provider. Using default icon.`);const s=t(n.svg);if(s)return s}catch(i){return void console.error(`Error resolving icon "${e}" with provider:`,i)}else console.warn(`No icon provider registered. Unable to resolve icon "${e}"${o?` from set "${o}"`:""}. Using default icon.`)})()||(console.error(`Icon "${e}" not found${o?` in set "${o}"`:""}. Using default icon.`),s())}({icon:i,iconset:e})}componentDidRender(){this.validationEl=this.el.querySelector("svg"),this.ariaValidationController.revalidateAria(),super.componentDidRender()}render(){return e(o,{key:"e76fe28500b3545b8917ecdad590da5bc04ed38f",role:"img","aria-hidden":`${this.ariaHidden}`,innerHTML:this.iconData})}waitUntilVisible(i,e=50){"undefined"!=typeof window&&window.IntersectionObserver?(this.intersectionObserver=new IntersectionObserver((e=>{e.some((e=>!!e.isIntersecting&&(this.intersectionObserver&&"function"==typeof this.intersectionObserver.disconnect&&this.intersectionObserver.disconnect(),this.intersectionObserver=void 0,i(),!0)))}),{rootMargin:`${e}px`}),this.intersectionObserver.observe(this.el)):i()}static get watchers(){return{icon:[{loadIconPathData:0}],iconset:[{loadIconPathData:0}]}}static get style(){return".sc-lmvz-icon-h{--lmvz-icon-color:var(--lmvz-component-color, var(--lmvz-semantic-color-on-surface-input-primary, #000000));--lmvz-icon-size:var(--lmvz-component-size, var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem)));display:inline-block;line-height:0;svg{display:block;height:var(--lmvz-icon-size);width:auto}svg path{stroke:var(--lmvz-icon-color);fill:none}}[size='xs'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem))}}[size='sm'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-sm, clamp(0.88rem, 0.84rem + 0.13vw, 1rem))}}[size='md'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem))}}[size='lg'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-lg, clamp(1.5rem, 1.44rem + 0.26vw, 1.75rem))}}[size='inherit'].sc-lmvz-icon-h{svg{height:var(--lmvz-component-size, 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)}}"}},[514,"lmvz-icon",{icon:[513],weight:[513],size:[513],iconset:[513],ariaLabel:[513,"aria-label"],iconData:[32],visible:[32]},void 0,{icon:[{loadIconPathData:0}],iconset:[{loadIconPathData:0}]}]);function u(){"undefined"!=typeof customElements&&["lmvz-icon"].forEach((i=>{"lmvz-icon"===i&&(customElements.get(n(i))||customElements.define(n(i),p))}))}export{p as L,u as d,d as g,h as r,z as t}
@@ -1 +0,0 @@
1
- import{p as t,c as o,h as e,H as r,t as n}from"./p-CK8cAKcB.js";import{c as a}from"./p-BfTCfPZ1.js";import{R as l,a as i}from"./p-DBc1BzQb.js";import{E as m}from"./p-CN0JX9-m.js";import{i as s,f as d}from"./p-DOTK1OW3.js";const c=t(class extends l{get el(){return this}validationEl;inheritedAttributes={};formEl=null;formButtonEl=null;lmvzActivation;get ti(){return 0}scale="default";variant="secondary";disabled=!1;type="button";form;formMethod;name;value;constructor(t){super(!1),!1!==t&&this.__registerHost(),this.__attachShadow(),this.lmvzActivation=o(this,"lmvzActivation",7),this.addController(new i(this)),this.addController(new m(this,{localHandler:this.handleClick.bind(this),keys:["Enter"]}))}connectedCallback(){this.inheritedAttributes=s(this.el),super.connectedCallback()}disconnectedCallback(){this.formButtonEl?.remove(),this.formButtonEl=null,this.formEl=null,super.disconnectedCallback()}renderHiddenButton(){if("submit"!==this.type)return this.formButtonEl?.remove(),this.formButtonEl=null,void(this.formEl=null);const t=d(this.form,this.el);if(!t)return this.formButtonEl?.remove(),this.formButtonEl=null,void(this.formEl=null);this.formEl=t;const o=this.formButtonEl??document.createElement("button");o.type="submit",o.style.display="none",o.disabled=this.disabled,o.name=this.name??"",o.value=this.value??"",this.formMethod?o.setAttribute("formmethod",this.formMethod):o.removeAttribute("formmethod"),this.formButtonEl!==o&&(this.formButtonEl=o),o.parentElement!==t&&(o.remove(),t.appendChild(o))}submitForm(t){this.formEl&&this.formButtonEl&&(t.preventDefault(),this.formButtonEl.click())}handleClick=t=>{"submit"===this.type&&this.submitForm(t)};render(){return this.renderHiddenButton(),e(r,{key:"6c44aa8a4b40927313461b5139e88066b855dca6","aria-disabled":this.disabled?"true":null},e("button",{key:"3696f0ad46a03fe9573571b46a56772def87bf53",ref:t=>this.validationEl=t,disabled:this.disabled,type:this.type,class:a(this.variant,{[this.scale??""]:!!this.scale,disabled:this.disabled}),...this.inheritedAttributes},e("slot",{key:"3ecce9c6ae978b72b14a807d93248a4566a13f4b"})))}static get delegatesFocus(){return!0}static get style(){return" @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; } } :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-on-active, #0e7ab4); 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, #0f8acc); } 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); } "}},[785,"lmvz-button",{ti:[2562,"tabindex"],scale:[513],variant:[513],disabled:[516],type:[1],form:[1],formMethod:[1,"form-method"],name:[1],value:[1]}]);function v(){"undefined"!=typeof customElements&&["lmvz-button"].forEach((t=>{"lmvz-button"===t&&(customElements.get(n(t))||customElements.define(n(t),c))}))}export{c as L,v as d}
@@ -1 +0,0 @@
1
- import{B as t,d as i}from"./p-CK8cAKcB.js";const o=Symbol("LMVZ__ariaValidationRuntimeState"),e="lmvz:aria-validation-runtime-changed";function n(){const t=globalThis;return t[o]||(t[o]={enabled:!1}),t[o]}function s(){"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent(e))}const a=()=>n().enabled,r=()=>n().verboseLogging??!1,l=(t={})=>{const i=n();i.enabled||(Object.assign(i,t),i.enabled=!0,async function(...t){const i=await async function(){const t=n();if(!t.enabled)return null;if(t.runtime)return t.runtime;t.loadPromise||(t.loadPromise=import("./p-0s99QfRy.js").catch((()=>null)));const i=await t.loadPromise;return i&&(t.runtime=i),i}();n().enabled&&(i?i.initializeValidationStream(...t):console.warn("Failed to load aria validation runtime"))}().then((()=>{s()})))},h=()=>{const t=n();t.enabled&&(t.enabled=!1,s())};function c(...t){const{enabled:i,runtime:o,loadPromise:e,lazyCondition:s}=n();if(i){if(!s)return a();(function(t,i=[]){const o=t(...i);return(e=o)&&"object"==typeof e&&"function"==typeof e.then?o:Promise.resolve(o);var e})(s).then((t=>{t&&a()}))}function a(){if(o)return o.enqueueValidation(...t);e?e.then((i=>{i?.enqueueValidation?i.enqueueValidation(...t):console.error("Failed to load aria validation runtime")})).catch((()=>{console.error("Failed to enqueue validation due to an error while loading the runtime")})):console.warn("neither runtime nor load promise found for aria validation. This should not happen, as enabling aria validation should have triggered the loading of the runtime.")}}class d{host;config;visibilityObserver;elementQueued=!1;elementValidated=!1;elementLoaded=!1;static knownValidationErrors=[];get disabled(){return!a()}get useVerboseLogging(){return this.config?.verboseLogging||t.isDev||r()}constructor(t,i){this.host=t,this.config=i}onRuntimeConfigChange=()=>{a()&&this.checkLazyValidation()};hostDidLoad(){this.elementLoaded=!0,"undefined"!=typeof window&&window.addEventListener(e,this.onRuntimeConfigChange),this.elementQueued||this.elementValidated||("slot"!==this.config?.validationTiming?this.host.validationEl?.checkVisibility?.()&&"load"===this.config?.validationTiming?this.enqueueValidation():this.observeVisibilityOnce():this.observeSlot())}hostDidUpdate(){this.checkLazyValidation()}hostDisconnected(){this.discardVisibilityObserver(),"undefined"!=typeof window&&window.removeEventListener(e,this.onRuntimeConfigChange)}revalidateAria(){this.enqueueValidation()}observeSlot(){this.host.validationSlot?.addEventListener("slotchange",this.enqueueValidation.bind(this))}observeVisibilityOnce(){window.setTimeout((()=>{this.host.validationEl&&(this.visibilityObserver=new IntersectionObserver((t=>{for(const i of t)i.target===this.host.validationEl&&i.isIntersecting&&(this.checkLazyValidation(),this.discardVisibilityObserver())}),{root:this.host.validationEl?.parentElement,rootMargin:"0px",threshold:.01}),this.visibilityObserver.observe(this.host.validationEl))}))}checkLazyValidation(){this.elementLoaded&&(this.config?.reValidateOnPropChanges||!this.elementQueued&&!this.elementValidated)&&this.host.validationEl?.checkVisibility?.()&&this.enqueueValidation()}enqueueValidation(){a()&&(this.elementQueued=!0,c({context:{include:this.host.validationEl,exclude:d.knownValidationErrors},onComplete:(t,i)=>{this.elementValidated=!0;const o=this.host.tagName||this.host.validationEl?.tagName||"Element";if(t)return console.error("Error running ARIA validation:",t,o),void(this.host.validationEl?.tagName||console.dir(this.host));const e=[o];if(!i?.violations.length)return void(this.useVerboseLogging&&(console.log(...e,"has no ARIA violations"),this.host.validationEl?.tagName||console.dir(this.host)));const n=i.violations.length,s=[...e,i.violations.at(0).id,n>1?`(+${n-1} more)`:""].filter(Boolean).join(" ");this.useVerboseLogging?console.group(s):console.groupCollapsed(s);const a=i.violations.flatMap((t=>(console.dir(t,{showHidden:!0,compact:!1}),t.nodes.map((t=>t.target)))));this.host.validationEl?console.log("element:",this.host.validationEl):console.dir(this.host),console.groupEnd(),d.knownValidationErrors.push(...a)}}))}discardVisibilityObserver(){this.visibilityObserver&&(this.visibilityObserver.disconnect(),this.visibilityObserver=void 0)}}const u=class extends i{constructor(){super(!1)}controllers=new Set;addController(t){this.controllers.add(t)}removeController(t){this.controllers.delete(t)}get activeControllers(){return Array.from(this.controllers).filter((t=>!t.disabled))}connectedCallback(){this.controllers.size||console.warn("ReactiveControllerHost connected with no controllers registered.",this),this.activeControllers.forEach((t=>t.hostConnected?.()))}disconnectedCallback(){this.activeControllers.forEach((t=>t.hostDisconnected?.()))}componentWillLoad(){this.activeControllers.forEach((t=>t.hostWillLoad?.()))}componentDidLoad(){this.activeControllers.forEach((t=>t.hostDidLoad?.()))}componentWillRender(){this.activeControllers.forEach((t=>t.hostWillRender?.()))}componentDidRender(){this.activeControllers.forEach((t=>t.hostDidRender?.()))}componentWillUpdate(){this.activeControllers.forEach((t=>t.hostWillUpdate?.()))}componentDidUpdate(){this.activeControllers.forEach((t=>t.hostDidUpdate?.()))}};export{e as A,u as R,d as a,h as d,l as e,a as i,c as q,r as u}
@@ -1,195 +0,0 @@
1
- import { g as getElement, r as registerInstance, c as createEvent, h, H as Host } from './index-Aa_425iY.js';
2
- import { c as classNames } from './index-BfTCfPZ1.js';
3
- import { R as ReactiveControllerHost, A as AriaValidationController } from './reactive-controller-host-lF2kXM1x.js';
4
- import { E as ElementActivationController } from './element-activation-controller-CN0JX9-m.js';
5
- import { i as inheritAriaAttributes, f as findFormByRef } from './component-DOTK1OW3.js';
6
- import { p as parseSvgString } from './svg-B2YoIRuh.js';
7
- import { a as resolveIconSvg } from './icons-CmuFKDRz.js';
8
- import './aria-loader-BVolm0lC.js';
9
- import './logger-CGmJG63p.js';
10
-
11
- 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 { body { margin: 0; } 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-on-active, #0e7ab4); 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, #0f8acc); } 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); } `;
12
-
13
- const LmvzButton = class extends ReactiveControllerHost {
14
- get el() { return getElement(this); }
15
- validationEl;
16
- inheritedAttributes = {};
17
- formEl = null;
18
- formButtonEl = null;
19
- lmvzActivation;
20
- get ti() {
21
- return 0;
22
- }
23
- scale = 'default';
24
- variant = 'secondary';
25
- disabled = false;
26
- type = 'button';
27
- form;
28
- formMethod;
29
- name;
30
- value;
31
- constructor(hostRef) {
32
- super();
33
- registerInstance(this, hostRef);
34
- this.lmvzActivation = createEvent(this, "lmvzActivation", 7);
35
- this.addController(new AriaValidationController(this));
36
- this.addController(new ElementActivationController(this, {
37
- localHandler: this.handleClick.bind(this),
38
- keys: ['Enter'],
39
- }));
40
- }
41
- connectedCallback() {
42
- this.inheritedAttributes = inheritAriaAttributes(this.el);
43
- super.connectedCallback();
44
- }
45
- disconnectedCallback() {
46
- this.formButtonEl?.remove();
47
- this.formButtonEl = null;
48
- this.formEl = null;
49
- super.disconnectedCallback();
50
- }
51
- renderHiddenButton() {
52
- if (this.type !== 'submit') {
53
- this.formButtonEl?.remove();
54
- this.formButtonEl = null;
55
- this.formEl = null;
56
- return;
57
- }
58
- const formEl = findFormByRef(this.form, this.el);
59
- if (!formEl) {
60
- this.formButtonEl?.remove();
61
- this.formButtonEl = null;
62
- this.formEl = null;
63
- return;
64
- }
65
- this.formEl = formEl;
66
- const formButtonEl = this.formButtonEl ?? document.createElement('button');
67
- formButtonEl.type = 'submit';
68
- formButtonEl.style.display = 'none';
69
- formButtonEl.disabled = this.disabled;
70
- formButtonEl.name = this.name ?? '';
71
- formButtonEl.value = this.value ?? '';
72
- if (this.formMethod) {
73
- formButtonEl.setAttribute('formmethod', this.formMethod);
74
- }
75
- else {
76
- formButtonEl.removeAttribute('formmethod');
77
- }
78
- if (this.formButtonEl !== formButtonEl) {
79
- this.formButtonEl = formButtonEl;
80
- }
81
- if (formButtonEl.parentElement !== formEl) {
82
- formButtonEl.remove();
83
- formEl.appendChild(formButtonEl);
84
- }
85
- }
86
- submitForm(ev) {
87
- if (this.formEl && this.formButtonEl) {
88
- ev.preventDefault();
89
- this.formButtonEl.click();
90
- }
91
- }
92
- handleClick = (ev) => {
93
- if (this.type === 'submit') {
94
- this.submitForm(ev);
95
- }
96
- };
97
- render() {
98
- this.renderHiddenButton();
99
- return (h(Host, { key: '6c44aa8a4b40927313461b5139e88066b855dca6', "aria-disabled": this.disabled ? 'true' : null }, h("button", { key: '3696f0ad46a03fe9573571b46a56772def87bf53', ref: (e) => (this.validationEl = e), disabled: this.disabled, type: this.type, class: classNames(this.variant, { [this.scale ?? '']: !!this.scale, disabled: this.disabled }), ...this.inheritedAttributes }, h("slot", { key: '3ecce9c6ae978b72b14a807d93248a4566a13f4b' }))));
100
- }
101
- static get delegatesFocus() { return true; }
102
- };
103
- LmvzButton.style = lmvzButtonCss();
104
-
105
- const lmvzIconCss = () => `.sc-lmvz-icon-h{--lmvz-icon-color:var(--lmvz-component-color, var(--lmvz-semantic-color-on-surface-input-primary, #000000));--lmvz-icon-size:var(--lmvz-component-size, var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem)));display:inline-block;line-height:0;svg{display:block;height:var(--lmvz-icon-size);width:auto}svg path{stroke:var(--lmvz-icon-color);fill:none}}[size='xs'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem))}}[size='sm'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-sm, clamp(0.88rem, 0.84rem + 0.13vw, 1rem))}}[size='md'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem))}}[size='lg'].sc-lmvz-icon-h{svg{--lmvz-icon-size:var(--lmvz-component-icon-size-lg, clamp(1.5rem, 1.44rem + 0.26vw, 1.75rem))}}[size='inherit'].sc-lmvz-icon-h{svg{height:var(--lmvz-component-size, 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)}}`;
106
-
107
- const LmvzIcon = class extends ReactiveControllerHost {
108
- intersectionObserver;
109
- ariaValidationController = new AriaValidationController(this);
110
- get el() { return getElement(this); }
111
- validationEl;
112
- icon;
113
- weight = 'medium';
114
- size = 'md';
115
- iconset;
116
- iconData;
117
- visible = false;
118
- ariaLabel;
119
- get ariaHidden() {
120
- return !this.ariaLabel;
121
- }
122
- constructor(hostRef) {
123
- super();
124
- registerInstance(this, hostRef);
125
- this.addController(this.ariaValidationController);
126
- }
127
- connectedCallback() {
128
- this.waitUntilVisible(() => {
129
- this.visible = true;
130
- this.loadIconPathData();
131
- });
132
- super.connectedCallback();
133
- }
134
- disconnectedCallback() {
135
- if (this.intersectionObserver && typeof this.intersectionObserver.disconnect === 'function') {
136
- this.intersectionObserver.disconnect();
137
- }
138
- this.intersectionObserver = undefined;
139
- super.disconnectedCallback();
140
- }
141
- async loadIconPathData() {
142
- const { icon, iconset, visible } = this;
143
- if (!icon || !visible) {
144
- return;
145
- }
146
- const maybeIcon = parseSvgString(icon);
147
- if (maybeIcon) {
148
- this.iconData = maybeIcon;
149
- return;
150
- }
151
- this.iconData = await resolveIconSvg({
152
- icon,
153
- iconset,
154
- });
155
- }
156
- componentDidRender() {
157
- this.validationEl = this.el.querySelector('svg');
158
- this.ariaValidationController.revalidateAria();
159
- super.componentDidRender();
160
- }
161
- render() {
162
- return h(Host, { key: 'e76fe28500b3545b8917ecdad590da5bc04ed38f', role: "img", "aria-hidden": `${this.ariaHidden}`, innerHTML: this.iconData });
163
- }
164
- waitUntilVisible(callback, rootMargin = 50) {
165
- if (typeof window === 'undefined' || !window.IntersectionObserver) {
166
- callback();
167
- return;
168
- }
169
- this.intersectionObserver = new IntersectionObserver((entries) => {
170
- entries.some((entry) => {
171
- if (entry.isIntersecting) {
172
- if (this.intersectionObserver && typeof this.intersectionObserver.disconnect === 'function') {
173
- this.intersectionObserver.disconnect();
174
- }
175
- this.intersectionObserver = undefined;
176
- callback();
177
- return true;
178
- }
179
- return false;
180
- });
181
- }, { rootMargin: `${rootMargin}px` });
182
- this.intersectionObserver.observe(this.el);
183
- }
184
- static get watchers() { return {
185
- "icon": [{
186
- "loadIconPathData": 0
187
- }],
188
- "iconset": [{
189
- "loadIconPathData": 0
190
- }]
191
- }; }
192
- };
193
- LmvzIcon.style = lmvzIconCss();
194
-
195
- export { LmvzButton as lmvz_button, LmvzIcon as lmvz_icon };
@@ -1 +0,0 @@
1
- import{g as t,r as e,c as r,h as i}from"./p-Aa_425iY.js";import{c as o}from"./p-BfTCfPZ1.js";import{R as a,A as n}from"./p-DCTzMRMQ.js";import{c as s}from"./p-DOTK1OW3.js";import"./p-dhVSUYqd.js";let l=0;const c=class extends a{get el(){return t(this)}get validationEl(){return this.el}lmvzInput;internals;nativeInputElement;inputId="lmvz-input-"+l++;initialValue="";nativeError=!1;errorFromProp=!1;get helperId(){return this.helperText?`${this.inputId}-helper`:void 0}get showErrorMessage(){return this.error&&Boolean(this.errorMessage)}get errorId(){return`${this.inputId}-error`}get describedBy(){const t=[];return this.helperId&&t.push(this.helperId),this.showErrorMessage&&t.push(this.errorId),t.length>0?t.join(" "):void 0}value;label;helperText;placeholder;disabled=!1;readonly=!1;required=!1;name;type="text";errorMessage;autocomplete;inputmode;autocorrect;autocapitalize;spellcheck;autofocus=!1;minlength;maxlength;pattern;min;max;step;form;get error(){return this.errorFromProp||this.nativeError}set error(t){this.errorFromProp=t}async setValue(t){const e=this.nativeInputElement,r=t??"";e&&(e.value=r),this.value=r,this.internals.setFormValue?.(r),this.lmvzInput.emit(r)}async focusInput(){this.nativeInputElement?.focus()}async blurInput(){this.nativeInputElement?.blur()}async select(){this.nativeInputElement?.select()}async checkValidity(){return this.nativeInputElement?.checkValidity?.()??!1}async reportValidity(){return this.nativeInputElement?.reportValidity?.()??!1}async getInputElement(){return this.nativeInputElement||await new Promise((t=>s(this.el,t))),Promise.resolve(this.nativeInputElement)}constructor(t){super(),e(this,t),this.lmvzInput=r(this,"lmvzInput",7),t.$hostElement$["s-ei"]?this.internals=t.$hostElement$["s-ei"]:(this.internals=t.$hostElement$.attachInternals(),t.$hostElement$["s-ei"]=this.internals),this.addController(new n(this,{reValidateOnPropChanges:!0}))}componentWillLoad(){this.initialValue=this.value??"",super.componentWillLoad()}formAssociatedCallback(t){t&&this.internals.setFormValue?.(this.value??"")}formResetCallback(){this.internals.setValidity({}),this.setValue(this.initialValue)}formStateRestoreCallback(t){this.setValue(t)}handleValueChange(t){this.nativeInputElement&&(this.nativeInputElement.value===t||this.setValue(t))}handleDisabledChange(t){t&&this.nativeInputElement&&this.nativeInputElement.blur()}handleInput=t=>{this.setValue(t.target.value)};handleChange=t=>{this.updateNativeError(t.target??this.nativeInputElement)};handleFocus=()=>{};handleBlur=t=>{const e=t.target;e.reportValidity?.()};updateNativeError(t){const e=t??this.nativeInputElement;e&&(this.nativeError=!(e.checkValidity?.()??1))}render(){const t=Boolean(this.value),e=t||Boolean(this.placeholder);return i("div",{key:"3cbfee5fccbb5efe1bfb9c6622653e11d4896615",class:o("input-container",{"interaction-filled":t})},i("div",{key:"2712b0d5eda0ca1d4da70f362047df07acf922a5",class:"input-wrapper"},i("slot",{key:"992bc86de6b3bdd3cdbac1c000d38a338e6e4474",name:"before-input"}),i("div",{key:"35ace7d889667f5d09eea76dcba161f8711c9b1c",class:"label-input-group"},i("label",{key:"28520dddf331d35ba75283673aa81e0046628907",htmlFor:this.inputId,class:o({floating:e})},this.label,this.required&&i("span",{key:"b91766b86b1bc68ce3dbb4b734ee4aa40fe0759b",class:"required-indicator","aria-hidden":"true"}," ","*")),i("input",{key:"ed7cd4b64091256df1c3b939c1e22d6082fe58b9",id:this.inputId,ref:t=>this.nativeInputElement=t,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})),i("slot",{key:"1e42c305b8e554fadd7c50fbbb54ea234c734b0a",name:"after-input"})),i("div",{key:"190a1a92971a717f3ef594615fbe4dd0c9a72493",id:this.helperId,role:"status"},this.helperText||null),i("div",{key:"4d07b45a51d3733caf09a1bbc56ae6f51411ecbc",id:this.errorId,role:"alert"},this.showErrorMessage&&this.errorMessage||null))}static get formAssociated(){return!0}static get watchers(){return{value:[{handleValueChange:0}],disabled:[{handleDisabledChange:0}]}}};c.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; } } .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-active, #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; }";export{c as lmvz_input}
@@ -1 +0,0 @@
1
- import{g as e,r as t,c as r,h as o,H as m}from"./p-Aa_425iY.js";import{R as a,A as i}from"./p-DCTzMRMQ.js";import{E as n}from"./p-CN0JX9-m.js";import"./p-dhVSUYqd.js";const l=class extends a{get el(){return e(this)}get validationEl(){return this.el}validationSlot;get role(){return"menuitem"}get ti(){return 0}lmvzActivation;constructor(e){super(),t(this,e),this.lmvzActivation=r(this,"lmvzActivation",7),this.addController(new i(this,{validationTiming:"slot"})),this.addController(new n(this))}render(){return o(m,{key:"a87116fba2d35c612e590c6b4e12c03b60d1ef0e"},o("slot",{key:"b302049db0b5818d4d7f90c043eb5c3caf48ca1b",ref:e=>this.validationSlot=e}))}};l.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; } } .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-active, #f1f9fe); --lmvz-menuitem-color: var(--lmvz-semantic-color-status-on-active, #0e7ab4); }";export{l as lmvz_menuitem}
@@ -1 +0,0 @@
1
- import{a as e,r,c as t,h as a,H as o}from"./p-Aa_425iY.js";const n=class{constructor(e){r(this,e),this.primaryAction=t(this,"primaryAction",7)}cardTitle;imageUrl;description;primaryActionLabel="";primaryAction;get fallbackImage(){return((r,t)=>{const a=function(...e){return e.filter(Boolean).join("/").replace("//","/").replace("/./","/")}("../../assets",t,r);try{return e(a)}catch{return console.warn(`Failed to create URL for asset "${r}" in path "${t}".\n Please provide an absolute URL in your app's 'setAssetPath(...)' configuration! Falling back to a relative URL, which may work in some environments but is not guaranteed to be correct.`),new URL(a,import.meta?.url??window?.location?.origin??"")}})("card-placeholder.svg")}_onPrimaryClick(){this.primaryAction.emit()}_onOverflowClick(e){console.log(e)}render(){return a(o,{key:"46c2832b4f90b9eb222749632bc7ad59cd645e10",role:"article"},a("div",{key:"cc387fe96cff2dd04c24f75cf838a2bf6f438279",class:"top"},a("div",{key:"f9a54a5f81378ef4265e1d74c36c78af002e8874",class:"image-wrapper",style:{backgroundImage:`url(${this.imageUrl??this.fallbackImage})`}},a("div",{key:"76daed00408f7ae9ee46977637ddcd3d4f846380",class:"chip-slot"},a("slot",{key:"6ad522ef7428166b876d0218ef8d801c4ef337f1",name:"chip"})))),a("div",{key:"9c9799668ac199cfecbe10061e271d70d70e2d07",class:"bottom"},a("header",{key:"1bec743235bea5c7ab163225ffbd7bc6cf11f754"},a("h2",{key:"06f8e14153328bc5ca920e71e09d9343047c440c",class:"title"},this.cardTitle)),a("p",{key:"86b95db4e6464ca3236b4a03798013c3580819bf",class:"description"},this.description),a("div",{key:"553dc998d5318a4730196baa0b9baff3a0a3369f",class:"actions"},a("button",{key:"7532d01b46769198c23a1b1015c187fdefce146a",class:"primary",onClick:this._onPrimaryClick.bind(this),"data-testid":"primary"},this.primaryActionLabel),a("button",{key:"633d679ae59b1896aa2a06e04b4564569cf27a7d",class:"tertiary","aria-label":"More actions",onClick:this._onOverflowClick},a("span",{key:"b72c45f93d259502b9d7c5ffb19e292a53c60ec6",class:"icon-placeholder"},"...")))))}static get assetsDirs(){return["../../assets"]}};n.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 { 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-on-active, #0e7ab4); 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, #0f8acc); } 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-card-component-card-minwidth, 20.4375rem); max-width: var(--lmvz-card-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(2.25rem, 2.13rem + 0.52vw, 2.75rem) / 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{n as lmvz_card}
@@ -1 +0,0 @@
1
- import{g as t,r as e,c as i,h as s,H as o}from"./p-Aa_425iY.js";import{t as a}from"./p-CcxjkCOx.js";import{R as n,A as r}from"./p-DCTzMRMQ.js";import{i as l,g as d}from"./p-DOTK1OW3.js";import{i as c}from"./p-dhVSUYqd.js";import"./p-CGmJG63p.js";const h=a("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYgNkwxMiAxMk0xMiAxMkwxOCAxOE0xMiAxMkw2IDE4TTEyIDEyTDE4IDYiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==");let m=0;const f=class extends n{get el(){return t(this)}inheritedAriaAttributes={};dialogEl;dialogStateObserver;actionsStateObserver;headerSlot;actionsSlot;closeButtonEl;previouslyFocusedElement=null;wrappedDialogShowModal;lastActionValidationMessage;pendingCloseReturnValue;dialogTitleId="lmvz-modal-title-"+m++;hasActions=!1;hasHeader=!1;open=!1;closeLabel="Schliessen";dialogClose;dialogCancel;get dialog(){return this.dialogEl}get validationEl(){return this.dialogEl??this.el}get validationSlot(){return this.actionsSlot}constructor(t){super(),e(this,t),this.dialogClose=i(this,"close",6),this.dialogCancel=i(this,"cancel",1),this.addController(new r(this,{validationTiming:"slot"}))}handleFormDialogSubmit(t){const e=t.submitter;("dialog"===t.target.method||"dialog"===e?.getAttribute("formmethod"))&&(t.preventDefault(),this.dialogEl?.close(e?.value??""))}connectedCallback(){this.inheritedAriaAttributes=l(this.el,["role"]),Object.defineProperty(this.el,"dialog",{configurable:!0,enumerable:!0,get:()=>(this.ensureDialogShowModalCapture(),this.dialogEl)}),super.connectedCallback()}componentDidLoad(){this.handleHeaderSlotChange(),this.handleActionsSlotChange(),this.observeDialogState(),this.syncDialogVisibility(),super.componentDidLoad()}disconnectedCallback(){this.actionsStateObserver?.disconnect(),this.dialogStateObserver?.disconnect(),super.disconnectedCallback()}componentDidRender(){this.open&&this.focusPrimaryAction(),super.componentDidRender()}handleOpenChange(){this.syncDialogVisibility()}get dialogAccessibilityAttributes(){const t={...this.inheritedAriaAttributes};if(delete t["aria-label"],delete t["aria-labelledby"],this.hasHeader)return t["aria-labelledby"]=this.dialogTitleId,t;const e=this.inheritedAriaAttributes["aria-labelledby"];if("string"==typeof e)return t["aria-labelledby"]=e,t;const i=this.inheritedAriaAttributes["aria-label"];return"string"==typeof i&&(t["aria-label"]=i),t}get actionButtons(){return(this.actionsSlot?.assignedElements({flatten:!0})??[]).filter((t=>this.isVisibleActionButton(t)))}get enabledActionButtons(){return this.actionButtons.filter((t=>!this.isDisabledActionButton(t)))}get assignedActionElements(){return this.actionsSlot?.assignedElements({flatten:!0})??[]}isDisabledActionButton(t){return t.hasAttribute("disabled")||!0===t.disabled}getActionVariant(t){const e=t.getAttribute("variant")??t.variant;return"primary"===e||"secondary"===e||"tertiary"===e?e:"secondary"}getActionValidationResult(){if(!this.actionButtons.length)return{};const t=this.actionButtons.filter((t=>"primary"===this.getActionVariant(t))),e=this.actionButtons.filter((t=>"secondary"===this.getActionVariant(t))),i=[1!==t.length?`${t.length} primary action${1===t.length?"":"s"}`:void 0,e.length>1?`${e.length} secondary actions`:void 0].filter((t=>Boolean(t)));return{errorMessage:i.length?`LmvzModal actions slot must contain exactly one primary action, at most one secondary action, and optional tertiary actions. Received ${i.join(" and ")}.`:void 0,primaryAction:t[0]}}hasAssignedContent(t){return Boolean(t?.assignedNodes({flatten:!0}).some((t=>t.nodeType===Node.TEXT_NODE?Boolean(t.textContent?.trim()):t.nodeType===Node.ELEMENT_NODE)))}observeDialogState(){this.dialogEl&&"undefined"!=typeof MutationObserver&&(this.dialogStateObserver?.disconnect(),this.dialogStateObserver=new MutationObserver((()=>{this.dialogEl&&this.dialogEl.open!==this.open&&(this.open=!!this.dialogEl.open)})),this.dialogStateObserver.observe(this.dialogEl,{attributes:!0,attributeFilter:["open"]}))}isVisibleActionButton(t){return"LMVZ-BUTTON"===t.tagName&&!t.hasAttribute("hidden")}capturePreviouslyFocusedElement(){const t=this.dialogEl,e=d(document);t&&e&&!t.contains(e)&&(this.previouslyFocusedElement=e)}ensureDialogShowModalCapture(){const t=this.dialogEl;if(!t||"function"!=typeof t.showModal)return;const e=t.showModal;if(e===this.wrappedDialogShowModal)return;const i=()=>(this.capturePreviouslyFocusedElement(),e.call(t));Object.defineProperty(t,"showModal",{configurable:!0,value:i}),this.wrappedDialogShowModal=i}syncDialogVisibility(){const t=this.dialogEl;if(t)return this.open?(t.open||(this.capturePreviouslyFocusedElement(),"function"==typeof t.showModal?t.showModal():t.setAttribute("open","")),void this.focusPrimaryAction()):void(t.open&&("function"==typeof t.close?t.close():(t.removeAttribute("open"),this.handleDialogClose())))}focusPrimaryAction(){const t=this.enabledActionButtons.find((t=>"primary"===this.getActionVariant(t)))??this.enabledActionButtons[0]??this.closeButtonEl;t&&"undefined"!=typeof window&&window.requestAnimationFrame((()=>{this.open&&t.focus()}))}restoreFocus(){this.previouslyFocusedElement?.isConnected&&(this.previouslyFocusedElement.focus(),this.previouslyFocusedElement=null)}handleCloseButtonClick=()=>{if(!this.dialogEl)return;const t=this.dialogEl;if("function"==typeof t.requestClose)return this.pendingCloseReturnValue="close",void t.requestClose("close");"function"!=typeof this.dialogEl.close?this.handleDialogClose():this.dialogEl.close("close")};handleDialogCancel=t=>{if(t.preventDefault(),this.dialogCancel.emit().defaultPrevented)return void(this.pendingCloseReturnValue=void 0);const e=this.pendingCloseReturnValue;this.pendingCloseReturnValue=void 0,this.dialogEl?.close(e)};handleDialogClose=()=>{console.log("Dialog close handler called"),this.open&&(this.open=!1),this.restoreFocus(),this.dialogClose.emit()};handleHeaderSlotChange=()=>{this.hasHeader=this.hasAssignedContent(this.headerSlot)};observeActionState(){"undefined"!=typeof MutationObserver&&(this.actionsStateObserver?.disconnect(),this.assignedActionElements.length&&(this.actionsStateObserver=new MutationObserver((()=>{this.syncActionsState()})),this.assignedActionElements.forEach((t=>{this.actionsStateObserver?.observe(t,{attributes:!0,attributeFilter:["disabled","hidden","variant"]})}))))}syncActionsState(){const t=this.assignedActionElements;t.forEach((t=>{["LMVZ-BUTTON","BUTTON"].includes(t.tagName.toUpperCase())||(t.hasAttribute("hidden")||t.setAttribute("hidden",""),"true"!==t.getAttribute("aria-hidden")&&t.setAttribute("aria-hidden","true"))})),this.hasActions=t.some((t=>this.isVisibleActionButton(t))),this.checkActions(),this.open&&this.focusPrimaryAction()}handleActionsSlotChange=()=>{this.syncActionsState(),this.observeActionState()};checkActions(){if(!c())return;const{errorMessage:t}=this.getActionValidationResult();t?this.lastActionValidationMessage!==t&&(console.error(t),this.lastActionValidationMessage=t):this.lastActionValidationMessage=void 0}render(){return s(o,{key:"f319dcb33aaa6426e568fba1bfb6c8c3927432cb"},s("dialog",{key:"1c5b1659b243a2af19ec5b41d19a2096b522671c",ref:t=>this.dialogEl=t,onCancel:this.handleDialogCancel,onClose:this.handleDialogClose,...this.dialogAccessibilityAttributes},s("div",{key:"2d0260f11a75e28688a14b0263df0d00f8ba54b9",class:"modal-shell"},s("header",{key:"d96739e3b0a7f2c04e46585ddf4e431c91a698ce",class:{header:!0,"has-title":this.hasHeader}},s("div",{key:"f5202ac26195a3571e3767e0d3683c2bc960c2ec",class:"title",id:this.dialogTitleId,hidden:!this.hasHeader},s("slot",{key:"2568ee3465bc070e353e647c58735a34005907d7",name:"header",ref:t=>this.headerSlot=t,onSlotchange:this.handleHeaderSlotChange})),s("lmvz-button",{key:"7978e838dc84ce83ee674aa111523b260d1861da",ref:t=>this.closeButtonEl=t,type:"button",class:"close-button","aria-label":this.closeLabel,onClick:this.handleCloseButtonClick,variant:"tertiary"},s("lmvz-icon",{key:"9f235507acbf2ee42747bfc44302fcae47d9ba0e",icon:h}))),s("div",{key:"7eeab9b2f0fd5d41c0218380436e2f092481813a",class:"body"},s("slot",{key:"8904e87fa438caf2b7f34c4025ff688d94f4dea2"})),s("footer",{key:"0610abd150de228da893092e9f38721087144564",class:"actions",hidden:!this.hasActions},s("slot",{key:"0f5457cb2544602a3b980f90e7297ed700d62fee",name:"actions",ref:t=>this.actionsSlot=t,onSlotchange:this.handleActionsSlotChange})))))}static get watchers(){return{open:[{handleOpenChange:0}]}}};f.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 { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } } :host { display: contents; color: var(--lmvz-semantic-color-on-surface-primary, #000000); --lmvz-modal-shell-padding: var(--lmvz-dimension-16-24, clamp(1rem, 0.88rem + 0.52vw, 1.5rem)); --lmvz-modal-shell-gap: var(--lmvz-dimension-16-24, clamp(1rem, 0.88rem + 0.52vw, 1.5rem)); --lmvz-modal-actions-gap: var(--lmvz-dimension-8-12, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-modal-viewport-padding: var(--lmvz-dimension-16-24, clamp(1rem, 0.88rem + 0.52vw, 1.5rem)); --lmvz-modal-shell-max-width: 40rem; } dialog { border: none; padding: 0; background: transparent; color: var(--lmvz-semantic-color-on-surface-primary, #000000); } dialog::backdrop { background: rgba(0, 0, 0, 0.19); background: rgb(from var(--lmvz-semantic-color-int-primary, #000000) r g b / 0.19); } .modal-shell { display: flex; flex-direction: column; gap: var(--lmvz-modal-shell-gap); inline-size: min(calc(100vw - (2 * var(--lmvz-modal-viewport-padding))), var(--lmvz-modal-shell-max-width)); max-inline-size: 100%; padding: var(--lmvz-modal-shell-padding); border-radius: var(--lmvz-semantic-border-radius-lg, 14px); background: var(--lmvz-semantic-color-surface-primary, #ffffff); overflow: auto; } .header { display: flex; align-items: flex-start; justify-content: flex-end; gap: var(--lmvz-modal-shell-gap); } .title { min-inline-size: 0; font: var(--lmvz-typography-heading-lg, 500 clamp(1.25rem, 1.19rem + 0.26vw, 1.5rem) / 1.4 Router); } .has-title .title { flex: 1 1 auto; } .body { font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } .actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--lmvz-modal-actions-gap); font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } .close-button { display: inline-flex; flex: none; } ::slotted([slot='actions'][hidden]) { display: none; } ";export{f as lmvz_modal}
@@ -1 +0,0 @@
1
- import{g as M,r as N,h as e,H as I}from"./p-Aa_425iY.js";import{R as j,A as D}from"./p-DCTzMRMQ.js";import{g,a as i}from"./p-DOTK1OW3.js";export{lmvz_menuitem}from"./p-1b181e90.entry.js";import"./p-dhVSUYqd.js";import"./p-CN0JX9-m.js";class u{host;elements=[];constructor(M){this.host=M}hostDidRender(){this.host.el.addEventListener("keydown",this.handleKeydown)}updateElements(M){this.elements=M}handleKeydown=M=>{const{key:N}=M;if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft"].includes(N))return;const e=g(document),I=this.getNextFocusableElement(e,["ArrowDown","ArrowRight"].includes(N)?"down":"up");I&&(M.preventDefault(),I.focus?.())};getNextFocusableElement(M,N){if(!M)return;const{elements:e}=this,I=e.indexOf(M);if(-1===I)return;let j;if("down"===N?j=(I+1)%e.length:"up"===N&&(j=(I-1+e.length)%e.length),null==j)return;const D=e[j];return i(D)?D:this.getNextFocusableElement(D,N)}}const a=class extends j{get el(){return M(this)}get validationEl(){return this.el}primarySlot;secondarySlot;secondaryNav;keyboardNavigationController=new u(this);get primaryMenuitems(){return this.primarySlot?.assignedElements({flatten:!1})||[]}get secondaryMenuitems(){return this.secondarySlot?.assignedElements({flatten:!0})||[]}get role(){return"banner"}lmvzActiveNav;get secondarySlotName(){return`connect-nav-${this.lmvzActiveNav}`}constructor(M){super(),N(this,M),this.addController(new D(this,{reValidateOnPropChanges:!0})),this.addController(this.keyboardNavigationController)}handleActiveNavChange(){this.updateElementsActive()}componentDidLoad(){this.primarySlot?.addEventListener("slotchange",this.handlePrimaryNavItemsChange.bind(this)),this.handlePrimaryNavItemsChange(),this.secondarySlot?.addEventListener("slotchange",this.handleSecondaryNavItemsChange.bind(this)),super.componentDidLoad()}handlePrimaryNavItemsChange(){const M=this.primaryMenuitems;M.length?(M.forEach((M=>{M.setAttribute("aria-haspopup","true"),M.setAttribute("aria-controls","nav-secondary")})),this.updateElementsActive(),this.updateKeyboardNavSubjects()):console.warn("Primary slot has no assigned elements. Please add navigation items to the primary slot.")}handleSecondaryNavItemsChange(){this.secondaryMenuitems.length&&this.updateKeyboardNavSubjects()}updateKeyboardNavSubjects(){this.keyboardNavigationController.updateElements([...this.primaryMenuitems,...this.secondaryMenuitems])}updateElementsActive(){const M=this.primaryMenuitems;if(!M.length)return;let N="";M.forEach((M=>{const e=M.id===this.lmvzActiveNav;e&&(N=M.textContent||M.id),M.setAttribute("aria-expanded",e?"true":"false")})),N&&this.secondaryNav?.setAttribute("aria-label",`Untermenü für ${N}`)}delegateFocus(){const M=this.primaryMenuitems[0];M&&M.focus()}render(){return e(I,{key:"87ecb9948039ea2f4b998bf35865e5839708a65c",onFocus:this.delegateFocus.bind(this)},e("div",{key:"4f1ae09b1a3e0a9c3eb12659b3952eef34cbd67b",class:"brand"},e("slot",{key:"99c03f87f0b3462d9b44835ba34ee05c75373b22",name:"brand"},e("img",{key:"1616ce8464c2e798a53bc7c879385e3882e4d32f",id:"fallback-logo-lmvz",src:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDYiIGhlaWdodD0iNzIiIHZpZXdCb3g9IjAgMCA0NiA3MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzI3Ml80MDUpIj4KPHBhdGggZD0iTTEyLjUgMjAuNjVDMTMuMSAyMC42NSAxNC4yIDIwLjM1IDE0LjcgMjAuMzVDMTYuMSAyMC4zNSAxNy4yIDIxLjQ1IDE3LjIgMjIuODVDMTcuMiAyNC4yNSAxNi4xIDI1LjM1IDE0LjcgMjUuMzVIMi44QzEuMiAyNS4zNSAwIDI0LjE1IDAgMjIuNTVDMCAyMS45NSAwLjIgMjAuNjUgMC4yIDIwLjA1VjUuODQ5OTlDMC4yIDUuMTQ5OTkgMCAzLjk0OTk5IDAgMy4zNDk5OUMwIDEuNzQ5OTkgMS4yIDAuNTQ5OTg4IDIuOCAwLjU0OTk4OEM0LjMgMC41NDk5ODggNS42IDEuNzQ5OTkgNS42IDMuMzQ5OTlDNS42IDMuOTQ5OTkgNS40IDUuMTQ5OTkgNS40IDUuODQ5OTlWMjAuNTVIMTIuNVYyMC42NVpNMjIuMSAyMi43NUMyMi4xIDIyLjE1IDIyLjMgMjAuOTUgMjIuMyAyMC4yNVY1Ljg0OTk5QzIyLjMgNS4xNDk5OSAyMi4xIDMuOTQ5OTkgMjIuMSAzLjQ0OTk5QzIyLjEgMS45NDk5OSAyMy4yIDAuNzQ5OTg4IDI0LjYgMC43NDk5ODhIMjUuMkMyNi40IDAuNzQ5OTg4IDI3LjIgMS41NDk5OSAyNy42IDIuNjQ5OTlMMjggMy40NDk5OUwzMi45IDE0LjA1QzMzLjMgMTQuOTUgMzMuNyAxNi4wNSAzNCAxNi43NUMzNC4zIDE2LjA1IDM0LjcgMTQuOTUgMzUuMSAxNC4wNUw0MCAzLjU0OTk5TDQwLjMgMi41NDk5OUM0MC43IDEuNTQ5OTkgNDEuNSAwLjY0OTk4OCA0Mi42IDAuNjQ5OTg4SDQzLjJDNDQuNyAwLjY0OTk4OCA0NS43IDEuODQ5OTkgNDUuNyAzLjM0OTk5QzQ1LjcgMy45NDk5OSA0NS41IDUuMTQ5OTkgNDUuNSA1Ljc0OTk5VjIwLjE1QzQ1LjUgMjAuODUgNDUuNyAyMi4wNSA0NS43IDIyLjY1QzQ1LjcgMjQuMjUgNDQuNSAyNS40NSA0MyAyNS40NUM0MS40IDI1LjQ1IDQwLjMgMjQuMjUgNDAuMyAyMi42NUM0MC4zIDIxLjk1IDQwLjQgMjAuNzUgNDAuNCAyMC4xNUw0MC42IDE0LjA1QzQwLjYgMTMuMTUgNDAuNyAxMS43NSA0MC43IDEwLjY1TDM3IDE5LjA1QzM2LjcgMTkuNzUgMzYuNiAxOS45NSAzNi40IDIwLjM1QzM2IDIxLjI1IDM1LjMgMjEuODUgMzMuOSAyMS44NUMzMi41IDIxLjg1IDMxLjggMjEuMjUgMzEuNCAyMC40NUMzMS4yIDIwLjA1IDMxLjIgMTkuNzUgMzAuOCAxOS4wNUwyNyAxMC43NUMyNyAxMC43NSAyNy4xIDEzLjE1IDI3LjIgMTQuMDVMMjcuNCAyMC4xNUMyNy40IDIwLjg1IDI3LjUgMjEuOTUgMjcuNSAyMi42NUMyNy41IDI0LjI1IDI2LjQgMjUuNDUgMjQuOCAyNS40NUMyMy4zIDI1LjU1IDIyLjEgMjQuMjUgMjIuMSAyMi43NVpNMjguNyAzMi45NUMyOS4xIDMyLjk1IDMwLjIgMzMuMTUgMzAuNyAzMy4xNUg0MS44QzQyLjMgMzMuMTUgNDMuMiAzMi45NSA0My43IDMyLjk1QzQ0LjkgMzIuOTUgNDUuOCAzMy44NSA0NS44IDM1LjA1QzQ1LjggMzYuMTUgNDQuOSAzNy4xNSA0My43IDM3LjE1QzQzLjMgMzcuMTUgNDIuMyAzNi45NSA0MS44IDM2Ljk1SDMwLjhDMzAuMyAzNi45NSAyOS4yIDM3LjE1IDI4LjggMzcuMTVDMjcuNiAzNy4xNSAyNi43IDM2LjI1IDI2LjcgMzUuMDVDMjYuNiAzMy45NSAyNy41IDMyLjk1IDI4LjcgMzIuOTVaTTIuMSA2Ny4yNUMyLjUgNjcuMjUgMy42IDY3LjQ1IDQuMSA2Ny40NUgxOC41QzE5IDY3LjQ1IDE5LjkgNjcuMjUgMjAuNCA2Ny4yNUMyMS42IDY3LjI1IDIyLjUgNjguMTUgMjIuNSA2OS4zNUMyMi41IDcwLjQ1IDIxLjYgNzEuNDUgMjAuNCA3MS40NUMyMCA3MS40NSAxOSA3MS4yNSAxOC41IDcxLjI1SDQuMUMzLjYgNzEuMjUgMi41IDcxLjQ1IDIuMSA3MS40NUMwLjkgNzEuNDUgMCA3MC41NSAwIDY5LjM1QzAgNjguMjUgMC45IDY3LjI1IDIuMSA2Ny4yNVpNMjEuOSAzNS42NUMyMS45IDM1Ljk1IDIxLjggMzYuMzUgMjEuNiAzNi43NUMyMS4zIDM3LjQ1IDIwLjkgMzguMzUgMjAuNyAzOC44NUwxNC43IDU0LjY1QzE0LjUgNTUuMDUgMTQuNCA1NS41NSAxNC4yIDU2LjM1QzEzLjggNTcuNjUgMTIuNiA1OC4yNSAxMS4yIDU4LjI1SDEwLjhDOS40IDU4LjI1IDguMiA1Ny43NSA3LjggNTYuMzVDNy42IDU1LjU1IDcuNCA1NS4xNSA3LjIgNTQuNjVMMS4yIDM4Ljg1QzEgMzguMzUgMC42IDM3LjU1IDAuMiAzNi44NUMwLjEgMzYuNDUgMCAzNS45NSAwIDM1LjY1QzAgMzQuMTUgMS4yIDMyLjg1IDIuOCAzMi44NUMzLjkgMzIuODUgNSAzMy41NSA1LjMgMzQuNzVDNS41IDM1LjU1IDUuNSAzNi4xNSA2IDM3LjU1TDEwLjIgNDkuNDVDMTAuNSA1MC4zNSAxMC45IDUxLjQ1IDExLjEgNTIuMzVDMTEuMyA1MS40NSAxMS42IDUwLjQ1IDExLjkgNDkuNTVMMTYgMzcuNTVDMTYuNSAzNi4wNSAxNi40IDM1LjY1IDE2LjcgMzQuODVDMTcuMSAzMy42NSAxOC4xIDMyLjg1IDE5LjMgMzIuODVDMjAuOSAzMi44NSAyMS45IDM0LjE1IDIxLjkgMzUuNjVaTTI5LjcgNzEuNDVDMjguMiA3MS40NSAyNy4yIDcwLjQ1IDI3LjIgNjkuMTVDMjcuMiA2OC43NSAyNy4yIDY4LjI1IDI3LjggNjcuNDVMMzcuNCA1My40NUMzNy45IDUyLjc1IDM4LjUgNTIuMDUgMzkuMSA1MS4zNUgzMi4yQzMxLjUgNTEuMzUgMzAuNyA1MS42NSAzMC4xIDUxLjY1QzI4LjcgNTEuNjUgMjcuNiA1MC43NSAyNy42IDQ5LjM1QzI3LjYgNDcuOTUgMjguNyA0Ni45NSAzMC4xIDQ2Ljk1SDQyLjdDNDQuMiA0Ni45NSA0NS4yIDQ3Ljg1IDQ1LjIgNDkuMjVDNDUuMiA0OS42NSA0NSA1MC4zNSA0NC41IDUxLjA1TDM1LjIgNjQuODVDMzQuNyA2NS42NSAzNC4xIDY2LjQ1IDMzLjUgNjcuMDVINDEuMUM0MS45IDY3LjA1IDQyLjcgNjYuNzUgNDMuMyA2Ni43NUM0NC43IDY2Ljc1IDQ1LjcgNjcuNzUgNDUuNyA2OS4wNUM0NS43IDcwLjU1IDQ0LjUgNzEuNTUgNDMuMiA3MS41NUgyOS43VjcxLjQ1WiIgZmlsbD0iYmxhY2siLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yNzJfNDA1Ij4KPHJlY3Qgd2lkdGg9IjQ2IiBoZWlnaHQ9IjcyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=",alt:"Lehrmittelverlag Zürich"}))),e("nav",{key:"ff7c56dbc9e80ba9a0757683069e1cba168abcb6","aria-label":"Hauptnavigation"},e("div",{key:"a3bb67d788b936422992b066431c73098ff2aa11",role:"menubar",class:"primary-menubar"},e("slot",{key:"e85b93f943c6d97bd5a7fa6f75e4855785d09ec5",name:"nav-primary",ref:M=>this.primarySlot=M}),e("div",{key:"e9efcfc5d3a8cb991c255b32b205924dafb5aaf6",role:"menu",id:"nav-secondary",class:"secondary-menubar",hidden:!this.lmvzActiveNav,ref:M=>this.secondaryNav=M},e("slot",{key:"7314e6a72705d48b347fa30945b1d5513b87bfd3",name:this.secondarySlotName,ref:M=>this.secondarySlot=M})))),e("div",{key:"aee503cddbf8964833934e594caf5faa6e073a02",class:"actions"},e("slot",{key:"5c1b15c0507ef24f67e37cd1652b4cc5ce4cc104",name:"actions"})))}static get watchers(){return{lmvzActiveNav:[{handleActiveNavChange:0}]}}};a.style=":host{display:flex;width:100vw;flex-direction:row;align-items:center;box-sizing:border-box;background-color:var(--lmvz-semantic-color-surface-primary, #ffffff);--lmvz-header-x-spacing-level-1:var(--lmvz-dimension-8-28, clamp(0.5rem, 0.2rem + 1.29vw, 1.75rem));--lmvz-header-x-spacing-level-2:var(--lmvz-component-buttongroup-wrapper-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem));padding:var(--lmvz-dimension-8-16, clamp(0.5rem, 0.38rem + 0.52vw, 1rem)) var(--lmvz-header-x-spacing-level-1);gap:var(--lmvz-header-x-spacing-level-1);.brand{display:inline-flex;justify-content:center;align-items:center}#fallback-logo-lmvz{height:34px;width:auto}nav{flex-grow:1}.primary-menubar{display:flex;flex-direction:row;align-items:center}.secondary-menubar{display:flex;flex-direction:row;align-items:center;margin-left:var(--lmvz-header-x-spacing-level-2);padding-left:var(--lmvz-header-x-spacing-level-2);border-left:1px solid var(--lmvz-semantic-color-border-default, #e0e0e0)}}";export{a as lmvz_header}