@lmvz-ds/components 0.14.1 → 0.15.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{aria-loader-BBKbBZLq.js → aria-loader-B7b45RMv.js} +13 -3
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/lmvz-button_3.cjs.entry.js +399 -0
- package/dist/cjs/lmvz-card.cjs.entry.js +1 -1
- package/dist/cjs/lmvz-components.cjs.js +1 -1
- package/dist/cjs/lmvz-header.cjs.entry.js +6 -4
- package/dist/cjs/lmvz-icon.cjs.entry.js +2 -2
- package/dist/cjs/lmvz-menuitem.cjs.entry.js +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{reactive-controller-host-DWpVosFu.js → reactive-controller-host-Ai9l4S9S.js} +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/lmvz-button/lmvz-button.css +4 -0
- package/dist/collection/components/lmvz-card/lmvz-card.css +4 -0
- package/dist/collection/components/lmvz-header/lmvz-header.js +5 -3
- package/dist/collection/components/lmvz-input/lmvz-input.js +5 -3
- package/dist/collection/components/lmvz-select/lmvz-select.css +197 -0
- package/dist/collection/components/lmvz-select/lmvz-select.js +223 -0
- package/dist/collection/integration/header-integration.js +2 -2
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +1 -1
- package/dist/components/lmvz-button.js +1 -1
- package/dist/components/lmvz-card.js +1 -1
- package/dist/components/lmvz-header.js +1 -1
- package/dist/components/lmvz-icon.js +1 -1
- package/dist/components/lmvz-input.js +1 -1
- package/dist/components/lmvz-menuitem.js +1 -1
- package/dist/components/lmvz-select.d.ts +11 -0
- package/dist/components/lmvz-select.js +1 -0
- package/dist/components/p-DR19QMDG.js +1 -0
- package/dist/esm/{aria-loader-DB71Xewa.js → aria-loader-Ddn7Qz_6.js} +13 -3
- package/dist/esm/{component-B3JVFwO1.js → component-DpoTUPzl.js} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/lmvz-button_3.entry.js +395 -0
- package/dist/esm/lmvz-card.entry.js +1 -1
- package/dist/esm/lmvz-components.js +1 -1
- package/dist/esm/lmvz-header.entry.js +7 -5
- package/dist/esm/lmvz-icon.entry.js +2 -2
- package/dist/esm/lmvz-menuitem.entry.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{reactive-controller-host-1nFoJEdT.js → reactive-controller-host-CdAJ3t-B.js} +1 -1
- package/dist/lmvz-components/index.esm.js +1 -1
- package/dist/lmvz-components/lmvz-components.esm.js +1 -1
- package/dist/lmvz-components/{p-c61f7daa.entry.js → p-70ca3319.entry.js} +1 -1
- package/dist/lmvz-components/p-73648317.entry.js +1 -0
- package/dist/lmvz-components/{p-5775a56c.entry.js → p-8ed959da.entry.js} +1 -1
- package/dist/lmvz-components/p-9526c364.entry.js +1 -0
- package/dist/lmvz-components/{p-B3j8zrhV.js → p-B7KSylv_.js} +1 -1
- package/dist/lmvz-components/{p-BTpia82J.js → p-D7RHrBYK.js} +1 -1
- package/dist/lmvz-components/{p-B3JVFwO1.js → p-DpoTUPzl.js} +1 -1
- package/dist/lmvz-components/p-ea1a9d4a.entry.js +6 -0
- package/dist/manifest.json +205 -1
- package/dist/types/components/lmvz-header/lmvz-header.d.ts +1 -1
- package/dist/types/components/lmvz-input/lmvz-input.d.ts +1 -1
- package/dist/types/components/lmvz-select/lmvz-select.d.ts +24 -0
- package/dist/types/components.d.ts +152 -0
- package/hydrate/index.js +105 -10
- package/hydrate/index.mjs +105 -10
- package/package.json +10 -6
- package/dist/cjs/index-Bp6Dd2i1.js +0 -94
- package/dist/cjs/lmvz-button.cjs.entry.js +0 -73
- package/dist/cjs/lmvz-input.cjs.entry.js +0 -177
- package/dist/components/p-DugBvwmd.js +0 -1
- package/dist/esm/index-BfTCfPZ1.js +0 -92
- package/dist/esm/lmvz-button.entry.js +0 -71
- package/dist/esm/lmvz-input.entry.js +0 -175
- package/dist/lmvz-components/p-0e5aa1a3.entry.js +0 -1
- package/dist/lmvz-components/p-18c18de4.entry.js +0 -1
- package/dist/lmvz-components/p-814ee542.entry.js +0 -1
- package/dist/lmvz-components/p-BfTCfPZ1.js +0 -6
- package/dist/lmvz-components/p-c6bae21b.entry.js +0 -1
|
@@ -260,6 +260,49 @@ export namespace Components {
|
|
|
260
260
|
*/
|
|
261
261
|
"ti": number;
|
|
262
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
* Select component with floating label and pill-shaped trigger.
|
|
265
|
+
* Wraps a native `<select>` element for full keyboard and form support.
|
|
266
|
+
* @example ```html
|
|
267
|
+
* <lmvz-select label="Country" name="country">
|
|
268
|
+
* <option value="ch">Switzerland</option>
|
|
269
|
+
* <option value="de">Germany</option>
|
|
270
|
+
* <option value="at">Austria</option>
|
|
271
|
+
* </lmvz-select>
|
|
272
|
+
* ```
|
|
273
|
+
* @example ```typescript
|
|
274
|
+
* const select = document.querySelector('lmvz-select');
|
|
275
|
+
* select.addEventListener('lmvzChange', (e) => console.log(e.detail));
|
|
276
|
+
* ```
|
|
277
|
+
*/
|
|
278
|
+
interface LmvzSelect {
|
|
279
|
+
/**
|
|
280
|
+
* Whether the select is disabled.
|
|
281
|
+
* @default false
|
|
282
|
+
*/
|
|
283
|
+
"disabled": boolean;
|
|
284
|
+
/**
|
|
285
|
+
* Helper text displayed below the select field.
|
|
286
|
+
*/
|
|
287
|
+
"helperText"?: string;
|
|
288
|
+
/**
|
|
289
|
+
* Label text displayed as a placeholder when no value is selected, and floated above the trigger when a value is present.
|
|
290
|
+
*/
|
|
291
|
+
"label": string;
|
|
292
|
+
/**
|
|
293
|
+
* Name attribute passed to the native select for form submission.
|
|
294
|
+
*/
|
|
295
|
+
"name"?: string;
|
|
296
|
+
/**
|
|
297
|
+
* Whether a value is required.
|
|
298
|
+
* @default false
|
|
299
|
+
*/
|
|
300
|
+
"required": boolean;
|
|
301
|
+
/**
|
|
302
|
+
* Currently selected value.
|
|
303
|
+
*/
|
|
304
|
+
"value"?: string;
|
|
305
|
+
}
|
|
263
306
|
}
|
|
264
307
|
export interface LmvzActionCustomEvent<T> extends CustomEvent<T> {
|
|
265
308
|
detail: T;
|
|
@@ -281,6 +324,10 @@ export interface LmvzMenuitemCustomEvent<T> extends CustomEvent<T> {
|
|
|
281
324
|
detail: T;
|
|
282
325
|
target: HTMLLmvzMenuitemElement;
|
|
283
326
|
}
|
|
327
|
+
export interface LmvzSelectCustomEvent<T> extends CustomEvent<T> {
|
|
328
|
+
detail: T;
|
|
329
|
+
target: HTMLLmvzSelectElement;
|
|
330
|
+
}
|
|
284
331
|
declare global {
|
|
285
332
|
interface HTMLLmvzActionElementEventMap {
|
|
286
333
|
"actionClick": MouseEvent;
|
|
@@ -412,6 +459,38 @@ declare global {
|
|
|
412
459
|
prototype: HTMLLmvzMenuitemElement;
|
|
413
460
|
new (): HTMLLmvzMenuitemElement;
|
|
414
461
|
};
|
|
462
|
+
interface HTMLLmvzSelectElementEventMap {
|
|
463
|
+
"lmvzChange": string;
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* Select component with floating label and pill-shaped trigger.
|
|
467
|
+
* Wraps a native `<select>` element for full keyboard and form support.
|
|
468
|
+
* @example ```html
|
|
469
|
+
* <lmvz-select label="Country" name="country">
|
|
470
|
+
* <option value="ch">Switzerland</option>
|
|
471
|
+
* <option value="de">Germany</option>
|
|
472
|
+
* <option value="at">Austria</option>
|
|
473
|
+
* </lmvz-select>
|
|
474
|
+
* ```
|
|
475
|
+
* @example ```typescript
|
|
476
|
+
* const select = document.querySelector('lmvz-select');
|
|
477
|
+
* select.addEventListener('lmvzChange', (e) => console.log(e.detail));
|
|
478
|
+
* ```
|
|
479
|
+
*/
|
|
480
|
+
interface HTMLLmvzSelectElement extends Components.LmvzSelect, HTMLStencilElement {
|
|
481
|
+
addEventListener<K extends keyof HTMLLmvzSelectElementEventMap>(type: K, listener: (this: HTMLLmvzSelectElement, ev: LmvzSelectCustomEvent<HTMLLmvzSelectElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
482
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
483
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
484
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
485
|
+
removeEventListener<K extends keyof HTMLLmvzSelectElementEventMap>(type: K, listener: (this: HTMLLmvzSelectElement, ev: LmvzSelectCustomEvent<HTMLLmvzSelectElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
486
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
487
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
488
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
489
|
+
}
|
|
490
|
+
var HTMLLmvzSelectElement: {
|
|
491
|
+
prototype: HTMLLmvzSelectElement;
|
|
492
|
+
new (): HTMLLmvzSelectElement;
|
|
493
|
+
};
|
|
415
494
|
interface HTMLElementTagNameMap {
|
|
416
495
|
"lmvz-action": HTMLLmvzActionElement;
|
|
417
496
|
"lmvz-button": HTMLLmvzButtonElement;
|
|
@@ -421,6 +500,7 @@ declare global {
|
|
|
421
500
|
"lmvz-icon": HTMLLmvzIconElement;
|
|
422
501
|
"lmvz-input": HTMLLmvzInputElement;
|
|
423
502
|
"lmvz-menuitem": HTMLLmvzMenuitemElement;
|
|
503
|
+
"lmvz-select": HTMLLmvzSelectElement;
|
|
424
504
|
}
|
|
425
505
|
}
|
|
426
506
|
declare namespace LocalJSX {
|
|
@@ -665,6 +745,53 @@ declare namespace LocalJSX {
|
|
|
665
745
|
*/
|
|
666
746
|
"ti"?: number;
|
|
667
747
|
}
|
|
748
|
+
/**
|
|
749
|
+
* Select component with floating label and pill-shaped trigger.
|
|
750
|
+
* Wraps a native `<select>` element for full keyboard and form support.
|
|
751
|
+
* @example ```html
|
|
752
|
+
* <lmvz-select label="Country" name="country">
|
|
753
|
+
* <option value="ch">Switzerland</option>
|
|
754
|
+
* <option value="de">Germany</option>
|
|
755
|
+
* <option value="at">Austria</option>
|
|
756
|
+
* </lmvz-select>
|
|
757
|
+
* ```
|
|
758
|
+
* @example ```typescript
|
|
759
|
+
* const select = document.querySelector('lmvz-select');
|
|
760
|
+
* select.addEventListener('lmvzChange', (e) => console.log(e.detail));
|
|
761
|
+
* ```
|
|
762
|
+
*/
|
|
763
|
+
interface LmvzSelect {
|
|
764
|
+
/**
|
|
765
|
+
* Whether the select is disabled.
|
|
766
|
+
* @default false
|
|
767
|
+
*/
|
|
768
|
+
"disabled"?: boolean;
|
|
769
|
+
/**
|
|
770
|
+
* Helper text displayed below the select field.
|
|
771
|
+
*/
|
|
772
|
+
"helperText"?: string;
|
|
773
|
+
/**
|
|
774
|
+
* Label text displayed as a placeholder when no value is selected, and floated above the trigger when a value is present.
|
|
775
|
+
*/
|
|
776
|
+
"label": string;
|
|
777
|
+
/**
|
|
778
|
+
* Name attribute passed to the native select for form submission.
|
|
779
|
+
*/
|
|
780
|
+
"name"?: string;
|
|
781
|
+
/**
|
|
782
|
+
* Emitted when the user selects a new option. Detail contains the new value.
|
|
783
|
+
*/
|
|
784
|
+
"onLmvzChange"?: (event: LmvzSelectCustomEvent<string>) => void;
|
|
785
|
+
/**
|
|
786
|
+
* Whether a value is required.
|
|
787
|
+
* @default false
|
|
788
|
+
*/
|
|
789
|
+
"required"?: boolean;
|
|
790
|
+
/**
|
|
791
|
+
* Currently selected value.
|
|
792
|
+
*/
|
|
793
|
+
"value"?: string;
|
|
794
|
+
}
|
|
668
795
|
|
|
669
796
|
interface LmvzButtonAttributes {
|
|
670
797
|
"ti": number;
|
|
@@ -723,6 +850,14 @@ declare namespace LocalJSX {
|
|
|
723
850
|
"role": string;
|
|
724
851
|
"ti": number;
|
|
725
852
|
}
|
|
853
|
+
interface LmvzSelectAttributes {
|
|
854
|
+
"value": string;
|
|
855
|
+
"label": string;
|
|
856
|
+
"helperText": string;
|
|
857
|
+
"disabled": boolean;
|
|
858
|
+
"required": boolean;
|
|
859
|
+
"name": string;
|
|
860
|
+
}
|
|
726
861
|
|
|
727
862
|
interface IntrinsicElements {
|
|
728
863
|
"lmvz-action": LmvzAction;
|
|
@@ -733,6 +868,7 @@ declare namespace LocalJSX {
|
|
|
733
868
|
"lmvz-icon": Omit<LmvzIcon, keyof LmvzIconAttributes> & { [K in keyof LmvzIcon & keyof LmvzIconAttributes]?: LmvzIcon[K] } & { [K in keyof LmvzIcon & keyof LmvzIconAttributes as `attr:${K}`]?: LmvzIconAttributes[K] } & { [K in keyof LmvzIcon & keyof LmvzIconAttributes as `prop:${K}`]?: LmvzIcon[K] } & OneOf<"icon", LmvzIcon["icon"], LmvzIconAttributes["icon"]>;
|
|
734
869
|
"lmvz-input": Omit<LmvzInput, keyof LmvzInputAttributes> & { [K in keyof LmvzInput & keyof LmvzInputAttributes]?: LmvzInput[K] } & { [K in keyof LmvzInput & keyof LmvzInputAttributes as `attr:${K}`]?: LmvzInputAttributes[K] } & { [K in keyof LmvzInput & keyof LmvzInputAttributes as `prop:${K}`]?: LmvzInput[K] } & OneOf<"label", LmvzInput["label"], LmvzInputAttributes["label"]>;
|
|
735
870
|
"lmvz-menuitem": Omit<LmvzMenuitem, keyof LmvzMenuitemAttributes> & { [K in keyof LmvzMenuitem & keyof LmvzMenuitemAttributes]?: LmvzMenuitem[K] } & { [K in keyof LmvzMenuitem & keyof LmvzMenuitemAttributes as `attr:${K}`]?: LmvzMenuitemAttributes[K] } & { [K in keyof LmvzMenuitem & keyof LmvzMenuitemAttributes as `prop:${K}`]?: LmvzMenuitem[K] };
|
|
871
|
+
"lmvz-select": Omit<LmvzSelect, keyof LmvzSelectAttributes> & { [K in keyof LmvzSelect & keyof LmvzSelectAttributes]?: LmvzSelect[K] } & { [K in keyof LmvzSelect & keyof LmvzSelectAttributes as `attr:${K}`]?: LmvzSelectAttributes[K] } & { [K in keyof LmvzSelect & keyof LmvzSelectAttributes as `prop:${K}`]?: LmvzSelect[K] } & OneOf<"label", LmvzSelect["label"], LmvzSelectAttributes["label"]>;
|
|
736
872
|
}
|
|
737
873
|
}
|
|
738
874
|
export { LocalJSX as JSX };
|
|
@@ -774,6 +910,22 @@ declare module "@stencil/core" {
|
|
|
774
910
|
* A menu item component to be used within the `lmvz-header` component's navigation slots.
|
|
775
911
|
*/
|
|
776
912
|
"lmvz-menuitem": LocalJSX.IntrinsicElements["lmvz-menuitem"] & JSXBase.HTMLAttributes<HTMLLmvzMenuitemElement>;
|
|
913
|
+
/**
|
|
914
|
+
* Select component with floating label and pill-shaped trigger.
|
|
915
|
+
* Wraps a native `<select>` element for full keyboard and form support.
|
|
916
|
+
* @example ```html
|
|
917
|
+
* <lmvz-select label="Country" name="country">
|
|
918
|
+
* <option value="ch">Switzerland</option>
|
|
919
|
+
* <option value="de">Germany</option>
|
|
920
|
+
* <option value="at">Austria</option>
|
|
921
|
+
* </lmvz-select>
|
|
922
|
+
* ```
|
|
923
|
+
* @example ```typescript
|
|
924
|
+
* const select = document.querySelector('lmvz-select');
|
|
925
|
+
* select.addEventListener('lmvzChange', (e) => console.log(e.detail));
|
|
926
|
+
* ```
|
|
927
|
+
*/
|
|
928
|
+
"lmvz-select": LocalJSX.IntrinsicElements["lmvz-select"] & JSXBase.HTMLAttributes<HTMLLmvzSelectElement>;
|
|
777
929
|
}
|
|
778
930
|
}
|
|
779
931
|
}
|
package/hydrate/index.js
CHANGED
|
@@ -5235,10 +5235,20 @@ function getRuntimeState() {
|
|
|
5235
5235
|
const isAriaValidationEnabled = () => getRuntimeState().enabled;
|
|
5236
5236
|
const useVerboseLogging = () => getRuntimeState().verboseLogging ?? false;
|
|
5237
5237
|
function queueValidation(...args) {
|
|
5238
|
-
const
|
|
5239
|
-
if (!
|
|
5238
|
+
const { enabled, runtime, loadPromise } = getRuntimeState();
|
|
5239
|
+
if (!enabled)
|
|
5240
5240
|
return;
|
|
5241
|
-
|
|
5241
|
+
if (!runtime) {
|
|
5242
|
+
if (loadPromise) {
|
|
5243
|
+
loadPromise.then((loadedRuntime) => {
|
|
5244
|
+
if (loadedRuntime) {
|
|
5245
|
+
loadedRuntime.enqueueValidation(...args);
|
|
5246
|
+
}
|
|
5247
|
+
});
|
|
5248
|
+
return;
|
|
5249
|
+
}
|
|
5250
|
+
}
|
|
5251
|
+
runtime.enqueueValidation(...args);
|
|
5242
5252
|
}
|
|
5243
5253
|
|
|
5244
5254
|
class AriaValidationController {
|
|
@@ -5582,7 +5592,7 @@ class ReactiveControllerHost {
|
|
|
5582
5592
|
}
|
|
5583
5593
|
}
|
|
5584
5594
|
|
|
5585
|
-
const lmvzButtonCss = () => ` @layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'), local('Router'); font-weight: 400 normal; } @font-face { font-family: Router; src: local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'), local('Router'); font-weight: 500; } @font-face { font-family: Router; src: local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'), local('Router'); font-weight: 700 bold; } } @layer lmvz-ds.reset { h1, h2, h3, h4, h5, h6 { margin: 0; } } :host { button { --lmvz-button-color: var(--lmvz-component-color, var(--lmvz-semantic-color-int-on-primary, #ffffff)); --lmvz-button-padding-inline: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-padding-block: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); --lmvz-button-radius: var(--lmvz-component-input-radius-default, 999px); --lmvz-button-border-width: 0; --lmvz-button-border-color: transparent; --lmvz-button-background: var(--lmvz-semantic-color-int-primary, #000000); display: inline-flex; align-items: center; justify-content: center; gap: var(--lmvz-button-gap); padding-block: var(--lmvz-button-padding-block); padding-inline: var(--lmvz-button-padding-inline); border-radius: var(--lmvz-button-radius); border: var(--lmvz-button-border-width) solid var(--lmvz-button-border-color); background-color: var(--lmvz-button-background); color: var(--lmvz-button-color); cursor: pointer; font: var(--lmvz-button-font); text-align: center; text-decoration: none; white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; } button > * { font: inherit; color: inherit; } button:focus-visible { outline: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-status-selected, #f1f9fe); outline-offset: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); } button:is([disabled], .disabled) { cursor: not-allowed; pointer-events: none; opacity: var(--lmvz-component-input-disabled-opacity, 40%); } button:not([disabled]):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-hover, #2e2e2e); } button:not([disabled]):active { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-active, #545454); } button.secondary { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0); --lmvz-button-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-button-border-width: var(--lmvz-semantic-border-width-default, 1px); --lmvz-button-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); } button.secondary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0); --lmvz-button-border-color: var(--lmvz-semantic-color-border-hover, #c7c7c7); } button.secondary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-active, #d4d4d4); --lmvz-button-border-color: var(--lmvz-semantic-color-border-active, #d4d4d4); } button.tertiary { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); --lmvz-button-color: var(--lmvz-semantic-color-int-on-tertiary, #545454); } button.tertiary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } button.tertiary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } button.small { --lmvz-button-padding-inline: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-padding-block: var(--lmvz-component-input-sm-padding-y, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-gap: var(--lmvz-component-input-sm-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } button.large { --lmvz-button-padding-inline: var(--lmvz-component-input-lg-padding-x, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-padding-block: var(--lmvz-component-input-lg-padding-y, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-gap: var(--lmvz-component-input-lg-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); } display: contents; } ::slotted(*) { --lmvz-component-color: var(--lmvz-button-color); } `;
|
|
5595
|
+
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-selected, #f1f9fe); outline-offset: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); } button:is([disabled], .disabled) { cursor: not-allowed; pointer-events: none; opacity: var(--lmvz-component-input-disabled-opacity, 40%); } button:not([disabled]):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-hover, #2e2e2e); } button:not([disabled]):active { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-active, #545454); } button.secondary { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0); --lmvz-button-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-button-border-width: var(--lmvz-semantic-border-width-default, 1px); --lmvz-button-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); } button.secondary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0); --lmvz-button-border-color: var(--lmvz-semantic-color-border-hover, #c7c7c7); } button.secondary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-active, #d4d4d4); --lmvz-button-border-color: var(--lmvz-semantic-color-border-active, #d4d4d4); } button.tertiary { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); --lmvz-button-color: var(--lmvz-semantic-color-int-on-tertiary, #545454); } button.tertiary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } button.tertiary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } button.small { --lmvz-button-padding-inline: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-padding-block: var(--lmvz-component-input-sm-padding-y, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-gap: var(--lmvz-component-input-sm-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } button.large { --lmvz-button-padding-inline: var(--lmvz-component-input-lg-padding-x, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-padding-block: var(--lmvz-component-input-lg-padding-y, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-gap: var(--lmvz-component-input-lg-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); } display: contents; } ::slotted(*) { --lmvz-component-color: var(--lmvz-button-color); } `;
|
|
5586
5596
|
|
|
5587
5597
|
class LmvzButton extends ReactiveControllerHost {
|
|
5588
5598
|
get el() { return getElement(this); }
|
|
@@ -5680,7 +5690,7 @@ function joinPath(...parts) {
|
|
|
5680
5690
|
return parts.filter(Boolean).join('/').replace('//', '/').replace('/./', '/');
|
|
5681
5691
|
}
|
|
5682
5692
|
|
|
5683
|
-
const lmvzCardCss = () => `@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'), local('Router'); font-weight: 400 normal; } @font-face { font-family: Router; src: local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'), local('Router'); font-weight: 500; } @font-face { font-family: Router; src: local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'), local('Router'); font-weight: 700 bold; } } @layer lmvz-ds.reset { h1, h2, h3, h4, h5, h6 { margin: 0; } } .sc-lmvz-card-h { button { --lmvz-button-color: var(--lmvz-component-color, var(--lmvz-semantic-color-int-on-primary, #ffffff)); --lmvz-button-padding-inline: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-padding-block: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); --lmvz-button-radius: var(--lmvz-component-input-radius-default, 999px); --lmvz-button-border-width: 0; --lmvz-button-border-color: transparent; --lmvz-button-background: var(--lmvz-semantic-color-int-primary, #000000); display: inline-flex; align-items: center; justify-content: center; gap: var(--lmvz-button-gap); padding-block: var(--lmvz-button-padding-block); padding-inline: var(--lmvz-button-padding-inline); border-radius: var(--lmvz-button-radius); border: var(--lmvz-button-border-width) solid var(--lmvz-button-border-color); background-color: var(--lmvz-button-background); color: var(--lmvz-button-color); cursor: pointer; font: var(--lmvz-button-font); text-align: center; text-decoration: none; white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; } button > * { font: inherit; color: inherit; } button:focus-visible { outline: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-status-selected, #f1f9fe); outline-offset: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); } button:is([disabled], .disabled) { cursor: not-allowed; pointer-events: none; opacity: var(--lmvz-component-input-disabled-opacity, 40%); } button:not([disabled]):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-hover, #2e2e2e); } button:not([disabled]):active { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-active, #545454); } button.secondary { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0); --lmvz-button-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-button-border-width: var(--lmvz-semantic-border-width-default, 1px); --lmvz-button-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); } button.secondary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0); --lmvz-button-border-color: var(--lmvz-semantic-color-border-hover, #c7c7c7); } button.secondary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-active, #d4d4d4); --lmvz-button-border-color: var(--lmvz-semantic-color-border-active, #d4d4d4); } button.tertiary { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); --lmvz-button-color: var(--lmvz-semantic-color-int-on-tertiary, #545454); } button.tertiary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } button.tertiary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } button.small { --lmvz-button-padding-inline: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-padding-block: var(--lmvz-component-input-sm-padding-y, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-gap: var(--lmvz-component-input-sm-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } button.large { --lmvz-button-padding-inline: var(--lmvz-component-input-lg-padding-x, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-padding-block: var(--lmvz-component-input-lg-padding-y, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-gap: var(--lmvz-component-input-lg-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); } display: flex; min-width: var(--lmvz-other-component-card-minwidth, 20.4375rem); max-width: var(--lmvz-other-component-card-maxwidth, 21.6875rem); flex-direction: column; align-items: flex-start; border-radius: var(--lmvz-semantic-border-radius-lg, 14px); border: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-default, #e0e0e0); background: var(--lmvz-semantic-color-surface-primary, #ffffff); } *.sc-lmvz-card { color: var(--lmvz-semantic-color-on-surface-primary, #000000); font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } .top.sc-lmvz-card { display: flex; padding: var(--lmvz-dimension-8-12, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); flex-direction: column; justify-content: center; align-items: center; align-self: stretch; } .bottom.sc-lmvz-card { display: flex; min-width: 150px; padding: var(--lmvz-dimension-4-6, clamp(0.25rem, 0.22rem + 0.13vw, 0.38rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)); flex-direction: column; align-items: flex-start; align-self: stretch; } .title.sc-lmvz-card { margin: 0; display: flex; justify-content: center; align-items: center; align-self: stretch; padding-bottom: var(--lmvz-global-s4, 4px); overflow-wrap: break-word; font: var(--lmvz-typography-heading-2xl, 500 clamp(2rem, 1.94rem + 0.26vw, 2.25rem) / 1.2 Router); } .description.sc-lmvz-card { display: flex; margin: 0; padding-bottom: var(--lmvz-component-body-sm-padding-bottom, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); align-items: flex-start; align-self: stretch; white-space: pre-line; font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } .image-wrapper.sc-lmvz-card { aspect-ratio: 4 / 3; width: 100%; background-size: cover; background-position: center; flex: 1 0 0; align-self: stretch; border-radius: var(--lmvz-semantic-border-radius-md, 6px); } .actions.sc-lmvz-card { margin-top: var(--lmvz-component-form-wrapper-gap-y, clamp(1.13rem, 0.97rem + 0.65vw, 1.75rem)); display: flex; align-items: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); align-self: stretch; } button.primary.sc-lmvz-card, lmvz-button.primary.sc-lmvz-card { display: flex; justify-content: center; align-items: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); flex: 1 0 0; }`;
|
|
5693
|
+
const lmvzCardCss = () => `@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'), local('Router'); font-weight: 400 normal; } @font-face { font-family: Router; src: local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'), local('Router'); font-weight: 500; } @font-face { font-family: Router; src: local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'), local('Router'); font-weight: 700 bold; } } @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } } .sc-lmvz-card-h { button { --lmvz-button-color: var(--lmvz-component-color, var(--lmvz-semantic-color-int-on-primary, #ffffff)); --lmvz-button-padding-inline: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-padding-block: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); --lmvz-button-radius: var(--lmvz-component-input-radius-default, 999px); --lmvz-button-border-width: 0; --lmvz-button-border-color: transparent; --lmvz-button-background: var(--lmvz-semantic-color-int-primary, #000000); display: inline-flex; align-items: center; justify-content: center; gap: var(--lmvz-button-gap); padding-block: var(--lmvz-button-padding-block); padding-inline: var(--lmvz-button-padding-inline); border-radius: var(--lmvz-button-radius); border: var(--lmvz-button-border-width) solid var(--lmvz-button-border-color); background-color: var(--lmvz-button-background); color: var(--lmvz-button-color); cursor: pointer; font: var(--lmvz-button-font); text-align: center; text-decoration: none; white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; } button > * { font: inherit; color: inherit; } button:focus-visible { outline: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-status-selected, #f1f9fe); outline-offset: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); } button:is([disabled], .disabled) { cursor: not-allowed; pointer-events: none; opacity: var(--lmvz-component-input-disabled-opacity, 40%); } button:not([disabled]):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-hover, #2e2e2e); } button:not([disabled]):active { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-active, #545454); } button.secondary { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0); --lmvz-button-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-button-border-width: var(--lmvz-semantic-border-width-default, 1px); --lmvz-button-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); } button.secondary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0); --lmvz-button-border-color: var(--lmvz-semantic-color-border-hover, #c7c7c7); } button.secondary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-active, #d4d4d4); --lmvz-button-border-color: var(--lmvz-semantic-color-border-active, #d4d4d4); } button.tertiary { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); --lmvz-button-color: var(--lmvz-semantic-color-int-on-tertiary, #545454); } button.tertiary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } button.tertiary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } button.small { --lmvz-button-padding-inline: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-padding-block: var(--lmvz-component-input-sm-padding-y, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-gap: var(--lmvz-component-input-sm-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } button.large { --lmvz-button-padding-inline: var(--lmvz-component-input-lg-padding-x, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-padding-block: var(--lmvz-component-input-lg-padding-y, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-gap: var(--lmvz-component-input-lg-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); } display: flex; min-width: var(--lmvz-other-component-card-minwidth, 20.4375rem); max-width: var(--lmvz-other-component-card-maxwidth, 21.6875rem); flex-direction: column; align-items: flex-start; border-radius: var(--lmvz-semantic-border-radius-lg, 14px); border: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-default, #e0e0e0); background: var(--lmvz-semantic-color-surface-primary, #ffffff); } *.sc-lmvz-card { color: var(--lmvz-semantic-color-on-surface-primary, #000000); font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } .top.sc-lmvz-card { display: flex; padding: var(--lmvz-dimension-8-12, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); flex-direction: column; justify-content: center; align-items: center; align-self: stretch; } .bottom.sc-lmvz-card { display: flex; min-width: 150px; padding: var(--lmvz-dimension-4-6, clamp(0.25rem, 0.22rem + 0.13vw, 0.38rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)); flex-direction: column; align-items: flex-start; align-self: stretch; } .title.sc-lmvz-card { margin: 0; display: flex; justify-content: center; align-items: center; align-self: stretch; padding-bottom: var(--lmvz-global-s4, 4px); overflow-wrap: break-word; font: var(--lmvz-typography-heading-2xl, 500 clamp(2rem, 1.94rem + 0.26vw, 2.25rem) / 1.2 Router); } .description.sc-lmvz-card { display: flex; margin: 0; padding-bottom: var(--lmvz-component-body-sm-padding-bottom, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); align-items: flex-start; align-self: stretch; white-space: pre-line; font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } .image-wrapper.sc-lmvz-card { aspect-ratio: 4 / 3; width: 100%; background-size: cover; background-position: center; flex: 1 0 0; align-self: stretch; border-radius: var(--lmvz-semantic-border-radius-md, 6px); } .actions.sc-lmvz-card { margin-top: var(--lmvz-component-form-wrapper-gap-y, clamp(1.13rem, 0.97rem + 0.65vw, 1.75rem)); display: flex; align-items: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); align-self: stretch; } button.primary.sc-lmvz-card, lmvz-button.primary.sc-lmvz-card { display: flex; justify-content: center; align-items: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); flex: 1 0 0; }`;
|
|
5684
5694
|
|
|
5685
5695
|
class LmvzCard {
|
|
5686
5696
|
constructor(hostRef) {
|
|
@@ -5797,7 +5807,9 @@ const lmvzHeaderCss = () => `:host{display:flex;width:100vw;flex-direction:row;a
|
|
|
5797
5807
|
|
|
5798
5808
|
class LmvzHeader extends ReactiveControllerHost {
|
|
5799
5809
|
get el() { return getElement(this); }
|
|
5800
|
-
validationEl
|
|
5810
|
+
get validationEl() {
|
|
5811
|
+
return this.el;
|
|
5812
|
+
}
|
|
5801
5813
|
primarySlot;
|
|
5802
5814
|
secondarySlot;
|
|
5803
5815
|
secondaryNav;
|
|
@@ -5871,7 +5883,7 @@ class LmvzHeader extends ReactiveControllerHost {
|
|
|
5871
5883
|
}
|
|
5872
5884
|
}
|
|
5873
5885
|
render() {
|
|
5874
|
-
return (hAsync(Host, { key: '
|
|
5886
|
+
return (hAsync(Host, { key: '1ac6c66802a59061742f677e0c3ab2fb1b12363b', onFocus: this.delegateFocus.bind(this) }, hAsync("div", { key: 'ea534c09323539a0df13cb00d0aec382d3c81dd8', class: "brand" }, hAsync("slot", { key: 'b303a741a7d44869c4e53295ab13d606b5ed1d63', name: "brand" }, hAsync("img", { key: '7fd47fa34f3404016be40c8bd49ea28fddd58a8a', id: "fallback-logo-lmvz", src: logoSvg, alt: "Lehrmittelverlag Z\u00FCrich" }))), hAsync("nav", { key: '8e4f9db8b85f3dbea452bb309ae55bc1fac16dcb', "aria-label": "Hauptnavigation" }, hAsync("div", { key: '681c36337dcb3bc4e1833e602af4c642ab1c6acb', role: "menubar", class: "primary-menubar" }, hAsync("slot", { key: '6298235a3421ab083943f25a93c239ae686b8a20', name: "nav-primary", ref: (el) => (this.primarySlot = el) }), hAsync("div", { key: '64b02f2562779e5e412e5076c66d9fcd2a0bb6f5', role: "menu", id: "nav-secondary", class: "secondary-menubar", hidden: !this.lmvzActiveNav, ref: (el) => (this.secondaryNav = el) }, hAsync("slot", { key: '6e0589f700073ba93dc15f5873ca61e03eba5975', name: this.secondarySlotName, ref: (el) => (this.secondarySlot = el) })))), hAsync("div", { key: '50a84ddd9ed61f6c2a1fa32a91ccfdcfb1f3ae94', class: "actions" }, hAsync("slot", { key: 'e57d76343a0f21666479e9a1d3ae4e94843b403e', name: "actions" }))));
|
|
5875
5887
|
}
|
|
5876
5888
|
static get watchers() { return {
|
|
5877
5889
|
"lmvzActiveNav": [{
|
|
@@ -9721,7 +9733,9 @@ const lmvzInputCss = () => `@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.compone
|
|
|
9721
9733
|
let inputIdCounter = 0;
|
|
9722
9734
|
class LmvzInput extends ReactiveControllerHost {
|
|
9723
9735
|
get el() { return getElement(this); }
|
|
9724
|
-
validationEl
|
|
9736
|
+
get validationEl() {
|
|
9737
|
+
return this.el;
|
|
9738
|
+
}
|
|
9725
9739
|
lmvzInput;
|
|
9726
9740
|
internals;
|
|
9727
9741
|
nativeInputElement;
|
|
@@ -9868,9 +9882,9 @@ class LmvzInput extends ReactiveControllerHost {
|
|
|
9868
9882
|
render() {
|
|
9869
9883
|
const hasValue = Boolean(this.value);
|
|
9870
9884
|
const shouldFloatLabel = hasValue || Boolean(this.placeholder);
|
|
9871
|
-
return (hAsync("div", { key: '
|
|
9885
|
+
return (hAsync("div", { key: '50e70a8963db11234428d8753b4ac4a22424fe93', class: classNames('input-container', {
|
|
9872
9886
|
'interaction-filled': hasValue,
|
|
9873
|
-
}) }, hAsync("div", { key: '
|
|
9887
|
+
}) }, hAsync("div", { key: '15fdd5c130ff915830b5a9055743d3493f02baf0', class: "input-wrapper" }, hAsync("slot", { key: '16dd0a7af0ea88b1b4f23e9c62bc20f28425b9ee', name: "before-input" }), hAsync("div", { key: '46afc3affa6fca9049da985fb65a2aab94b0d479', class: "label-input-group" }, hAsync("label", { key: '21c938202cdd21beb284b75d2451247a421a0218', htmlFor: this.inputId, class: classNames({ floating: shouldFloatLabel }) }, this.label, this.required && (hAsync("span", { key: '0bbba8b04242a1bee0bf0b5b0bc15c11f616cbac', class: "required-indicator", "aria-hidden": "true" }, ' ', "*"))), hAsync("input", { key: '9af271fb9251e78706190a0e6cb8373ace8a10f7', id: this.inputId, ref: (el) => (this.nativeInputElement = el), type: this.type, min: this.min, max: this.max, step: this.step, value: this.value, name: this.name, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, required: this.required, form: this.form, autocomplete: this.autocomplete, inputmode: this.inputmode, autocorrect: this.autocorrect, autocapitalize: this.autocapitalize, spellcheck: this.spellcheck, autofocus: this.autofocus, minlength: this.minlength, maxlength: this.maxlength, pattern: this.pattern, "aria-invalid": this.error ? 'true' : 'false', "aria-required": this.required ? 'true' : 'false', "aria-describedby": this.describedBy, "aria-errormessage": this.errorId, onInput: this.handleInput, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur })), hAsync("slot", { key: 'db559809a6a5614b522f362c3cf6e97469fb4da4', name: "after-input" })), hAsync("div", { key: '191b364963a017f6b458c2d33fbc4a1b376b8379', id: this.helperId, role: "status" }, this.helperText || null), hAsync("div", { key: '058d13a869f6a3c49f94793eeacecb2b2e672e5c', id: this.errorId, role: "alert" }, (this.showErrorMessage && this.errorMessage) || null)));
|
|
9874
9888
|
}
|
|
9875
9889
|
static get formAssociated() { return true; }
|
|
9876
9890
|
static get watchers() { return {
|
|
@@ -9962,6 +9976,86 @@ class LmvzMenuItem extends ReactiveControllerHost {
|
|
|
9962
9976
|
}; }
|
|
9963
9977
|
}
|
|
9964
9978
|
|
|
9979
|
+
const chevronDownSvg = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIwLjMzMzQgOC42NjY2M0wxMi4wMDAxIDE3TDMuNjY2NzUgOC42NjY2MyIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=';
|
|
9980
|
+
|
|
9981
|
+
const lmvzSelectCss = () => `@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-select-h { display: block; font-family: var(--lmvz-global-font-family-default, Router); --lmvz-internal-select-floating-label-top-offset: 0.375rem; padding-top: var(--lmvz-internal-select-floating-label-top-offset); --lmvz-select-radius: var(--lmvz-component-input-radius-default, 999px); --lmvz-select-bg: var(--lmvz-semantic-color-int-secondary, #f0f0f0); --lmvz-select-bg-hover: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0); --lmvz-select-text-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-select-label-color: var(--lmvz-semantic-color-on-surface-input-primary, #000000); --lmvz-select-padding-x: var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)); --lmvz-select-gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-select-height: 40px; --lmvz-select-label-font-size: var(--lmvz-component-component-typography-body-sm-font-size, 0.75rem); --lmvz-select-label-top-offset: calc(var(--lmvz-internal-select-floating-label-top-offset) * -1); --lmvz-select-label-minimized-padding-x: 4px; --lmvz-select-disabled-opacity: var(--lmvz-component-input-disabled-opacity, 40%); --lmvz-select-helper-color: var(--lmvz-semantic-color-on-surface-input-secondary, #7a7a7a); --lmvz-select-focus-color: var(--lmvz-semantic-color-status-on-selected, #0e7ab4); --lmvz-select-error-color: var(--lmvz-semantic-color-status-on-danger, #e52a31); } .select-wrapper.sc-lmvz-select { position: relative; height: var(--lmvz-select-height); } label.sc-lmvz-select { position: absolute; top: 50%; left: var(--lmvz-select-padding-x); font-size: var(--lmvz-select-label-font-size); color: var(--lmvz-select-label-color); line-height: normal; white-space: nowrap; pointer-events: none; z-index: 2; transform: translateY(-50%); transform-origin: left top; transition: top 0.2s ease-out, transform 0.2s ease-out, opacity 0.2s ease-out, padding 0.2s ease-out; } label.assistive-label.sc-lmvz-select { opacity: 0; padding: 0; } label.floating-label.sc-lmvz-select { top: var(--lmvz-select-label-top-offset); transform: translateY(0) scale(0.85); left: calc(var(--lmvz-select-padding-x) - 2px); background-color: var(--lmvz-select-bg); padding: 0 var(--lmvz-select-label-minimized-padding-x); opacity: 1; font-weight: 500; } label.sc-lmvz-select > span[aria-hidden='true'].sc-lmvz-select, div[aria-hidden='true'].sc-lmvz-select > span.sc-lmvz-select:first-child > span[aria-hidden='true'].sc-lmvz-select { color: var(--lmvz-select-error-color); margin-left: 2px; display: inline-block; line-height: 0; vertical-align: middle; } div[aria-hidden].sc-lmvz-select { display: flex; align-items: center; gap: var(--lmvz-select-gap); height: 100%; padding: 0 var(--lmvz-select-padding-x); border-radius: var(--lmvz-select-radius); background-color: var(--lmvz-select-bg); cursor: pointer; position: relative; z-index: 1; transition: background-color 0.15s ease; } .sc-lmvz-select-h:not([disabled]) .select-wrapper.sc-lmvz-select:hover div[aria-hidden].sc-lmvz-select { background-color: var(--lmvz-select-bg-hover); } .select-wrapper.sc-lmvz-select:focus-within div[aria-hidden].sc-lmvz-select { outline: 2px solid var(--lmvz-select-focus-color); outline-offset: 2px; } div[aria-hidden].sc-lmvz-select > span.sc-lmvz-select:first-child { flex: 1 0 0; font-size: var(--lmvz-component-component-typography-body-md-font-size, 0.875rem); font-weight: var(--lmvz-global-font-weight-500, 500); color: var(--lmvz-select-text-color); line-height: 1.4; letter-spacing: var(--lmvz-component-body-md-letter-spacing, 0px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } div[aria-hidden].sc-lmvz-select > span.sc-lmvz-select:last-child { flex-shrink: 0; display: flex; align-items: center; justify-content: center; } img.sc-lmvz-select { display: block; width: var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)); height: var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)); } select.sc-lmvz-select { appearance: none; position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 2; border: none; background: transparent; margin: 0; padding: 0; } [disabled].sc-lmvz-select-h .select-wrapper.sc-lmvz-select { opacity: var(--lmvz-select-disabled-opacity); pointer-events: none; cursor: not-allowed; } [role='status'].sc-lmvz-select { margin-top: 4px; padding-left: var(--lmvz-select-padding-x); font-size: var(--lmvz-select-label-font-size); color: var(--lmvz-select-helper-color); line-height: normal; }`;
|
|
9982
|
+
|
|
9983
|
+
let selectIdCounter = 0;
|
|
9984
|
+
class LmvzSelect extends ReactiveControllerHost {
|
|
9985
|
+
get el() { return getElement(this); }
|
|
9986
|
+
get validationEl() {
|
|
9987
|
+
return this.el;
|
|
9988
|
+
}
|
|
9989
|
+
selectId = `lmvz-select-${selectIdCounter++}`;
|
|
9990
|
+
nativeSelectEl;
|
|
9991
|
+
constructor(hostRef) {
|
|
9992
|
+
super();
|
|
9993
|
+
registerInstance(this, hostRef);
|
|
9994
|
+
this.lmvzChange = createEvent(this, "lmvzChange");
|
|
9995
|
+
this.addController(new AriaValidationController(this));
|
|
9996
|
+
}
|
|
9997
|
+
lmvzChange;
|
|
9998
|
+
value;
|
|
9999
|
+
label;
|
|
10000
|
+
helperText;
|
|
10001
|
+
disabled = false;
|
|
10002
|
+
required = false;
|
|
10003
|
+
name;
|
|
10004
|
+
selectedLabel = '';
|
|
10005
|
+
get hasValue() {
|
|
10006
|
+
return Boolean(this.value);
|
|
10007
|
+
}
|
|
10008
|
+
componentDidLoad() {
|
|
10009
|
+
this.syncSelectedLabel();
|
|
10010
|
+
super.componentDidLoad();
|
|
10011
|
+
}
|
|
10012
|
+
handleValueChange(newValue) {
|
|
10013
|
+
if (this.nativeSelectEl && this.nativeSelectEl.value !== (newValue ?? '')) {
|
|
10014
|
+
this.nativeSelectEl.value = newValue ?? '';
|
|
10015
|
+
}
|
|
10016
|
+
this.syncSelectedLabel();
|
|
10017
|
+
}
|
|
10018
|
+
syncSelectedLabel() {
|
|
10019
|
+
if (!this.nativeSelectEl)
|
|
10020
|
+
return;
|
|
10021
|
+
const idx = this.nativeSelectEl.selectedIndex;
|
|
10022
|
+
this.selectedLabel = idx >= 0 ? (this.nativeSelectEl.options[idx]?.text ?? '') : '';
|
|
10023
|
+
}
|
|
10024
|
+
handleChange = (event) => {
|
|
10025
|
+
const select = event.target;
|
|
10026
|
+
this.value = select.value;
|
|
10027
|
+
this.syncSelectedLabel();
|
|
10028
|
+
this.lmvzChange.emit(select.value);
|
|
10029
|
+
};
|
|
10030
|
+
render() {
|
|
10031
|
+
const hasValue = this.hasValue;
|
|
10032
|
+
const shouldShowLabel = hasValue;
|
|
10033
|
+
return (hAsync(Host, { key: '2e93e1107001237254f4f9d1a0bee5caf1ab2471' }, hAsync("div", { key: 'a5403bf851515d24b9a112661f457b9a6d1bc189', class: "select-wrapper" }, hAsync("label", { key: 'c0821beee587d720ef3bf185094645dd2d22b701', htmlFor: this.selectId, class: shouldShowLabel ? 'floating-label' : 'assistive-label' }, this.label, this.required && shouldShowLabel && hAsync("span", { key: '3659c7947caa419ccf21954da3efc24e5bac6963', "aria-hidden": "true" }, " *")), hAsync("div", { key: '65db22f89f119cbb96ed9de556fd60d7d1c5cce3', "aria-hidden": "true" }, hAsync("span", { key: 'e0e53b6fe461ab078a6268f2f0050a14722d15a4' }, hasValue ? this.selectedLabel : this.label, this.required && !hasValue && hAsync("span", { key: '2f508f1d94c1437da702e81d2520f9df3f9e96ea', "aria-hidden": "true" }, " *")), hAsync("span", { key: '7bbc03b8f6665341874e6bcc02592bfdc7aa5861' }, hAsync("img", { key: '6453a928e8aa56bfd39b40d11685554bb37c16e4', src: chevronDownSvg, alt: "" }))), hAsync("select", { key: '40170929a774d271c1487e16d15410715471c06b', id: this.selectId, ref: (el) => (this.nativeSelectEl = el), name: this.name, disabled: this.disabled, required: this.required, "aria-label": this.label, onChange: this.handleChange }, !hasValue && hAsync("option", { key: '5d29283095f87f4d3d38183c4a7e42f5b0e806e4', value: "", disabled: true, selected: true, hidden: true }), hAsync("slot", { key: '56bf95ba5ab35768681eac7770e56560f6b57f88' }))), this.helperText && hAsync("div", { key: 'fbe735b28acdd21088d377635804781197c0b1b1', role: "status" }, this.helperText)));
|
|
10034
|
+
}
|
|
10035
|
+
static get watchers() { return {
|
|
10036
|
+
"value": [{
|
|
10037
|
+
"handleValueChange": 0
|
|
10038
|
+
}]
|
|
10039
|
+
}; }
|
|
10040
|
+
static get style() { return lmvzSelectCss(); }
|
|
10041
|
+
static get cmpMeta() { return {
|
|
10042
|
+
"$flags$": 774,
|
|
10043
|
+
"$tagName$": "lmvz-select",
|
|
10044
|
+
"$members$": {
|
|
10045
|
+
"value": [1025],
|
|
10046
|
+
"label": [1],
|
|
10047
|
+
"helperText": [1, "helper-text"],
|
|
10048
|
+
"disabled": [516],
|
|
10049
|
+
"required": [516],
|
|
10050
|
+
"name": [1],
|
|
10051
|
+
"selectedLabel": [32]
|
|
10052
|
+
},
|
|
10053
|
+
"$listeners$": undefined,
|
|
10054
|
+
"$lazyBundleId$": "-",
|
|
10055
|
+
"$attrsToReflect$": [["disabled", "disabled"], ["required", "required"]]
|
|
10056
|
+
}; }
|
|
10057
|
+
}
|
|
10058
|
+
|
|
9965
10059
|
registerComponents([
|
|
9966
10060
|
LmvzAction,
|
|
9967
10061
|
LmvzButton,
|
|
@@ -9971,6 +10065,7 @@ registerComponents([
|
|
|
9971
10065
|
LmvzIcon,
|
|
9972
10066
|
LmvzInput,
|
|
9973
10067
|
LmvzMenuItem,
|
|
10068
|
+
LmvzSelect,
|
|
9974
10069
|
]);
|
|
9975
10070
|
|
|
9976
10071
|
exports.hydrateApp = hydrateApp;
|