@lmvz-ds/components 0.27.0 → 0.28.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 (150) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/cjs/{aria-validation-controller-BMV2tv9-.js → aria-validation-controller-Z4TtOp2l.js} +1 -1
  3. package/cjs/close-sm-CATLoxxd.js +5 -0
  4. package/cjs/{ds.constants-8fh6ItAF.js → ds.constants-CN0zFjB7.js} +4 -0
  5. package/cjs/{index-BCFBLj0e.js → index-TGsVZNDP.js} +26 -2
  6. package/cjs/index.cjs.js +3 -1
  7. package/cjs/lmvz-action.cjs.entry.js +1 -1
  8. package/cjs/lmvz-button-group.cjs.entry.js +1 -1
  9. package/cjs/lmvz-button_2.cjs.entry.js +2 -2
  10. package/cjs/lmvz-card.cjs.entry.js +1 -1
  11. package/cjs/lmvz-checkbox.cjs.entry.js +2 -2
  12. package/cjs/lmvz-chip.cjs.entry.js +3 -3
  13. package/cjs/lmvz-components.cjs.js +2 -2
  14. package/cjs/lmvz-header_2.cjs.entry.js +2 -2
  15. package/cjs/lmvz-input.cjs.entry.js +6 -5
  16. package/cjs/lmvz-menuitem.cjs.entry.js +2 -2
  17. package/cjs/lmvz-message.cjs.entry.js +78 -0
  18. package/cjs/lmvz-modal.cjs.entry.js +5 -6
  19. package/cjs/lmvz-radio.cjs.entry.js +3 -3
  20. package/cjs/lmvz-select.cjs.entry.js +4 -4
  21. package/cjs/lmvz-snackbar.cjs.entry.js +5 -8
  22. package/cjs/lmvz-spinner.cjs.entry.js +20 -0
  23. package/cjs/lmvz-tab.cjs.entry.js +2 -2
  24. package/cjs/lmvz-tabs.cjs.entry.js +2 -2
  25. package/cjs/lmvz-toggle.cjs.entry.js +3 -3
  26. package/cjs/loader.cjs.js +2 -2
  27. package/cjs/warning-WEX_ABWL.js +8 -0
  28. package/collection/api/ds.constants.js +2 -0
  29. package/collection/collection-manifest.json +2 -0
  30. package/collection/components/lmvz-input/lmvz-input.css +40 -25
  31. package/collection/components/lmvz-input/lmvz-input.js +33 -2
  32. package/collection/components/lmvz-message/lmvz-message.css +50 -0
  33. package/collection/components/lmvz-message/lmvz-message.js +240 -0
  34. package/collection/components/lmvz-message/public.js +1 -0
  35. package/collection/components/lmvz-modal/lmvz-modal.js +1 -1
  36. package/collection/components/lmvz-radio/lmvz-radio.js +1 -1
  37. package/collection/components/lmvz-select/lmvz-select.css +2 -4
  38. package/collection/components/lmvz-select/lmvz-select.js +1 -1
  39. package/collection/components/lmvz-snackbar/lmvz-snackbar.js +1 -1
  40. package/collection/components/lmvz-spinner/lmvz-spinner.css +40 -0
  41. package/collection/components/lmvz-spinner/lmvz-spinner.js +64 -0
  42. package/collection/components/lmvz-tab/lmvz-tab.js +1 -1
  43. package/collection/components/lmvz-tabs/lmvz-tabs.js +1 -1
  44. package/collection/components/lmvz-toggle/lmvz-toggle.js +1 -1
  45. package/collection/index.js +3 -2
  46. package/collection/integration/header-integration/header-integration.js +1 -1
  47. package/components/index.d.ts +4 -0
  48. package/components/index.d.ts.bak +4 -0
  49. package/components/index.js +1 -1
  50. package/components/lmvz-action.js +1 -1
  51. package/components/lmvz-button-group.js +1 -1
  52. package/components/lmvz-button.js +1 -1
  53. package/components/lmvz-card.js +1 -1
  54. package/components/lmvz-checkbox.js +1 -1
  55. package/components/lmvz-chip.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-menuitem.js +1 -1
  60. package/components/lmvz-message.d.ts +11 -0
  61. package/components/lmvz-message.d.ts.bak +11 -0
  62. package/components/lmvz-message.js +1 -0
  63. package/components/lmvz-modal.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.d.ts +11 -0
  68. package/components/lmvz-spinner.d.ts.bak +11 -0
  69. package/components/lmvz-spinner.js +1 -0
  70. package/components/lmvz-tab.js +1 -1
  71. package/components/lmvz-tabs.js +1 -1
  72. package/components/lmvz-toggle.js +1 -1
  73. package/components/p-BSV3KDWl.js +1 -0
  74. package/components/{p-2VdcUIrr.js → p-C0f2nNPZ.js} +1 -1
  75. package/components/{p-BJEQw1Sz.js → p-C8znmF2h.js} +1 -1
  76. package/components/{p-DjvbwRyl.js → p-CXakymyP.js} +1 -1
  77. package/components/{p-0P2Wb3pE.js → p-DAMVH-31.js} +1 -1
  78. package/components/p-DGg7OzDl.js +1 -0
  79. package/components/{p-Cs7RCOHZ.js → p-DGlgVBPj.js} +1 -1
  80. package/components/p-DsT_K3_I.js +1 -0
  81. package/esm/{aria-validation-controller-D-KO0Asb.js → aria-validation-controller-BnyUKeJ6.js} +1 -1
  82. package/esm/close-sm-BSV3KDWl.js +3 -0
  83. package/esm/{ds.constants-BOOwq5dE.js → ds.constants-BTa7u4To.js} +3 -1
  84. package/esm/{index-CKYszC64.js → index-BPeerEwm.js} +26 -2
  85. package/esm/index.js +1 -1
  86. package/esm/lmvz-action.entry.js +1 -1
  87. package/esm/lmvz-button-group.entry.js +1 -1
  88. package/esm/lmvz-button_2.entry.js +2 -2
  89. package/esm/lmvz-card.entry.js +1 -1
  90. package/esm/lmvz-checkbox.entry.js +2 -2
  91. package/esm/lmvz-chip.entry.js +3 -3
  92. package/esm/lmvz-components.js +3 -3
  93. package/esm/lmvz-header_2.entry.js +2 -2
  94. package/esm/lmvz-input.entry.js +6 -5
  95. package/esm/lmvz-menuitem.entry.js +2 -2
  96. package/esm/lmvz-message.entry.js +76 -0
  97. package/esm/lmvz-modal.entry.js +4 -5
  98. package/esm/lmvz-radio.entry.js +3 -3
  99. package/esm/lmvz-select.entry.js +4 -4
  100. package/esm/lmvz-snackbar.entry.js +3 -6
  101. package/esm/lmvz-spinner.entry.js +18 -0
  102. package/esm/lmvz-tab.entry.js +2 -2
  103. package/esm/lmvz-tabs.entry.js +2 -2
  104. package/esm/lmvz-toggle.entry.js +3 -3
  105. package/esm/loader.js +3 -3
  106. package/esm/warning-DsT_K3_I.js +5 -0
  107. package/hydrate/index.js +155 -18
  108. package/hydrate/index.mjs +155 -18
  109. package/lmvz-components/index.esm.js +1 -1
  110. package/lmvz-components/lmvz-components.esm.js +1 -1
  111. package/lmvz-components/{p-bd23eab3.entry.js → p-02e8e45a.entry.js} +1 -1
  112. package/lmvz-components/{p-c6228cee.entry.js → p-3b3e532f.entry.js} +1 -1
  113. package/lmvz-components/p-44fea470.entry.js +1 -0
  114. package/lmvz-components/p-45c3ccb6.entry.js +1 -0
  115. package/lmvz-components/{p-758dbb82.entry.js → p-4dc44520.entry.js} +1 -1
  116. package/lmvz-components/p-5c951888.entry.js +1 -0
  117. package/lmvz-components/{p-7b15cdce.entry.js → p-6a1c3088.entry.js} +1 -1
  118. package/lmvz-components/{p-bb46a884.entry.js → p-80c6ec27.entry.js} +1 -1
  119. package/lmvz-components/p-84edbe53.entry.js +1 -0
  120. package/lmvz-components/p-85b0b718.entry.js +1 -0
  121. package/lmvz-components/{p-43b463bf.entry.js → p-877d0f3e.entry.js} +1 -1
  122. package/lmvz-components/p-8fc25ee2.entry.js +1 -0
  123. package/lmvz-components/{p-8874ff19.entry.js → p-98e3e85a.entry.js} +1 -1
  124. package/lmvz-components/p-BPeerEwm.js +2 -0
  125. package/lmvz-components/p-BSV3KDWl.js +1 -0
  126. package/lmvz-components/p-BTa7u4To.js +1 -0
  127. package/lmvz-components/{p-hRb38wX6.js → p-CPOia2kT.js} +1 -1
  128. package/lmvz-components/p-DsT_K3_I.js +1 -0
  129. package/lmvz-components/{p-25f045b2.entry.js → p-a4077c9f.entry.js} +1 -1
  130. package/lmvz-components/{p-a5c921dc.entry.js → p-d53f8afe.entry.js} +1 -1
  131. package/lmvz-components/{p-6de9981f.entry.js → p-e3ce44a3.entry.js} +1 -1
  132. package/lmvz-components/{p-6484fbc6.entry.js → p-e672c0fa.entry.js} +1 -1
  133. package/lmvz-components/p-fdb8de66.entry.js +1 -0
  134. package/manifest.json +396 -2
  135. package/package.json +9 -1
  136. package/types/api/ds.constants.d.ts +6 -0
  137. package/types/components/lmvz-input/lmvz-input.d.ts +1 -0
  138. package/types/components/lmvz-message/lmvz-message.d.ts +20 -0
  139. package/types/components/lmvz-message/public.d.ts +1 -0
  140. package/types/components/lmvz-spinner/lmvz-spinner.d.ts +5 -0
  141. package/types/components.d.ts +119 -0
  142. package/types/index.d.ts +3 -2
  143. package/components/p-c7OzBK8f.js +0 -1
  144. package/lmvz-components/p-0a37e0f2.entry.js +0 -1
  145. package/lmvz-components/p-4bd71a3c.entry.js +0 -1
  146. package/lmvz-components/p-6988c3ea.entry.js +0 -1
  147. package/lmvz-components/p-BOOwq5dE.js +0 -1
  148. package/lmvz-components/p-CKYszC64.js +0 -2
  149. package/lmvz-components/p-da16ff58.entry.js +0 -1
  150. package/lmvz-components/p-fe607f10.entry.js +0 -1
@@ -0,0 +1,240 @@
1
+ import { toValidSvgStringWithFallback } from "@lmvz-ds/lib-ts/validation/svg.js";
2
+ import { Host, h } from "@stencil/core";
3
+ import { isAriaValidationEnabled } from "../..";
4
+ import closeSmSvg from "@lmvz-ds/icons/assets/close-sm.svg";
5
+ import infoSvg from "@lmvz-ds/icons/assets/info.svg";
6
+ import warningSvg from "@lmvz-ds/icons/assets/warning.svg";
7
+ const INFO_SVG = toValidSvgStringWithFallback(infoSvg);
8
+ const WARNING_SVG = toValidSvgStringWithFallback(warningSvg);
9
+ const CLOSE_SM_SVG = toValidSvgStringWithFallback(closeSmSvg);
10
+ const TYPE_SVG = {
11
+ neutral: INFO_SVG,
12
+ warning: WARNING_SVG,
13
+ };
14
+ const BLOCK_TAGS = new Set([
15
+ 'ADDRESS', 'ARTICLE', 'ASIDE', 'BLOCKQUOTE',
16
+ 'CAPTION', 'COLGROUP',
17
+ 'DD', 'DETAILS', 'DIALOG', 'DIV', 'DL', 'DT',
18
+ 'FIELDSET', 'FIGCAPTION', 'FIGURE', 'FOOTER', 'FORM',
19
+ 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HEADER', 'HGROUP', 'HR',
20
+ 'LI', 'MAIN', 'MENU', 'NAV',
21
+ 'OL', 'P', 'PRE',
22
+ 'SECTION', 'TABLE', 'TBODY', 'TD', 'TH', 'THEAD', 'TFOOT', 'TR',
23
+ 'UL',
24
+ ]);
25
+ export class LmvzMessage {
26
+ messageSlot;
27
+ warnedTags = new Set();
28
+ type = 'neutral';
29
+ live = 'off';
30
+ leadingIcon = true;
31
+ dismissible = false;
32
+ closeLabel = 'Schliessen';
33
+ actionLabel;
34
+ lmvzDismiss;
35
+ lmvzAction;
36
+ componentDidLoad() {
37
+ this.checkSlotContent();
38
+ }
39
+ handleDismissClick = () => {
40
+ this.lmvzDismiss.emit();
41
+ };
42
+ handleActionClick = () => {
43
+ this.lmvzAction.emit();
44
+ };
45
+ handleSlotChange = () => {
46
+ this.checkSlotContent();
47
+ };
48
+ checkSlotContent() {
49
+ if (!isAriaValidationEnabled())
50
+ return;
51
+ this.warnedTags.clear();
52
+ const elements = this.messageSlot?.assignedElements({ flatten: true }) ?? [];
53
+ for (const el of elements) {
54
+ const tag = el.tagName;
55
+ if (BLOCK_TAGS.has(tag) && !this.warnedTags.has(tag)) {
56
+ console.warn(`[lmvz-message] Block-level element <${tag.toLowerCase()}> is not allowed in the message slot. Only inline content is permitted.`);
57
+ this.warnedTags.add(tag);
58
+ }
59
+ }
60
+ }
61
+ render() {
62
+ const role = this.live === 'assertive' ? 'alert' : this.live === 'polite' ? 'status' : 'note';
63
+ return (h(Host, { key: '447fd8ce5b2c9cd176eb4408e9e29773364bfcef', role: role }, this.leadingIcon && h("span", { key: '63414bc912e2feda3a553ead42c660953e25d4c4', class: "leading-icon", "aria-hidden": "true", innerHTML: TYPE_SVG[this.type] }), h("span", { key: '4cbdeffedcb8e8c3b7a267b25d2ab2eef6ad26bb', class: "message" }, h("slot", { key: 'b7b6a462f9ae5571114c8b8876387ee9f97c9903', ref: (el) => (this.messageSlot = el), onSlotchange: this.handleSlotChange })), this.actionLabel && (h("lmvz-button", { key: '7b4362ef6d69e27cc614b2445daf5f217e8f21ea', variant: "tertiary", scale: "small", onLmvzActivation: this.handleActionClick }, this.actionLabel)), this.dismissible && (h("lmvz-button", { key: 'dae3ff6f9f8606811722c08b6465145b542149a1', variant: "tertiary", scale: "small", "aria-label": this.closeLabel, onClick: this.handleDismissClick }, h("lmvz-icon", { key: '0e5e7e1deef5027e218271c79d04b43f3a3109e1', "aria-hidden": "true", icon: CLOSE_SM_SVG })))));
64
+ }
65
+ static get is() { return "lmvz-message"; }
66
+ static get encapsulation() { return "shadow"; }
67
+ static get originalStyleUrls() {
68
+ return {
69
+ "$": ["lmvz-message.css"]
70
+ };
71
+ }
72
+ static get styleUrls() {
73
+ return {
74
+ "$": ["lmvz-message.css"]
75
+ };
76
+ }
77
+ static get properties() {
78
+ return {
79
+ "type": {
80
+ "type": "string",
81
+ "mutable": false,
82
+ "complexType": {
83
+ "original": "Message.Type",
84
+ "resolved": "\"neutral\" | \"warning\"",
85
+ "references": {
86
+ "Message": {
87
+ "location": "import",
88
+ "path": "../../api",
89
+ "id": "src/api/index.d.ts::Message",
90
+ "referenceLocation": "Message"
91
+ }
92
+ }
93
+ },
94
+ "required": false,
95
+ "optional": false,
96
+ "docs": {
97
+ "tags": [],
98
+ "text": ""
99
+ },
100
+ "getter": false,
101
+ "setter": false,
102
+ "reflect": true,
103
+ "attribute": "type",
104
+ "defaultValue": "'neutral'"
105
+ },
106
+ "live": {
107
+ "type": "string",
108
+ "mutable": false,
109
+ "complexType": {
110
+ "original": "'off' | 'polite' | 'assertive'",
111
+ "resolved": "\"assertive\" | \"off\" | \"polite\"",
112
+ "references": {}
113
+ },
114
+ "required": false,
115
+ "optional": false,
116
+ "docs": {
117
+ "tags": [],
118
+ "text": ""
119
+ },
120
+ "getter": false,
121
+ "setter": false,
122
+ "reflect": false,
123
+ "attribute": "live",
124
+ "defaultValue": "'off'"
125
+ },
126
+ "leadingIcon": {
127
+ "type": "boolean",
128
+ "mutable": false,
129
+ "complexType": {
130
+ "original": "boolean",
131
+ "resolved": "boolean",
132
+ "references": {}
133
+ },
134
+ "required": false,
135
+ "optional": false,
136
+ "docs": {
137
+ "tags": [],
138
+ "text": ""
139
+ },
140
+ "getter": false,
141
+ "setter": false,
142
+ "reflect": false,
143
+ "attribute": "leading-icon",
144
+ "defaultValue": "true"
145
+ },
146
+ "dismissible": {
147
+ "type": "boolean",
148
+ "mutable": false,
149
+ "complexType": {
150
+ "original": "boolean",
151
+ "resolved": "boolean",
152
+ "references": {}
153
+ },
154
+ "required": false,
155
+ "optional": false,
156
+ "docs": {
157
+ "tags": [],
158
+ "text": ""
159
+ },
160
+ "getter": false,
161
+ "setter": false,
162
+ "reflect": false,
163
+ "attribute": "dismissible",
164
+ "defaultValue": "false"
165
+ },
166
+ "closeLabel": {
167
+ "type": "string",
168
+ "mutable": false,
169
+ "complexType": {
170
+ "original": "string",
171
+ "resolved": "string",
172
+ "references": {}
173
+ },
174
+ "required": false,
175
+ "optional": false,
176
+ "docs": {
177
+ "tags": [],
178
+ "text": ""
179
+ },
180
+ "getter": false,
181
+ "setter": false,
182
+ "reflect": false,
183
+ "attribute": "close-label",
184
+ "defaultValue": "'Schliessen'"
185
+ },
186
+ "actionLabel": {
187
+ "type": "string",
188
+ "mutable": false,
189
+ "complexType": {
190
+ "original": "string",
191
+ "resolved": "string | undefined",
192
+ "references": {}
193
+ },
194
+ "required": false,
195
+ "optional": true,
196
+ "docs": {
197
+ "tags": [],
198
+ "text": ""
199
+ },
200
+ "getter": false,
201
+ "setter": false,
202
+ "reflect": false,
203
+ "attribute": "action-label"
204
+ }
205
+ };
206
+ }
207
+ static get events() {
208
+ return [{
209
+ "method": "lmvzDismiss",
210
+ "name": "lmvzDismiss",
211
+ "bubbles": true,
212
+ "cancelable": false,
213
+ "composed": true,
214
+ "docs": {
215
+ "tags": [],
216
+ "text": ""
217
+ },
218
+ "complexType": {
219
+ "original": "void",
220
+ "resolved": "void",
221
+ "references": {}
222
+ }
223
+ }, {
224
+ "method": "lmvzAction",
225
+ "name": "lmvzAction",
226
+ "bubbles": true,
227
+ "cancelable": false,
228
+ "composed": true,
229
+ "docs": {
230
+ "tags": [],
231
+ "text": ""
232
+ },
233
+ "complexType": {
234
+ "original": "void",
235
+ "resolved": "void",
236
+ "references": {}
237
+ }
238
+ }];
239
+ }
240
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -223,7 +223,7 @@ export class LmvzModal extends ReactiveControllerHost {
223
223
  this.hasHeader = this.hasAssignedContent(this.headerSlot);
224
224
  };
225
225
  render() {
226
- return (h(Host, { key: '1fbdbb1ab2d3ad423075465108d4ff807d07404e' }, h("dialog", { key: '622dd60366ad594e16471cc8921c97d23af14ccb', ref: (element) => (this.dialogEl = element), onCancel: this.handleDialogCancel, onClose: this.handleDialogClose, ...this.dialogAccessibilityAttributes }, h("div", { key: 'bcdfbefbd5f380e2bf946aed479d542a33927af1', class: "modal-shell" }, h("header", { key: 'dcd23467473d58b51bddaf613b3ac8c922eecdc6', class: { header: true, 'has-title': this.hasHeader } }, h("div", { key: 'b2aa21fda4a80d2ea003e6ec876c2b74df5d29fd', class: "title", id: this.dialogTitleId, hidden: !this.hasHeader }, h("slot", { key: 'b7238e5b24c0822a94087d4ff0567e6406542c73', name: "header", ref: (element) => (this.headerSlot = element), onSlotchange: this.handleHeaderSlotChange })), h("lmvz-button", { key: '5059671fb4d81c685becd3adb0be52dd92ec4dec', ref: (element) => (this.closeButtonEl = element), type: "button", class: "close-button", "aria-label": this.closeLabel, onClick: this.handleCloseButtonClick, variant: "tertiary" }, h("lmvz-icon", { key: '498447e60e0e33fc165f39cea35434080e869d3c', icon: closeIconSvg }))), h("div", { key: '39ecefb52d5990cb689b0e4f18a8b6fc501c840d', class: "body" }, h("slot", { key: 'b014d0633c28fb6b399f11f2323e102949548776' })), h("footer", { key: '201dae98bcf810f369d77b7e9f36d7cc71ed5db4', class: "actions", hidden: !this.buttonGroupEl?.hasActions }, h("lmvz-button-group", { key: 'e4559d383992e059f915670a0874cc3b9ef655a3', ref: (element) => (this.buttonGroupEl = element) }, h("slot", { key: '88b007e139d4a166a2ee886dcd0256293d5d33c9', name: "actions" })))))));
226
+ return (h(Host, { key: '5fbfbed1ae590e58f32ba47a8c3e1a321d59ba6b' }, h("dialog", { key: '90f0393450eaf0681b54cbb95f79379d951d652a', ref: (element) => (this.dialogEl = element), onCancel: this.handleDialogCancel, onClose: this.handleDialogClose, ...this.dialogAccessibilityAttributes }, h("div", { key: 'f07319e7cdf70f8d35b9aaabb83d7c284fec2c0f', class: "modal-shell" }, h("header", { key: 'a17ee4e506cef206357d07db1689dd46cf6cab05', class: { header: true, 'has-title': this.hasHeader } }, h("div", { key: '3695c1c15530a330493fb1d8e990b59ddb246375', class: "title", id: this.dialogTitleId, hidden: !this.hasHeader }, h("slot", { key: 'a2113f68da9c8ad2b697d5b76644533b9b59c664', name: "header", ref: (element) => (this.headerSlot = element), onSlotchange: this.handleHeaderSlotChange })), h("lmvz-button", { key: '33c6c3339144a0a69d869857b18b950726281d9e', ref: (element) => (this.closeButtonEl = element), type: "button", class: "close-button", "aria-label": this.closeLabel, onClick: this.handleCloseButtonClick, variant: "tertiary" }, h("lmvz-icon", { key: 'e680344beebd5ae4a7a24496f5f8113fd6d98187', icon: closeIconSvg }))), h("div", { key: '1798cdc2f930ae04959c8c0630347fb6f9825693', class: "body" }, h("slot", { key: 'eb77bb57b51a5efe18a765a45d4157613f50bbd4' })), h("footer", { key: '4c8c1f12919822af2471c60f78443b539f7a20e8', class: "actions", hidden: !this.buttonGroupEl?.hasActions }, h("lmvz-button-group", { key: '0a26fc145d70d7d95adbd8f3e4c29edabfc12422', ref: (element) => (this.buttonGroupEl = element) }, h("slot", { key: '8d05a256d8b8c28f20f51ea03358522768a15913', name: "actions" })))))));
227
227
  }
228
228
  static get is() { return "lmvz-modal"; }
229
229
  static get encapsulation() { return "shadow"; }
@@ -137,7 +137,7 @@ export class LmvzRadio extends ReactiveControllerHost {
137
137
  this.radioGroupController.setFocused(target);
138
138
  }
139
139
  render() {
140
- return (h(Host, { key: '0226e313fcf4fe3c3cf343cfe0776cf71da169a6' }, h("input", { key: '5bb1f733d2f29217bc7544d8fd24f6b21bedc654', type: "radio", id: this.radioId, name: this.name ?? undefined, value: this.value, checked: this.checked, disabled: this.disabled, required: this.required, autoFocus: this.autofocus, "aria-invalid": this.error ? 'true' : undefined, "aria-describedby": this.helperId, ref: (el) => (this.nativeInput = el), onChange: this.handleChange }), h("span", { key: 'ae18f49167d1a2e8e6ec4ceca435e69e3d79f593', class: "circle", "aria-hidden": "true" }, this.checked && h("span", { key: '5dfb65105831a672f2a47952aff987cd45e9b178', class: "dot" })), h("span", { key: 'df148ca52be7e580226d94ff9aef4e3cf5a6182c', class: "content" }, h("label", { key: 'e042c57755eadb64692ace49204dccb1ee03ed1c', htmlFor: this.radioId }, this.label), h("span", { key: 'a90b0bef927dddb39f9e6357adf888e0818a3c5a', "aria-live": "polite", class: "helper-text", id: this.helperId }, this.helperText))));
140
+ return (h(Host, { key: 'c07af5c7d75b0f0d2c20b3af9ea763bd28e027b5' }, h("input", { key: '2e7fddb7aa5df3f8bc0f1efbd110158680ec45d7', type: "radio", id: this.radioId, name: this.name ?? undefined, value: this.value, checked: this.checked, disabled: this.disabled, required: this.required, autoFocus: this.autofocus, "aria-invalid": this.error ? 'true' : undefined, "aria-describedby": this.helperId, ref: (el) => (this.nativeInput = el), onChange: this.handleChange }), h("span", { key: 'a2afc55b85527674e5a18bfc28e194ecc034053a', class: "circle", "aria-hidden": "true" }, this.checked && h("span", { key: 'd135da1d567743ea98ec5860feda3e6e8013bdb6', class: "dot" })), h("span", { key: '38c83e877135b221260bacdefca3cdb5446a4453', class: "content" }, h("label", { key: '781d9d5544c0cb9d061875ef3674f3c3156f0675', htmlFor: this.radioId }, this.label), h("span", { key: '1ed064b27dea65cbfb1b1bd38a9cb1b7a07de37e', "aria-live": "polite", class: "helper-text", id: this.helperId }, this.helperText))));
141
141
  }
142
142
  static get is() { return "lmvz-radio"; }
143
143
  static get encapsulation() { return "scoped"; }
@@ -130,11 +130,9 @@ div[aria-hidden] {
130
130
  }
131
131
  div[aria-hidden] > span:first-child {
132
132
  flex: 1 0 0;
133
- font-size: var(--lmvz-component-component-typography-body-md-font-size, 0.875rem);
134
- font-weight: var(--lmvz-global-font-weight-500, 500);
133
+ font: var(--lmvz-typography-body-md-strong, 500 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5
134
+ Router);
135
135
  color: var(--lmvz-select-text-color);
136
- line-height: 1.4;
137
- letter-spacing: var(--lmvz-component-body-md-letter-spacing, 0);
138
136
  overflow: hidden;
139
137
  text-overflow: ellipsis;
140
138
  white-space: nowrap;
@@ -50,7 +50,7 @@ export class LmvzSelect extends ReactiveControllerHost {
50
50
  render() {
51
51
  const hasValue = this.hasValue;
52
52
  const shouldShowLabel = hasValue;
53
- return (h(Host, { key: '597245455ffb9b5f83472a7970fb1c6c92017fd2' }, h("div", { key: 'edeb4d02d5a5291e60fd2d26d16edc500a355b63', class: "select-wrapper" }, h("label", { key: 'd0068817bb3586467d73284cecc03de393c37589', htmlFor: this.selectId, class: shouldShowLabel ? 'floating-label' : 'assistive-label' }, this.label, this.required && shouldShowLabel && h("span", { key: '624ee28842aed8c01651c7758099bccc446840d6', "aria-hidden": "true" }, " *")), h("div", { key: '184591bc8ac11e9eed17795ce21319591e6d4211', "aria-hidden": "true" }, h("span", { key: '53e673521ed26125c24fb529d6016e3827b47a44' }, hasValue ? this.selectedLabel : this.label, this.required && !hasValue && h("span", { key: '7af1a756e3343701ad066f3c107b2028126c5f09', "aria-hidden": "true" }, " *")), h("span", { key: '6210f2069758f8579f67780530fd294210875b3f' }, h("img", { key: '05aa6cf110ba0c7eacd36f59525144c61f0705d9', src: chevronDownSvg, alt: "" }))), h("select", { key: 'dc9dfe93226858f73f1d5a655388b9ce3a5e4037', 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 && h("option", { key: '38ffb95d089932d0ce0c6a5629004679d3f7f857', value: "", disabled: true, selected: true, hidden: true }), h("slot", { key: '51b96884bb010b0a93f24b8b2f3f91a7b040e220' }))), this.helperText && h("div", { key: 'f7149a48024e87d2a3843d96674e45cb91fd9cf4', role: "status" }, this.helperText)));
53
+ return (h(Host, { key: 'ea378aacdaae4df8eaecb3e906815d3d97b0b7b3' }, h("div", { key: '28d99d298556ca10233fcf7ebe159328989924bd', class: "select-wrapper" }, h("label", { key: '05e4969c87d11387a80c76731fb9e4f862554211', htmlFor: this.selectId, class: shouldShowLabel ? 'floating-label' : 'assistive-label' }, this.label, this.required && shouldShowLabel && h("span", { key: '4d1e5afd375b43a14e1b34214139fde45178b0ce', "aria-hidden": "true" }, " *")), h("div", { key: '93ba4ccbf77a17caaddeec5aa2d7576062dc47dd', "aria-hidden": "true" }, h("span", { key: '0c7054456cc775823dc3c118709e9dff72acbcb8' }, hasValue ? this.selectedLabel : this.label, this.required && !hasValue && h("span", { key: '1c8a75e56c0ca0187809e3c298a7e23304428dff', "aria-hidden": "true" }, " *")), h("span", { key: '1e696fd7a1203c1705e579c4425ccdd5d9e621a7' }, h("img", { key: 'c5723c1a240c360c50d02ff1b66c0bebb4337788', src: chevronDownSvg, alt: "" }))), h("select", { key: 'e50855b52dd997b6496ff8d0de23b2240843f742', 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 && h("option", { key: '9044ee2e697c8e41e25acd019dabbf9dd2e54d3d', value: "", disabled: true, selected: true, hidden: true }), h("slot", { key: '87e0c5c64015c3920d33f4c316c1cf7ed94be4f0' }))), this.helperText && h("div", { key: '745e3512848019291c06bd7f0dcc230f63d960c1', role: "status" }, this.helperText)));
54
54
  }
55
55
  static get is() { return "lmvz-select"; }
56
56
  static get encapsulation() { return "scoped"; }
@@ -58,7 +58,7 @@ export class LmvzSnackbar {
58
58
  this.el.dispatchEvent(new CustomEvent('lmvzAction', { bubbles: false, composed: false }));
59
59
  };
60
60
  render() {
61
- return (h(Host, { key: '3cf529e3a1971926546758d2e04c3860fde23961', class: this.animationClass }, h("lmvz-icon", { key: '3bc7fb142b19ca4f01c04d33759bcd52cd46c77e', icon: STATUS_SVG[this.status], size: "md", weight: "bold" }), h("span", { key: 'b2d00f1602baefa7f1025d927d66f8867e3e7ce5', class: "message" }, this.message), this.actionLabel && (h("lmvz-button", { key: '92966ab42ef1c5fca044adf5b60a02b54ddcd43a', variant: "tertiary", scale: "small", onLmvzActivation: this.handleActionClick }, this.actionLabel))));
61
+ return (h(Host, { key: 'd4b4af1831aebd6bb9fdc67bedf43d7d4dd0d785', class: this.animationClass }, h("lmvz-icon", { key: '388f9d6f6aa968e74fa080c21f1b33562332293c', icon: STATUS_SVG[this.status], size: "md", weight: "bold" }), h("span", { key: 'a00168060f23ac8b42b82d4ff2960d488b9cdc4b', class: "message" }, this.message), this.actionLabel && (h("lmvz-button", { key: '95ce1c5d98244490725ac797d95a54527a908f1e', variant: "tertiary", scale: "small", onLmvzActivation: this.handleActionClick }, this.actionLabel))));
62
62
  }
63
63
  static get is() { return "lmvz-snackbar"; }
64
64
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,40 @@
1
+ :host {
2
+ --spinner-size: 1rem; /* token-gap: pending component.spinner.spinner-size-sm */
3
+
4
+ display: inline-block;
5
+ width: var(--spinner-size);
6
+ height: var(--spinner-size);
7
+ }
8
+
9
+ :host([size='large']) {
10
+ --spinner-size: 2rem; /* token-gap: pending component.spinner.spinner-size-lg */
11
+ }
12
+
13
+ svg {
14
+ width: 100%;
15
+ height: 100%;
16
+ transform-origin: center;
17
+ animation: lmvz-spinner-rotate var(--lmvz-global-duration-slow, 800ms) linear infinite;
18
+ color: var(--lmvz-semantic-color-border-active, #0f8acc);
19
+ }
20
+
21
+ circle {
22
+ fill: none;
23
+ stroke: currentcolor;
24
+ stroke-width: var(--lmvz-component-icon-border-width-strong, 1.5px);
25
+ stroke-linecap: round;
26
+ stroke-dasharray: 75 25;
27
+ vector-effect: non-scaling-stroke;
28
+ }
29
+
30
+ @keyframes lmvz-spinner-rotate {
31
+ to {
32
+ transform: rotate(360deg);
33
+ }
34
+ }
35
+
36
+ @media (prefers-reduced-motion: reduce) {
37
+ svg {
38
+ animation: none;
39
+ }
40
+ }
@@ -0,0 +1,64 @@
1
+ import { h, Host } from "@stencil/core";
2
+ export class LmvzSpinner {
3
+ size = 'small';
4
+ ariaLabel;
5
+ render() {
6
+ const hasLabel = !!this.ariaLabel?.trim();
7
+ return (h(Host, { key: '858398ba87b2d2d6fd0f44c742183a770c233597', role: hasLabel ? 'status' : undefined, "aria-label": hasLabel ? this.ariaLabel : undefined, "aria-hidden": hasLabel ? undefined : 'true' }, h("svg", { key: '5fb5c26c17efaaa69300f1c019e0d25a566b53d9', part: "indicator", viewBox: "0 0 16 16", "aria-hidden": "true" }, h("circle", { key: '82747f014363570ccf25cfdaba5eac052d1efdf7', pathLength: "100", cx: "8", cy: "8", r: "6" }))));
8
+ }
9
+ static get is() { return "lmvz-spinner"; }
10
+ static get encapsulation() { return "shadow"; }
11
+ static get originalStyleUrls() {
12
+ return {
13
+ "$": ["lmvz-spinner.css"]
14
+ };
15
+ }
16
+ static get styleUrls() {
17
+ return {
18
+ "$": ["lmvz-spinner.css"]
19
+ };
20
+ }
21
+ static get properties() {
22
+ return {
23
+ "size": {
24
+ "type": "string",
25
+ "mutable": false,
26
+ "complexType": {
27
+ "original": "'small' | 'large'",
28
+ "resolved": "\"large\" | \"small\"",
29
+ "references": {}
30
+ },
31
+ "required": false,
32
+ "optional": false,
33
+ "docs": {
34
+ "tags": [],
35
+ "text": "Size of the spinner."
36
+ },
37
+ "getter": false,
38
+ "setter": false,
39
+ "reflect": true,
40
+ "attribute": "size",
41
+ "defaultValue": "'small'"
42
+ },
43
+ "ariaLabel": {
44
+ "type": "string",
45
+ "mutable": false,
46
+ "complexType": {
47
+ "original": "string",
48
+ "resolved": "string | undefined",
49
+ "references": {}
50
+ },
51
+ "required": false,
52
+ "optional": true,
53
+ "docs": {
54
+ "tags": [],
55
+ "text": "Accessible name for assistive technology.\nLeave unset for decorative spinners so the element stays hidden from the accessibility tree."
56
+ },
57
+ "getter": false,
58
+ "setter": false,
59
+ "reflect": true,
60
+ "attribute": "aria-label"
61
+ }
62
+ };
63
+ }
64
+ }
@@ -14,7 +14,7 @@ export class LmvzTab {
14
14
  this.el.dispatchEvent(new CustomEvent('lmvzTabReady', { bubbles: true, composed: false }));
15
15
  }
16
16
  render() {
17
- return (h(Host, { key: 'f02b0624ac752f25e3996071ab88be1364dd27c3' }, h("button", { key: '1666fea6a68c66d5bf88141660067a66e0164891', part: "button", role: "tab", disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, tabIndex: 0 }, h("slot", { key: '23d1ef98da2a72efa3a5ec1563298fc4c08da441', name: "media", ref: (el) => (this.mediaSlotEl = el), onSlotchange: this.handleMediaSlotChange }), h("span", { key: 'bd96765d2228817c621a2ad4fd4f3b05fcdb3a21', class: "label" }, h("slot", { key: 'ef51c25169a1d993797a86b89fa296218e264969' })), h("span", { key: '28dda1631d62325a29e285909ee3f1c0ea9da3ad', "aria-hidden": "true", part: "indicator", class: "indicator" }))));
17
+ return (h(Host, { key: 'f773de6715166e8a321dc7c35f4f7c3e02f7f127' }, h("button", { key: '1c58f672e04956295292bb9becfd72e90ce36e6b', part: "button", role: "tab", disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, tabIndex: 0 }, h("slot", { key: '9381aeccc14ca81b963f9509f78ca0de420f0596', name: "media", ref: (el) => (this.mediaSlotEl = el), onSlotchange: this.handleMediaSlotChange }), h("span", { key: '289feb2180a5b190bc080804841d0a8f84d9ef2d', class: "label" }, h("slot", { key: 'df79c890e156883b37d6fbf34f4fbb957e33402c' })), h("span", { key: '54d091a18674ffd78e14f5a0da1dc648ffe91e13', "aria-hidden": "true", part: "indicator", class: "indicator" }))));
18
18
  }
19
19
  static get is() { return "lmvz-tab"; }
20
20
  static get encapsulation() { return "shadow"; }
@@ -232,7 +232,7 @@ export class LmvzTabs extends ReactiveControllerHost {
232
232
  this.selectTab(value);
233
233
  };
234
234
  render() {
235
- return (h(Host, { key: '3a503531069e0d83be9bde0e9bc2e1747498baf2', onClick: this.handleTabClick, onKeydown: this.handleKeydown }, h("div", { key: '25a37d52ba6c8c1b46c1e624da13b918e9bd33d1', role: "tablist", "aria-orientation": this.orientation, class: "tablist" }, h("slot", { key: '00b4ba4cf88081d8cd4ee21976398646e4f19679', ref: (el) => (this.tabSlotEl = el) })), h("div", { key: '872aba20a4d26facafc71821f7fc88cf96b05a33', part: "panels-container", class: "panels-container" }, h("slot", { key: '7681c24945e7d50e95f749bd5c056704db120b11', name: "panels", ref: (el) => (this.panelSlotEl = el) }))));
235
+ return (h(Host, { key: 'f86adf9c3ce7bbe664d34ce8f408df89c719e3b8', onClick: this.handleTabClick, onKeydown: this.handleKeydown }, h("div", { key: '9188d39f972b77226221b33079d45c77b2b10583', role: "tablist", "aria-orientation": this.orientation, class: "tablist" }, h("slot", { key: 'a5ec2df3485181ec2eb62b6c479af169371b4006', ref: (el) => (this.tabSlotEl = el) })), h("div", { key: '9e57154ddcb069f58e5d457ab6cd275d5bacebd5', part: "panels-container", class: "panels-container" }, h("slot", { key: '84cada87d9a7c9f75a4bf16ce5e8437969aadbe9', name: "panels", ref: (el) => (this.panelSlotEl = el) }))));
236
236
  }
237
237
  static get is() { return "lmvz-tabs"; }
238
238
  static get encapsulation() { return "shadow"; }
@@ -65,7 +65,7 @@ export class LmvzToggle extends ReactiveControllerHost {
65
65
  this.lmvzChange.emit(newChecked);
66
66
  };
67
67
  render() {
68
- return (h(Host, { key: '452ea30df1191b45c606d7512982a0f743b7bf7a' }, h("span", { key: 'c538806b64de8bce70d0bc55c6a9eb279f4eff4c', class: "track" }, h("input", { key: 'afe04f4305744b3110092f9bfcbe8b4ee6f21c37', type: "checkbox", role: "switch", id: this.toggleId, checked: this.checked, disabled: this.disabled, required: this.required, name: this.name, value: this.value, form: this.form, ref: (el) => (this.nativeInputElement = el), onChange: this.handleChange }), h("span", { key: 'e8089a6e8ee084b3f316c837cf3225017c33a15e', class: "thumb", "aria-hidden": "true" })), h("label", { key: '085055f461f4240df2eb2b4ea441a5e782240276', htmlFor: this.toggleId }, this.label)));
68
+ return (h(Host, { key: '3bd8418b3c9161719d419d35f60d26843fb3110f' }, h("span", { key: '883a64fb80480e06bb175e626f8224aa6048b8f4', class: "track" }, h("input", { key: '21438217a82ab5049e341c7524de71429bd8c8c4', type: "checkbox", role: "switch", id: this.toggleId, checked: this.checked, disabled: this.disabled, required: this.required, name: this.name, value: this.value, form: this.form, ref: (el) => (this.nativeInputElement = el), onChange: this.handleChange }), h("span", { key: 'b652891bdd0462ac419e2e909a2e3a3e61d60993', class: "thumb", "aria-hidden": "true" })), h("label", { key: '3d934082c2b1fff11c057e62f5fbd9c9361ce5d4', htmlFor: this.toggleId }, this.label)));
69
69
  }
70
70
  static get is() { return "lmvz-toggle"; }
71
71
  static get encapsulation() { return "scoped"; }
@@ -1,4 +1,5 @@
1
1
  export * from '@lmvz-ds/aria-validation';
2
- export { chipSizes, chipTypes, iconSizes, iconWeights, inputTypes, textSizes } from './api/ds.constants';
3
- export * from './utils/public';
2
+ export { chipSizes, chipTypes, iconSizes, iconWeights, inputSizes, inputTypes, messageTypes, textSizes } from './api/ds.constants';
3
+ export * from './components/lmvz-message/public';
4
4
  export * from './components/lmvz-snackbar/public';
5
+ export * from './utils/public';
@@ -20,7 +20,7 @@ export class HeaderIntegration {
20
20
  this.activeNav = navId;
21
21
  }
22
22
  render() {
23
- return (h(Host, { key: '472abfaab29d554ecfa263b1f6b85d2c1990ceb1' }, h("lmvz-header", { key: '633622c96723608bfac8a9bc7ae9e1a972b105bf', lmvzActiveNav: this.activeNav }, h("lmvz-menuitem", { key: '15f74edb9e88bb246775d540c05cbdc81a3a618f', slot: "nav-primary", id: "lehrmittel", onLmvzActivation: this.activate.bind(this) }, h("a", { key: '6b82ecbd8e2ba53a68d5e05ca3f8ce8800b8dd5a', href: "#" }, "Lehrmittel")), h("lmvz-menuitem", { key: '97922b8a6c0dfba9c5d5b410b1d55aa288e67e88', slot: "nav-primary", id: "verwaltung", onLmvzActivation: this.activate.bind(this) }, h("a", { key: 'bacddd5a3fafecb3573a30dabff10a54f1996288', href: "#" }, "Verwaltung")), h("lmvz-menuitem", { key: 'bbfba0969436a5c95338ff01163658df0b64d680', slot: "connect-nav-lehrmittel" }, h("lmvz-icon", { key: '474927ef7491b1512f7849899859fddb6f368696', ...typedIconFromSet('lmvz', 'edit') }), "Deutsch 7"), h("lmvz-menuitem", { key: '32ef36d6787e3368a4c4e36fdaf00f765192cc6d', slot: "connect-nav-lehrmittel" }, h("lmvz-icon", { key: '58811b4b344a0168478ecda8fa7eee109ae51ea8', ...typedIconFromSet('lmvz', 'edit') }), "Mathe 2"), h("lmvz-menuitem", { key: '079715602610bd44465756e0b5a6daa0f67ea758', slot: "connect-nav-verwaltung" }, h("lmvz-icon", { key: '0c8b1d230579ab20e9dc9ef3b20c5f08a7a16d91', ...typedIconFromSet('lmvz', 'settings') }), "iwas mit Verwaltung"), h("lmvz-menuitem", { key: '31408441bbfd25dd66b209526709280613e1fd48', slot: "connect-nav-verwaltung", "aria-label": "Einstellungen" }, h("lmvz-icon", { key: 'e56d4b45f05d155561730d5298f7e6596eb8e64c', ...typedIconFromSet('lmvz', 'settings') })), h("lmvz-button", { key: '322f1858d41d8416ac8e4a073da348497d6f7557', slot: "actions", "aria-label": "Benutzerkonto" }, h("lmvz-icon", { key: 'd6b22f6b3e7357f9bf89b20463d146855feab625', ...typedIconFromSet('lmvz', 'user'), size: "lg" })))));
23
+ return (h(Host, { key: '07108a713b01e8f3522f9229726323f26cb59b6d' }, h("lmvz-header", { key: 'a9b15b90749591ededab132f03586c1e3da32fa7', lmvzActiveNav: this.activeNav }, h("lmvz-menuitem", { key: 'bbf69ac95b385cb9edfe248eccf1b3661334ac1f', slot: "nav-primary", id: "lehrmittel", onLmvzActivation: this.activate.bind(this) }, h("a", { key: 'f102fde6cf92c1d461bad8d75a4eff68e10cceda', href: "#" }, "Lehrmittel")), h("lmvz-menuitem", { key: '1a708da8ef97f15358b6668bd2ee95772b29820d', slot: "nav-primary", id: "verwaltung", onLmvzActivation: this.activate.bind(this) }, h("a", { key: '0d875ddf5cb85e581389bcaf76e9702d87240ff4', href: "#" }, "Verwaltung")), h("lmvz-menuitem", { key: '37158886f98276bc541b84c4fbc903768476b141', slot: "connect-nav-lehrmittel" }, h("lmvz-icon", { key: '7c60c47c0016a8fbc1d3f74b5b7279606cd842bc', ...typedIconFromSet('lmvz', 'edit') }), "Deutsch 7"), h("lmvz-menuitem", { key: 'cc1bb4fbe8bb79474787cdc436e07bfe3410d316', slot: "connect-nav-lehrmittel" }, h("lmvz-icon", { key: '6fa4ac27509daeae8ab53f2a506272064265da33', ...typedIconFromSet('lmvz', 'edit') }), "Mathe 2"), h("lmvz-menuitem", { key: '8b71ae7219b9516d1900731e5bd996a0d43d9767', slot: "connect-nav-verwaltung" }, h("lmvz-icon", { key: '8567efa67481a392709dca4b137b5c601aca2ef9', ...typedIconFromSet('lmvz', 'settings') }), "iwas mit Verwaltung"), h("lmvz-menuitem", { key: '8ba600b2e116657929e6bb033f4570f0187eee48', slot: "connect-nav-verwaltung", "aria-label": "Einstellungen" }, h("lmvz-icon", { key: 'f233f27093a1d90dbafc98a585949aeb20ae9229', ...typedIconFromSet('lmvz', 'settings') })), h("lmvz-button", { key: '019814dd9f7108889f97ad007da046d21812da37', slot: "actions", "aria-label": "Benutzerkonto" }, h("lmvz-icon", { key: 'b2d80978d2c9582a291047a1522e83c20b6fd845', ...typedIconFromSet('lmvz', 'user'), size: "lg" })))));
24
24
  }
25
25
  static get is() { return "header-integration"; }
26
26
  static get encapsulation() { return "shadow"; }
@@ -19,6 +19,8 @@ export { LmvzInput as LmvzInput } from '../../types/components/lmvz-input/lmvz-i
19
19
  export { defineCustomElement as defineCustomElementLmvzInput } from './lmvz-input';
20
20
  export { LmvzMenuItem as LmvzMenuitem } from '../../types/components/lmvz-menuitem/lmvz-menuitem';
21
21
  export { defineCustomElement as defineCustomElementLmvzMenuitem } from './lmvz-menuitem';
22
+ export { LmvzMessage as LmvzMessage } from '../../types/components/lmvz-message/lmvz-message';
23
+ export { defineCustomElement as defineCustomElementLmvzMessage } from './lmvz-message';
22
24
  export { LmvzModal as LmvzModal } from '../../types/components/lmvz-modal/lmvz-modal';
23
25
  export { defineCustomElement as defineCustomElementLmvzModal } from './lmvz-modal';
24
26
  export { LmvzRadio as LmvzRadio } from '../../types/components/lmvz-radio/lmvz-radio';
@@ -27,6 +29,8 @@ export { LmvzSelect as LmvzSelect } from '../../types/components/lmvz-select/lmv
27
29
  export { defineCustomElement as defineCustomElementLmvzSelect } from './lmvz-select';
28
30
  export { LmvzSnackbar as LmvzSnackbar } from '../../types/components/lmvz-snackbar/lmvz-snackbar';
29
31
  export { defineCustomElement as defineCustomElementLmvzSnackbar } from './lmvz-snackbar';
32
+ export { LmvzSpinner as LmvzSpinner } from '../../types/components/lmvz-spinner/lmvz-spinner';
33
+ export { defineCustomElement as defineCustomElementLmvzSpinner } from './lmvz-spinner';
30
34
  export { LmvzTab as LmvzTab } from '../../types/components/lmvz-tab/lmvz-tab';
31
35
  export { defineCustomElement as defineCustomElementLmvzTab } from './lmvz-tab';
32
36
  export { LmvzTabs as LmvzTabs } from '../../types/components/lmvz-tabs/lmvz-tabs';
@@ -19,6 +19,8 @@ export { LmvzInput as LmvzInput } from '../../types/components/lmvz-input/lmvz-i
19
19
  export { defineCustomElement as defineCustomElementLmvzInput } from './lmvz-input';
20
20
  export { LmvzMenuItem as LmvzMenuitem } from '../../types/components/lmvz-menuitem/lmvz-menuitem';
21
21
  export { defineCustomElement as defineCustomElementLmvzMenuitem } from './lmvz-menuitem';
22
+ export { LmvzMessage as LmvzMessage } from '../../types/components/lmvz-message/lmvz-message';
23
+ export { defineCustomElement as defineCustomElementLmvzMessage } from './lmvz-message';
22
24
  export { LmvzModal as LmvzModal } from '../../types/components/lmvz-modal/lmvz-modal';
23
25
  export { defineCustomElement as defineCustomElementLmvzModal } from './lmvz-modal';
24
26
  export { LmvzRadio as LmvzRadio } from '../../types/components/lmvz-radio/lmvz-radio';
@@ -27,6 +29,8 @@ export { LmvzSelect as LmvzSelect } from '../../types/components/lmvz-select/lmv
27
29
  export { defineCustomElement as defineCustomElementLmvzSelect } from './lmvz-select';
28
30
  export { LmvzSnackbar as LmvzSnackbar } from '../../types/components/lmvz-snackbar/lmvz-snackbar';
29
31
  export { defineCustomElement as defineCustomElementLmvzSnackbar } from './lmvz-snackbar';
32
+ export { LmvzSpinner as LmvzSpinner } from '../../types/components/lmvz-spinner/lmvz-spinner';
33
+ export { defineCustomElement as defineCustomElementLmvzSpinner } from './lmvz-spinner';
30
34
  export { LmvzTab as LmvzTab } from '../../types/components/lmvz-tab/lmvz-tab';
31
35
  export { defineCustomElement as defineCustomElementLmvzTab } from './lmvz-tab';
32
36
  export { LmvzTabs as LmvzTabs } from '../../types/components/lmvz-tabs/lmvz-tabs';
@@ -1 +1 @@
1
- export{g as getAssetPath,r as render,s as setAssetPath,a as setNonce,b as setPlatformOptions}from"./p-c7OzBK8f.js";export{A as ARIA_VALIDATION_RUNTIME_CHANGED_EVENT,d as disableAriaValidation,e as enableAriaValidation,i as isAriaValidationEnabled,q as queueValidation,u as useVerboseLogging}from"./p-CdDO7mQa.js";export{LmvzChip,c as chipSizes,a as chipTypes,defineCustomElement as defineCustomElementLmvzChip,i as iconSizes,b as iconWeights,d as inputTypes,t as textSizes}from"./lmvz-chip.js";export{g as getRegisteredIconProvider,r as registerIconProvider,t as typedIconFromSet}from"./p-DjvbwRyl.js";export{LmvzAction,defineCustomElement as defineCustomElementLmvzAction}from"./lmvz-action.js";export{LmvzButton,defineCustomElement as defineCustomElementLmvzButton}from"./lmvz-button.js";export{LmvzButtonGroup,defineCustomElement as defineCustomElementLmvzButtonGroup}from"./lmvz-button-group.js";export{LmvzCard,defineCustomElement as defineCustomElementLmvzCard}from"./lmvz-card.js";export{LmvzCheckbox,defineCustomElement as defineCustomElementLmvzCheckbox}from"./lmvz-checkbox.js";export{LmvzHeader,defineCustomElement as defineCustomElementLmvzHeader}from"./lmvz-header.js";export{LmvzIcon,defineCustomElement as defineCustomElementLmvzIcon}from"./lmvz-icon.js";export{LmvzInput,defineCustomElement as defineCustomElementLmvzInput}from"./lmvz-input.js";export{LmvzMenuitem,defineCustomElement as defineCustomElementLmvzMenuitem}from"./lmvz-menuitem.js";export{LmvzModal,defineCustomElement as defineCustomElementLmvzModal}from"./lmvz-modal.js";export{LmvzRadio,defineCustomElement as defineCustomElementLmvzRadio}from"./lmvz-radio.js";export{LmvzSelect,defineCustomElement as defineCustomElementLmvzSelect}from"./lmvz-select.js";export{LmvzSnackbar,defineCustomElement as defineCustomElementLmvzSnackbar}from"./lmvz-snackbar.js";export{LmvzTab,defineCustomElement as defineCustomElementLmvzTab}from"./lmvz-tab.js";export{LmvzTabs,defineCustomElement as defineCustomElementLmvzTabs}from"./lmvz-tabs.js";export{LmvzToggle,defineCustomElement as defineCustomElementLmvzToggle}from"./lmvz-toggle.js";const o={low:0,normal:1,high:2},n={success:5e3,warning:5e3,error:8e3};let m=0;function l(){return m+=1,"snackbar-"+m}class v{hostEl=void 0;active=void 0;getHost(){return void 0===this.hostEl||this.hostEl.isConnected||(this.hostEl=void 0),void 0===this.hostEl&&(this.hostEl=function(){if("undefined"==typeof document)return;const e=document.querySelector("[data-snackbar-host]");if(e)return e;const t=document.createElement("lmvz-snackbar");return t.setAttribute("data-snackbar-host",""),document.body.appendChild(t),t}()),this.hostEl}clearTimer(e){void 0!==e.timerId&&(clearTimeout(e.timerId),e.timerId=void 0)}scheduleTimer(e,t){t<=0||(e.timerStartedAt=Date.now(),e.timerId=setTimeout((()=>{void 0!==this.active&&this.active.id===e.id&&this.dismissActive(e,"timeout")}),t))}dismissActive(e,t){this.clearTimer(e);const s=e.hostEl;s.removeEventListener("pointerenter",e.onPointerEnter),s.removeEventListener("pointerleave",e.onPointerLeave),s.removeEventListener("focusin",e.onFocusIn),s.removeEventListener("focusout",e.onFocusOut),e.onActionListener&&s.removeEventListener("lmvzAction",e.onActionListener),s.hide?.(),this.active?.id===e.id&&(this.active=void 0),"action"!==t&&s.dispatchEvent(new CustomEvent("lmvzClose",{detail:{reason:t},bubbles:!0,composed:!0})),e.resolve({reason:t})}pauseTimer(e){if(e.pauseCount+=1,e.pauseCount>1||void 0===e.timerId)return;const t=void 0!==e.timerStartedAt?Date.now()-e.timerStartedAt:0;e.remaining=Math.max(0,e.remaining-t),e.timerStartedAt=void 0,this.clearTimer(e)}resumeTimer(e){e.pauseCount>0&&(e.pauseCount-=1),e.pauseCount>0||e.remaining>0&&this.scheduleTimer(e,e.remaining)}applyToHost(e,t){e.setAttribute("status",t.status??"success"),void 0!==t.actionLabel?e.setAttribute("action-label",t.actionLabel):e.removeAttribute("action-label")}open(e){const t=o[e.priority??"normal"];if(void 0!==this.active&&t<this.active.priority){let e;const t=new Promise((t=>{e=t}));return e({reason:"swallowed"}),{id:l(),closed:t,dismiss(){}}}void 0!==this.active&&this.dismissActive(this.active,"overridden");const s=this.getHost();if(void 0===s){const e=l();let t;const s=new Promise((e=>{t=e}));return t({reason:"swallowed"}),{id:e,closed:s,dismiss(){}}}const i=l(),m=0===e.duration?0:e.duration??n[e.status??"success"];let a;const r=new Promise((e=>{a=e})),d={id:i,priority:t,resolve:a,timerId:void 0,remaining:m,timerStartedAt:void 0,pauseCount:0,hostEl:s,onPointerEnter:()=>this.pauseTimer(d),onPointerLeave:()=>this.resumeTimer(d),onFocusIn:()=>this.pauseTimer(d),onFocusOut:()=>this.resumeTimer(d)};this.active=d,s.addEventListener("pointerenter",d.onPointerEnter),s.addEventListener("pointerleave",d.onPointerLeave),s.addEventListener("focusin",d.onFocusIn),s.addEventListener("focusout",d.onFocusOut),this.applyToHost(s,e);const u=()=>{void 0!==this.active&&this.active.id===i&&(e.onAction?.(),this.dismissActive(d,"action"))};return d.onActionListener=u,s.addEventListener("lmvzAction",u,{once:!0}),s.show?.(),queueMicrotask((()=>s.setAttribute("message",e.message))),m>0&&this.scheduleTimer(d,m),{id:i,closed:r,dismiss:()=>{this.active?.id===i&&this.dismissActive(d,"manual")}}}dismiss(e){this.active&&(e&&this.active.id!==e||this.dismissActive(this.active,"manual"))}}export{v as SnackbarController}
1
+ export{g as getAssetPath,r as render,s as setAssetPath,a as setNonce,b as setPlatformOptions}from"./p-DGg7OzDl.js";export{A as ARIA_VALIDATION_RUNTIME_CHANGED_EVENT,d as disableAriaValidation,e as enableAriaValidation,i as isAriaValidationEnabled,q as queueValidation,u as useVerboseLogging}from"./p-CdDO7mQa.js";export{LmvzChip,c as chipSizes,a as chipTypes,defineCustomElement as defineCustomElementLmvzChip,i as iconSizes,b as iconWeights,d as inputSizes,e as inputTypes,m as messageTypes,t as textSizes}from"./lmvz-chip.js";export{g as getRegisteredIconProvider,r as registerIconProvider,t as typedIconFromSet}from"./p-CXakymyP.js";export{LmvzAction,defineCustomElement as defineCustomElementLmvzAction}from"./lmvz-action.js";export{LmvzButton,defineCustomElement as defineCustomElementLmvzButton}from"./lmvz-button.js";export{LmvzButtonGroup,defineCustomElement as defineCustomElementLmvzButtonGroup}from"./lmvz-button-group.js";export{LmvzCard,defineCustomElement as defineCustomElementLmvzCard}from"./lmvz-card.js";export{LmvzCheckbox,defineCustomElement as defineCustomElementLmvzCheckbox}from"./lmvz-checkbox.js";export{LmvzHeader,defineCustomElement as defineCustomElementLmvzHeader}from"./lmvz-header.js";export{LmvzIcon,defineCustomElement as defineCustomElementLmvzIcon}from"./lmvz-icon.js";export{LmvzInput,defineCustomElement as defineCustomElementLmvzInput}from"./lmvz-input.js";export{LmvzMenuitem,defineCustomElement as defineCustomElementLmvzMenuitem}from"./lmvz-menuitem.js";export{LmvzMessage,defineCustomElement as defineCustomElementLmvzMessage}from"./lmvz-message.js";export{LmvzModal,defineCustomElement as defineCustomElementLmvzModal}from"./lmvz-modal.js";export{LmvzRadio,defineCustomElement as defineCustomElementLmvzRadio}from"./lmvz-radio.js";export{LmvzSelect,defineCustomElement as defineCustomElementLmvzSelect}from"./lmvz-select.js";export{LmvzSnackbar,defineCustomElement as defineCustomElementLmvzSnackbar}from"./lmvz-snackbar.js";export{LmvzSpinner,defineCustomElement as defineCustomElementLmvzSpinner}from"./lmvz-spinner.js";export{LmvzTab,defineCustomElement as defineCustomElementLmvzTab}from"./lmvz-tab.js";export{LmvzTabs,defineCustomElement as defineCustomElementLmvzTabs}from"./lmvz-tabs.js";export{LmvzToggle,defineCustomElement as defineCustomElementLmvzToggle}from"./lmvz-toggle.js";const o={low:0,normal:1,high:2},n={success:5e3,warning:5e3,error:8e3};let l=0;function v(){return l+=1,"snackbar-"+l}class f{hostEl=void 0;active=void 0;getHost(){return void 0===this.hostEl||this.hostEl.isConnected||(this.hostEl=void 0),void 0===this.hostEl&&(this.hostEl=function(){if("undefined"==typeof document)return;const e=document.querySelector("[data-snackbar-host]");if(e)return e;const t=document.createElement("lmvz-snackbar");return t.setAttribute("data-snackbar-host",""),document.body.appendChild(t),t}()),this.hostEl}clearTimer(e){void 0!==e.timerId&&(clearTimeout(e.timerId),e.timerId=void 0)}scheduleTimer(e,t){t<=0||(e.timerStartedAt=Date.now(),e.timerId=setTimeout((()=>{void 0!==this.active&&this.active.id===e.id&&this.dismissActive(e,"timeout")}),t))}dismissActive(e,t){this.clearTimer(e);const s=e.hostEl;s.removeEventListener("pointerenter",e.onPointerEnter),s.removeEventListener("pointerleave",e.onPointerLeave),s.removeEventListener("focusin",e.onFocusIn),s.removeEventListener("focusout",e.onFocusOut),e.onActionListener&&s.removeEventListener("lmvzAction",e.onActionListener),s.hide?.(),this.active?.id===e.id&&(this.active=void 0),"action"!==t&&s.dispatchEvent(new CustomEvent("lmvzClose",{detail:{reason:t},bubbles:!0,composed:!0})),e.resolve({reason:t})}pauseTimer(e){if(e.pauseCount+=1,e.pauseCount>1||void 0===e.timerId)return;const t=void 0!==e.timerStartedAt?Date.now()-e.timerStartedAt:0;e.remaining=Math.max(0,e.remaining-t),e.timerStartedAt=void 0,this.clearTimer(e)}resumeTimer(e){e.pauseCount>0&&(e.pauseCount-=1),e.pauseCount>0||e.remaining>0&&this.scheduleTimer(e,e.remaining)}applyToHost(e,t){e.setAttribute("status",t.status??"success"),void 0!==t.actionLabel?e.setAttribute("action-label",t.actionLabel):e.removeAttribute("action-label")}open(e){const t=o[e.priority??"normal"];if(void 0!==this.active&&t<this.active.priority){let e;const t=new Promise((t=>{e=t}));return e({reason:"swallowed"}),{id:v(),closed:t,dismiss(){}}}void 0!==this.active&&this.dismissActive(this.active,"overridden");const s=this.getHost();if(void 0===s){const e=v();let t;const s=new Promise((e=>{t=e}));return t({reason:"swallowed"}),{id:e,closed:s,dismiss(){}}}const i=v(),m=0===e.duration?0:e.duration??n[e.status??"success"];let a;const r=new Promise((e=>{a=e})),d={id:i,priority:t,resolve:a,timerId:void 0,remaining:m,timerStartedAt:void 0,pauseCount:0,hostEl:s,onPointerEnter:()=>this.pauseTimer(d),onPointerLeave:()=>this.resumeTimer(d),onFocusIn:()=>this.pauseTimer(d),onFocusOut:()=>this.resumeTimer(d)};this.active=d,s.addEventListener("pointerenter",d.onPointerEnter),s.addEventListener("pointerleave",d.onPointerLeave),s.addEventListener("focusin",d.onFocusIn),s.addEventListener("focusout",d.onFocusOut),this.applyToHost(s,e);const l=()=>{void 0!==this.active&&this.active.id===i&&(e.onAction?.(),this.dismissActive(d,"action"))};return d.onActionListener=l,s.addEventListener("lmvzAction",l,{once:!0}),s.show?.(),queueMicrotask((()=>s.setAttribute("message",e.message))),m>0&&this.scheduleTimer(d,m),{id:i,closed:r,dismiss:()=>{this.active?.id===i&&this.dismissActive(d,"manual")}}}dismiss(e){this.active&&(e&&this.active.id!==e||this.dismissActive(this.active,"manual"))}}export{f as SnackbarController}
@@ -1 +1 @@
1
- import{p as t,H as s,c,h as e,d as i,t as o}from"./p-c7OzBK8f.js";const n=t(class extends s{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.actionClick=c(this,"actionClick",7)}actionClick;_onClick(t){this.actionClick.emit(t)}render(){return e(i,{key:"15c0f20e08cd5019abfd3bb71ec69d175dc5ba48",onClick:this._onClick.bind(this)},e("slot",{key:"f71a7853168d1b66b0a50b0f971d140385530ac3"}))}static get style(){return":host{display:block}"}},[257,"lmvz-action"]),a=n,l=function(){"undefined"!=typeof customElements&&["lmvz-action"].forEach((t=>{"lmvz-action"===t&&(customElements.get(o(t))||customElements.define(o(t),n))}))};export{a as LmvzAction,l as defineCustomElement}
1
+ import{p as t,H as s,c,h as e,d as i,t as o}from"./p-DGg7OzDl.js";const n=t(class extends s{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.actionClick=c(this,"actionClick",7)}actionClick;_onClick(t){this.actionClick.emit(t)}render(){return e(i,{key:"15c0f20e08cd5019abfd3bb71ec69d175dc5ba48",onClick:this._onClick.bind(this)},e("slot",{key:"f71a7853168d1b66b0a50b0f971d140385530ac3"}))}static get style(){return":host{display:block}"}},[257,"lmvz-action"]),a=n,l=function(){"undefined"!=typeof customElements&&["lmvz-action"].forEach((t=>{"lmvz-action"===t&&(customElements.get(o(t))||customElements.define(o(t),n))}))};export{a as LmvzAction,l as defineCustomElement}
@@ -1 +1 @@
1
- import{L as s,d as o}from"./p-Cs7RCOHZ.js";const p=s,r=o;export{p as LmvzButtonGroup,r as defineCustomElement}
1
+ import{L as o,d as s}from"./p-DGlgVBPj.js";const p=o,r=s;export{p as LmvzButtonGroup,r as defineCustomElement}
@@ -1 +1 @@
1
- import{L as r,d as o}from"./p-2VdcUIrr.js";const s=r,p=o;export{s as LmvzButton,p as defineCustomElement}
1
+ import{L as o,d as s}from"./p-C0f2nNPZ.js";const p=o,r=s;export{p as LmvzButton,r as defineCustomElement}