@lmvz-ds/components 0.30.0 → 0.32.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 (208) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/cjs/{ds.constants-D3srqM9m.js → ds.constants-CKeXfK-s.js} +10 -0
  3. package/cjs/{component-C7cavwmZ.js → element.util-Cq4y-_iX.js} +42 -31
  4. package/cjs/index.cjs.js +7 -1
  5. package/cjs/{list-keyboard-controller-CzZdPBeH.js → list-keyboard-controller-StN6Yn8W.js} +13 -8
  6. package/cjs/lmvz-action-list.cjs.entry.js +79 -0
  7. package/cjs/lmvz-button-group.cjs.entry.js +43 -47
  8. package/cjs/lmvz-button_2.cjs.entry.js +10 -8
  9. package/cjs/lmvz-card.cjs.entry.js +2 -2
  10. package/cjs/lmvz-checkbox.cjs.entry.js +1 -1
  11. package/cjs/lmvz-chip.cjs.entry.js +2 -2
  12. package/cjs/lmvz-components.cjs.js +1 -1
  13. package/cjs/lmvz-header_2.cjs.entry.js +3 -3
  14. package/cjs/lmvz-input.cjs.entry.js +5 -5
  15. package/cjs/lmvz-link.cjs.entry.js +2 -2
  16. package/cjs/lmvz-menuitem.cjs.entry.js +1 -1
  17. package/cjs/lmvz-message.cjs.entry.js +1 -1
  18. package/cjs/lmvz-modal.cjs.entry.js +5 -5
  19. package/cjs/lmvz-radio.cjs.entry.js +1 -1
  20. package/cjs/lmvz-select.cjs.entry.js +1 -1
  21. package/cjs/lmvz-snackbar.cjs.entry.js +1 -1
  22. package/cjs/lmvz-spinner.cjs.entry.js +1 -1
  23. package/cjs/lmvz-tab.cjs.entry.js +2 -2
  24. package/cjs/lmvz-tabs.cjs.entry.js +4 -4
  25. package/cjs/lmvz-toggle.cjs.entry.js +3 -3
  26. package/cjs/loader.cjs.js +1 -1
  27. package/cjs/stencil.util-DzvzXSwk.js +25 -0
  28. package/collection/collection-manifest.json +1 -0
  29. package/collection/components/lmvz-action-list/lmvz-action-list.css +93 -0
  30. package/collection/components/lmvz-action-list/lmvz-action-list.js +104 -0
  31. package/collection/components/lmvz-button/lmvz-button.css +65 -45
  32. package/collection/components/lmvz-button/lmvz-button.js +28 -7
  33. package/collection/components/lmvz-button-group/lmvz-button-group.css +33 -2
  34. package/collection/components/lmvz-button-group/lmvz-button-group.js +54 -38
  35. package/collection/components/lmvz-card/lmvz-card.css +58 -45
  36. package/collection/components/lmvz-card/lmvz-card.js +2 -2
  37. package/collection/components/lmvz-checkbox/lmvz-checkbox.js +2 -2
  38. package/collection/components/lmvz-chip/lmvz-chip.js +7 -7
  39. package/collection/components/lmvz-header/lmvz-header.js +2 -2
  40. package/collection/components/lmvz-icon/lmvz-icon.js +2 -2
  41. package/collection/components/lmvz-input/lmvz-input.js +5 -5
  42. package/collection/components/lmvz-link/lmvz-link.js +3 -3
  43. package/collection/components/lmvz-menuitem/lmvz-menuitem.js +2 -2
  44. package/collection/components/lmvz-message/lmvz-message.js +1 -1
  45. package/collection/components/lmvz-modal/lmvz-modal.css +7 -0
  46. package/collection/components/lmvz-modal/lmvz-modal.js +3 -3
  47. package/collection/components/lmvz-radio/lmvz-radio.js +2 -2
  48. package/collection/components/lmvz-select/lmvz-select.js +2 -2
  49. package/collection/components/lmvz-snackbar/lmvz-snackbar.js +1 -1
  50. package/collection/components/lmvz-spinner/lmvz-spinner.js +1 -1
  51. package/collection/components/lmvz-tab/lmvz-tab.css +7 -0
  52. package/collection/components/lmvz-tab/lmvz-tab.js +1 -1
  53. package/collection/components/lmvz-tabs/lmvz-tabs.css +7 -0
  54. package/collection/components/lmvz-tabs/lmvz-tabs.js +2 -2
  55. package/collection/components/lmvz-toggle/lmvz-toggle.js +3 -3
  56. package/collection/index.js +1 -1
  57. package/collection/integration/header-integration/header-integration.js +1 -1
  58. package/collection/utils/aria/aria.constants.js +53 -0
  59. package/collection/utils/aria/list-keyboard-controller.js +12 -7
  60. package/collection/utils/async/async.util.js +62 -0
  61. package/collection/utils/data/event.utilt.js +19 -0
  62. package/collection/utils/data/number.util.js +6 -0
  63. package/collection/utils/data/object.util.js +20 -0
  64. package/collection/utils/data/time.util.js +3 -0
  65. package/collection/utils/element/element.util.js +117 -0
  66. package/collection/utils/{assets.js → stencil/assets.js} +1 -1
  67. package/collection/utils/stencil/stencil.util.js +12 -0
  68. package/components/index.d.ts +2 -0
  69. package/components/index.d.ts.bak +2 -0
  70. package/components/index.js +1 -1
  71. package/components/lmvz-action-list.d.ts +11 -0
  72. package/components/lmvz-action-list.d.ts.bak +11 -0
  73. package/components/lmvz-action-list.js +1 -0
  74. package/components/lmvz-button-group.js +1 -1
  75. package/components/lmvz-button.js +1 -1
  76. package/components/lmvz-card.js +1 -1
  77. package/components/lmvz-checkbox.js +1 -1
  78. package/components/lmvz-chip.js +1 -1
  79. package/components/lmvz-header.js +1 -1
  80. package/components/lmvz-icon.js +1 -1
  81. package/components/lmvz-input.js +1 -1
  82. package/components/lmvz-link.js +1 -1
  83. package/components/lmvz-menuitem.js +1 -1
  84. package/components/lmvz-message.js +1 -1
  85. package/components/lmvz-modal.js +1 -1
  86. package/components/lmvz-radio.js +1 -1
  87. package/components/lmvz-select.js +1 -1
  88. package/components/lmvz-snackbar.js +1 -1
  89. package/components/lmvz-spinner.js +1 -1
  90. package/components/lmvz-tab.js +1 -1
  91. package/components/lmvz-tabs.js +1 -1
  92. package/components/lmvz-toggle.js +1 -1
  93. package/components/p-B0H9qIwE.js +1 -0
  94. package/components/p-B4m1n4et.js +1 -0
  95. package/components/p-CJRqhXjK.js +1 -0
  96. package/components/p-CxfT9IA1.js +1 -0
  97. package/components/{p-CXakymyP.js → p-DJ90327O.js} +1 -1
  98. package/components/p-DeO5Vbxh.js +1 -0
  99. package/components/p-DuEtnKRj.js +1 -0
  100. package/esm/{ds.constants-BLS5MjIu.js → ds.constants-DuEtnKRj.js} +5 -1
  101. package/esm/{component-DOTK1OW3.js → element.util-CxfT9IA1.js} +37 -31
  102. package/esm/index.js +1 -1
  103. package/esm/{list-keyboard-controller-Coi8XfUH.js → list-keyboard-controller-BKa9Kd2t.js} +12 -7
  104. package/esm/lmvz-action-list.entry.js +77 -0
  105. package/esm/lmvz-button-group.entry.js +35 -39
  106. package/esm/lmvz-button_2.entry.js +9 -7
  107. package/esm/lmvz-card.entry.js +2 -2
  108. package/esm/lmvz-checkbox.entry.js +1 -1
  109. package/esm/lmvz-chip.entry.js +2 -2
  110. package/esm/lmvz-components.js +1 -1
  111. package/esm/lmvz-header_2.entry.js +3 -3
  112. package/esm/lmvz-input.entry.js +4 -4
  113. package/esm/lmvz-link.entry.js +2 -2
  114. package/esm/lmvz-menuitem.entry.js +1 -1
  115. package/esm/lmvz-message.entry.js +1 -1
  116. package/esm/lmvz-modal.entry.js +3 -3
  117. package/esm/lmvz-radio.entry.js +1 -1
  118. package/esm/lmvz-select.entry.js +1 -1
  119. package/esm/lmvz-snackbar.entry.js +1 -1
  120. package/esm/lmvz-spinner.entry.js +1 -1
  121. package/esm/lmvz-tab.entry.js +2 -2
  122. package/esm/lmvz-tabs.entry.js +4 -4
  123. package/esm/lmvz-toggle.entry.js +2 -2
  124. package/esm/loader.js +1 -1
  125. package/esm/stencil.util-CJRqhXjK.js +23 -0
  126. package/hydrate/index.js +501 -388
  127. package/hydrate/index.mjs +501 -388
  128. package/lmvz-components/index.esm.js +1 -1
  129. package/lmvz-components/lmvz-components.esm.js +1 -1
  130. package/lmvz-components/{p-f3c44dd4.entry.js → p-1ce90ea7.entry.js} +1 -1
  131. package/lmvz-components/{p-b08db5ad.entry.js → p-24125bcf.entry.js} +1 -1
  132. package/lmvz-components/p-25a78ead.entry.js +1 -0
  133. package/lmvz-components/p-4072b2fb.entry.js +1 -0
  134. package/lmvz-components/p-48109e1d.entry.js +1 -0
  135. package/lmvz-components/{p-3b3e532f.entry.js → p-582f44ff.entry.js} +1 -1
  136. package/lmvz-components/p-592d509b.entry.js +1 -0
  137. package/lmvz-components/{p-d7e99f03.entry.js → p-6f61c24d.entry.js} +1 -1
  138. package/lmvz-components/{p-58498d43.entry.js → p-703b10b5.entry.js} +1 -1
  139. package/lmvz-components/p-74c7521c.entry.js +1 -0
  140. package/lmvz-components/{p-b5254532.entry.js → p-80a26307.entry.js} +1 -1
  141. package/lmvz-components/{p-c60ab9c9.entry.js → p-8e1f66dd.entry.js} +1 -1
  142. package/lmvz-components/p-947e1fe6.entry.js +1 -0
  143. package/lmvz-components/p-B4m1n4et.js +1 -0
  144. package/lmvz-components/p-CJRqhXjK.js +1 -0
  145. package/lmvz-components/p-CxfT9IA1.js +1 -0
  146. package/lmvz-components/p-DuEtnKRj.js +1 -0
  147. package/lmvz-components/{p-230962c8.entry.js → p-b79af711.entry.js} +1 -1
  148. package/lmvz-components/p-c00f0d96.entry.js +1 -0
  149. package/lmvz-components/{p-5c951888.entry.js → p-c0d05a97.entry.js} +1 -1
  150. package/lmvz-components/{p-c0b1d0af.entry.js → p-c3e8092e.entry.js} +1 -1
  151. package/lmvz-components/{p-2ca85b7c.entry.js → p-ed3c2b13.entry.js} +1 -1
  152. package/lmvz-components/{p-35da6bfb.entry.js → p-fa2cd315.entry.js} +1 -1
  153. package/manifest.json +130 -18
  154. package/package.json +5 -1
  155. package/types/api/ds.constants.d.ts +0 -40
  156. package/types/api/ds.types.d.ts +68 -1
  157. package/types/components/lmvz-action-list/lmvz-action-list.d.ts +15 -0
  158. package/types/components/lmvz-button/lmvz-button.d.ts +6 -3
  159. package/types/components/lmvz-button-group/lmvz-button-group.d.ts +2 -0
  160. package/types/components/lmvz-checkbox/lmvz-checkbox.d.ts +1 -1
  161. package/types/components/lmvz-chip/lmvz-chip.d.ts +2 -2
  162. package/types/components/lmvz-header/lmvz-header.d.ts +1 -1
  163. package/types/components/lmvz-icon/lmvz-icon.d.ts +1 -1
  164. package/types/components/lmvz-input/lmvz-input.d.ts +1 -1
  165. package/types/components/lmvz-link/lmvz-link.d.ts +1 -1
  166. package/types/components/lmvz-menuitem/lmvz-menuitem.d.ts +1 -1
  167. package/types/components/lmvz-modal/lmvz-modal.d.ts +1 -1
  168. package/types/components/lmvz-radio/lmvz-radio.d.ts +1 -1
  169. package/types/components/lmvz-select/lmvz-select.d.ts +1 -1
  170. package/types/components/lmvz-tabs/lmvz-tabs.d.ts +1 -1
  171. package/types/components/lmvz-toggle/lmvz-toggle.d.ts +1 -1
  172. package/types/components.d.ts +83 -2
  173. package/types/index.d.ts +1 -1
  174. package/types/utils/aria/aria-validation-controller.d.ts +3 -3
  175. package/types/utils/aria/aria.constants.d.ts +1 -0
  176. package/types/utils/aria/element-activation-controller.d.ts +1 -1
  177. package/types/utils/aria/list-keyboard-controller.d.ts +4 -1
  178. package/types/utils/async/async.util.d.ts +8 -0
  179. package/types/utils/data/event.utilt.d.ts +4 -0
  180. package/types/utils/data/number.util.d.ts +2 -0
  181. package/types/utils/data/object.util.d.ts +5 -0
  182. package/types/utils/data/time.util.d.ts +1 -0
  183. package/types/utils/element/element.util.d.ts +21 -0
  184. package/types/utils/radio/radio-group-controller.d.ts +1 -1
  185. package/types/utils/{reactive-controller-host.d.ts → stencil/reactive-controller-host.d.ts} +1 -1
  186. package/types/utils/stencil/stencil.util.d.ts +6 -0
  187. package/collection/utils/component.js +0 -270
  188. package/collection/utils/http.js +0 -21
  189. package/collection/utils/http.unit.js +0 -47
  190. package/components/p-BLS5MjIu.js +0 -1
  191. package/components/p-C0f2nNPZ.js +0 -1
  192. package/components/p-CtaMrBNE.js +0 -1
  193. package/components/p-DGlgVBPj.js +0 -1
  194. package/components/p-DOTK1OW3.js +0 -1
  195. package/lmvz-components/p-0d435e7b.entry.js +0 -1
  196. package/lmvz-components/p-44fea470.entry.js +0 -1
  197. package/lmvz-components/p-4dc44520.entry.js +0 -1
  198. package/lmvz-components/p-BLS5MjIu.js +0 -1
  199. package/lmvz-components/p-CtaMrBNE.js +0 -1
  200. package/lmvz-components/p-DOTK1OW3.js +0 -1
  201. package/lmvz-components/p-a4077c9f.entry.js +0 -1
  202. package/lmvz-components/p-dce6e41d.entry.js +0 -1
  203. package/lmvz-components/p-e3ce44a3.entry.js +0 -1
  204. package/types/utils/component.d.ts +0 -33
  205. package/types/utils/http.d.ts +0 -26
  206. package/types/utils/http.unit.d.ts +0 -1
  207. /package/collection/utils/{reactive-controller-host.js → stencil/reactive-controller-host.js} +0 -0
  208. /package/types/utils/{assets.d.ts → stencil/assets.d.ts} +0 -0
@@ -55,6 +55,13 @@ h6 {
55
55
  display: none !important;
56
56
  }
57
57
 
58
+ hr {
59
+ height: 0;
60
+ border: none;
61
+ margin: var(--lmvz-dimension-4-8, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)) 0;
62
+ border-top: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-subtle, #f0f0f0);
63
+ }
64
+
58
65
  }
59
66
  :host {
60
67
  /** component dependencies */
@@ -62,17 +69,21 @@ h6 {
62
69
  /* stylelint-disable no-invalid-position-at-import-rule */
63
70
  button {
64
71
  /* secondary styling is default, primary is explicit */
65
- --lmvz-button-color: var(--lmvz-component-color, var(--lmvz-semantic-color-int-on-secondary, #000000));
66
- --lmvz-button-padding-inline: var(--lmvz-button-padding, var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem)));
67
- --lmvz-button-padding-block: var(--lmvz-button-padding, var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem)));
68
- --lmvz-button-gap: var(--lmvz-component-input-gap-md, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem));
69
- --lmvz-button-min-height: var(--lmvz-component-input-size-md, clamp(2.5rem, 2.44rem + 0.26vw, 2.75rem));
70
- --lmvz-button-font: var(--lmvz-typography-body-md-strong, 500 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5
71
- Router);
72
- --lmvz-button-radius: var(--lmvz-component-input-radius-default, 999px);
73
- --lmvz-button-border-width: 0;
74
- --lmvz-button-border-color: transparent;
75
- --lmvz-button-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0);
72
+ /* --lmvz-button-background, --lmvz-button-color, --lmvz-button-radius are declared on :host
73
+ so that outer ::slotted(lmvz-button) overrides are inherited correctly via shadow inheritance.
74
+ They are also declared here so that non-shadow consumers (e.g. @lmvz-ds/styles buttons.css
75
+ bundle and lmvz-card) have the default values in scope. */
76
+ --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-secondary, #f0f0f0));
77
+ --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-secondary, #000000));
78
+ --lmvz-button-radius: var(--lmvz-button-radius-override, var(--lmvz-component-input-radius-default, 999px));
79
+ --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))));
80
+ --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))));
81
+ --lmvz-button-gap: var(--lmvz-button-gap-override, var(--lmvz-component-input-gap-md, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)));
82
+ --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)));
83
+ --lmvz-button-font: var(--lmvz-button-font-override, var(--lmvz-typography-body-md-strong, 500 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5
84
+ Router));
85
+ --lmvz-button-border-width: var(--lmvz-button-border-width-override, 0);
86
+ --lmvz-button-border-color: var(--lmvz-button-border-color-override, transparent);
76
87
 
77
88
  display: inline-flex;
78
89
  align-items: center;
@@ -105,6 +116,8 @@ button > * {
105
116
  button:focus-visible {
106
117
  outline: var(--lmvz-ds-outline, 1px solid #0e7ab4);
107
118
  outline-offset: var(--lmvz-ds-outline-offset, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem));
119
+ position: relative;
120
+ z-index: 1;
108
121
  }
109
122
 
110
123
  button:is([disabled], .disabled) {
@@ -120,76 +133,76 @@ button:is([disabled], .disabled) {
120
133
  }
121
134
 
122
135
  button:not([disabled]):hover {
123
- --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0);
136
+ --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0));
124
137
  }
125
138
 
126
139
  button:not([disabled]):active {
127
- --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-active, #d4d4d4);
140
+ --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-secondary-active, #d4d4d4));
128
141
  }
129
142
 
130
143
  button.primary {
131
- --lmvz-button-background: var(--lmvz-semantic-color-int-primary, #000000);
132
- --lmvz-button-color: var(--lmvz-semantic-color-int-on-primary, #ffffff);
133
- --lmvz-button-border-width: 0;
134
- --lmvz-button-border-color: transparent;
144
+ --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-primary, #000000));
145
+ --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-primary, #ffffff));
146
+ --lmvz-button-border-width: var(--lmvz-button-border-width-override, 0);
147
+ --lmvz-button-border-color: var(--lmvz-button-border-color-override, transparent);
135
148
  }
136
149
 
137
150
  button.primary:not([disabled], .disabled):hover {
138
- --lmvz-button-background: var(--lmvz-semantic-color-int-primary-hover, #2e2e2e);
151
+ --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-primary-hover, #2e2e2e));
139
152
  }
140
153
 
141
154
  button.primary:not([disabled], .disabled):active {
142
- --lmvz-button-background: var(--lmvz-semantic-color-int-primary-active, #545454);
155
+ --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-primary-active, #545454));
143
156
  }
144
157
 
145
158
  button.secondary {
146
- --lmvz-button-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0);
147
- --lmvz-button-color: var(--lmvz-semantic-color-int-on-secondary, #000000);
148
- --lmvz-button-border-width: 0;
149
- --lmvz-button-border-color: transparent;
159
+ --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-secondary, #f0f0f0));
160
+ --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-secondary, #000000));
161
+ --lmvz-button-border-width: var(--lmvz-button-border-width-override, 0);
162
+ --lmvz-button-border-color: var(--lmvz-button-border-color-override, transparent);
150
163
  }
151
164
 
152
165
  button.secondary:not([disabled], .disabled):hover {
153
- --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0);
154
- --lmvz-button-color: var(--lmvz-semantic-color-int-on-secondary-hover, #000000);
166
+ --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0));
167
+ --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-secondary-hover, #000000));
155
168
  }
156
169
 
157
170
  button.secondary:not([disabled], .disabled):active {
158
- --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-active, #d4d4d4);
159
- --lmvz-button-color: var(--lmvz-semantic-color-int-on-secondary-active, #000000);
171
+ --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-secondary-active, #d4d4d4));
172
+ --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-secondary-active, #000000));
160
173
  }
161
174
 
162
175
  button.tertiary {
163
- --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary, #ffffff);
164
- --lmvz-button-color: var(--lmvz-semantic-color-int-on-tertiary, #000000);
176
+ --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary, #ffffff));
177
+ --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-tertiary, #000000));
165
178
  }
166
179
 
167
180
  button.tertiary:not([disabled], .disabled):hover {
168
- --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0);
169
- --lmvz-button-color: var(--lmvz-semantic-color-int-on-tertiary-hover, #000000);
181
+ --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0));
182
+ --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-tertiary-hover, #000000));
170
183
  }
171
184
 
172
185
  button.tertiary:not([disabled], .disabled):active {
173
- --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0);
174
- --lmvz-button-color: var(--lmvz-semantic-color-int-on-tertiary-active, #000000);
186
+ --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0));
187
+ --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-tertiary-active, #000000));
175
188
  }
176
189
 
177
190
  button.small {
178
- --lmvz-button-padding-inline: var(--lmvz-component-input-padding-sm, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem));
179
- --lmvz-button-padding-block: var(--lmvz-component-input-padding-sm, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem));
180
- --lmvz-button-gap: var(--lmvz-component-input-gap-sm, clamp(0.38rem, 0.31rem + 0.26vw, 0.63rem));
181
- --lmvz-button-min-height: var(--lmvz-component-input-size-sm, clamp(2rem, 1.94rem + 0.26vw, 2.25rem));
182
- --lmvz-button-font: var(--lmvz-typography-body-sm-strong, 500 clamp(0.69rem, 0.67rem + 0.06vw, 0.75rem) / 1.5
183
- Router);
191
+ --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)));
192
+ --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)));
193
+ --lmvz-button-gap: var(--lmvz-button-gap-override, var(--lmvz-component-input-gap-sm, clamp(0.38rem, 0.31rem + 0.26vw, 0.63rem)));
194
+ --lmvz-button-min-height: var(--lmvz-button-min-height-override, var(--lmvz-component-input-size-sm, clamp(2rem, 1.94rem + 0.26vw, 2.25rem)));
195
+ --lmvz-button-font: var(--lmvz-button-font-override, var(--lmvz-typography-body-sm-strong, 500 clamp(0.69rem, 0.67rem + 0.06vw, 0.75rem) / 1.5
196
+ Router));
184
197
  }
185
198
 
186
199
  button.large {
187
- --lmvz-button-padding-inline: var(--lmvz-component-input-padding-lg, clamp(1rem, 0.94rem + 0.26vw, 1.25rem));
188
- --lmvz-button-padding-block: var(--lmvz-component-input-padding-lg, clamp(1rem, 0.94rem + 0.26vw, 1.25rem));
189
- --lmvz-button-gap: var(--lmvz-component-input-gap-lg, clamp(0.75rem, 0.69rem + 0.26vw, 1rem));
190
- --lmvz-button-min-height: var(--lmvz-component-input-size-lg, clamp(2.75rem, 2.69rem + 0.26vw, 3rem));
191
- --lmvz-button-font: var(--lmvz-typography-body-lg-strong, 500 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.5
192
- Router);
200
+ --lmvz-button-padding-inline: var(--lmvz-button-padding-inline-override, var(--lmvz-component-input-padding-lg, clamp(1rem, 0.94rem + 0.26vw, 1.25rem)));
201
+ --lmvz-button-padding-block: var(--lmvz-button-padding-block-override, var(--lmvz-component-input-padding-lg, clamp(1rem, 0.94rem + 0.26vw, 1.25rem)));
202
+ --lmvz-button-gap: var(--lmvz-button-gap-override, var(--lmvz-component-input-gap-lg, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)));
203
+ --lmvz-button-min-height: var(--lmvz-button-min-height-override, var(--lmvz-component-input-size-lg, clamp(2.75rem, 2.69rem + 0.26vw, 3rem)));
204
+ --lmvz-button-font: var(--lmvz-button-font-override, var(--lmvz-typography-body-lg-strong, 500 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.5
205
+ Router));
193
206
  }
194
207
 
195
208
 
@@ -1,5 +1,5 @@
1
1
  import { h, Host } from "@stencil/core";
2
- import { createAssetUrlSafely } from "../../utils/assets";
2
+ import { createAssetUrlSafely } from "../../utils/stencil/assets";
3
3
  export class LmvzCard {
4
4
  cardTitle;
5
5
  imageUrl;
@@ -19,7 +19,7 @@ export class LmvzCard {
19
19
  const imgStyle = {
20
20
  backgroundImage: `url(${this.imageUrl ?? this.fallbackImage})`,
21
21
  };
22
- return (h(Host, { key: '2d9ecdeed986f142fb7ff477b56dece59549bbc7', role: "article" }, h("div", { key: '34fc9c3a1338b31ce73424e8c07c79a291ead85c', class: "top" }, h("div", { key: '1756e6b26d7f42499753c36ed0fc13755fe32bfe', class: "image-wrapper", style: imgStyle }, h("div", { key: 'cd8be8acc9e949092b6363024316d12d445a9fbc', class: "chip-slot" }, h("slot", { key: '26389ab3b7031b948ff1701857e6028446662cf5', name: "chip" })))), h("div", { key: '2fa61cd7bef437f15929ae39be7fa294e8778321', class: "bottom" }, h("header", { key: 'b237ca025e42a29f528f827dc3c83b3b0f9267c0' }, h("h2", { key: 'ffd0a509ba97acb75d4c15d0fd01eef08689a2a7', class: "title" }, this.cardTitle)), h("p", { key: 'c40bd5d5f7e41a0cebc2f7f9e572ba98cc892cc1', class: "description" }, this.description), h("div", { key: '7663f93b41ef1e798b464bd6ad75ca8a53c0667b', class: "actions" }, h("button", { key: '3348e6700aa1571183558ab8fe4f73393c1cc943', class: "primary", onClick: this._onPrimaryClick.bind(this), "data-testid": "primary" }, this.primaryActionLabel), h("button", { key: 'd3a12cdabbdd68c3b04e06984db44abd3bbd22ea', class: "tertiary", "aria-label": "More actions", onClick: this._onOverflowClick }, h("span", { key: '80e31e6b691e18d1b42a2b4831349c3abf8e02b0', class: "icon-placeholder" }, "..."))))));
22
+ return (h(Host, { key: '1dd819fd7c752af8d15001c08f7f60c6ea7278b9', role: "article" }, h("div", { key: 'e0cc822e627b6bbe665e4faa705cc46a09bac7c6', class: "top" }, h("div", { key: 'db79cb5a67ebdd6097f985e4b4bd27665b6329ef', class: "image-wrapper", style: imgStyle }, h("div", { key: '90facc8595ddbbf31e3768faa8254a82ab8d3e65', class: "chip-slot" }, h("slot", { key: 'cb2e6a1053aae2b2ca90c52c175e3c4174c89d23', name: "chip" })))), h("div", { key: 'cb11069a329385178677e92d08044e0fe8e5b982', class: "bottom" }, h("header", { key: '1e6076352124ca03de2fb13c17a565b4f492567e' }, h("h2", { key: '73f11099fb751bd4f967dbe49b79763b6a8268f3', class: "title" }, this.cardTitle)), h("p", { key: '36cf87b4c2004bff1e65feedd13e137d67115de3', class: "description" }, this.description), h("div", { key: '6c1d82f4968ce8252307858e6ad0681274f06397', class: "actions" }, h("button", { key: '0366e0caaf9235a3eaf7bfcab116e6a828fb248d', class: "primary", onClick: this._onPrimaryClick.bind(this), "data-testid": "primary" }, this.primaryActionLabel), h("button", { key: '4f435e79d75a621d6fe065471a915b55308ad15d', class: "tertiary", "aria-label": "More actions", onClick: this._onOverflowClick }, h("span", { key: '7dec97e0b0ca58c40fc5308cc7863acafa8c5147', class: "icon-placeholder" }, "..."))))));
23
23
  }
24
24
  static get is() { return "lmvz-card"; }
25
25
  static get encapsulation() { return "scoped"; }
@@ -2,7 +2,7 @@ import checkmark from "@lmvz-ds/icons/assets/checkmark.svg";
2
2
  import { toValidSvgStringWithFallback } from "@lmvz-ds/lib-ts/validation/svg.js";
3
3
  import { h, Host } from "@stencil/core";
4
4
  import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
5
- import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
5
+ import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
6
6
  const CHECKMARK_SVG = toValidSvgStringWithFallback(checkmark);
7
7
  let checkboxIdCounter = 0;
8
8
  export class LmvzCheckbox extends ReactiveControllerHost {
@@ -86,7 +86,7 @@ export class LmvzCheckbox extends ReactiveControllerHost {
86
86
  this.nativeInput?.click();
87
87
  }
88
88
  render() {
89
- return (h(Host, { key: 'cea4a962a76cab10c27adc6742fe0686b2ce6dbe' }, h("div", { key: '1addfd795587de85ecbc632fbeb45026a4e46050', class: "pill" }, h("input", { key: '8957359d0cc3f2c315badee7e20fcc81e85e0f00', type: "checkbox", id: this.checkboxId, checked: this.checkedState, disabled: this.disabled, required: this.required, "aria-required": this.required ? 'true' : 'false', "aria-invalid": this.error ? 'true' : 'false', "aria-describedby": this.ariaDescribedBy, "aria-errormessage": this.error && this.errorId ? this.errorId : undefined, ref: (el) => (this.nativeInput = el), onChange: this.handleChange, autoFocus: this.autofocus }), h("span", { key: '400dbe9379ceb4aceeb431fe6060c82b41009cda', class: "box", "aria-hidden": "true" }, this.checkedState && h("span", { key: '9612093e65346b419ec8e4469fea7f00fe4c3ff4', class: "indicator", innerHTML: CHECKMARK_SVG })), h("span", { key: 'fd1136ea0726941bc400b8970f7cae4bb3b59363', class: "content" }, h("label", { key: 'a06deb2d4bc76efb884701a17e4a28420a99965c', htmlFor: this.checkboxId }, this.label), this.helperText && (h("span", { key: '2bd33f14062bedbb0609dff3ac7fbcee6fa16f21', onClick: this.retargetInnerClicks.bind(this), class: "helper-text", id: this.helperId, role: "status" }, this.helperText)))), this.errorMessage && (h("span", { key: 'ac4fcb6f0a2de16a17f0287e42b70b6339a50acc', class: "error-text", id: this.errorId, role: "alert" }, this.errorMessage))));
89
+ return (h(Host, { key: 'b6b4153dbf80af15cb15799889ca23b621b4ef73' }, h("div", { key: 'f11d6baaa4b04ee74b201be8c4e125ccd5c366aa', class: "pill" }, h("input", { key: 'd61dccfa163ecf4fffa95a5d44be35adbb8ee8ff', type: "checkbox", id: this.checkboxId, checked: this.checkedState, disabled: this.disabled, required: this.required, "aria-required": this.required ? 'true' : 'false', "aria-invalid": this.error ? 'true' : 'false', "aria-describedby": this.ariaDescribedBy, "aria-errormessage": this.error && this.errorId ? this.errorId : undefined, ref: (el) => (this.nativeInput = el), onChange: this.handleChange, autoFocus: this.autofocus }), h("span", { key: '87d62f1e0572e174e6d15f30ff59e37f6a5333cb', class: "box", "aria-hidden": "true" }, this.checkedState && h("span", { key: '74d29a32599f6c1ee8bde0cb6f27e384de7fcc2d', class: "indicator", innerHTML: CHECKMARK_SVG })), h("span", { key: '544990c81b3f7f90b53902d580d2eb2197edfa8b', class: "content" }, h("label", { key: '1884744656a280f85bec91b27315d3a6b70e8238', htmlFor: this.checkboxId }, this.label), this.helperText && (h("span", { key: '6783ff413a884c78dbd52e07cc7b433f5a9dcf29', onClick: this.retargetInnerClicks.bind(this), class: "helper-text", id: this.helperId, role: "status" }, this.helperText)))), this.errorMessage && (h("span", { key: '7c19fe406223a11e25df54cdfa304bc000eb421f', class: "error-text", id: this.errorId, role: "alert" }, this.errorMessage))));
90
90
  }
91
91
  static get is() { return "lmvz-checkbox"; }
92
92
  static get encapsulation() { return "scoped"; }
@@ -1,8 +1,8 @@
1
- import { debounce } from "@lmvz-ds/lib-ts/stream/debounce.js";
2
1
  import { Host, h } from "@stencil/core";
2
+ import { debounce } from "@lmvz-ds/lib-ts/stream/debounce.js";
3
3
  import { chipSizes, chipTypes } from "../../api/ds.constants.js";
4
4
  import { AriaValidationController, isAriaValidationEnabled } from "../../utils/aria/aria-validation-controller";
5
- import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
5
+ import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host.js";
6
6
  export class LmvzChip extends ReactiveControllerHost {
7
7
  ariaValidationController = new AriaValidationController(this);
8
8
  beforeSlot;
@@ -48,7 +48,7 @@ export class LmvzChip extends ReactiveControllerHost {
48
48
  }
49
49
  }, 500);
50
50
  render() {
51
- return (h(Host, { key: '70654d69189e77f9356853a921366083b2c4b969', type: this.type, size: this.size }, h("slot", { key: 'c7e667b93166286fe68a812dd8eec82885e3fc5e', name: "before-text", ref: (el) => (this.beforeSlot = el), onSlotchange: () => this.checkContent() }), h("span", { key: 'af38dd0429b42685a114e26175ce42d09f5fdcc1', class: "content-overflow-wrapper" }, h("slot", { key: '924158498d65b9ac7c912b6b1a479016176e0b78', ref: (el) => (this.defaultSlot = el), onSlotchange: () => this.checkContent() })), h("slot", { key: '9ff0394dbfb2131fafe513d0f2d8ce26c7781f20', name: "after-text", ref: (el) => (this.afterSlot = el), onSlotchange: () => this.checkContent() })));
51
+ return (h(Host, { key: 'f326ca8e4dba40941db6b9a711ba46989c4cf1b3', type: this.type, size: this.size }, h("slot", { key: 'f9925e107c2e474ecbaca756451dc4249000b0db', name: "before-text", ref: (el) => (this.beforeSlot = el), onSlotchange: () => this.checkContent() }), h("span", { key: '0b6ea980e0b0500d2955a03088d08eb2ca67f64f', class: "content-overflow-wrapper" }, h("slot", { key: '2b7f5c02e9a09128e0a404c7fe35f6278ce1fa61', ref: (el) => (this.defaultSlot = el), onSlotchange: () => this.checkContent() })), h("slot", { key: '929291cdaccf26d332823f9a100c6b6a84dc04f2', name: "after-text", ref: (el) => (this.afterSlot = el), onSlotchange: () => this.checkContent() })));
52
52
  }
53
53
  static get is() { return "lmvz-chip"; }
54
54
  static get encapsulation() { return "shadow"; }
@@ -73,8 +73,8 @@ export class LmvzChip extends ReactiveControllerHost {
73
73
  "references": {
74
74
  "Chip": {
75
75
  "location": "import",
76
- "path": "../../api/ds.constants.js",
77
- "id": "src/api/ds.constants.ts::Chip",
76
+ "path": "../../api/ds.types.js",
77
+ "id": "src/api/ds.types.d.ts::Chip",
78
78
  "referenceLocation": "Chip"
79
79
  }
80
80
  }
@@ -103,8 +103,8 @@ export class LmvzChip extends ReactiveControllerHost {
103
103
  "references": {
104
104
  "Chip": {
105
105
  "location": "import",
106
- "path": "../../api/ds.constants.js",
107
- "id": "src/api/ds.constants.ts::Chip",
106
+ "path": "../../api/ds.types.js",
107
+ "id": "src/api/ds.types.d.ts::Chip",
108
108
  "referenceLocation": "Chip"
109
109
  }
110
110
  }
@@ -1,7 +1,7 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
3
3
  import { DirectionalFocusController } from "../../utils/aria/list-keyboard-controller";
4
- import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
4
+ import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
5
5
  import logo from "../../assets/icons/Logo.svg";
6
6
  export class LmvzHeader extends ReactiveControllerHost {
7
7
  el;
@@ -84,7 +84,7 @@ export class LmvzHeader extends ReactiveControllerHost {
84
84
  }
85
85
  }
86
86
  render() {
87
- return (h(Host, { key: '0152283363802ea854334e0349e145e7d6219e09', onFocus: this.delegateFocus.bind(this) }, h("div", { key: 'cdc1d52dbfb658f99bffa2df2353b6a1ad232f97', class: "brand" }, h("slot", { key: '25a039ea2224058f97f8ec1cb1aa310b388f2b2e', name: "brand" }, h("img", { key: '9ca6f39b6e41382a438b3afd36348ee17b36d346', id: "fallback-logo-lmvz", src: logo, alt: "Lehrmittelverlag Z\u00FCrich" }))), h("nav", { key: 'a6b7c1e7baca1ef2075d38cfaf631a277d2bb7ac', "aria-label": "Hauptnavigation" }, h("div", { key: 'eb8c2db72d86cf3c4e2b0d94271bf73882c3bd96', role: "menubar", class: "primary-menubar" }, h("slot", { key: 'b8a2b3c031158ce73ada65995b0d4e6e0e4eac72', name: "nav-primary", ref: (el) => (this.primarySlot = el) }), h("div", { key: '87dabdc52e40163b35e8c7681d3e4aa3a17d6d82', role: "menu", id: "nav-secondary", class: "secondary-menubar", hidden: !this.lmvzActiveNav, ref: (el) => (this.secondaryNav = el) }, h("slot", { key: '6cb38c14357ef682f1c804ab77cd70514308b6d4', name: this.secondarySlotName, ref: (el) => (this.secondarySlot = el) })))), h("div", { key: '9e46e6e484556c5fbe0f2c573188e845fbca801b', class: "actions" }, h("slot", { key: '4c1ea348528ccc3722c2dbbe0795e9f61d67edee', name: "actions" }))));
87
+ return (h(Host, { key: '5730219e990fc0f131ffacc7c88e6a5311553399', onFocus: this.delegateFocus.bind(this) }, h("div", { key: '7285f2dcac7d60c5d93328aa0e2fe8aa6b7b379c', class: "brand" }, h("slot", { key: 'd06d953ee82eab20da3f383c15032bcbe8803ff9', name: "brand" }, h("img", { key: 'd2441ce0efbf99c05f6344051703a96ffb376450', id: "fallback-logo-lmvz", src: logo, alt: "Lehrmittelverlag Z\u00FCrich" }))), h("nav", { key: '7f092938728af5cb6568383a6622df49f222dc93', "aria-label": "Hauptnavigation" }, h("div", { key: 'caa56893d6185aebb89661e62a555407675ccc2a', role: "menubar", class: "primary-menubar" }, h("slot", { key: '90684f49cd3d53e20a63d4ebc37ec24e630bc313', name: "nav-primary", ref: (el) => (this.primarySlot = el) }), h("div", { key: 'ead46c08c6833565a55cd7af27fbece4e4468a03', role: "menu", id: "nav-secondary", class: "secondary-menubar", hidden: !this.lmvzActiveNav, ref: (el) => (this.secondaryNav = el) }, h("slot", { key: '3f2ba617d9ed78abb9ab94b9515b02bb6836385a', name: this.secondarySlotName, ref: (el) => (this.secondarySlot = el) })))), h("div", { key: '6fc79122baa3fd95992cbf30a465c3b40438a18f', class: "actions" }, h("slot", { key: 'c427f5a3ad693169e267060b9076086fd0e37670', name: "actions" }))));
88
88
  }
89
89
  static get is() { return "lmvz-header"; }
90
90
  static get encapsulation() { return "shadow"; }
@@ -2,7 +2,7 @@ import { parseSvgString } from "@lmvz-ds/lib-ts/validation/svg.js";
2
2
  import { Build, h, Host } from "@stencil/core";
3
3
  import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
4
4
  import { resolveIconSvg } from "../../utils/icons/icons";
5
- import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
5
+ import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
6
6
  export class LmvzIcon extends ReactiveControllerHost {
7
7
  intersectionObserver;
8
8
  ariaValidationController = new AriaValidationController(this);
@@ -57,7 +57,7 @@ export class LmvzIcon extends ReactiveControllerHost {
57
57
  super.componentDidRender();
58
58
  }
59
59
  render() {
60
- return h(Host, { key: '03b4391d02a77409257bcda51c2b65ad9a9e0a0c', role: "img", "aria-hidden": `${this.ariaHidden}`, innerHTML: this.iconData });
60
+ return h(Host, { key: '4fba217d573d968951819f12af24d775c8ac62dc', role: "img", "aria-hidden": `${this.ariaHidden}`, innerHTML: this.iconData });
61
61
  }
62
62
  waitUntilVisible(callback, rootMargin = 50) {
63
63
  if (!Build.isBrowser || typeof window === 'undefined' || !window.IntersectionObserver) {
@@ -1,8 +1,8 @@
1
1
  import { h } from "@stencil/core";
2
2
  import classNames from "classnames";
3
3
  import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
4
- import { componentOnReady } from "../../utils/component";
5
- import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
4
+ import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
5
+ import { componentOnReady } from "../../utils/stencil/stencil.util";
6
6
  let inputIdCounter = 0;
7
7
  export class LmvzInput extends ReactiveControllerHost {
8
8
  el;
@@ -140,7 +140,7 @@ export class LmvzInput extends ReactiveControllerHost {
140
140
  handleFocus = () => { };
141
141
  handleBlur = (event) => {
142
142
  const input = event.target;
143
- input.reportValidity?.();
143
+ input.checkValidity?.();
144
144
  };
145
145
  updateNativeError(fromEvent) {
146
146
  const input = fromEvent ?? this.nativeInputElement;
@@ -151,9 +151,9 @@ export class LmvzInput extends ReactiveControllerHost {
151
151
  render() {
152
152
  const hasValue = Boolean(this.value);
153
153
  const shouldFloatLabel = hasValue || Boolean(this.placeholder);
154
- return (h("div", { key: '4be6846147fec950acad0c0cb8643bfa69233935', class: classNames('input-container', {
154
+ return (h("div", { key: '693614c334a94373dcef56b461455bf872249a69', class: classNames('input-container', {
155
155
  'interaction-filled': hasValue,
156
- }) }, h("div", { key: 'ae9bf8ffd91b73a86c2ebd21af051efe26a1d5fd', class: "input-wrapper" }, h("slot", { key: '36b3f7d97a11296aeead44c4d8ab4f0f8edf62d1', name: "before-input" }), h("div", { key: '4320f461ffa908730cd898863f43644aa3677081', class: "label-input-group" }, h("label", { key: '1dd51cf16f064303fd9c5249cbe3a357c7515ddc', htmlFor: this.inputId, class: classNames({ floating: shouldFloatLabel }) }, this.label, this.required && (h("span", { key: '74bb8124b1126501201eb7c3361c6cf7f17dda5c', class: "required-indicator", "aria-hidden": "true" }, ' ', "*"))), h("input", { key: '9cff77bea65c50331a6804d7039672bbe01e710c', id: this.inputId, ref: (el) => (this.nativeInputElement = el), type: this.type, min: this.min, max: this.max, step: this.step, value: this.value, name: this.name, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, required: this.required, form: this.form, autocomplete: this.autocomplete, inputmode: this.inputmode, autocorrect: this.autocorrect, autocapitalize: this.autocapitalize, spellcheck: this.spellcheck, autofocus: this.autofocus, minlength: this.minlength, maxlength: this.maxlength, pattern: this.pattern, "aria-invalid": this.error ? 'true' : 'false', "aria-required": this.required ? 'true' : 'false', "aria-describedby": this.describedBy, "aria-errormessage": this.errorId, onInput: this.handleInput, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur })), h("slot", { key: '689a3aa53e22f89173893adbc72eaf4953a2c7f6', name: "after-input" })), h("div", { key: 'd29b9ea209c138d0de09f71042f539a56ed4f9fa', id: this.helperId, role: "status" }, this.helperText || null), h("div", { key: '8be227367abadb0e001d9475f0793aed31dbb64a', id: this.errorId, role: "alert" }, (this.showErrorMessage && this.errorMessage) || null)));
156
+ }) }, h("div", { key: '0eb36d76661d70bea71027ca7b30763d89bd6cb6', class: "input-wrapper" }, h("slot", { key: '03adf18ebe01fe70dc821dcea2bb2963df40f8b4', name: "before-input" }), h("div", { key: 'f1254561b53e321d0f2e4cf4ac93936119083f3f', class: "label-input-group" }, h("label", { key: 'e17cdec368fd36a041d9d8853f4a82249f1b5d8c', htmlFor: this.inputId, class: classNames({ floating: shouldFloatLabel }) }, this.label, this.required && (h("span", { key: 'b3e003bf972c3ad5b6c5b25f8ee509bd5d8df758', class: "required-indicator", "aria-hidden": "true" }, ' ', "*"))), h("input", { key: '75f192118b7a4c3e507172e13d0ae7e32118aad3', id: this.inputId, ref: (el) => (this.nativeInputElement = el), type: this.type, min: this.min, max: this.max, step: this.step, value: this.value, name: this.name, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, required: this.required, form: this.form, autocomplete: this.autocomplete, inputmode: this.inputmode, autocorrect: this.autocorrect, autocapitalize: this.autocapitalize, spellcheck: this.spellcheck, autofocus: this.autofocus, minlength: this.minlength, maxlength: this.maxlength, pattern: this.pattern, "aria-invalid": this.error ? 'true' : 'false', "aria-required": this.required ? 'true' : 'false', "aria-describedby": this.describedBy, "aria-errormessage": this.errorId, onInput: this.handleInput, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur })), h("slot", { key: '58a9701259ca92fd7441c1480de741d92bc47bc9', name: "after-input" })), h("div", { key: '396b719d080c781f38d736e28e9c048f629d6ffe', id: this.helperId, role: "status" }, this.helperText || null), h("div", { key: '9e5c86e6098f58d95c0984348d3da07b9e34e1fb', id: this.errorId, role: "alert" }, (this.showErrorMessage && this.errorMessage) || null)));
157
157
  }
158
158
  static get is() { return "lmvz-input"; }
159
159
  static get encapsulation() { return "scoped"; }
@@ -44,7 +44,7 @@ export class LmvzLink {
44
44
  const rel = this.computeRel();
45
45
  const iconSvg = this.type === 'external' ? EXTERNAL_SVG : ARROW_RIGHT_SVG;
46
46
  const isBlank = this.target === '_blank';
47
- return (h(Host, { key: 'c80daca5bef1fd7a9753a075d6bf795f11b5fc1b' }, h("a", { key: '06dd1183936e57c00ba4cf028bf186e964ad0ff8', href: this.computeHref(), target: this.target, rel: rel }, h("slot", { key: '03cd7fe4bab8a9d6d8f1e7278ee6d0d24650fbda' }), h("lmvz-icon", { key: 'c8a31a8937bc59b98bf1dce9bb127f423ac0cb4d', "aria-hidden": "true", icon: iconSvg }), isBlank && h("span", { key: '9217e2d0b1b904492598bd0e638cbcb29d4ff212', class: "sr-only" }, this.externalLabel))));
47
+ return (h(Host, { key: '338116d5af3112ec2a4a09b652048b733565a7d4' }, h("a", { key: 'ae70aa2320ea2eeca56a14714de4dcfb06b8c94c', href: this.computeHref(), target: this.target, rel: rel }, h("slot", { key: '4852b3336a94a46f363a83fb2c4f6d267f680d3d' }), h("lmvz-icon", { key: 'e7f72016611a7d741eef7c81a047e026c699bdef', "aria-hidden": "true", icon: iconSvg }), isBlank && h("span", { key: 'b4138b479b7c36c3b16c8e96fc6e39736222b26f', class: "sr-only" }, this.externalLabel))));
48
48
  }
49
49
  static get is() { return "lmvz-link"; }
50
50
  static get encapsulation() { return "shadow"; }
@@ -128,8 +128,8 @@ export class LmvzLink {
128
128
  "references": {
129
129
  "Link": {
130
130
  "location": "import",
131
- "path": "../../api/ds.constants.js",
132
- "id": "src/api/ds.constants.ts::Link",
131
+ "path": "../../api/ds.types.js",
132
+ "id": "src/api/ds.types.d.ts::Link",
133
133
  "referenceLocation": "Link"
134
134
  }
135
135
  }
@@ -1,7 +1,7 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
3
3
  import { ElementActivationController } from "../../utils/aria/element-activation-controller";
4
- import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
4
+ import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
5
5
  export class LmvzMenuItem extends ReactiveControllerHost {
6
6
  el;
7
7
  get validationEl() {
@@ -21,7 +21,7 @@ export class LmvzMenuItem extends ReactiveControllerHost {
21
21
  this.addController(new ElementActivationController(this));
22
22
  }
23
23
  render() {
24
- return (h(Host, { key: '3bc38647d755df012ea744775fe856798e677d0f' }, h("slot", { key: '67145418bc36b0ede915d170dca9ce84a27567c8', ref: (e) => (this.validationSlot = e) })));
24
+ return (h(Host, { key: '9c86e99a0427a5d11925a30bcdb9f88124006413' }, h("slot", { key: '9a578cdf49bd1edd981d68d7b28c39b784980345', ref: (e) => (this.validationSlot = e) })));
25
25
  }
26
26
  static get is() { return "lmvz-menuitem"; }
27
27
  static get encapsulation() { return "scoped"; }
@@ -60,7 +60,7 @@ export class LmvzMessage {
60
60
  }
61
61
  render() {
62
62
  const role = this.live === 'assertive' ? 'alert' : this.live === 'polite' ? 'status' : 'note';
63
- return (h(Host, { key: '4e29d3edf1043cd85245942135d689c3b65e49e7', role: role }, this.leadingIcon && h("span", { key: 'd927bbefca6152bc40c3a7edf9554ea97231b3a7', class: "leading-icon", "aria-hidden": "true", innerHTML: TYPE_SVG[this.type] }), h("span", { key: 'd321b275006a25be9f03be81ff085e9776e45bfd', class: "message" }, h("slot", { key: 'a511d00a5c668e48844b717c69be759e046da25d', ref: (el) => (this.messageSlot = el), onSlotchange: this.handleSlotChange })), this.actionLabel && (h("lmvz-button", { key: 'e09cbc8381b9b96c7fb95d6f18886df55e53c074', variant: "tertiary", scale: "small", onLmvzActivation: this.handleActionClick }, this.actionLabel)), this.dismissible && (h("lmvz-button", { key: 'c34d4684cdc63e5269dd3c98d8e2466ba586c3e3', variant: "tertiary", scale: "small", "aria-label": this.closeLabel, onClick: this.handleDismissClick }, h("lmvz-icon", { key: '1341db9c89a9d708b03807d7cfda949e300deef4', "aria-hidden": "true", icon: CLOSE_SM_SVG })))));
63
+ return (h(Host, { key: 'f422e8ee4bb4466757c081bc6b33761db15cb02d', role: role }, this.leadingIcon && h("span", { key: 'c4077083db459a65cacce2cbb8e8dbb477572d95', class: "leading-icon", "aria-hidden": "true", innerHTML: TYPE_SVG[this.type] }), h("span", { key: '77c3af94194adc2b663c6d6626951e5789e17686', class: "message" }, h("slot", { key: '8db714f6bd0ac80a3c77a2768431baa37a63b3d1', ref: (el) => (this.messageSlot = el), onSlotchange: this.handleSlotChange })), this.actionLabel && (h("lmvz-button", { key: 'f75e835f39e97ea217727b55dc842ceda004834b', variant: "tertiary", scale: "small", onLmvzActivation: this.handleActionClick }, this.actionLabel)), this.dismissible && (h("lmvz-button", { key: '51b04ad48a68e0843445104e303eae5bb4cdd351', variant: "tertiary", scale: "small", "aria-label": this.closeLabel, onClick: this.handleDismissClick }, h("lmvz-icon", { key: '5949210f479a6a19f1c4bb9d3c91a77a1c0ad8a6', "aria-hidden": "true", icon: CLOSE_SM_SVG })))));
64
64
  }
65
65
  static get is() { return "lmvz-message"; }
66
66
  static get encapsulation() { return "shadow"; }
@@ -55,6 +55,13 @@ h6 {
55
55
  display: none !important;
56
56
  }
57
57
 
58
+ hr {
59
+ height: 0;
60
+ border: none;
61
+ margin: var(--lmvz-dimension-4-8, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)) 0;
62
+ border-top: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-subtle, #f0f0f0);
63
+ }
64
+
58
65
  }
59
66
  :host {
60
67
  display: contents;
@@ -2,8 +2,8 @@ import closeIcon from "@lmvz-ds/icons/assets/close-sm.svg";
2
2
  import { toValidSvgStringWithFallback } from "@lmvz-ds/lib-ts/validation/svg.js";
3
3
  import { Host, h } from "@stencil/core";
4
4
  import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
5
- import { getDeepActiveElement, inheritAriaAttributes } from "../../utils/component";
6
- import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
5
+ import { getDeepActiveElement, inheritAriaAttributes } from "../../utils/element/element.util";
6
+ import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
7
7
  const closeIconSvg = toValidSvgStringWithFallback(closeIcon);
8
8
  let modalIdCounter = 0;
9
9
  export class LmvzModal extends ReactiveControllerHost {
@@ -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: 'd73eaf12bf6b229785cdec9ce2156cf5510c51ca' }, h("dialog", { key: '51e36002cf4a49963abe1e6e541b2e19274347b5', ref: (element) => (this.dialogEl = element), onCancel: this.handleDialogCancel, onClose: this.handleDialogClose, ...this.dialogAccessibilityAttributes }, h("div", { key: '5415ca10fabe4bf828f59059b03eb06e2c965d92', class: "modal-shell" }, h("header", { key: 'be3c707da5ffda470f51425cb09550b0ab749f0f', class: { header: true, 'has-title': this.hasHeader } }, h("div", { key: '7221eb87a8d132436043ec74e5b0b3622faa57bc', class: "title", id: this.dialogTitleId, hidden: !this.hasHeader }, h("slot", { key: 'a410b4185f0ed52f17dd92d765318d8ce3421bea', name: "header", ref: (element) => (this.headerSlot = element), onSlotchange: this.handleHeaderSlotChange })), h("lmvz-button", { key: 'b87688d68b01c51274455a4e1977f2cccbf22690', ref: (element) => (this.closeButtonEl = element), type: "button", class: "close-button", "aria-label": this.closeLabel, onClick: this.handleCloseButtonClick, variant: "tertiary" }, h("lmvz-icon", { key: '3ba11132a9779c971458151aca5a0ba4a09bbf28', icon: closeIconSvg }))), h("div", { key: '00b59e67efc8470bff3a7270bdde4221b8a8ffb4', class: "body" }, h("slot", { key: 'e51eb9f2c17e2eb76d1013d585e8dfcd54a8f0d2' })), h("footer", { key: '0972331ef6843b0f401bac6bde4d8dc78a81fb5c', class: "actions", hidden: !this.buttonGroupEl?.hasActions }, h("lmvz-button-group", { key: '81c19d896200e84dd91878d2902410b9838d6c8c', ref: (element) => (this.buttonGroupEl = element) }, h("slot", { key: '0ed4a2ba74e5bee597e61329afe422b3bf3c3907', name: "actions" })))))));
226
+ return (h(Host, { key: '8b5f506cdac223a440309d472639fe965b94f8c2' }, h("dialog", { key: '0b70ac4d9590266271052c4d7fdef03c684d9b72', ref: (element) => (this.dialogEl = element), onCancel: this.handleDialogCancel, onClose: this.handleDialogClose, ...this.dialogAccessibilityAttributes }, h("div", { key: '25b529bec1905408c2041b7370ab37586eade47d', class: "modal-shell" }, h("header", { key: 'd86ae4a6f4ac7f6efd38385f1407d1f6bfbb1abb', class: { header: true, 'has-title': this.hasHeader } }, h("div", { key: '7fd7059bfb0b90834895a87c2f2598e2e8c2ba80', class: "title", id: this.dialogTitleId, hidden: !this.hasHeader }, h("slot", { key: 'b6eb7885e220e5def4c3c8420d5b83f4a7e30907', name: "header", ref: (element) => (this.headerSlot = element), onSlotchange: this.handleHeaderSlotChange })), h("lmvz-button", { key: 'dcebb06482cdef7423c6b62ef877ca9aaabf55a4', ref: (element) => (this.closeButtonEl = element), type: "button", class: "close-button", "aria-label": this.closeLabel, onClick: this.handleCloseButtonClick, variant: "tertiary" }, h("lmvz-icon", { key: '0db22c68fe164ed2a33bfaeacf9eac619424f464', icon: closeIconSvg }))), h("div", { key: 'ef402c343f2c68210351f7556eec08f2e9be851b', class: "body" }, h("slot", { key: '3fe86dc88c88c2cf7bfe3429c62cb2047b64611a' })), h("footer", { key: '92b7bdab1ffe700749fc029723f70913f436397d', class: "actions", hidden: !this.buttonGroupEl?.hasActions }, h("lmvz-button-group", { key: '7e1b310fb1b20449ead14d0702af4977c74198dd', ref: (element) => (this.buttonGroupEl = element) }, h("slot", { key: 'cb2187ab2758c61e80b65f9fc55c6be5f9fd0458', name: "actions" })))))));
227
227
  }
228
228
  static get is() { return "lmvz-modal"; }
229
229
  static get encapsulation() { return "shadow"; }
@@ -1,7 +1,7 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
3
3
  import { RadioGroupController } from "../../utils/radio/radio-group-controller";
4
- import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
4
+ import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
5
5
  let radioIdCounter = 0;
6
6
  export class LmvzRadio extends ReactiveControllerHost {
7
7
  el;
@@ -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: '084706ba35f3ecc647653896cf50e1dfdb0eabe4' }, h("input", { key: 'c68a13d6f424c251b93ff3bb5648d64ef4645a5a', 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: '07500032fe1cdebe544d3ed6890d66fe84c43e07', class: "circle", "aria-hidden": "true" }, this.checked && h("span", { key: '0b6f8c99270cbadea320cae867bfef9fd4a70312', class: "dot" })), h("span", { key: '60c9720a1e029e99d2304a5579a20942f03778aa', class: "content" }, h("label", { key: '13eb208e8bd0f4c5a56955cd4f4e9813cc715425', htmlFor: this.radioId }, this.label), h("span", { key: '771e582752972a8e58a0e85408cfefeef57e257b', "aria-live": "polite", class: "helper-text", id: this.helperId }, this.helperText))));
140
+ return (h(Host, { key: '9b8fbfe18376f9411f792630065dfd219f9ddb32' }, h("input", { key: '24a0675eff854bbd751c07905db4be11e5353d11', 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: 'f888c1f76f6f929609584d378dbe0974fd980f68', class: "circle", "aria-hidden": "true" }, this.checked && h("span", { key: '57fbb1e7abdca10861cf8709d4300459e1f62e5c', class: "dot" })), h("span", { key: '1c845611162be86500e8475ac37412e2d3f2fd99', class: "content" }, h("label", { key: '1399f4d34ff0e6d369cefc9f5d08208a4dee593f', htmlFor: this.radioId }, this.label), h("span", { key: '1345435ff2f4773260ea3f73e943f043c2b88bdb', "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"; }
@@ -1,6 +1,6 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
3
- import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
3
+ import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
4
4
  let selectIdCounter = 0;
5
5
  export class LmvzSelect extends ReactiveControllerHost {
6
6
  el;
@@ -51,7 +51,7 @@ export class LmvzSelect extends ReactiveControllerHost {
51
51
  render() {
52
52
  const hasValue = this.hasValue;
53
53
  const shouldShowLabel = hasValue;
54
- return (h(Host, { key: '292678c0d3c000624ca6b0cb76c05a0c27ad3494', "data-highlighted": String(this.highlighted) }, h("div", { key: '83d269c626a21af74dca8d89d5b0a1a95494a70d', class: hasValue ? 'select-wrapper has-value' : 'select-wrapper' }, h("label", { key: 'e5d3b30349ab8438bc02d18c93760d52b979d24e', htmlFor: this.selectId, class: shouldShowLabel ? 'floating-label' : 'assistive-label' }, this.label, this.required && shouldShowLabel && h("span", { key: '2f26cf5991b76a5d740f0e61c2ecf9d9a44436b8', "aria-hidden": "true" }, " *")), h("div", { key: '30087b0b2d3f4768b02470209c6d14a46c362334', "aria-hidden": "true" }, h("span", { key: '67888d3a89f8cbdf332696d827e72a2cce519438' }, hasValue ? this.selectedLabel : this.label, this.required && !hasValue && h("span", { key: 'e1b28fe2c2865ed1fba181e60a8682095c5123fc', "aria-hidden": "true" }, " *")), h("span", { key: '7479df9bf0e995b92ba9f11f1271f71892c52ac8' }, h("svg", { key: '5a76ba91f6b2d29dafd56b6c4abe1b5f93ece926', width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { key: '06c62b38ef2cc0ae3119d2dba0f2015e26e84393', d: "M20.3334 8.66663L12.0001 17L3.66675 8.66663", stroke: "currentColor", "stroke-width": "1.75", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("select", { key: 'f1fb834cc74ae70e21ea3fd0ec4f653689cfbfa1', 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: 'b6240b308c06b01a3a00104941a77090d243548b', value: "", disabled: true, selected: true, hidden: true }), h("slot", { key: 'b1128685fc5365be2561bbeef627f2d409f631c9' }))), this.helperText && h("div", { key: 'b856e0b6f8e6f1c62de5d0ef59ad7d623c28b5ae', role: "status" }, this.helperText)));
54
+ return (h(Host, { key: 'c753006bdabf1723fa9ff61eb35f58d5bef3157b', "data-highlighted": String(this.highlighted) }, h("div", { key: '6b06056fd48ef4f837cbe17383756e3726c68f90', class: hasValue ? 'select-wrapper has-value' : 'select-wrapper' }, h("label", { key: '819901582fc449566a112cd4544fa0af903a7011', htmlFor: this.selectId, class: shouldShowLabel ? 'floating-label' : 'assistive-label' }, this.label, this.required && shouldShowLabel && h("span", { key: '14ad70c1cf1a96c7398698fa86baeadd5fe4257b', "aria-hidden": "true" }, " *")), h("div", { key: '589c6946bee6e320a36dfa0ed765ff9e02af4c2f', "aria-hidden": "true" }, h("span", { key: '04444223ed66a5ddff3eb7bd581cf5a7e615cf6b' }, hasValue ? this.selectedLabel : this.label, this.required && !hasValue && h("span", { key: '9631d4a655514957a4564be939d8bd16c3a036f0', "aria-hidden": "true" }, " *")), h("span", { key: '3950abf6ee9528adb5895fe6bc88be67b39d458e' }, h("svg", { key: '98a0a380e9ca5044ca1fefb03b74bfc178974a60', width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { key: '19fe8b40e315fabee982ba37fe2d397493429519', d: "M20.3334 8.66663L12.0001 17L3.66675 8.66663", stroke: "currentColor", "stroke-width": "1.75", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("select", { key: '7480ff36ef3acfe10fb0122bfdf7feb5af406c67', 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: '5d00f696c2c4d7c35c180018a4c487cbb0229d37', value: "", disabled: true, selected: true, hidden: true }), h("slot", { key: '218fe11d224d7ca72c8555301d41d8878b6b34b4' }))), this.helperText && h("div", { key: 'edbb738590305f6724a590a3532fd9284a187866', role: "status" }, this.helperText)));
55
55
  }
56
56
  static get is() { return "lmvz-select"; }
57
57
  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: '034265e91b852042148789191923cd905750353f', class: this.animationClass }, h("lmvz-icon", { key: 'ee0d34690e65bd1e6df60e241b40361794c79e5b', icon: STATUS_SVG[this.status], size: "md", weight: "bold" }), h("span", { key: 'd42c28c2b921058f4a8864ae13b58b6d7f76abd2', class: "message" }, this.message), this.actionLabel && (h("lmvz-button", { key: 'b73c572c9156f7ee91d00e24200b9640cfc2f79c', variant: "tertiary", scale: "small", onLmvzActivation: this.handleActionClick }, this.actionLabel))));
61
+ return (h(Host, { key: 'f207854371f8423ff8dc9b732d1dabe1ab06e0b1', class: this.animationClass }, h("lmvz-icon", { key: 'e0ffdd4c51d11f94aa33c5a9678a15e4162d4bdd', icon: STATUS_SVG[this.status], size: "md", weight: "bold" }), h("span", { key: 'fcce1cbef0597af7e86de7b33a4f8a40c09f0cc8', class: "message" }, this.message), this.actionLabel && (h("lmvz-button", { key: '3cdbd81ba0c9102d0539c913f530e2abfbed0fb6', 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"; }
@@ -4,7 +4,7 @@ export class LmvzSpinner {
4
4
  ariaLabel;
5
5
  render() {
6
6
  const hasLabel = !!this.ariaLabel?.trim();
7
- return (h(Host, { key: '4afbe68fd14346a506e3ef7748141e580882d867', role: hasLabel ? 'status' : undefined, "aria-label": hasLabel ? this.ariaLabel : undefined, "aria-hidden": hasLabel ? undefined : 'true' }, h("svg", { key: 'a30c1de9096bf0364ef76b685ad82b6ec21a6841', part: "indicator", viewBox: "0 0 16 16", "aria-hidden": "true" }, h("circle", { key: 'e2f9507b582dc591053f2e0543eb701aa701702c', pathLength: "100", cx: "8", cy: "8", r: "6" }))));
7
+ return (h(Host, { key: '1953e9328170f6203b0936fd051fcaae44cba1d6', role: hasLabel ? 'status' : undefined, "aria-label": hasLabel ? this.ariaLabel : undefined, "aria-hidden": hasLabel ? undefined : 'true' }, h("svg", { key: '4393e17fe0b2e899cdd84f0bfba2047d3a08bac1', part: "indicator", viewBox: "0 0 16 16", "aria-hidden": "true" }, h("circle", { key: 'a321ad329e7a94680b37f2e11bb0ab3ef6344708', pathLength: "100", cx: "8", cy: "8", r: "6" }))));
8
8
  }
9
9
  static get is() { return "lmvz-spinner"; }
10
10
  static get encapsulation() { return "shadow"; }
@@ -22,6 +22,13 @@ h6 {
22
22
  display: none !important;
23
23
  }
24
24
 
25
+ hr {
26
+ height: 0;
27
+ border: none;
28
+ margin: var(--lmvz-dimension-4-8, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)) 0;
29
+ border-top: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-subtle, #f0f0f0);
30
+ }
31
+
25
32
  }
26
33
  :host {
27
34
  display: inline-block;
@@ -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: '029e9118ac6a5c886b4385684e6a499510821963' }, h("button", { key: '4c4534d098e56a3576ffcecd4b5d84245ee561ae', part: "button", role: "tab", disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, tabIndex: 0 }, h("slot", { key: '9975229f818c544a5d682773459e9c507911efd2', name: "media", ref: (el) => (this.mediaSlotEl = el), onSlotchange: this.handleMediaSlotChange }), h("span", { key: 'ec1543971f4be58200aec0109cbbc2942b18291f', class: "label" }, h("slot", { key: '9a83be2812e15201b2bb6b1adc0c71de4df5c3be' })), h("span", { key: '575f44d75a032bc66be87999e47e2897898b6bce', "aria-hidden": "true", part: "indicator", class: "indicator" }))));
17
+ return (h(Host, { key: '642a74020dfe8e3f96ebbdf8067b1eba5c07bd15' }, h("button", { key: 'b786b259aed2f2e1f61f3ef14959f564841b3761', part: "button", role: "tab", disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, tabIndex: 0 }, h("slot", { key: 'e29265a24673c39397266ef21419cebdf9a05a2c', name: "media", ref: (el) => (this.mediaSlotEl = el), onSlotchange: this.handleMediaSlotChange }), h("span", { key: 'c74ae843e36f85291e404955056ba1f34d0393e7', class: "label" }, h("slot", { key: '0f13548f3ec10a126016bfc92aa93a4c21b86e0f' })), h("span", { key: '2f969a70550975bffd1884a55b12fec733331b01', "aria-hidden": "true", part: "indicator", class: "indicator" }))));
18
18
  }
19
19
  static get is() { return "lmvz-tab"; }
20
20
  static get encapsulation() { return "shadow"; }
@@ -22,6 +22,13 @@ h6 {
22
22
  display: none !important;
23
23
  }
24
24
 
25
+ hr {
26
+ height: 0;
27
+ border: none;
28
+ margin: var(--lmvz-dimension-4-8, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)) 0;
29
+ border-top: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-subtle, #f0f0f0);
30
+ }
31
+
25
32
  }
26
33
  :host {
27
34
  display: inline-block;
@@ -1,6 +1,6 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  import { DirectionalFocusController } from "../../utils/aria/list-keyboard-controller";
3
- import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
3
+ import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
4
4
  let tabsIdCounter = 0;
5
5
  export class LmvzTabs extends ReactiveControllerHost {
6
6
  el;
@@ -232,7 +232,7 @@ export class LmvzTabs extends ReactiveControllerHost {
232
232
  this.selectTab(value);
233
233
  };
234
234
  render() {
235
- return (h(Host, { key: '80f6d4afd1263097082045b76cd408550b75342b', onClick: this.handleTabClick, onKeydown: this.handleKeydown }, h("div", { key: '01c3a160ef58be9b3db2bece29aadd68b482cf7d', role: "tablist", "aria-orientation": this.orientation, class: "tablist" }, h("slot", { key: 'e685b913198f0649b3d2d33002f143ee133bff26', ref: (el) => (this.tabSlotEl = el) })), h("div", { key: '44543341ad8a536572f96d35f02f0455f8ca92dd', part: "panels-container", class: "panels-container" }, h("slot", { key: '6eaf6cd054947050b8f6d8ae8adbab9bd09a0e2f', name: "panels", ref: (el) => (this.panelSlotEl = el) }))));
235
+ return (h(Host, { key: '0247aeab4ec148274ab25c78a5444d14c1b70d89', onClick: this.handleTabClick, onKeydown: this.handleKeydown }, h("div", { key: 'aa8baa8e55f84ee0fa75ce02a172adebfe4fefcd', role: "tablist", "aria-orientation": this.orientation, class: "tablist" }, h("slot", { key: 'b626f8dc73503c5013fa2e0a7623752eeb6f733f', ref: (el) => (this.tabSlotEl = el) })), h("div", { key: '230e7cc4686d643e8562aa93db6b2a3e94fccb5f', part: "panels-container", class: "panels-container" }, h("slot", { key: '713f88911b7cb14d3487d0945aac818b6727dee7', name: "panels", ref: (el) => (this.panelSlotEl = el) }))));
236
236
  }
237
237
  static get is() { return "lmvz-tabs"; }
238
238
  static get encapsulation() { return "shadow"; }
@@ -1,7 +1,7 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
3
- import { componentOnReady } from "../../utils/component";
4
- import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
3
+ import { ReactiveControllerHost } from "../../utils/stencil/reactive-controller-host";
4
+ import { componentOnReady } from "../../utils/stencil/stencil.util";
5
5
  let toggleIdCounter = 0;
6
6
  export class LmvzToggle extends ReactiveControllerHost {
7
7
  el;
@@ -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: '9d746374179fbaed3d3321c4c522574b7ff31eb3' }, h("span", { key: 'bd5abbf7d15ab6588858a97b20daa9bad4d9fe1b', class: "track" }, h("input", { key: 'c008a5f3642bdcf809c3d750e6333d0910804328', 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: '2e48780cb75db4a244c08afacdfc07cd70a4da04', class: "thumb", "aria-hidden": "true" })), h("label", { key: '285570e98d7b8b3efc01e531ea015dc3563b0b28', htmlFor: this.toggleId }, this.label)));
68
+ return (h(Host, { key: '56c73859d7eeb40842744a29392598678268d7e8' }, h("span", { key: '145915fb9d77976328c39c00e7ef73426220b3ca', class: "track" }, h("input", { key: '4363e8e3a614ce18da19abc70257b82363b291da', 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: '794ef6a50e8442dd1c460df7c42ffcf3009aab15', class: "thumb", "aria-hidden": "true" })), h("label", { key: '9432dc73d637ea8dbeb5c3b3ff8d0941c662f707', htmlFor: this.toggleId }, this.label)));
69
69
  }
70
70
  static get is() { return "lmvz-toggle"; }
71
71
  static get encapsulation() { return "scoped"; }