@lmvz-ds/components 0.39.0 → 0.41.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 (138) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/cjs/{ds.constants-C6eKRAEu.js → ds.constants-pI-qkOYv.js} +2 -0
  3. package/cjs/index.cjs.js +2 -1
  4. package/cjs/lmvz-button-group.cjs.entry.js +1 -1
  5. package/cjs/lmvz-button_2.cjs.entry.js +1 -1
  6. package/cjs/lmvz-card.cjs.entry.js +58 -14
  7. package/cjs/lmvz-checkbox.cjs.entry.js +1 -1
  8. package/cjs/lmvz-chip.cjs.entry.js +2 -2
  9. package/cjs/lmvz-components.cjs.js +1 -1
  10. package/cjs/lmvz-datepicker.cjs.entry.js +2 -2
  11. package/cjs/lmvz-header_2.cjs.entry.js +1 -1
  12. package/cjs/lmvz-input.cjs.entry.js +2 -2
  13. package/cjs/lmvz-link.cjs.entry.js +2 -2
  14. package/cjs/lmvz-menuitem.cjs.entry.js +1 -1
  15. package/cjs/lmvz-message.cjs.entry.js +1 -1
  16. package/cjs/lmvz-modal.cjs.entry.js +1 -1
  17. package/cjs/lmvz-popover.cjs.entry.js +1 -1
  18. package/cjs/lmvz-radio.cjs.entry.js +1 -1
  19. package/cjs/lmvz-select.cjs.entry.js +1 -1
  20. package/cjs/lmvz-snackbar.cjs.entry.js +1 -1
  21. package/cjs/lmvz-spinner.cjs.entry.js +1 -1
  22. package/cjs/lmvz-tab.cjs.entry.js +3 -3
  23. package/cjs/lmvz-tabs.cjs.entry.js +37 -44
  24. package/cjs/lmvz-toggle.cjs.entry.js +1 -1
  25. package/cjs/loader.cjs.js +1 -1
  26. package/collection/api/ds.constants.js +1 -0
  27. package/collection/components/lmvz-card/lmvz-card.css +82 -194
  28. package/collection/components/lmvz-card/lmvz-card.js +131 -38
  29. package/collection/components/lmvz-checkbox/lmvz-checkbox.js +1 -1
  30. package/collection/components/lmvz-chip/lmvz-chip.js +1 -1
  31. package/collection/components/lmvz-datepicker/lmvz-datepicker.js +2 -2
  32. package/collection/components/lmvz-header/lmvz-header.js +1 -1
  33. package/collection/components/lmvz-icon/lmvz-icon.js +1 -1
  34. package/collection/components/lmvz-input/lmvz-input.js +2 -2
  35. package/collection/components/lmvz-link/lmvz-link.js +1 -1
  36. package/collection/components/lmvz-menuitem/lmvz-menuitem.js +1 -1
  37. package/collection/components/lmvz-message/lmvz-message.js +1 -1
  38. package/collection/components/lmvz-modal/lmvz-modal.js +1 -1
  39. package/collection/components/lmvz-popover/lmvz-popover.js +1 -1
  40. package/collection/components/lmvz-radio/lmvz-radio.js +1 -1
  41. package/collection/components/lmvz-select/lmvz-select.js +1 -1
  42. package/collection/components/lmvz-snackbar/lmvz-snackbar.js +1 -1
  43. package/collection/components/lmvz-spinner/lmvz-spinner.js +1 -1
  44. package/collection/components/lmvz-tab/lmvz-tab.css +0 -13
  45. package/collection/components/lmvz-tab/lmvz-tab.js +10 -14
  46. package/collection/components/lmvz-tabs/lmvz-tabs.css +0 -5
  47. package/collection/components/lmvz-tabs/lmvz-tabs.js +45 -66
  48. package/collection/components/lmvz-toggle/lmvz-toggle.js +1 -1
  49. package/collection/integration/header-integration/header-integration.js +1 -1
  50. package/components/index.js +1 -1
  51. package/components/lmvz-button-group.js +1 -1
  52. package/components/lmvz-card.js +1 -1
  53. package/components/lmvz-checkbox.js +1 -1
  54. package/components/lmvz-chip.js +1 -1
  55. package/components/lmvz-datepicker.js +1 -1
  56. package/components/lmvz-header.js +1 -1
  57. package/components/lmvz-icon.js +1 -1
  58. package/components/lmvz-input.js +1 -1
  59. package/components/lmvz-link.js +1 -1
  60. package/components/lmvz-menuitem.js +1 -1
  61. package/components/lmvz-message.js +1 -1
  62. package/components/lmvz-modal.js +1 -1
  63. package/components/lmvz-popover.js +1 -1
  64. package/components/lmvz-radio.js +1 -1
  65. package/components/lmvz-select.js +1 -1
  66. package/components/lmvz-snackbar.js +1 -1
  67. package/components/lmvz-spinner.js +1 -1
  68. package/components/lmvz-tab.js +1 -1
  69. package/components/lmvz-tabs.js +1 -1
  70. package/components/lmvz-toggle.js +1 -1
  71. package/components/p-Buw_s-9k.js +1 -0
  72. package/components/{p-DSDBThqb.js → p-ChNEjbnY.js} +1 -1
  73. package/components/{p-niXjuPxe.js → p-DMdV-cnt.js} +1 -1
  74. package/components/{p-Bc5MM0zh.js → p-D_sr5Z0Q.js} +1 -1
  75. package/components/{p-D_mff3n7.js → p-qLAod5PR.js} +1 -1
  76. package/components/{p-DXhP6UeF.js → p-sJgTdXHR.js} +1 -1
  77. package/esm/{ds.constants-0ctLESas.js → ds.constants-Buw_s-9k.js} +2 -1
  78. package/esm/index.js +1 -1
  79. package/esm/lmvz-button-group.entry.js +1 -1
  80. package/esm/lmvz-button_2.entry.js +1 -1
  81. package/esm/lmvz-card.entry.js +59 -15
  82. package/esm/lmvz-checkbox.entry.js +1 -1
  83. package/esm/lmvz-chip.entry.js +2 -2
  84. package/esm/lmvz-components.js +1 -1
  85. package/esm/lmvz-datepicker.entry.js +2 -2
  86. package/esm/lmvz-header_2.entry.js +1 -1
  87. package/esm/lmvz-input.entry.js +2 -2
  88. package/esm/lmvz-link.entry.js +2 -2
  89. package/esm/lmvz-menuitem.entry.js +1 -1
  90. package/esm/lmvz-message.entry.js +1 -1
  91. package/esm/lmvz-modal.entry.js +1 -1
  92. package/esm/lmvz-popover.entry.js +1 -1
  93. package/esm/lmvz-radio.entry.js +1 -1
  94. package/esm/lmvz-select.entry.js +1 -1
  95. package/esm/lmvz-snackbar.entry.js +1 -1
  96. package/esm/lmvz-spinner.entry.js +1 -1
  97. package/esm/lmvz-tab.entry.js +3 -3
  98. package/esm/lmvz-tabs.entry.js +37 -44
  99. package/esm/lmvz-toggle.entry.js +1 -1
  100. package/esm/loader.js +1 -1
  101. package/hydrate/index.js +125 -88
  102. package/hydrate/index.mjs +125 -88
  103. package/lmvz-components/index.esm.js +1 -1
  104. package/lmvz-components/lmvz-components.esm.js +1 -1
  105. package/lmvz-components/{p-f24f5207.entry.js → p-170dea97.entry.js} +1 -1
  106. package/lmvz-components/{p-efd9d50e.entry.js → p-18a894e4.entry.js} +1 -1
  107. package/lmvz-components/{p-f911691c.entry.js → p-19c9f747.entry.js} +1 -1
  108. package/lmvz-components/{p-87f21ac9.entry.js → p-377c45a7.entry.js} +1 -1
  109. package/lmvz-components/{p-773e9d95.entry.js → p-6292da52.entry.js} +1 -1
  110. package/lmvz-components/{p-ebad823c.entry.js → p-65efa76e.entry.js} +1 -1
  111. package/lmvz-components/{p-27e8b4fa.entry.js → p-67b86084.entry.js} +1 -1
  112. package/lmvz-components/{p-7cbfbc88.entry.js → p-6ffd9391.entry.js} +1 -1
  113. package/lmvz-components/{p-304c7554.entry.js → p-77fd3ce2.entry.js} +1 -1
  114. package/lmvz-components/{p-e35f49a1.entry.js → p-96764fa9.entry.js} +1 -1
  115. package/lmvz-components/p-Buw_s-9k.js +1 -0
  116. package/lmvz-components/{p-6aae1df9.entry.js → p-a70079b6.entry.js} +1 -1
  117. package/lmvz-components/p-aa643b58.entry.js +1 -0
  118. package/lmvz-components/{p-335b3867.entry.js → p-b14966a6.entry.js} +1 -1
  119. package/lmvz-components/{p-8ba6ec19.entry.js → p-b9d29e90.entry.js} +1 -1
  120. package/lmvz-components/{p-41286514.entry.js → p-bf728ef8.entry.js} +1 -1
  121. package/lmvz-components/p-c6309d6c.entry.js +1 -0
  122. package/lmvz-components/p-d466fe8f.entry.js +1 -0
  123. package/lmvz-components/{p-edec4d09.entry.js → p-dd4a62e1.entry.js} +1 -1
  124. package/lmvz-components/{p-d73bb7fd.entry.js → p-e1c75def.entry.js} +1 -1
  125. package/lmvz-components/{p-93b781ca.entry.js → p-fd29789f.entry.js} +1 -1
  126. package/manifest.json +169 -102
  127. package/package.json +1 -1
  128. package/types/api/ds.constants.d.ts +1 -0
  129. package/types/api/ds.types.d.ts +4 -0
  130. package/types/components/lmvz-card/lmvz-card.d.ts +17 -6
  131. package/types/components/lmvz-tab/lmvz-tab.d.ts +1 -1
  132. package/types/components/lmvz-tabs/lmvz-tabs.d.ts +7 -8
  133. package/types/components.d.ts +68 -47
  134. package/components/p-0ctLESas.js +0 -1
  135. package/lmvz-components/p-0ctLESas.js +0 -1
  136. package/lmvz-components/p-1ba1af8d.entry.js +0 -1
  137. package/lmvz-components/p-3b7203a3.entry.js +0 -1
  138. package/lmvz-components/p-c884c76e.entry.js +0 -1
@@ -5,6 +5,12 @@ export declare namespace Button {
5
5
  export type Variant = LmvzDS.Variant;
6
6
  }
7
7
 
8
+ export declare namespace Card {
9
+ export type Size = (typeof cardSizes)[number];
10
+ }
11
+
12
+ declare const cardSizes: readonly ["large", "small"];
13
+
8
14
  export declare namespace Chip {
9
15
  export type Type = (typeof chipTypes)[number];
10
16
  export type Size = (typeof chipSizes)[number];
@@ -111,24 +117,36 @@ export declare namespace Components {
111
117
  */
112
118
  "stacked": boolean;
113
119
  }
120
+ /**
121
+ * A card composes an image, title, description, an optional chip, and an optional single action into a self-contained content unit.
122
+ */
114
123
  export interface LmvzCard {
115
124
  /**
116
- * Card title (required)
125
+ * Label for the card's single action button. The action row renders only when this is a non-empty string.
117
126
  */
118
- "cardTitle": string;
127
+ "actionLabel"?: string;
119
128
  /**
120
- * Optional description
129
+ * Card title text, rendered as the fallback `<h3>` for the `card-title` slot. Ignored when a heading is slotted into `card-title`. One of `cardTitle` or a slotted heading should be supplied.
130
+ */
131
+ "cardTitle"?: string;
132
+ /**
133
+ * Optional description text.
121
134
  */
122
135
  "description"?: string;
123
136
  /**
124
- * Optional image URL; placeholder used if omitted
137
+ * Accessible alt text for the image.
138
+ * @default ''
139
+ */
140
+ "imageAlt": string;
141
+ /**
142
+ * Optional image URL; falls back to a bundled placeholder graphic when unset.
125
143
  */
126
144
  "imageUrl"?: string;
127
145
  /**
128
- * Primary action button label
129
- * @default ''
146
+ * Size variant of the card. Invalid values are normalized to `large` at runtime.
147
+ * @default 'large'
130
148
  */
131
- "primaryActionLabel": string;
149
+ "size": Card.Size;
132
150
  }
133
151
  /**
134
152
  * Checkbox component with form association, ARIA validation, and accessible label support.
@@ -866,6 +884,10 @@ export declare namespace Components {
866
884
  * @default false
867
885
  */
868
886
  "disabled": boolean;
887
+ /**
888
+ * The `id` of the target `lmvz-tab-panel` this tab controls. When omitted, pairing falls back to DOM position.
889
+ */
890
+ "panel"?: string;
869
891
  /**
870
892
  * Whether this tab is currently selected. Set by the parent `lmvz-tabs` component — do not set manually.
871
893
  * @default false
@@ -875,11 +897,6 @@ export declare namespace Components {
875
897
  * Unique value that identifies this tab within its `lmvz-tabs` parent. The parent uses this to track the selected tab.
876
898
  */
877
899
  "value": string;
878
- /**
879
- * Vertical orientation context. Set by the parent `lmvz-tabs` when `orientation="vertical"` — do not set manually. When true the selection indicator moves to the inline-start edge.
880
- * @default false
881
- */
882
- "vertical": boolean;
883
900
  }
884
901
  /**
885
902
  * The semantics and state owner for the WAI-ARIA tabs pattern.
@@ -890,9 +907,10 @@ export declare namespace Components {
890
907
  * - Horizontal scroll overflow (horizontal mode only)
891
908
  * - Disabled-tab skipping and nearest-enabled fallback
892
909
  * - Child registration and panel linkage via `aria-controls` / `aria-labelledby`
893
- * Panels are consumer-authored light-DOM elements. Associate each panel with
894
- * its tab by adding an `id` attribute either matching `lmvz-tab[panel]` or
895
- * derived positionally when no explicit id is provided.
910
+ * Panels are consumer-authored light-DOM elements. Each `lmvz-tab` can declare
911
+ * a `panel` attribute whose value matches the target `lmvz-tab-panel`'s `id`,
912
+ * resolving the pairing explicitly. Tabs without a `panel` attribute fall back
913
+ * to positional pairing (tab N pairs with panel N).
896
914
  * @event lmvzChange - Fired when a tab is activated. Detail: `{ value: string }`.
897
915
  * @example ```html
898
916
  * <lmvz-tabs value="home">
@@ -916,11 +934,6 @@ export declare namespace Components {
916
934
  * Programmatically set focus to the first managed element.
917
935
  */
918
936
  "initFocus": () => Promise<void>;
919
- /**
920
- * Layout and keyboard-navigation orientation.
921
- * @default 'horizontal'
922
- */
923
- "orientation": 'horizontal' | 'vertical';
924
937
  /**
925
938
  * Wires `aria-controls` on each tab and `aria-labelledby` on each panel using the provided ordered array of `[tabId, panelId]` pairs. Callers only need this for explicit control; `lmvz-tabs` wires positional pairs automatically on `slotchange`.
926
939
  */
@@ -1146,28 +1159,40 @@ export declare namespace JSX {
1146
1159
  */
1147
1160
  "stacked"?: boolean;
1148
1161
  }
1162
+ /**
1163
+ * A card composes an image, title, description, an optional chip, and an optional single action into a self-contained content unit.
1164
+ */
1149
1165
  export interface LmvzCard {
1150
1166
  /**
1151
- * Card title (required)
1167
+ * Label for the card's single action button. The action row renders only when this is a non-empty string.
1152
1168
  */
1153
- "cardTitle": string;
1169
+ "actionLabel"?: string;
1170
+ /**
1171
+ * Card title text, rendered as the fallback `<h3>` for the `card-title` slot. Ignored when a heading is slotted into `card-title`. One of `cardTitle` or a slotted heading should be supplied.
1172
+ */
1173
+ "cardTitle"?: string;
1154
1174
  /**
1155
- * Optional description
1175
+ * Optional description text.
1156
1176
  */
1157
1177
  "description"?: string;
1158
1178
  /**
1159
- * Optional image URL; placeholder used if omitted
1179
+ * Accessible alt text for the image.
1180
+ * @default ''
1181
+ */
1182
+ "imageAlt"?: string;
1183
+ /**
1184
+ * Optional image URL; falls back to a bundled placeholder graphic when unset.
1160
1185
  */
1161
1186
  "imageUrl"?: string;
1162
1187
  /**
1163
- * Event emitted when primary button is clicked
1188
+ * Emitted once per activation of the action button.
1164
1189
  */
1165
- "onPrimaryAction"?: (event: LmvzCardCustomEvent<PointerEvent>) => void;
1190
+ "onLmvzCardAction"?: (event: LmvzCardCustomEvent<void>) => void;
1166
1191
  /**
1167
- * Primary action button label
1168
- * @default ''
1192
+ * Size variant of the card. Invalid values are normalized to `large` at runtime.
1193
+ * @default 'large'
1169
1194
  */
1170
- "primaryActionLabel"?: string;
1195
+ "size"?: Card.Size;
1171
1196
  }
1172
1197
  /**
1173
1198
  * Checkbox component with form association, ARIA validation, and accessible label support.
@@ -1866,6 +1891,10 @@ export declare namespace JSX {
1866
1891
  * @default false
1867
1892
  */
1868
1893
  "disabled"?: boolean;
1894
+ /**
1895
+ * The `id` of the target `lmvz-tab-panel` this tab controls. When omitted, pairing falls back to DOM position.
1896
+ */
1897
+ "panel"?: string;
1869
1898
  /**
1870
1899
  * Whether this tab is currently selected. Set by the parent `lmvz-tabs` component — do not set manually.
1871
1900
  * @default false
@@ -1875,11 +1904,6 @@ export declare namespace JSX {
1875
1904
  * Unique value that identifies this tab within its `lmvz-tabs` parent. The parent uses this to track the selected tab.
1876
1905
  */
1877
1906
  "value": string;
1878
- /**
1879
- * Vertical orientation context. Set by the parent `lmvz-tabs` when `orientation="vertical"` — do not set manually. When true the selection indicator moves to the inline-start edge.
1880
- * @default false
1881
- */
1882
- "vertical"?: boolean;
1883
1907
  }
1884
1908
  /**
1885
1909
  * The semantics and state owner for the WAI-ARIA tabs pattern.
@@ -1890,9 +1914,10 @@ export declare namespace JSX {
1890
1914
  * - Horizontal scroll overflow (horizontal mode only)
1891
1915
  * - Disabled-tab skipping and nearest-enabled fallback
1892
1916
  * - Child registration and panel linkage via `aria-controls` / `aria-labelledby`
1893
- * Panels are consumer-authored light-DOM elements. Associate each panel with
1894
- * its tab by adding an `id` attribute either matching `lmvz-tab[panel]` or
1895
- * derived positionally when no explicit id is provided.
1917
+ * Panels are consumer-authored light-DOM elements. Each `lmvz-tab` can declare
1918
+ * a `panel` attribute whose value matches the target `lmvz-tab-panel`'s `id`,
1919
+ * resolving the pairing explicitly. Tabs without a `panel` attribute fall back
1920
+ * to positional pairing (tab N pairs with panel N).
1896
1921
  * @event lmvzChange - Fired when a tab is activated. Detail: `{ value: string }`.
1897
1922
  * @example ```html
1898
1923
  * <lmvz-tabs value="home">
@@ -1908,11 +1933,6 @@ export declare namespace JSX {
1908
1933
  * Emitted when a tab is activated. Detail: `{ value: string }`.
1909
1934
  */
1910
1935
  "onLmvzChange"?: (event: LmvzTabsCustomEvent<{ value: string }>) => void;
1911
- /**
1912
- * Layout and keyboard-navigation orientation.
1913
- * @default 'horizontal'
1914
- */
1915
- "orientation"?: 'horizontal' | 'vertical';
1916
1936
  /**
1917
1937
  * The `value` of the currently selected tab.
1918
1938
  */
@@ -1983,10 +2003,12 @@ export declare namespace JSX {
1983
2003
  "hasActions": boolean;
1984
2004
  }
1985
2005
  export interface LmvzCardAttributes {
2006
+ "size": Card.Size;
1986
2007
  "cardTitle": string;
1987
- "imageUrl": string;
1988
2008
  "description": string;
1989
- "primaryActionLabel": string;
2009
+ "imageUrl": string;
2010
+ "imageAlt": string;
2011
+ "actionLabel": string;
1990
2012
  }
1991
2013
  export interface LmvzCheckboxAttributes {
1992
2014
  "label": string;
@@ -2132,11 +2154,10 @@ export declare namespace JSX {
2132
2154
  "value": string;
2133
2155
  "disabled": boolean;
2134
2156
  "selected": boolean;
2135
- "vertical": boolean;
2157
+ "panel": string;
2136
2158
  }
2137
2159
  export interface LmvzTabsAttributes {
2138
2160
  "value": string;
2139
- "orientation": 'horizontal' | 'vertical';
2140
2161
  }
2141
2162
  export interface LmvzToggleAttributes {
2142
2163
  "label": string;
@@ -2153,7 +2174,7 @@ export declare namespace JSX {
2153
2174
  "lmvz-action-list": Omit<LmvzActionList, keyof LmvzActionListAttributes> & { [K in keyof LmvzActionList & keyof LmvzActionListAttributes]?: LmvzActionList[K] } & { [K in keyof LmvzActionList & keyof LmvzActionListAttributes as `attr:${K}`]?: LmvzActionListAttributes[K] } & { [K in keyof LmvzActionList & keyof LmvzActionListAttributes as `prop:${K}`]?: LmvzActionList[K] };
2154
2175
  "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] };
2155
2176
  "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] };
2156
- "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"]>;
2177
+ "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] };
2157
2178
  "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"]>;
2158
2179
  "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] };
2159
2180
  "lmvz-datepicker": Omit<LmvzDatepicker, keyof LmvzDatepickerAttributes> & { [K in keyof LmvzDatepicker & keyof LmvzDatepickerAttributes]?: LmvzDatepicker[K] } & { [K in keyof LmvzDatepicker & keyof LmvzDatepickerAttributes as `attr:${K}`]?: LmvzDatepickerAttributes[K] } & { [K in keyof LmvzDatepicker & keyof LmvzDatepickerAttributes as `prop:${K}`]?: LmvzDatepicker[K] };
@@ -1 +0,0 @@
1
- const a=["primary","secondary","tertiary","danger"],s=["small","default","large"],t=["xs","sm","md","lg"],e=[...t,"xl"],r=["text","email","password","tel","url","search","number"],l=["sm","md","lg"],n=s,o=[...t,"inherit"],m=["thin","medium","bold"],d=["active","warning","success","error","neutral"],i=["default","small"],u=["internal","external"],c=["neutral","warning"],g=["success","warning","error"],p=["low","normal","high"],w=["timeout","manual","action","overridden","swallowed"],b=["top","bottom","start","end","top-start","top-end","bottom-start","bottom-end"],h=["sm","md","lg"];export{t as a,l as b,n as c,o as d,m as e,d as f,i as g,g as h,r as i,p as j,w as k,u as l,c as m,h as n,b as p,s,e as t,a as v}
@@ -1 +0,0 @@
1
- const a=["primary","secondary","tertiary","danger"],s=["small","default","large"],t=["xs","sm","md","lg"],e=[...t,"xl"],r=["text","email","password","tel","url","search","number"],l=["sm","md","lg"],n=s,o=[...t,"inherit"],m=["thin","medium","bold"],d=["active","warning","success","error","neutral"],i=["default","small"],u=["internal","external"],c=["neutral","warning"],g=["success","warning","error"],p=["low","normal","high"],w=["timeout","manual","action","overridden","swallowed"],b=["top","bottom","start","end","top-start","top-end","bottom-start","bottom-end"],h=["sm","md","lg"];export{t as a,l as b,n as c,o as d,m as e,d as f,i as g,g as h,r as i,p as j,w as k,u as l,c as m,h as n,b as p,s,e as t,a as v}
@@ -1 +0,0 @@
1
- import{g as t,r as e,c as s,h as i,H as a}from"./p-DVab4vzV.js";import{D as n}from"./p-BlkpdeQI.js";import{R as l}from"./p-CICeIanv.js";import"./p-BA3wizqg.js";import"./p-DIyiticz.js";let o=0;const r=class extends l{get el(){return t(this)}instanceId=++o;tabSlotEl;panelSlotEl;tablistEl;focusController=new n(this,{orientation:"horizontal",manageTabIndex:!0,enableHomeAndEnd:!0,listenerTarget:this.tablistEl});value;orientation="horizontal";lmvzChange;resolvedValue;constructor(t){super(),e(this,t),this.lmvzChange=s(this,"lmvzChange",7),this.addController(this.focusController)}componentWillLoad(){super.componentWillLoad(),this.syncOrientation()}componentDidLoad(){this.tabSlotEl?.addEventListener("slotchange",this.handleTabSlotChange),this.panelSlotEl?.addEventListener("slotchange",this.handlePanelSlotChange),this.el.addEventListener("lmvzTabReady",this.handleTabReady),this.handleTabSlotChange(),this.tablistEl&&this.focusController.updateListenerTarget(this.tablistEl),super.componentDidLoad()}disconnectedCallback(){this.el.removeEventListener("lmvzTabReady",this.handleTabReady),super.disconnectedCallback()}handleValueChange(t){this.applySelection(t)}handleOrientationChange(){this.syncOrientation(),this.syncFocusTargets(),this.syncTabOrientation()}async initFocus(){this.focusController.initFocus()}async activateTab(t){const e=this.findTabByValue(t);e&&!this.isTabDisabled(e)&&this.selectTab(t)}async getTabElements(){return this.slottedTabs}async setTabPanelIds(t){const e=this.slottedTabs,s=this.slottedPanels;t.forEach((([t,i],a)=>{const n=e[a],l=s[a],o=`${t}-btn`;if(n){n.id=t;const e=n.shadowRoot?.querySelector("button");e&&(e.id=o,e.setAttribute("aria-controls",i))}l&&(l.id=i,l.setAttribute("aria-labelledby",o))}))}get slottedTabs(){return(this.tabSlotEl?.assignedElements({flatten:!1})??[]).filter((t=>"lmvz-tab"===t.tagName.toLowerCase()))}get slottedPanels(){return this.panelSlotEl?.assignedElements({flatten:!1})??[]}handleTabSlotChange=()=>{this.syncFocusTargets(),this.syncTabOrientation(),this.wireAriaIds(),this.applySelection(this.value),this.updateIconTabsAttr()};handlePanelSlotChange=()=>{this.wireAriaIds(),this.applySelection(this.resolvedValue??this.value)};handleTabReady=()=>{this.syncFocusTargets(),this.wireAriaIds(),this.applySelection(this.resolvedValue??this.value),this.updateIconTabsAttr()};updateIconTabsAttr(){this.el.toggleAttribute("has-icon-tabs",this.slottedTabs.some((t=>t.hasAttribute("has-media"))))}syncFocusTargets(){const t=this.slottedTabs.map((t=>t.shadowRoot?.querySelector("button"))).filter((t=>!!t));this.focusController.updateElements(t)}syncOrientation(){this.removeController(this.focusController),this.focusController.hostDisconnected?.(),this.focusController=new n(this,{orientation:this.orientation,manageTabIndex:!0,enableHomeAndEnd:!0,listenerTarget:this.tablistEl}),this.addController(this.focusController),this.el.isConnected&&this.focusController.hostConnected?.()}syncTabOrientation(){const t="vertical"===this.orientation;this.slottedTabs.forEach((e=>{e.toggleAttribute("vertical",t)}))}wireAriaIds(){const t=this.slottedPanels,e=`lmvz-tabs-${this.instanceId}`;this.slottedTabs.forEach(((s,i)=>{const a=s.id||`${e}-tab-${i}`;s.id=a;const n=t[i];if(!n)return;const l=n.id||`${e}-panel-${i}`;n.id=l;const o=s.shadowRoot?.querySelector("button");o&&(o.setAttribute("aria-controls",l),o.setAttribute("id",`${a}-btn`)),n.setAttribute("role",n.getAttribute("role")??"tabpanel"),n.setAttribute("aria-labelledby",`${a}-btn`)}))}applySelection(t){const e=this.slottedTabs;if(!e.length)return;let s=this.findTabByValue(t);if(s&&!this.isTabDisabled(s)||(s=this.findNearestEnabled(t)??void 0),!s)return;const i=s.getAttribute("value")??"";this.resolvedValue=i,this.value!==i&&(this.value=i),e.forEach((t=>{const e=t.getAttribute("value")===i;t.toggleAttribute("selected",e);const s=t.shadowRoot?.querySelector("button");s&&s.setAttribute("aria-selected",String(e))})),this.slottedPanels.forEach(((t,s)=>{const a=e[s],n=a?.getAttribute("value")===i;t.toggleAttribute("hidden",!n)}));const a=s.shadowRoot?.querySelector("button");a&&this.focusController.setCurrentElement(a)}isTabDisabled(t){return t.hasAttribute("disabled")||!!t.disabled}findTabByValue(t){return this.slottedTabs.find((e=>e.getAttribute("value")===t))}findNearestEnabled(t){const e=this.slottedTabs,s=e.findIndex((e=>e.getAttribute("value")===t));for(let t=1;t<e.length;t++){const i=e[(s+t)%e.length];if(i&&!this.isTabDisabled(i))return i;const a=e[(s-t+e.length)%e.length];if(a&&!this.isTabDisabled(a))return a}}selectTab(t){t!==this.resolvedValue&&(this.applySelection(t),this.lmvzChange.emit({value:t}))}handleTabClick=t=>{const e=t.target.closest("lmvz-tab");if(!e)return;const s=e.getAttribute("value");s&&!this.isTabDisabled(e)&&this.selectTab(s)};handleKeydown=t=>{if("Enter"!==t.key&&" "!==t.key)return;const e=this.el.ownerDocument.activeElement;if(!e)return;let s=null;for(const t of this.slottedTabs)if(t===e){s=t;break}if(!s)return;const i=s.getAttribute("value");i&&!this.isTabDisabled(s)&&(t.preventDefault(),this.selectTab(i))};render(){return i(a,{key:"be4fe04b1374a2793d3b1e9a658a449474efdd03",onClick:this.handleTabClick,onKeydown:this.handleKeydown},i("div",{key:"d91015eddf16dfad5d49e942eb86e9f568978f34",role:"tablist","aria-orientation":this.orientation,class:"tablist",ref:t=>this.tablistEl=t},i("slot",{key:"be0990a7c668bc96a67c01561e3142ec028dabd0",ref:t=>this.tabSlotEl=t})),i("div",{key:"338323738dfdbb436d86cdb4f6041a67c1af433d",part:"panels-container",class:"panels-container"},i("slot",{key:"d225be099c8cb902776ce0a7dbf7dcb2aef2d03b",name:"panels",ref:t=>this.panelSlotEl=t})))}static get watchers(){return{value:[{handleValueChange:0}],orientation:[{handleOrientationChange:0}]}}};r.style=" @layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } *[hidden] { display: none !important; } hr { height: 0; border: none; margin: var(--lmvz-dimension-8-4, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)) 0; border-top: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-subtle, #f0f0f0); } fieldset { border: none; margin: 0; padding: 0; } legend { padding: 0; display: block; } } :host { display: inline-block; } .tablist { display: inline-flex; flex-direction: row; background: var(--lmvz-semantic-color-int-secondary, #f0f0f0); border-radius: var(--lmvz-semantic-border-radius-round, 999px); overflow: auto hidden; scrollbar-width: none; } .tablist::-webkit-scrollbar { display: none; } :host([has-icon-tabs]) .tablist { gap: var(--lmvz-dimension-8-6, clamp(0.38rem, 0.34rem + 0.13vw, 0.5rem)); background: none; border-radius: 0; } :host([orientation='vertical']) .tablist { flex-direction: column; overflow: visible auto; } ::slotted([role='tabpanel']) { display: block; } ::slotted([role='tabpanel'][hidden]) { display: none; } ";export{r as lmvz_tabs}
@@ -1 +0,0 @@
1
- import{r as e,g as a,h as t,H as r}from"./p-DVab4vzV.js";const o=class{constructor(a){e(this,a)}get el(){return a(this)}mediaSlotEl;value;disabled=!1;selected=!1;vertical=!1;handleMediaSlotChange=()=>{this.el.toggleAttribute("has-media",(this.mediaSlotEl?.assignedElements()??[]).length>0)};componentDidLoad(){this.handleMediaSlotChange(),this.el.dispatchEvent(new CustomEvent("lmvzTabReady",{bubbles:!0,composed:!1}))}render(){return t(r,{key:"4380fe35cacb11bc7114664c126504e8f4fb09a0"},t("button",{key:"ac77443cbba5c94f864820088f60c0bac23d0775",part:"button",role:"tab",disabled:this.disabled,"aria-selected":String(this.selected),"aria-disabled":this.disabled?"true":void 0,tabIndex:0},t("slot",{key:"9988497505ca3effa6c41011ac408a5d25629ca1",name:"media",ref:e=>this.mediaSlotEl=e,onSlotchange:this.handleMediaSlotChange}),t("span",{key:"70566c46fba36b8717aa82917e45abd39cd7a2ea",class:"label"},t("slot",{key:"a595738c387ee2f4f77f6ccdfdfb0589751ce999"})),t("span",{key:"933758dc965d1151ca6a96367ea40290189384ad","aria-hidden":"true",part:"indicator",class:"indicator"})))}static get delegatesFocus(){return!0}};o.style=" @layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } *[hidden] { display: none !important; } hr { height: 0; border: none; margin: var(--lmvz-dimension-8-4, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)) 0; border-top: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-subtle, #f0f0f0); } fieldset { border: none; margin: 0; padding: 0; } legend { padding: 0; display: block; } } :host { display: inline-block; flex: none; } :host([disabled]) { cursor: not-allowed; pointer-events: none; } button { --lmvz-tab-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-tab-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0); position: relative; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--lmvz-component-component-spacing-0-default, 4px); padding-top: var(--lmvz-dimension-12-8, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); padding-bottom: var(--lmvz-dimension-14-8, clamp(0.5rem, 0.41rem + 0.39vw, 0.88rem)); padding-inline: var(--lmvz-dimension-24-16, clamp(1rem, 0.88rem + 0.52vw, 1.5rem)); border: none; border-radius: var(--lmvz-semantic-border-radius-round, 999px); background: var(--lmvz-tab-background); color: var(--lmvz-tab-color); font: var(--lmvz-typography-body-md-strong, 500 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5 Router); cursor: pointer; white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease; } button:focus-visible { outline: var(--lmvz-ds-outline, 1px solid #0e7ab4); outline-offset: var(--lmvz-ds-outline-offset, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)); z-index: 1; } button:disabled { opacity: var(--lmvz-component-input-disabled-opacity, 40%); pointer-events: none; cursor: not-allowed; } button:hover { --lmvz-tab-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); --lmvz-tab-color: var(--lmvz-semantic-color-int-on-secondary-hover, #000000); } button:active { --lmvz-tab-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); --lmvz-tab-color: var(--lmvz-semantic-color-int-on-secondary-active, #000000); } :host([has-media]) { --lmvz-tab-color: var(--lmvz-semantic-color-int-on-tertiary, #000000); --lmvz-tab-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); } :host([has-media]) button { padding-top: var(--lmvz-dimension-18-16, clamp(1rem, 0.97rem + 0.13vw, 1.13rem)); padding-bottom: var(--lmvz-dimension-14-12, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem)); padding-inline: var(--lmvz-dimension-48-40, clamp(2.5rem, 2.38rem + 0.52vw, 3rem)); border-radius: var(--lmvz-semantic-border-radius-lg, 14px); } :host([has-media]) button:hover { --lmvz-tab-color: var(--lmvz-semantic-color-int-on-tertiary-hover, #000000); } :host([has-media]) button:active { --lmvz-tab-color: var(--lmvz-semantic-color-int-on-tertiary-active, #000000); } :host([selected]) button { --lmvz-tab-color: var(--lmvz-semantic-color-status-on-active, #0e7ab4); --lmvz-tab-background: var(--lmvz-semantic-color-status-active, #f6fbfe); } :host([selected][has-media]) button:hover, :host([selected][has-media]) button:active { --lmvz-tab-color: var(--lmvz-semantic-color-status-on-active, #0e7ab4); } .indicator { --lmvz-tab-indicator-size: 4px; position: absolute; background: linear-gradient(to right, var(--lmvz-semantic-color-gradient-main-1, #0e7ab4), var(--lmvz-semantic-color-gradient-main-2, #0e7ab4)); opacity: 0; transition: opacity 0.15s ease; inset-block-end: 0; inset-inline: 0; block-size: var(--lmvz-tab-indicator-size); border-start-start-radius: 0; border-start-end-radius: 0; border-end-start-radius: var(--lmvz-tab-indicator-size); border-end-end-radius: var(--lmvz-tab-indicator-size); } :host([selected][has-media]) .indicator { opacity: 1; } :host([vertical]) button { border-radius: var(--lmvz-semantic-border-radius-round, 999px); } :host([vertical]) .indicator { inset-block: 0; inset-inline: 0 auto; inline-size: var(--lmvz-tab-indicator-size); block-size: auto; border-radius: 0 var(--lmvz-tab-indicator-size) var(--lmvz-tab-indicator-size) 0; background: linear-gradient(to bottom, var(--lmvz-semantic-color-gradient-main-1, #0e7ab4), var(--lmvz-semantic-color-gradient-main-2, #0e7ab4)); } ::slotted(*) { --lmvz-component-color: var(--lmvz-tab-color); } ::slotted(lmvz-icon) { --lmvz-component-size: var(--lmvz-dimension-18-16, clamp(1rem, 0.97rem + 0.13vw, 1.13rem)); } :host([has-media]) ::slotted(lmvz-icon) { --lmvz-component-size: var(--lmvz-component-icon-size-lg, clamp(1.25rem, 1.19rem + 0.26vw, 1.5rem)); } .label { display: contents; } ";export{o as lmvz_tab}
@@ -1 +0,0 @@
1
- import{a as r,r as e,c as o,h as t,H as a}from"./p-DVab4vzV.js";const n=class{constructor(r){e(this,r),this.primaryAction=o(this,"primaryAction",7)}cardTitle;imageUrl;description;primaryActionLabel="";primaryAction;get fallbackImage(){return((e,o)=>{const t=function(...r){return r.filter(Boolean).join("/").replace("//","/").replace("/./","/")}("../../assets",o,e);try{return r(t)}catch{return console.warn(`Failed to create URL for asset "${e}" in path "${o}".\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(t,import.meta?.url??window?.location?.origin??"")}})("card-placeholder.svg")}_onPrimaryClick(){this.primaryAction.emit()}_onOverflowClick(r){console.log(r)}render(){return t(a,{key:"1dd819fd7c752af8d15001c08f7f60c6ea7278b9",role:"article"},t("div",{key:"e0cc822e627b6bbe665e4faa705cc46a09bac7c6",class:"top"},t("div",{key:"db79cb5a67ebdd6097f985e4b4bd27665b6329ef",class:"image-wrapper",style:{backgroundImage:`url(${this.imageUrl??this.fallbackImage})`}},t("div",{key:"90facc8595ddbbf31e3768faa8254a82ab8d3e65",class:"chip-slot"},t("slot",{key:"cb2e6a1053aae2b2ca90c52c175e3c4174c89d23",name:"chip"})))),t("div",{key:"cb11069a329385178677e92d08044e0fe8e5b982",class:"bottom"},t("header",{key:"1e6076352124ca03de2fb13c17a565b4f492567e"},t("h2",{key:"73f11099fb751bd4f967dbe49b79763b6a8268f3",class:"title"},this.cardTitle)),t("p",{key:"36cf87b4c2004bff1e65feedd13e137d67115de3",class:"description"},this.description),t("div",{key:"6c1d82f4968ce8252307858e6ad0681274f06397",class:"actions"},t("button",{key:"0366e0caaf9235a3eaf7bfcab116e6a828fb248d",class:"primary",onClick:this._onPrimaryClick.bind(this),"data-testid":"primary"},this.primaryActionLabel),t("button",{key:"4f435e79d75a621d6fe065471a915b55308ad15d",class:"tertiary","aria-label":"More actions",onClick:this._onOverflowClick},t("span",{key:"7dec97e0b0ca58c40fc5308cc7863acafa8c5147",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('RouterBook-Regular'), local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'); font-weight: 400; } @font-face { font-family: Router; src: local('RouterMedium-Regular'), local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'); font-weight: 500; } @font-face { font-family: Router; src: local('RouterBold-Regular'), local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'); font-weight: 700; } } @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } *[hidden] { display: none !important; } hr { height: 0; border: none; margin: var(--lmvz-dimension-8-4, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)) 0; border-top: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-subtle, #f0f0f0); } fieldset { border: none; margin: 0; padding: 0; } legend { padding: 0; display: block; } } .sc-lmvz-card-h { & { & { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-secondary, #f0f0f0)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-secondary, #000000)); --lmvz-button-radius: var(--lmvz-button-radius-override, var(--lmvz-component-input-radius-default, 999px)); --lmvz-button-padding-inline: var(--lmvz-button-padding-inline-override, var(--lmvz-button-padding, var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem)))); --lmvz-button-padding-block: var(--lmvz-button-padding-block-override, var(--lmvz-button-padding, var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem)))); --lmvz-button-gap: var(--lmvz-button-gap-override, var(--lmvz-component-input-gap-md, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem))); --lmvz-button-min-height: var(--lmvz-button-min-height-override, var(--lmvz-component-input-size-md, clamp(2.5rem, 2.44rem + 0.26vw, 2.75rem))); --lmvz-button-font: var(--lmvz-button-font-override, var(--lmvz-typography-label-md-strong, normal 700 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5 Router)); --lmvz-button-border-width: var(--lmvz-button-border-width-override, 0); --lmvz-button-border-color: var(--lmvz-button-border-color-override, transparent); display: inline-flex; align-items: center; justify-content: var(--lmvz-button-content-justification, center); gap: var(--lmvz-button-gap, var(--lmvz-component-input-gap-md, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem))); box-sizing: border-box; padding-block: var(--lmvz-button-padding-block, var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem))); padding-inline: var(--lmvz-button-padding-inline, var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem))); min-height: var(--lmvz-button-min-height, var(--lmvz-component-input-size-md, clamp(2.5rem, 2.44rem + 0.26vw, 2.75rem))); border: var(--lmvz-button-border-width, 0) solid var(--lmvz-button-border-color, transparent); border-radius: var(--lmvz-button-radius, var(--lmvz-component-input-radius-default, 999px)); background-color: var(--lmvz-button-background); color: var(--lmvz-button-color); cursor: pointer; font: var(--lmvz-button-font); 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; } & > * { font: inherit; color: inherit; } &:focus-visible { outline: var(--lmvz-ds-outline, 1px solid #0e7ab4); outline-offset: var(--lmvz-ds-outline-offset, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)); position: relative; z-index: 1; } &:is([disabled], .disabled) { cursor: not-allowed; pointer-events: none; opacity: var(--lmvz-component-input-disabled-opacity, 40%); } &:not([disabled]):hover { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0)); } &:not([disabled]):active { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-secondary-active, #d4d4d4)); } &.primary { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-primary, #000000)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-primary, #ffffff)); --lmvz-button-border-width: var(--lmvz-button-border-width-override, 0); --lmvz-button-border-color: var(--lmvz-button-border-color-override, transparent); } &.primary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-primary-hover, #2e2e2e)); } &.primary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-primary-active, #545454)); } &.danger { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary, #ffffff)); --lmvz-button-border-color: var(--lmvz-button-border-color-override, transparent); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-status-on-danger, #a31419)); } &.danger:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-status-danger, #fbdfe0)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-status-on-danger, #a31419)); } &.danger:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-status-on-danger-subtle, #e8454b)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-status-on-danger, #a31419)); } &.tertiary { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary, #ffffff)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-tertiary, #000000)); } &.tertiary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-tertiary-hover, #000000)); } &.tertiary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-tertiary-active, #000000)); } &.small { --lmvz-button-padding-inline: var(--lmvz-button-padding-inline-override, var(--lmvz-component-input-padding-sm, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem))); --lmvz-button-padding-block: var(--lmvz-button-padding-block-override, var(--lmvz-component-input-padding-sm, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem))); --lmvz-button-gap: var(--lmvz-button-gap-override, var(--lmvz-component-input-gap-sm, clamp(0.38rem, 0.31rem + 0.26vw, 0.63rem))); --lmvz-button-min-height: var(--lmvz-button-min-height-override, var(--lmvz-component-input-size-sm, clamp(2rem, 1.94rem + 0.26vw, 2.25rem))); --lmvz-button-font: var(--lmvz-button-font-override, var(--lmvz-typography-label-sm-strong, normal 700 clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem) / 1.5 Router)); } &.large { --lmvz-button-padding-inline: var(--lmvz-button-padding-inline-override, var(--lmvz-component-input-padding-lg, clamp(1rem, 0.94rem + 0.26vw, 1.25rem))); --lmvz-button-padding-block: var(--lmvz-button-padding-block-override, var(--lmvz-component-input-padding-lg, clamp(1rem, 0.94rem + 0.26vw, 1.25rem))); --lmvz-button-gap: var(--lmvz-button-gap-override, var(--lmvz-component-input-gap-lg, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-min-height: var(--lmvz-button-min-height-override, var(--lmvz-component-input-size-lg, clamp(2.75rem, 2.69rem + 0.26vw, 3rem))); --lmvz-button-font: var(--lmvz-button-font-override, var(--lmvz-typography-label-lg-strong, normal 700 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.5 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.5 Router); } .top.sc-lmvz-card { display: flex; padding: var(--lmvz-dimension-12-8, 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-6-4, clamp(0.25rem, 0.22rem + 0.13vw, 0.38rem)) var(--lmvz-dimension-14-10, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)) var(--lmvz-dimension-14-10, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)) var(--lmvz-dimension-14-10, 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.82rem + 0.78vw, 2.75rem) / 1.4 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.5 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}