@lmvz-ds/components 0.35.0 → 0.35.1

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 (192) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +10 -0
  3. package/cjs/{async.util-BQ60l-WC.js → async.util-Dnl6c82X.js} +1 -0
  4. package/cjs/{list-keyboard-controller-Dm5S_l0D.js → directional-focus-controller-DBat-oF7.js} +13 -1
  5. package/cjs/element-activation-controller-BHqCUgQv.js +57 -0
  6. package/cjs/{element.util-Dbyc8yUG.js → element.util-CRS_YJ59.js} +10 -2
  7. package/cjs/lmvz-action-list.cjs.entry.js +8 -5
  8. package/cjs/lmvz-action.cjs.entry.js +1 -1
  9. package/cjs/lmvz-button-group.cjs.entry.js +1 -1
  10. package/cjs/lmvz-button_2.cjs.entry.js +4 -5
  11. package/cjs/lmvz-checkbox.cjs.entry.js +1 -1
  12. package/cjs/lmvz-chip.cjs.entry.js +1 -1
  13. package/cjs/lmvz-components.cjs.js +1 -1
  14. package/cjs/lmvz-header_2.cjs.entry.js +9 -6
  15. package/cjs/lmvz-input.cjs.entry.js +3 -3
  16. package/cjs/lmvz-menuitem.cjs.entry.js +3 -2
  17. package/cjs/lmvz-message.cjs.entry.js +42 -9
  18. package/cjs/lmvz-modal.cjs.entry.js +3 -3
  19. package/cjs/lmvz-popover.cjs.entry.js +48 -28
  20. package/cjs/lmvz-radio.cjs.entry.js +1 -1
  21. package/cjs/lmvz-select.cjs.entry.js +1 -1
  22. package/cjs/lmvz-tabs.cjs.entry.js +9 -6
  23. package/cjs/lmvz-toggle.cjs.entry.js +3 -3
  24. package/cjs/loader.cjs.js +1 -1
  25. package/{esm/reactive-controller-host-FBuCCcFC.js → cjs/reactive-controller-host-Bc6B_T45.js} +19 -1
  26. package/cjs/{stencil.util-DxdYjVoH.js → stencil.util-CBrPLd-F.js} +1 -1
  27. package/collection/components/lmvz-action/lmvz-action.js +1 -1
  28. package/collection/components/lmvz-action-list/lmvz-action-list.js +26 -2
  29. package/collection/components/lmvz-button/lmvz-button.js +1 -2
  30. package/collection/components/lmvz-header/lmvz-header.js +26 -2
  31. package/collection/components/lmvz-message/lmvz-message.js +42 -9
  32. package/collection/components/lmvz-modal/lmvz-modal.js +1 -1
  33. package/collection/components/lmvz-modal/test/testing.js +36 -0
  34. package/collection/components/lmvz-popover/lmvz-popover.js +55 -28
  35. package/collection/components/lmvz-tabs/lmvz-tabs.js +22 -2
  36. package/collection/utils/aria/{list-keyboard-controller.js → directional-focus-controller.js} +11 -0
  37. package/collection/utils/aria/element-activation-controller.js +27 -11
  38. package/collection/utils/data/{event.utilt.js → event.util.js} +8 -0
  39. package/collection/utils/element/element.util.js +9 -2
  40. package/collection/utils/stencil/reactive-controller-host.js +14 -0
  41. package/components/index.js +1 -1
  42. package/components/lmvz-action-list.js +1 -1
  43. package/components/lmvz-action.js +1 -1
  44. package/components/lmvz-button-group.js +1 -1
  45. package/components/lmvz-button.js +1 -1
  46. package/components/lmvz-checkbox.js +1 -1
  47. package/components/lmvz-chip.js +1 -1
  48. package/components/lmvz-header.js +1 -1
  49. package/components/lmvz-icon.js +1 -1
  50. package/components/lmvz-input.js +1 -1
  51. package/components/lmvz-link.js +1 -1
  52. package/components/lmvz-menuitem.js +1 -1
  53. package/components/lmvz-message.js +1 -1
  54. package/components/lmvz-modal.js +1 -1
  55. package/components/lmvz-popover.js +1 -1
  56. package/components/lmvz-radio.js +1 -1
  57. package/components/lmvz-select.js +1 -1
  58. package/components/lmvz-snackbar.js +1 -1
  59. package/components/lmvz-tabs.js +1 -1
  60. package/components/lmvz-toggle.js +1 -1
  61. package/components/p-BVzxNP7h.js +1 -0
  62. package/components/p-CgK6-SEe.js +1 -0
  63. package/components/{p-DbIm98qX.js → p-Chj7BuUZ.js} +1 -1
  64. package/components/p-CxLd309t.js +1 -0
  65. package/components/{p-D7S1WiEC.js → p-D5FL8n1q.js} +1 -1
  66. package/components/p-DLUsBYJH.js +1 -0
  67. package/components/p-DZj20TV1.js +1 -0
  68. package/components/p-bh9cItsP.js +1 -0
  69. package/components/p-zMWemcoB.js +1 -0
  70. package/esm/{async.util-D9nUtvTm.js → async.util-DZj20TV1.js} +1 -1
  71. package/esm/{list-keyboard-controller-tle6IRkv.js → directional-focus-controller-DgAdCZrG.js} +13 -2
  72. package/esm/element-activation-controller-7PNSl6io.js +54 -0
  73. package/esm/{element.util-B0eCxdyI.js → element.util-BFcYfHYq.js} +10 -3
  74. package/esm/lmvz-action-list.entry.js +7 -4
  75. package/esm/lmvz-action.entry.js +1 -1
  76. package/esm/lmvz-button-group.entry.js +1 -1
  77. package/esm/lmvz-button_2.entry.js +4 -5
  78. package/esm/lmvz-checkbox.entry.js +1 -1
  79. package/esm/lmvz-chip.entry.js +1 -1
  80. package/esm/lmvz-components.js +1 -1
  81. package/esm/lmvz-header_2.entry.js +8 -5
  82. package/esm/lmvz-input.entry.js +3 -3
  83. package/esm/lmvz-menuitem.entry.js +3 -2
  84. package/esm/lmvz-message.entry.js +42 -9
  85. package/esm/lmvz-modal.entry.js +3 -3
  86. package/esm/lmvz-popover.entry.js +48 -28
  87. package/esm/lmvz-radio.entry.js +1 -1
  88. package/esm/lmvz-select.entry.js +1 -1
  89. package/esm/lmvz-tabs.entry.js +7 -4
  90. package/esm/lmvz-toggle.entry.js +3 -3
  91. package/esm/loader.js +1 -1
  92. package/{cjs/reactive-controller-host-B_lZtcA6.js → esm/reactive-controller-host-CICeIanv.js} +15 -3
  93. package/esm/{stencil.util-wGFRYLwZ.js → stencil.util-D2-5rsN3.js} +1 -1
  94. package/hydrate/index.js +212 -97
  95. package/hydrate/index.mjs +212 -97
  96. package/lmvz-components/lmvz-components.esm.js +1 -1
  97. package/lmvz-components/{p-c87e2281.entry.js → p-194a3af5.entry.js} +1 -1
  98. package/lmvz-components/{p-e0432f54.entry.js → p-24d13be6.entry.js} +1 -1
  99. package/lmvz-components/p-4416d688.entry.js +1 -0
  100. package/lmvz-components/{p-c082390b.entry.js → p-46edf36f.entry.js} +1 -1
  101. package/lmvz-components/{p-4c68d21a.entry.js → p-489d9912.entry.js} +1 -1
  102. package/lmvz-components/p-5ff55ba9.entry.js +1 -0
  103. package/lmvz-components/{p-c494bf8f.entry.js → p-888e04d7.entry.js} +1 -1
  104. package/lmvz-components/p-9dc420e2.entry.js +1 -0
  105. package/lmvz-components/p-BFcYfHYq.js +1 -0
  106. package/lmvz-components/p-BuEA0MWd.js +1 -0
  107. package/lmvz-components/p-CICeIanv.js +1 -0
  108. package/lmvz-components/p-DZj20TV1.js +1 -0
  109. package/lmvz-components/p-a887018d.entry.js +1 -0
  110. package/lmvz-components/p-aaa7691c.entry.js +1 -0
  111. package/lmvz-components/p-af48eccb.entry.js +1 -0
  112. package/lmvz-components/p-bh9cItsP.js +1 -0
  113. package/lmvz-components/{p-1d2c11ea.entry.js → p-d4154a65.entry.js} +1 -1
  114. package/lmvz-components/p-e4ce63b3.entry.js +1 -0
  115. package/lmvz-components/{p-cb75c951.entry.js → p-eb4c5a6f.entry.js} +1 -1
  116. package/lmvz-components/{p-8fb4c347.entry.js → p-eb62d4af.entry.js} +1 -1
  117. package/lmvz-components/{p-a4ef8e55.entry.js → p-f42b16e6.entry.js} +1 -1
  118. package/lmvz-components/p-wlMjNjuv.js +1 -0
  119. package/manifest.json +79 -5
  120. package/package.json +1 -1
  121. package/types/api/ds.constants.d.ts +1 -0
  122. package/types/components/lmvz-action/lmvz-action.d.ts +1 -0
  123. package/types/components/lmvz-action-list/lmvz-action-list.d.ts +3 -1
  124. package/types/components/lmvz-button/lmvz-button.d.ts +2 -1
  125. package/types/components/lmvz-button-group/lmvz-button-group.d.ts +1 -0
  126. package/types/components/lmvz-card/lmvz-card.d.ts +1 -0
  127. package/types/components/lmvz-checkbox/lmvz-checkbox.d.ts +1 -0
  128. package/types/components/lmvz-chip/lmvz-chip.d.ts +1 -0
  129. package/types/components/lmvz-header/lmvz-header.d.ts +4 -2
  130. package/types/components/lmvz-icon/lmvz-icon.d.ts +1 -0
  131. package/types/components/lmvz-input/lmvz-input.d.ts +1 -0
  132. package/types/components/lmvz-link/lmvz-link.d.ts +1 -0
  133. package/types/components/lmvz-menuitem/lmvz-menuitem.d.ts +1 -0
  134. package/types/components/lmvz-message/lmvz-message.d.ts +1 -0
  135. package/types/components/lmvz-message/public.d.ts +1 -0
  136. package/types/components/lmvz-modal/lmvz-modal.d.ts +1 -0
  137. package/types/components/lmvz-modal/test/testing.d.ts +10 -0
  138. package/types/components/lmvz-popover/lmvz-popover.d.ts +6 -3
  139. package/types/components/lmvz-radio/lmvz-radio.d.ts +1 -0
  140. package/types/components/lmvz-select/lmvz-select.d.ts +1 -0
  141. package/types/components/lmvz-snackbar/lmvz-snackbar.d.ts +1 -0
  142. package/types/components/lmvz-snackbar/public.d.ts +1 -0
  143. package/types/components/lmvz-snackbar/snackbar-controller.d.ts +1 -0
  144. package/types/components/lmvz-spinner/lmvz-spinner.d.ts +1 -0
  145. package/types/components/lmvz-tab/lmvz-tab.d.ts +1 -0
  146. package/types/components/lmvz-tabs/lmvz-tabs.d.ts +3 -1
  147. package/types/components/lmvz-toggle/lmvz-toggle.d.ts +1 -0
  148. package/types/components.d.ts +18 -0
  149. package/types/index.d.ts +1 -0
  150. package/types/utils/aria/aria-validation-controller.d.ts +1 -0
  151. package/types/utils/aria/aria.constants.d.ts +1 -0
  152. package/types/utils/aria/{list-keyboard-controller.d.ts → directional-focus-controller.d.ts} +13 -2
  153. package/types/utils/aria/element-activation-controller.d.ts +11 -2
  154. package/types/utils/async/async.util.d.ts +1 -0
  155. package/types/utils/data/event.util.d.ts +6 -0
  156. package/types/utils/data/number.util.d.ts +1 -0
  157. package/types/utils/data/object.util.d.ts +1 -0
  158. package/types/utils/data/time.util.d.ts +1 -0
  159. package/types/utils/element/element.util.d.ts +2 -0
  160. package/types/utils/environment.d.ts +1 -0
  161. package/types/utils/icons/icons-registry.d.ts +1 -0
  162. package/types/utils/icons/icons.d.ts +1 -0
  163. package/types/utils/icons/icons.unit.d.ts +1 -0
  164. package/types/utils/icons/public.d.ts +1 -0
  165. package/types/utils/public.d.ts +1 -0
  166. package/types/utils/radio/radio-group-controller.d.ts +1 -0
  167. package/types/utils/stencil/assets.d.ts +1 -0
  168. package/types/utils/stencil/reactive-controller-host.d.ts +8 -1
  169. package/types/utils/stencil/stencil.util.d.ts +1 -0
  170. package/cjs/element-activation-controller-DC_6T0Rt.js +0 -31
  171. package/components/p-BhSTYZC6.js +0 -1
  172. package/components/p-CK3Ixl1K.js +0 -1
  173. package/components/p-CN0JX9-m.js +0 -1
  174. package/components/p-D-2gj6LP.js +0 -1
  175. package/components/p-D9nUtvTm.js +0 -1
  176. package/components/p-DAMVH-31.js +0 -1
  177. package/components/p-JtkmlmeY.js +0 -1
  178. package/esm/element-activation-controller-CN0JX9-m.js +0 -29
  179. package/lmvz-components/p-45c3ccb6.entry.js +0 -1
  180. package/lmvz-components/p-49e98627.entry.js +0 -1
  181. package/lmvz-components/p-50063516.entry.js +0 -1
  182. package/lmvz-components/p-76be3fc9.entry.js +0 -1
  183. package/lmvz-components/p-854f1c72.entry.js +0 -1
  184. package/lmvz-components/p-886e42c7.entry.js +0 -1
  185. package/lmvz-components/p-9f8fd077.entry.js +0 -1
  186. package/lmvz-components/p-B0eCxdyI.js +0 -1
  187. package/lmvz-components/p-BhSTYZC6.js +0 -1
  188. package/lmvz-components/p-CN0JX9-m.js +0 -1
  189. package/lmvz-components/p-D9nUtvTm.js +0 -1
  190. package/lmvz-components/p-DuLiExhX.js +0 -1
  191. package/lmvz-components/p-FBuCCcFC.js +0 -1
  192. package/types/utils/data/event.utilt.d.ts +0 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @lmvz-ds/components
2
2
 
3
+ ## 0.35.1
4
+
5
+ ### Patch Changes
6
+
7
+ - af49544: Popover: Open-Events werden automatisch auf das Anker-Element gesetzt
8
+
3
9
  ## 0.35.0
4
10
 
5
11
  ### Minor Changes
package/README.md CHANGED
@@ -91,6 +91,16 @@ export default App;
91
91
 
92
92
  LMVZ component styles do not style native HTML elements outside the components. Import a theme, and any additional global style bundles you need, from `@lmvz-ds/styles` separately.
93
93
 
94
+ ## Advanced Usage
95
+
96
+ ### Reactive Controllers
97
+
98
+ LMVZ components use a lightweight reactive controller pattern for composing accessibility and interaction features. For detailed documentation on:
99
+ - Using reactive controllers in custom components
100
+ - How built-in controllers (element activation, directional focus, ARIA validation, radio grouping) work
101
+ - Building your own controllers
102
+
103
+ See [Reactive Controllers](./docs/reactive-controllers.md).
94
104
 
95
105
  ## Contributing
96
106
 
@@ -17,4 +17,5 @@ const raf = (h) => {
17
17
  };
18
18
 
19
19
  exports.raf = raf;
20
+ exports.wait = wait;
20
21
  exports.waitFrame = waitFrame;
@@ -1,7 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var element_util = require('./element.util-Dbyc8yUG.js');
3
+ var element_util = require('./element.util-CRS_YJ59.js');
4
+ var reactiveControllerHost = require('./reactive-controller-host-Bc6B_T45.js');
4
5
 
6
+ function isFocusControllerHost(el) {
7
+ return Boolean(reactiveControllerHost.getLmvzComponentMetaInfo(el, 'isFocusControllerHost'));
8
+ }
5
9
  const defaultConfig = {
6
10
  orientation: 'both',
7
11
  enableHomeAndEnd: false,
@@ -20,6 +24,7 @@ class DirectionalFocusController {
20
24
  };
21
25
  }
22
26
  hostConnected() {
27
+ reactiveControllerHost.registerLmvzComponentMetaInfo(this.host.el, 'isFocusControllerHost', true);
23
28
  this.host.el.addEventListener('keydown', this.handleKeydown);
24
29
  this.syncManagedFocusTarget();
25
30
  }
@@ -36,6 +41,12 @@ class DirectionalFocusController {
36
41
  this.currentElement = element !== null && element !== undefined && 'focus' in element && element.nodeType === 1 ? element : undefined;
37
42
  this.syncManagedFocusTarget(previousElement);
38
43
  }
44
+ async initFocus() {
45
+ const element = this.selectManagedElement();
46
+ if (!element)
47
+ return;
48
+ this.applyFocusTarget(element, true);
49
+ }
39
50
  handleKeydown = (event) => {
40
51
  const intent = this.getFocusIntent(event.key);
41
52
  if (!intent)
@@ -176,3 +187,4 @@ function resolveElement(el) {
176
187
  }
177
188
 
178
189
  exports.DirectionalFocusController = DirectionalFocusController;
190
+ exports.isFocusControllerHost = isFocusControllerHost;
@@ -0,0 +1,57 @@
1
+ 'use strict';
2
+
3
+ var element_util = require('./element.util-CRS_YJ59.js');
4
+ var reactiveControllerHost = require('./reactive-controller-host-Bc6B_T45.js');
5
+
6
+ function filterKeysAndCallback(callback, keys = [' ']) {
7
+ return (event) => {
8
+ if (!keys.includes(event.key))
9
+ return;
10
+ event.preventDefault();
11
+ callback(event);
12
+ };
13
+ }
14
+
15
+ class ElementActivationController {
16
+ host;
17
+ config;
18
+ handlers = new AbortController();
19
+ constructor(host, config) {
20
+ this.host = host;
21
+ this.config = config;
22
+ reactiveControllerHost.registerLmvzComponentMetaInfo(host.el, 'isLmvzElementActivationHost', true);
23
+ }
24
+ hostDidLoad() {
25
+ bindHandlers(this.host.el, this.handleActivation.bind(this), this.handlers.signal, this.config?.keys ?? ['Enter', ' ']);
26
+ }
27
+ hostDisconnected() {
28
+ this.handlers.abort();
29
+ }
30
+ handleActivation = (event) => {
31
+ this.host.lmvzActivation.emit();
32
+ if (this.config?.localHandler) {
33
+ this.config.localHandler(event);
34
+ }
35
+ };
36
+ }
37
+ function bindHandlers(target, handler, abortSignal, keys = [' ']) {
38
+ target.addEventListener('keydown', filterKeysAndCallback(handler, keys), { signal: abortSignal });
39
+ target.addEventListener('click', handler, { signal: abortSignal });
40
+ }
41
+ function isLmvzElementActivationHost(el) {
42
+ return reactiveControllerHost.getLmvzComponentMetaInfo(el, 'isLmvzElementActivationHost');
43
+ }
44
+ function addElementActivationListener(...[target, handler, abortSignal, keys]) {
45
+ if (isLmvzElementActivationHost(target)) {
46
+ target.addEventListener('lmvzActivation', handler, { signal: abortSignal });
47
+ return;
48
+ }
49
+ if (!element_util.isInteractiveElement(target)) {
50
+ console.error('addElementActivationListener called with non-interactive element');
51
+ return;
52
+ }
53
+ bindHandlers(target, handler, abortSignal, keys);
54
+ }
55
+
56
+ exports.ElementActivationController = ElementActivationController;
57
+ exports.addElementActivationListener = addElementActivationListener;
@@ -156,13 +156,17 @@ function findFormByRef(form, el) {
156
156
  }
157
157
  function isInteractiveElement(el) {
158
158
  const tagName = el.tagName.toLowerCase();
159
- if (['button', 'input', 'select', 'textarea'].includes(tagName)) {
159
+ if (['button', 'lmvz-button', 'input', 'lmvz-input', 'select', 'lmvz-select', 'textarea'].includes(tagName)) {
160
160
  return true;
161
161
  }
162
- if (tagName === 'a' && el.hasAttribute('href')) {
162
+ if (['a', 'lmvz-link'].includes(tagName) && el.hasAttribute('href')) {
163
163
  return true;
164
164
  }
165
165
  if (el.hasAttribute('tabindex')) {
166
+ const tabindex = parseInt(el.getAttribute('tabindex') ?? '-1');
167
+ if (isNaN(tabindex) || tabindex < 0) {
168
+ console.warn('Interactive element is not keyboard accessible due to negative tabindex!', el);
169
+ }
166
170
  return true;
167
171
  }
168
172
  const role = el.getAttribute('role');
@@ -174,6 +178,9 @@ function isInteractiveElement(el) {
174
178
  }
175
179
  return false;
176
180
  }
181
+ function isHtmlElement(element) {
182
+ return element instanceof HTMLElement;
183
+ }
177
184
 
178
185
  exports.canReceiveFocus = canReceiveFocus;
179
186
  exports.findFormByRef = findFormByRef;
@@ -181,6 +188,7 @@ exports.getDeepActiveElement = getDeepActiveElement;
181
188
  exports.inheritAriaAttributes = inheritAriaAttributes;
182
189
  exports.isActionButton = isActionButton;
183
190
  exports.isDisabledButton = isDisabledButton;
191
+ exports.isHtmlElement = isHtmlElement;
184
192
  exports.isInteractiveElement = isInteractiveElement;
185
193
  exports.isLmvzButton = isLmvzButton;
186
194
  exports.isPrimaryAction = isPrimaryAction;
@@ -2,9 +2,9 @@
2
2
 
3
3
  var index = require('./index-TGsVZNDP.js');
4
4
  var ariaValidationController = require('./aria-validation-controller-BC0Eaiv4.js');
5
- var listKeyboardController = require('./list-keyboard-controller-Dm5S_l0D.js');
6
- var element_util = require('./element.util-Dbyc8yUG.js');
7
- var reactiveControllerHost = require('./reactive-controller-host-B_lZtcA6.js');
5
+ var directionalFocusController = require('./directional-focus-controller-DBat-oF7.js');
6
+ var element_util = require('./element.util-CRS_YJ59.js');
7
+ var reactiveControllerHost = require('./reactive-controller-host-Bc6B_T45.js');
8
8
  require('./aria-loader-DWUVcapD.js');
9
9
 
10
10
  const lmvzActionListCss = () => `@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } *[hidden] { display: none !important; } hr { height: 0; border: none; margin: var(--lmvz-dimension-8-4, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)) 0; border-top: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-subtle, #f0f0f0); } } .sc-lmvz-action-list-h { display: flex; flex-direction: column; gap: 0; min-width: 15vw; button { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-secondary, #f0f0f0)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-secondary, #000000)); --lmvz-button-radius: var(--lmvz-button-radius-override, var(--lmvz-component-input-radius-default, 999px)); --lmvz-button-padding-inline: var(--lmvz-button-padding-inline-override, var(--lmvz-button-padding, var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem)))); --lmvz-button-padding-block: var(--lmvz-button-padding-block-override, var(--lmvz-button-padding, var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem)))); --lmvz-button-gap: var(--lmvz-button-gap-override, var(--lmvz-component-input-gap-md, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem))); --lmvz-button-min-height: var(--lmvz-button-min-height-override, var(--lmvz-component-input-size-md, clamp(2.5rem, 2.44rem + 0.26vw, 2.75rem))); --lmvz-button-font: var(--lmvz-button-font-override, var(--lmvz-typography-label-md-strong, normal 700 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5 Router)); --lmvz-button-border-width: var(--lmvz-button-border-width-override, 0); --lmvz-button-border-color: var(--lmvz-button-border-color-override, transparent); display: inline-flex; align-items: center; justify-content: var(--lmvz-button-content-justification-override, center); gap: var(--lmvz-button-gap); padding-block: var(--lmvz-button-padding-block); padding-inline: var(--lmvz-button-padding-inline); min-height: var(--lmvz-button-min-height); border-radius: var(--lmvz-button-radius); border: var(--lmvz-button-border-width) solid var(--lmvz-button-border-color); background-color: var(--lmvz-button-background); color: var(--lmvz-button-color); cursor: pointer; font: var(--lmvz-button-font); text-decoration: none; white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; } button > * { font: inherit; color: inherit; } button:focus-visible { outline: var(--lmvz-ds-outline, 1px solid #0e7ab4); outline-offset: var(--lmvz-ds-outline-offset, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)); position: relative; z-index: 1; } button:is([disabled], .disabled) { cursor: not-allowed; pointer-events: none; opacity: var(--lmvz-component-input-disabled-opacity, 40%); } button:not([disabled]):hover { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0)); } button:not([disabled]):active { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-secondary-active, #d4d4d4)); } button.primary { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-primary, #000000)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-primary, #ffffff)); --lmvz-button-border-width: var(--lmvz-button-border-width-override, 0); --lmvz-button-border-color: var(--lmvz-button-border-color-override, transparent); } button.primary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-primary-hover, #2e2e2e)); } button.primary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-primary-active, #545454)); } button.danger { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary, #ffffff)); --lmvz-button-border-color: var(--lmvz-button-border-color-override, transparent); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-status-on-danger, #a31419)); } button.danger:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-status-danger, #fbdfe0)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-status-on-danger, #a31419)); } button.danger:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-status-on-danger-subtle, #e8454b)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-status-on-danger, #a31419)); } button.tertiary { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary, #ffffff)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-tertiary, #000000)); } button.tertiary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-tertiary-hover, #000000)); } button.tertiary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-tertiary-active, #000000)); } button.small { --lmvz-button-padding-inline: var(--lmvz-button-padding-inline-override, var(--lmvz-component-input-padding-sm, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem))); --lmvz-button-padding-block: var(--lmvz-button-padding-block-override, var(--lmvz-component-input-padding-sm, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem))); --lmvz-button-gap: var(--lmvz-button-gap-override, var(--lmvz-component-input-gap-sm, clamp(0.38rem, 0.31rem + 0.26vw, 0.63rem))); --lmvz-button-min-height: var(--lmvz-button-min-height-override, var(--lmvz-component-input-size-sm, clamp(2rem, 1.94rem + 0.26vw, 2.25rem))); --lmvz-button-font: var(--lmvz-button-font-override, var(--lmvz-typography-label-sm-strong, normal 700 clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem) / 1.5 Router)); } button.large { --lmvz-button-padding-inline: var(--lmvz-button-padding-inline-override, var(--lmvz-component-input-padding-lg, clamp(1rem, 0.94rem + 0.26vw, 1.25rem))); --lmvz-button-padding-block: var(--lmvz-button-padding-block-override, var(--lmvz-component-input-padding-lg, clamp(1rem, 0.94rem + 0.26vw, 1.25rem))); --lmvz-button-gap: var(--lmvz-button-gap-override, var(--lmvz-component-input-gap-lg, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-min-height: var(--lmvz-button-min-height-override, var(--lmvz-component-input-size-lg, clamp(2.75rem, 2.69rem + 0.26vw, 3rem))); --lmvz-button-font: var(--lmvz-button-font-override, var(--lmvz-typography-label-lg-strong, normal 700 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.5 Router)); } lmvz-button, button { --lmvz-button-radius-override: var(--lmvz-semantic-border-radius-md, 6px); --lmvz-button-padding-inline-override: var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem)); --lmvz-button-padding-block-override: var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem)); --lmvz-button-font-override: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5 Router); --lmvz-button-content-justification-override: normal; width: 100%; display: block; } button { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary, #ffffff)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-tertiary, #000000)); &:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-tertiary-hover, #000000)); } &:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-button-background-override, var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0)); --lmvz-button-color: var(--lmvz-button-color-override, var(--lmvz-semantic-color-int-on-tertiary-active, #000000)); } } }`;
@@ -18,7 +18,7 @@ const LmvzActionList = class extends reactiveControllerHost.ReactiveControllerHo
18
18
  get validationSlot() {
19
19
  return this.slotEl;
20
20
  }
21
- focusController = new listKeyboardController.DirectionalFocusController(this, {
21
+ focusController = new directionalFocusController.DirectionalFocusController(this, {
22
22
  orientation: 'vertical',
23
23
  manageTabIndex: true,
24
24
  enableHomeAndEnd: true,
@@ -36,6 +36,9 @@ const LmvzActionList = class extends reactiveControllerHost.ReactiveControllerHo
36
36
  this.handleSlotChange();
37
37
  super.componentDidLoad();
38
38
  }
39
+ async initFocus() {
40
+ this.focusController.initFocus();
41
+ }
39
42
  handleSlotChange = () => {
40
43
  const slot = this.slotEl;
41
44
  if (!slot)
@@ -56,7 +59,7 @@ const LmvzActionList = class extends reactiveControllerHost.ReactiveControllerHo
56
59
  };
57
60
  render() {
58
61
  const ariaLabel = this.label || undefined;
59
- return (index.h(index.Host, { key: '1180ac5cb2ad83db0279a5cd2ce15d9ab75d03ca', role: "menu", "aria-label": ariaLabel }, index.h("slot", { key: '479179e7ec42780e73936d50703ff46d48a89efb', onSlotchange: this.handleSlotChange, ref: (el) => (this.slotEl = el) })));
62
+ return (index.h(index.Host, { key: '9dee495856e733cb17f30d0d8588362a8dcb28ce', role: "menu", "aria-label": ariaLabel }, index.h("slot", { key: 'c6454dbbe63eed5be01f3247934245d1cc1ad6e2', onSlotchange: this.handleSlotChange, ref: (el) => (this.slotEl = el) })));
60
63
  }
61
64
  };
62
65
  function collectInteractiveButtonsRecursively(el, collection) {
@@ -14,7 +14,7 @@ const LmvzAction = class {
14
14
  this.actionClick.emit(event);
15
15
  }
16
16
  render() {
17
- return (index.h(index.Host, { key: '15c0f20e08cd5019abfd3bb71ec69d175dc5ba48', onClick: this._onClick.bind(this) }, index.h("slot", { key: 'f71a7853168d1b66b0a50b0f971d140385530ac3' })));
17
+ return (index.h(index.Host, { key: '4d83f95393704400034fef7313ac52bcc100be95', onClick: this._onClick.bind(this) }, index.h("slot", { key: 'ffbdeca0877eb9a76bc4ac1b8b77b37b60fdabd5' })));
18
18
  }
19
19
  };
20
20
  LmvzAction.style = lmvzActionCss();
@@ -3,7 +3,7 @@
3
3
  var index = require('./index-TGsVZNDP.js');
4
4
  var ariaLoader = require('./aria-loader-DWUVcapD.js');
5
5
  var ds_constants = require('./ds.constants-C6eKRAEu.js');
6
- var element_util = require('./element.util-Dbyc8yUG.js');
6
+ var element_util = require('./element.util-CRS_YJ59.js');
7
7
 
8
8
  /**
9
9
  * Returns a function that delegates to the given predicate/filter and negates its result.
@@ -3,9 +3,9 @@
3
3
  var index = require('./index-TGsVZNDP.js');
4
4
  var index$1 = require('./index-Bp6Dd2i1.js');
5
5
  var ariaValidationController = require('./aria-validation-controller-BC0Eaiv4.js');
6
- var elementActivationController = require('./element-activation-controller-DC_6T0Rt.js');
7
- var element_util = require('./element.util-Dbyc8yUG.js');
8
- var reactiveControllerHost = require('./reactive-controller-host-B_lZtcA6.js');
6
+ var elementActivationController = require('./element-activation-controller-BHqCUgQv.js');
7
+ var element_util = require('./element.util-CRS_YJ59.js');
8
+ var reactiveControllerHost = require('./reactive-controller-host-Bc6B_T45.js');
9
9
  var svg = require('./svg-CysxzZw7.js');
10
10
  var icons = require('./icons-snv0hyf1.js');
11
11
  require('./aria-loader-DWUVcapD.js');
@@ -40,7 +40,6 @@ const LmvzButton = class extends reactiveControllerHost.ReactiveControllerHost {
40
40
  this.addController(new ariaValidationController.AriaValidationController(this));
41
41
  this.addController(new elementActivationController.ElementActivationController(this, {
42
42
  localHandler: this.handleClick.bind(this),
43
- keys: ['Enter'],
44
43
  }));
45
44
  }
46
45
  connectedCallback() {
@@ -101,7 +100,7 @@ const LmvzButton = class extends reactiveControllerHost.ReactiveControllerHost {
101
100
  };
102
101
  render() {
103
102
  this.renderHiddenButton();
104
- return (index.h(index.Host, { key: 'f3e619dca398c3a8a78e9d2f8c3df4178b2531b2', role: "presentation" }, index.h("button", { key: 'eb1aac6756a70968d3a72cb40c1d52d96340423e', ref: (e) => (this.validationEl = e), part: "button", role: this.buttonRole, disabled: this.disabled, type: this.type, class: index$1.classNames(this.variant ?? 'secondary', { [this.scale ?? '']: !!this.scale, disabled: this.disabled }), ...this.inheritedAttributes }, index.h("slot", { key: '786ff1c10ae05eda646c77ac8779813be6e51949' }))));
103
+ return (index.h(index.Host, { key: 'eb0ee982f50f1e41b2aa72a0598d739b972cbcdf', role: "presentation" }, index.h("button", { key: 'aed6f44f51222e31d5f1deec952c0d81b8f1200a', ref: (e) => (this.validationEl = e), part: "button", role: this.buttonRole, disabled: this.disabled, type: this.type, class: index$1.classNames(this.variant ?? 'secondary', { [this.scale ?? '']: !!this.scale, disabled: this.disabled }), ...this.inheritedAttributes }, index.h("slot", { key: '2aaedfde3c0d6ebf426f20a8489b22c2a356767e' }))));
105
104
  }
106
105
  static get delegatesFocus() { return true; }
107
106
  };
@@ -3,7 +3,7 @@
3
3
  var index = require('./index-TGsVZNDP.js');
4
4
  var svg = require('./svg-CysxzZw7.js');
5
5
  var ariaValidationController = require('./aria-validation-controller-BC0Eaiv4.js');
6
- var reactiveControllerHost = require('./reactive-controller-host-B_lZtcA6.js');
6
+ var reactiveControllerHost = require('./reactive-controller-host-Bc6B_T45.js');
7
7
  require('./logger-NBdKPSou.js');
8
8
  require('./aria-loader-DWUVcapD.js');
9
9
 
@@ -3,7 +3,7 @@
3
3
  var index = require('./index-TGsVZNDP.js');
4
4
  var ds_constants = require('./ds.constants-C6eKRAEu.js');
5
5
  var ariaValidationController = require('./aria-validation-controller-BC0Eaiv4.js');
6
- var reactiveControllerHost = require('./reactive-controller-host-B_lZtcA6.js');
6
+ var reactiveControllerHost = require('./reactive-controller-host-Bc6B_T45.js');
7
7
  var ariaLoader = require('./aria-loader-DWUVcapD.js');
8
8
 
9
9
  function debounce(func, wait) {
@@ -19,7 +19,7 @@ var patchBrowser = () => {
19
19
 
20
20
  patchBrowser().then(async (options) => {
21
21
  await appGlobals.globalScripts();
22
- return index.bootstrapLazy([["lmvz-modal.cjs",[[769,"lmvz-modal",{"open":[1540],"closeLabel":[1,"close-label"],"hasHeader":[32]},[[0,"submit","handleFormDialogSubmit"]],{"open":[{"handleOpenChange":0}]}]]],["lmvz-message.cjs",[[769,"lmvz-message",{"type":[513],"live":[1],"leadingIcon":[4,"leading-icon"],"dismissible":[4],"closeLabel":[1,"close-label"],"actionLabel":[1,"action-label"]}]]],["lmvz-snackbar.cjs",[[513,"lmvz-snackbar",{"status":[1537],"message":[1025],"duration":[1026],"priority":[1025],"actionLabel":[1025,"action-label"],"animationClass":[32],"show":[64],"hide":[64]},null,{"status":[{"onStatusChange":0}]}]]],["lmvz-link.cjs",[[785,"lmvz-link",{"href":[513],"target":[513],"rel":[1],"type":[1537],"externalLabel":[1,"external-label"]},null,{"type":[{"normalizeType":0}]}]]],["lmvz-header_2.cjs",[[769,"lmvz-header",{"role":[2561],"lmvzActiveNav":[1,"lmvz-active-nav"]},null,{"lmvzActiveNav":[{"handleActiveNavChange":0}]}],[774,"lmvz-menuitem",{"role":[2561],"ti":[2562,"tabindex"]}]]],["lmvz-action.cjs",[[257,"lmvz-action"]]],["lmvz-action-list.cjs",[[774,"lmvz-action-list",{"label":[1]}]]],["lmvz-card.cjs",[[774,"lmvz-card",{"cardTitle":[1,"card-title"],"imageUrl":[1,"image-url"],"description":[1],"primaryActionLabel":[1,"primary-action-label"]}]]],["lmvz-checkbox.cjs",[[578,"lmvz-checkbox",{"label":[1],"checked":[1540],"value":[1],"name":[1],"disabled":[516],"required":[516],"error":[516],"errorMessage":[1,"error-message"],"helperText":[1,"helper-text"],"form":[1],"autofocus":[4],"checkedState":[32],"focusInput":[64],"checkValidity":[64],"reportValidity":[64]},null,{"checked":[{"handleCheckedChange":0}]}]]],["lmvz-chip.cjs",[[769,"lmvz-chip",{"type":[1537],"size":[1537]},null,{"type":[{"normalizeType":0}],"size":[{"normalizeSize":0}]}]]],["lmvz-input.cjs",[[838,"lmvz-input",{"value":[1025],"label":[1],"helperText":[1,"helper-text"],"placeholder":[1],"disabled":[516],"readonly":[516],"required":[516],"name":[1],"type":[1],"errorMessage":[1,"error-message"],"autocomplete":[1],"inputmode":[1],"autocorrect":[1],"autocapitalize":[1],"spellcheck":[4],"autofocus":[4],"minlength":[2],"maxlength":[2],"pattern":[1],"min":[8],"max":[8],"step":[8],"form":[1],"size":[513],"error":[6660],"nativeError":[32],"setValue":[64],"focusInput":[64],"blurInput":[64],"select":[64],"checkValidity":[64],"reportValidity":[64],"getInputElement":[64]},null,{"value":[{"handleValueChange":0}],"disabled":[{"handleDisabledChange":0}]}]]],["lmvz-menuitem.cjs",[[774,"lmvz-menuitem",{"role":[2561],"ti":[2562,"tabindex"]}]]],["lmvz-popover.cjs",[[769,"lmvz-popover",{"open":[1540],"anchor":[1],"placement":[1],"size":[1],"autoFocus":[4,"auto-focus"],"label":[1],"show":[64],"hide":[64],"toggle":[64]},null,{"open":[{"handleOpenChange":0}],"anchor":[{"handleAnchorChange":0}]}]]],["lmvz-radio.cjs",[[578,"lmvz-radio",{"label":[1],"checked":[1540],"value":[1],"name":[1],"disabled":[516],"required":[516],"error":[516],"helperText":[1,"helper-text"],"form":[513],"autofocus":[4],"focusInput":[64],"checkValidity":[64],"reportValidity":[64]},[[0,"keydown","handleKeydown"]],{"checked":[{"handleCheckedChange":0}],"value":[{"handleValueChange":0}],"label":[{"handleLabelChange":0}]}]]],["lmvz-select.cjs",[[774,"lmvz-select",{"value":[1025],"label":[1],"helperText":[1,"helper-text"],"disabled":[516],"required":[516],"name":[1],"size":[513],"highlighted":[516],"selectedLabel":[32]},null,{"value":[{"handleValueChange":0}]}]]],["lmvz-spinner.cjs",[[513,"lmvz-spinner",{"size":[513],"ariaLabel":[513,"aria-label"]}]]],["lmvz-tab.cjs",[[785,"lmvz-tab",{"value":[513],"disabled":[516],"selected":[516],"vertical":[516]}]]],["lmvz-tabs.cjs",[[769,"lmvz-tabs",{"value":[1537],"orientation":[1537],"resolvedValue":[32],"activateTab":[64],"getTabElements":[64],"setTabPanelIds":[64]},null,{"value":[{"handleValueChange":0}],"orientation":[{"handleOrientationChange":0}]}]]],["lmvz-toggle.cjs",[[578,"lmvz-toggle",{"label":[1],"checked":[1540],"disabled":[516],"required":[516],"name":[1],"value":[1],"form":[1],"focusToggle":[64],"blurToggle":[64],"checkValidity":[64],"reportValidity":[64],"getInputElement":[64]},null,{"checked":[{"handleCheckedChange":0}],"disabled":[{"handleDisabledChange":0}]}]]],["lmvz-button-group.cjs",[[769,"lmvz-button-group",{"stacked":[516],"primaryEnabledAction":[2064],"hasActions":[2052,"has-actions"]}]]],["lmvz-button_2.cjs",[[785,"lmvz-button",{"ti":[514,"tabindex"],"scale":[513],"variant":[513],"disabled":[516],"type":[1],"form":[1],"formMethod":[1,"form-method"],"name":[1],"value":[1],"buttonRole":[1,"button-role"]}],[514,"lmvz-icon",{"icon":[513],"weight":[513],"size":[513],"iconset":[513],"ariaLabel":[513,"aria-label"],"iconData":[32],"visible":[32]},null,{"icon":[{"loadIconPathData":0}],"iconset":[{"loadIconPathData":0}]}]]]], options);
22
+ return index.bootstrapLazy([["lmvz-modal.cjs",[[769,"lmvz-modal",{"open":[1540],"closeLabel":[1,"close-label"],"hasHeader":[32]},[[0,"submit","handleFormDialogSubmit"]],{"open":[{"handleOpenChange":0}]}]]],["lmvz-message.cjs",[[769,"lmvz-message",{"type":[513],"live":[1],"leadingIcon":[4,"leading-icon"],"dismissible":[4],"closeLabel":[1,"close-label"],"actionLabel":[1,"action-label"]}]]],["lmvz-snackbar.cjs",[[513,"lmvz-snackbar",{"status":[1537],"message":[1025],"duration":[1026],"priority":[1025],"actionLabel":[1025,"action-label"],"animationClass":[32],"show":[64],"hide":[64]},null,{"status":[{"onStatusChange":0}]}]]],["lmvz-link.cjs",[[785,"lmvz-link",{"href":[513],"target":[513],"rel":[1],"type":[1537],"externalLabel":[1,"external-label"]},null,{"type":[{"normalizeType":0}]}]]],["lmvz-header_2.cjs",[[769,"lmvz-header",{"role":[2561],"lmvzActiveNav":[1,"lmvz-active-nav"],"initFocus":[64]},null,{"lmvzActiveNav":[{"handleActiveNavChange":0}]}],[774,"lmvz-menuitem",{"role":[2561],"ti":[2562,"tabindex"]}]]],["lmvz-action.cjs",[[257,"lmvz-action"]]],["lmvz-action-list.cjs",[[774,"lmvz-action-list",{"label":[1],"initFocus":[64]}]]],["lmvz-card.cjs",[[774,"lmvz-card",{"cardTitle":[1,"card-title"],"imageUrl":[1,"image-url"],"description":[1],"primaryActionLabel":[1,"primary-action-label"]}]]],["lmvz-checkbox.cjs",[[578,"lmvz-checkbox",{"label":[1],"checked":[1540],"value":[1],"name":[1],"disabled":[516],"required":[516],"error":[516],"errorMessage":[1,"error-message"],"helperText":[1,"helper-text"],"form":[1],"autofocus":[4],"checkedState":[32],"focusInput":[64],"checkValidity":[64],"reportValidity":[64]},null,{"checked":[{"handleCheckedChange":0}]}]]],["lmvz-chip.cjs",[[769,"lmvz-chip",{"type":[1537],"size":[1537]},null,{"type":[{"normalizeType":0}],"size":[{"normalizeSize":0}]}]]],["lmvz-input.cjs",[[838,"lmvz-input",{"value":[1025],"label":[1],"helperText":[1,"helper-text"],"placeholder":[1],"disabled":[516],"readonly":[516],"required":[516],"name":[1],"type":[1],"errorMessage":[1,"error-message"],"autocomplete":[1],"inputmode":[1],"autocorrect":[1],"autocapitalize":[1],"spellcheck":[4],"autofocus":[4],"minlength":[2],"maxlength":[2],"pattern":[1],"min":[8],"max":[8],"step":[8],"form":[1],"size":[513],"error":[6660],"nativeError":[32],"setValue":[64],"focusInput":[64],"blurInput":[64],"select":[64],"checkValidity":[64],"reportValidity":[64],"getInputElement":[64]},null,{"value":[{"handleValueChange":0}],"disabled":[{"handleDisabledChange":0}]}]]],["lmvz-menuitem.cjs",[[774,"lmvz-menuitem",{"role":[2561],"ti":[2562,"tabindex"]}]]],["lmvz-popover.cjs",[[769,"lmvz-popover",{"open":[1540],"anchor":[1],"placement":[1],"size":[1],"autoFocus":[4,"auto-focus"],"label":[1],"anchorEl":[32],"show":[64],"hide":[64],"toggle":[64]},null,{"open":[{"handleOpenChange":0}],"anchor":[{"handleAnchorChange":1}]}]]],["lmvz-radio.cjs",[[578,"lmvz-radio",{"label":[1],"checked":[1540],"value":[1],"name":[1],"disabled":[516],"required":[516],"error":[516],"helperText":[1,"helper-text"],"form":[513],"autofocus":[4],"focusInput":[64],"checkValidity":[64],"reportValidity":[64]},[[0,"keydown","handleKeydown"]],{"checked":[{"handleCheckedChange":0}],"value":[{"handleValueChange":0}],"label":[{"handleLabelChange":0}]}]]],["lmvz-select.cjs",[[774,"lmvz-select",{"value":[1025],"label":[1],"helperText":[1,"helper-text"],"disabled":[516],"required":[516],"name":[1],"size":[513],"highlighted":[516],"selectedLabel":[32]},null,{"value":[{"handleValueChange":0}]}]]],["lmvz-spinner.cjs",[[513,"lmvz-spinner",{"size":[513],"ariaLabel":[513,"aria-label"]}]]],["lmvz-tab.cjs",[[785,"lmvz-tab",{"value":[513],"disabled":[516],"selected":[516],"vertical":[516]}]]],["lmvz-tabs.cjs",[[769,"lmvz-tabs",{"value":[1537],"orientation":[1537],"resolvedValue":[32],"initFocus":[64],"activateTab":[64],"getTabElements":[64],"setTabPanelIds":[64]},null,{"value":[{"handleValueChange":0}],"orientation":[{"handleOrientationChange":0}]}]]],["lmvz-toggle.cjs",[[578,"lmvz-toggle",{"label":[1],"checked":[1540],"disabled":[516],"required":[516],"name":[1],"value":[1],"form":[1],"focusToggle":[64],"blurToggle":[64],"checkValidity":[64],"reportValidity":[64],"getInputElement":[64]},null,{"checked":[{"handleCheckedChange":0}],"disabled":[{"handleDisabledChange":0}]}]]],["lmvz-button-group.cjs",[[769,"lmvz-button-group",{"stacked":[516],"primaryEnabledAction":[2064],"hasActions":[2052,"has-actions"]}]]],["lmvz-button_2.cjs",[[785,"lmvz-button",{"ti":[514,"tabindex"],"scale":[513],"variant":[513],"disabled":[516],"type":[1],"form":[1],"formMethod":[1,"form-method"],"name":[1],"value":[1],"buttonRole":[1,"button-role"]}],[514,"lmvz-icon",{"icon":[513],"weight":[513],"size":[513],"iconset":[513],"ariaLabel":[513,"aria-label"],"iconData":[32],"visible":[32]},null,{"icon":[{"loadIconPathData":0}],"iconset":[{"loadIconPathData":0}]}]]]], options);
23
23
  });
24
24
 
25
25
  exports.setNonce = index.setNonce;
@@ -2,12 +2,12 @@
2
2
 
3
3
  var index = require('./index-TGsVZNDP.js');
4
4
  var ariaValidationController = require('./aria-validation-controller-BC0Eaiv4.js');
5
- var listKeyboardController = require('./list-keyboard-controller-Dm5S_l0D.js');
6
- var reactiveControllerHost = require('./reactive-controller-host-B_lZtcA6.js');
5
+ var directionalFocusController = require('./directional-focus-controller-DBat-oF7.js');
6
+ var reactiveControllerHost = require('./reactive-controller-host-Bc6B_T45.js');
7
7
  var lmvzMenuitem_entry = require('./lmvz-menuitem.cjs.entry.js');
8
8
  require('./aria-loader-DWUVcapD.js');
9
- require('./element.util-Dbyc8yUG.js');
10
- require('./element-activation-controller-DC_6T0Rt.js');
9
+ require('./element.util-CRS_YJ59.js');
10
+ require('./element-activation-controller-BHqCUgQv.js');
11
11
 
12
12
  const logoSvg = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDYiIGhlaWdodD0iNzIiIHZpZXdCb3g9IjAgMCA0NiA3MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzI3Ml80MDUpIj4KPHBhdGggZD0iTTEyLjUgMjAuNjVDMTMuMSAyMC42NSAxNC4yIDIwLjM1IDE0LjcgMjAuMzVDMTYuMSAyMC4zNSAxNy4yIDIxLjQ1IDE3LjIgMjIuODVDMTcuMiAyNC4yNSAxNi4xIDI1LjM1IDE0LjcgMjUuMzVIMi44QzEuMiAyNS4zNSAwIDI0LjE1IDAgMjIuNTVDMCAyMS45NSAwLjIgMjAuNjUgMC4yIDIwLjA1VjUuODQ5OTlDMC4yIDUuMTQ5OTkgMCAzLjk0OTk5IDAgMy4zNDk5OUMwIDEuNzQ5OTkgMS4yIDAuNTQ5OTg4IDIuOCAwLjU0OTk4OEM0LjMgMC41NDk5ODggNS42IDEuNzQ5OTkgNS42IDMuMzQ5OTlDNS42IDMuOTQ5OTkgNS40IDUuMTQ5OTkgNS40IDUuODQ5OTlWMjAuNTVIMTIuNVYyMC42NVpNMjIuMSAyMi43NUMyMi4xIDIyLjE1IDIyLjMgMjAuOTUgMjIuMyAyMC4yNVY1Ljg0OTk5QzIyLjMgNS4xNDk5OSAyMi4xIDMuOTQ5OTkgMjIuMSAzLjQ0OTk5QzIyLjEgMS45NDk5OSAyMy4yIDAuNzQ5OTg4IDI0LjYgMC43NDk5ODhIMjUuMkMyNi40IDAuNzQ5OTg4IDI3LjIgMS41NDk5OSAyNy42IDIuNjQ5OTlMMjggMy40NDk5OUwzMi45IDE0LjA1QzMzLjMgMTQuOTUgMzMuNyAxNi4wNSAzNCAxNi43NUMzNC4zIDE2LjA1IDM0LjcgMTQuOTUgMzUuMSAxNC4wNUw0MCAzLjU0OTk5TDQwLjMgMi41NDk5OUM0MC43IDEuNTQ5OTkgNDEuNSAwLjY0OTk4OCA0Mi42IDAuNjQ5OTg4SDQzLjJDNDQuNyAwLjY0OTk4OCA0NS43IDEuODQ5OTkgNDUuNyAzLjM0OTk5QzQ1LjcgMy45NDk5OSA0NS41IDUuMTQ5OTkgNDUuNSA1Ljc0OTk5VjIwLjE1QzQ1LjUgMjAuODUgNDUuNyAyMi4wNSA0NS43IDIyLjY1QzQ1LjcgMjQuMjUgNDQuNSAyNS40NSA0MyAyNS40NUM0MS40IDI1LjQ1IDQwLjMgMjQuMjUgNDAuMyAyMi42NUM0MC4zIDIxLjk1IDQwLjQgMjAuNzUgNDAuNCAyMC4xNUw0MC42IDE0LjA1QzQwLjYgMTMuMTUgNDAuNyAxMS43NSA0MC43IDEwLjY1TDM3IDE5LjA1QzM2LjcgMTkuNzUgMzYuNiAxOS45NSAzNi40IDIwLjM1QzM2IDIxLjI1IDM1LjMgMjEuODUgMzMuOSAyMS44NUMzMi41IDIxLjg1IDMxLjggMjEuMjUgMzEuNCAyMC40NUMzMS4yIDIwLjA1IDMxLjIgMTkuNzUgMzAuOCAxOS4wNUwyNyAxMC43NUMyNyAxMC43NSAyNy4xIDEzLjE1IDI3LjIgMTQuMDVMMjcuNCAyMC4xNUMyNy40IDIwLjg1IDI3LjUgMjEuOTUgMjcuNSAyMi42NUMyNy41IDI0LjI1IDI2LjQgMjUuNDUgMjQuOCAyNS40NUMyMy4zIDI1LjU1IDIyLjEgMjQuMjUgMjIuMSAyMi43NVpNMjguNyAzMi45NUMyOS4xIDMyLjk1IDMwLjIgMzMuMTUgMzAuNyAzMy4xNUg0MS44QzQyLjMgMzMuMTUgNDMuMiAzMi45NSA0My43IDMyLjk1QzQ0LjkgMzIuOTUgNDUuOCAzMy44NSA0NS44IDM1LjA1QzQ1LjggMzYuMTUgNDQuOSAzNy4xNSA0My43IDM3LjE1QzQzLjMgMzcuMTUgNDIuMyAzNi45NSA0MS44IDM2Ljk1SDMwLjhDMzAuMyAzNi45NSAyOS4yIDM3LjE1IDI4LjggMzcuMTVDMjcuNiAzNy4xNSAyNi43IDM2LjI1IDI2LjcgMzUuMDVDMjYuNiAzMy45NSAyNy41IDMyLjk1IDI4LjcgMzIuOTVaTTIuMSA2Ny4yNUMyLjUgNjcuMjUgMy42IDY3LjQ1IDQuMSA2Ny40NUgxOC41QzE5IDY3LjQ1IDE5LjkgNjcuMjUgMjAuNCA2Ny4yNUMyMS42IDY3LjI1IDIyLjUgNjguMTUgMjIuNSA2OS4zNUMyMi41IDcwLjQ1IDIxLjYgNzEuNDUgMjAuNCA3MS40NUMyMCA3MS40NSAxOSA3MS4yNSAxOC41IDcxLjI1SDQuMUMzLjYgNzEuMjUgMi41IDcxLjQ1IDIuMSA3MS40NUMwLjkgNzEuNDUgMCA3MC41NSAwIDY5LjM1QzAgNjguMjUgMC45IDY3LjI1IDIuMSA2Ny4yNVpNMjEuOSAzNS42NUMyMS45IDM1Ljk1IDIxLjggMzYuMzUgMjEuNiAzNi43NUMyMS4zIDM3LjQ1IDIwLjkgMzguMzUgMjAuNyAzOC44NUwxNC43IDU0LjY1QzE0LjUgNTUuMDUgMTQuNCA1NS41NSAxNC4yIDU2LjM1QzEzLjggNTcuNjUgMTIuNiA1OC4yNSAxMS4yIDU4LjI1SDEwLjhDOS40IDU4LjI1IDguMiA1Ny43NSA3LjggNTYuMzVDNy42IDU1LjU1IDcuNCA1NS4xNSA3LjIgNTQuNjVMMS4yIDM4Ljg1QzEgMzguMzUgMC42IDM3LjU1IDAuMiAzNi44NUMwLjEgMzYuNDUgMCAzNS45NSAwIDM1LjY1QzAgMzQuMTUgMS4yIDMyLjg1IDIuOCAzMi44NUMzLjkgMzIuODUgNSAzMy41NSA1LjMgMzQuNzVDNS41IDM1LjU1IDUuNSAzNi4xNSA2IDM3LjU1TDEwLjIgNDkuNDVDMTAuNSA1MC4zNSAxMC45IDUxLjQ1IDExLjEgNTIuMzVDMTEuMyA1MS40NSAxMS42IDUwLjQ1IDExLjkgNDkuNTVMMTYgMzcuNTVDMTYuNSAzNi4wNSAxNi40IDM1LjY1IDE2LjcgMzQuODVDMTcuMSAzMy42NSAxOC4xIDMyLjg1IDE5LjMgMzIuODVDMjAuOSAzMi44NSAyMS45IDM0LjE1IDIxLjkgMzUuNjVaTTI5LjcgNzEuNDVDMjguMiA3MS40NSAyNy4yIDcwLjQ1IDI3LjIgNjkuMTVDMjcuMiA2OC43NSAyNy4yIDY4LjI1IDI3LjggNjcuNDVMMzcuNCA1My40NUMzNy45IDUyLjc1IDM4LjUgNTIuMDUgMzkuMSA1MS4zNUgzMi4yQzMxLjUgNTEuMzUgMzAuNyA1MS42NSAzMC4xIDUxLjY1QzI4LjcgNTEuNjUgMjcuNiA1MC43NSAyNy42IDQ5LjM1QzI3LjYgNDcuOTUgMjguNyA0Ni45NSAzMC4xIDQ2Ljk1SDQyLjdDNDQuMiA0Ni45NSA0NS4yIDQ3Ljg1IDQ1LjIgNDkuMjVDNDUuMiA0OS42NSA0NSA1MC4zNSA0NC41IDUxLjA1TDM1LjIgNjQuODVDMzQuNyA2NS42NSAzNC4xIDY2LjQ1IDMzLjUgNjcuMDVINDEuMUM0MS45IDY3LjA1IDQyLjcgNjYuNzUgNDMuMyA2Ni43NUM0NC43IDY2Ljc1IDQ1LjcgNjcuNzUgNDUuNyA2OS4wNUM0NS43IDcwLjU1IDQ0LjUgNzEuNTUgNDMuMiA3MS41NUgyOS43VjcxLjQ1WiIgZmlsbD0iYmxhY2siLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yNzJfNDA1Ij4KPHJlY3Qgd2lkdGg9IjQ2IiBoZWlnaHQ9IjcyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=';
13
13
 
@@ -21,7 +21,7 @@ const LmvzHeader = class extends reactiveControllerHost.ReactiveControllerHost {
21
21
  primarySlot;
22
22
  secondarySlot;
23
23
  secondaryNav;
24
- keyboardNavigationController = new listKeyboardController.DirectionalFocusController(this, { orientation: 'both' });
24
+ keyboardNavigationController = new directionalFocusController.DirectionalFocusController(this, { orientation: 'both' });
25
25
  get primaryMenuitems() {
26
26
  return this.primarySlot?.assignedElements({ flatten: false }) || [];
27
27
  }
@@ -44,6 +44,9 @@ const LmvzHeader = class extends reactiveControllerHost.ReactiveControllerHost {
44
44
  handleActiveNavChange() {
45
45
  this.updateElementsActive();
46
46
  }
47
+ async initFocus() {
48
+ this.keyboardNavigationController.initFocus();
49
+ }
47
50
  componentDidLoad() {
48
51
  this.primarySlot?.addEventListener('slotchange', this.handlePrimaryNavItemsChange.bind(this));
49
52
  this.handlePrimaryNavItemsChange();
@@ -95,7 +98,7 @@ const LmvzHeader = class extends reactiveControllerHost.ReactiveControllerHost {
95
98
  }
96
99
  }
97
100
  render() {
98
- return (index.h(index.Host, { key: '5730219e990fc0f131ffacc7c88e6a5311553399', onFocus: this.delegateFocus.bind(this) }, index.h("div", { key: '7285f2dcac7d60c5d93328aa0e2fe8aa6b7b379c', class: "brand" }, index.h("slot", { key: 'd06d953ee82eab20da3f383c15032bcbe8803ff9', name: "brand" }, index.h("img", { key: 'd2441ce0efbf99c05f6344051703a96ffb376450', id: "fallback-logo-lmvz", src: logoSvg, alt: "Lehrmittelverlag Z\u00FCrich" }))), index.h("nav", { key: '7f092938728af5cb6568383a6622df49f222dc93', "aria-label": "Hauptnavigation" }, index.h("div", { key: 'caa56893d6185aebb89661e62a555407675ccc2a', role: "menubar", class: "primary-menubar" }, index.h("slot", { key: '90684f49cd3d53e20a63d4ebc37ec24e630bc313', name: "nav-primary", ref: (el) => (this.primarySlot = el) }), index.h("div", { key: 'ead46c08c6833565a55cd7af27fbece4e4468a03', role: "menu", id: "nav-secondary", class: "secondary-menubar", hidden: !this.lmvzActiveNav, ref: (el) => (this.secondaryNav = el) }, index.h("slot", { key: '3f2ba617d9ed78abb9ab94b9515b02bb6836385a', name: this.secondarySlotName, ref: (el) => (this.secondarySlot = el) })))), index.h("div", { key: '6fc79122baa3fd95992cbf30a465c3b40438a18f', class: "actions" }, index.h("slot", { key: 'c427f5a3ad693169e267060b9076086fd0e37670', name: "actions" }))));
101
+ return (index.h(index.Host, { key: 'ce4b8cf9f7687e4af97d45908e2f0e484b90684f', onFocus: this.delegateFocus.bind(this) }, index.h("div", { key: 'a2213d8038d126e47262c4ec18071dd4302152db', class: "brand" }, index.h("slot", { key: '68a0a1e2b21859d78d2f9a7d3f5c86020c52c225', name: "brand" }, index.h("img", { key: 'd0a878bc4c9f7a3460e857fb5aa52f1d942a0423', id: "fallback-logo-lmvz", src: logoSvg, alt: "Lehrmittelverlag Z\u00FCrich" }))), index.h("nav", { key: '687791624d6ced477bc0cce73ce97b26c7d03af0', "aria-label": "Hauptnavigation" }, index.h("div", { key: 'a9e8fa4a57e619a3d3b1056bfc0d5df74e89f630', role: "menubar", class: "primary-menubar" }, index.h("slot", { key: 'f75f0a3bed2267aff902490f1905c67ad1b7e6be', name: "nav-primary", ref: (el) => (this.primarySlot = el) }), index.h("div", { key: '3cf2d099bed99e4ba7b32a2f3171c69663785012', role: "menu", id: "nav-secondary", class: "secondary-menubar", hidden: !this.lmvzActiveNav, ref: (el) => (this.secondaryNav = el) }, index.h("slot", { key: '85dbe77ea8ab62aa400640495e11e2d174ca5210', name: this.secondarySlotName, ref: (el) => (this.secondarySlot = el) })))), index.h("div", { key: 'cf5d135a5b969af6a2bbb5432a10f8e1b9af1dca', class: "actions" }, index.h("slot", { key: '1a0323668942151c071a24238039c7a216358363', name: "actions" }))));
99
102
  }
100
103
  static get watchers() { return {
101
104
  "lmvzActiveNav": [{
@@ -3,10 +3,10 @@
3
3
  var index = require('./index-TGsVZNDP.js');
4
4
  var index$1 = require('./index-Bp6Dd2i1.js');
5
5
  var ariaValidationController = require('./aria-validation-controller-BC0Eaiv4.js');
6
- var reactiveControllerHost = require('./reactive-controller-host-B_lZtcA6.js');
7
- var stencil_util = require('./stencil.util-DxdYjVoH.js');
6
+ var reactiveControllerHost = require('./reactive-controller-host-Bc6B_T45.js');
7
+ var stencil_util = require('./stencil.util-CBrPLd-F.js');
8
8
  require('./aria-loader-DWUVcapD.js');
9
- require('./async.util-BQ60l-WC.js');
9
+ require('./async.util-Dnl6c82X.js');
10
10
 
11
11
  const lmvzInputCss = () => `@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('RouterBook-Regular'), local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'); font-weight: 400; } @font-face { font-family: Router; src: local('RouterMedium-Regular'), local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'); font-weight: 500; } @font-face { font-family: Router; src: local('RouterBold-Regular'), local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'); font-weight: 700; } } .sc-lmvz-input-h { display: block; font-family: var(--lmvz-global-font-family-default, Router); --input-radius: var(--lmvz-component-input-radius-default, 999px); --input-bg: var(--lmvz-semantic-color-surface-input-primary, #ffffff); --input-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); --input-border-color-hover: var(--lmvz-semantic-color-border-hover, #a1a1a1); --input-border-color-focus: var(--lmvz-semantic-color-border-active, #0f8acc); --input-border-width: var(--lmvz-semantic-border-width-default, 1px); --input-height: var(--lmvz-component-input-size-md, clamp(2.5rem, 2.44rem + 0.26vw, 2.75rem)); --input-padding-x: var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem)); --input-gap: var(--lmvz-component-input-gap-md, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --input-font-size: var(--lmvz-component-body-md-font-size, clamp(0.88rem, 0.84rem + 0.13vw, 1rem)); --label-color: var(--lmvz-semantic-color-on-surface-input-secondary, #545454); --input-text-color: var(--lmvz-semantic-color-on-surface-input-primary, #000000); --helper-text-color: var(--lmvz-semantic-color-on-surface-input-secondary, #545454); --error-text-color: var(--lmvz-semantic-color-status-on-danger, #a31419); --label-minimized-bg: var(--input-bg); --label-minimized-padding-x: 4px; --input-disabled-opacity: var(--lmvz-component-input-disabled-opacity, 40%); } [size='sm'].sc-lmvz-input-h { --input-height: var(--lmvz-component-input-size-sm, clamp(2rem, 1.94rem + 0.26vw, 2.25rem)); --input-padding-x: var(--lmvz-component-input-padding-sm, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem)); --input-gap: var(--lmvz-component-input-gap-sm, clamp(0.38rem, 0.31rem + 0.26vw, 0.63rem)); --input-font-size: var(--lmvz-component-body-sm-font-size, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem)); } [size='md'].sc-lmvz-input-h { --input-height: var(--lmvz-component-input-size-md, clamp(2.5rem, 2.44rem + 0.26vw, 2.75rem)); --input-padding-x: var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem)); --input-gap: var(--lmvz-component-input-gap-md, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --input-font-size: var(--lmvz-component-body-md-font-size, clamp(0.88rem, 0.84rem + 0.13vw, 1rem)); } [size='lg'].sc-lmvz-input-h { --input-height: var(--lmvz-component-input-size-lg, clamp(2.75rem, 2.69rem + 0.26vw, 3rem)); --input-padding-x: var(--lmvz-component-input-padding-lg, clamp(1rem, 0.94rem + 0.26vw, 1.25rem)); --input-gap: var(--lmvz-component-input-gap-lg, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)); --input-font-size: var(--lmvz-component-body-lg-font-size, clamp(1rem, 0.97rem + 0.13vw, 1.13rem)); } .input-container.sc-lmvz-input { display: flex; flex-direction: column; position: relative; width: 100%; } .input-wrapper.sc-lmvz-input { background-color: var(--input-bg); border: var(--input-border-width) solid var(--input-border-color); border-radius: var(--input-radius); display: flex; align-items: center; height: var(--input-height); padding: 0 var(--input-padding-x); position: relative; transition: border-color 0.2s ease; gap: var(--input-gap); } [disabled].sc-lmvz-input-h .input-wrapper.sc-lmvz-input { opacity: var(--input-disabled-opacity); cursor: not-allowed; pointer-events: none; } .input-container.sc-lmvz-input:focus-within .input-wrapper.sc-lmvz-input { border-color: var(--input-border-color-focus); outline: var(--lmvz-ds-outline, 1px solid #0e7ab4); outline-offset: var(--lmvz-ds-outline-offset, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)); } [error].sc-lmvz-input-h .input-wrapper.sc-lmvz-input { border-color: var(--error-text-color); } .sc-lmvz-input-h:not([disabled]) .input-wrapper.sc-lmvz-input:hover { border-color: var(--input-border-color-hover); } .label-input-group.sc-lmvz-input { position: relative; flex-grow: 1; display: flex; align-items: center; height: 100%; } label.sc-lmvz-input { position: absolute; left: 0; top: 50%; transform: translateY(-50%); color: var(--label-color); font-size: var(--input-font-size); font-weight: 400; pointer-events: none; transition: all 0.2s ease-out; background-color: transparent; padding: 0; margin: 0; line-height: 1.5; white-space: nowrap; } label.floating.sc-lmvz-input { top: 0.5em; transform: translateY(-100%); transform-origin: left top; font-size: var(--lmvz-component-body-2xs-font-size, clamp(0.5rem, 0.47rem + 0.13vw, 0.63rem)); background-color: var(--label-minimized-bg); padding: 0 var(--label-minimized-padding-x); left: -2px; color: var(--input-text-color); font-weight: 400; } .required-indicator.sc-lmvz-input { color: var(--error-text-color); margin-left: 2px; } input.sc-lmvz-input { border: none; background: transparent; width: 100%; height: 100%; color: var(--input-text-color); font-family: inherit; font-size: var(--input-font-size); outline: none; padding: 0; margin: 0; font-weight: 400; } input.sc-lmvz-input::placeholder { color: var(--label-color); } div.sc-lmvz-input:empty { display: none; } [role='status'].sc-lmvz-input { padding-top: 8px; padding-left: var(--input-padding-x); font-size: 12px; color: var(--helper-text-color); font-weight: 400; } [role='alert'].sc-lmvz-input { padding-top: 8px; padding-left: var(--input-padding-x); font-size: 12px; color: var(--error-text-color); font-weight: 400; } .sc-lmvz-input-s > lmvz-button { --lmvz-button-padding: 4px; }`;
12
12
 
@@ -2,9 +2,10 @@
2
2
 
3
3
  var index = require('./index-TGsVZNDP.js');
4
4
  var ariaValidationController = require('./aria-validation-controller-BC0Eaiv4.js');
5
- var elementActivationController = require('./element-activation-controller-DC_6T0Rt.js');
6
- var reactiveControllerHost = require('./reactive-controller-host-B_lZtcA6.js');
5
+ var elementActivationController = require('./element-activation-controller-BHqCUgQv.js');
6
+ var reactiveControllerHost = require('./reactive-controller-host-Bc6B_T45.js');
7
7
  require('./aria-loader-DWUVcapD.js');
8
+ require('./element.util-CRS_YJ59.js');
8
9
 
9
10
  const lmvzMenuitemCss = () => `@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('RouterBook-Regular'), local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'); font-weight: 400; } @font-face { font-family: Router; src: local('RouterMedium-Regular'), local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'); font-weight: 500; } @font-face { font-family: Router; src: local('RouterBold-Regular'), local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'); font-weight: 700; } } .sc-lmvz-menuitem-h { display: inline-flex; flex-direction: row; align-items: center; justify-content: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); border-radius: var(--lmvz-semantic-border-radius-lg, 14px); font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5 Router); padding: var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)) var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)); cursor: pointer; --lmvz-menuitem-color: var(--lmvz-semantic-color-int-on-tertiary, #000000); --lmvz-menuitem-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); background: var(--lmvz-menuitem-background); color: var(--lmvz-menuitem-color); } .sc-lmvz-menuitem-h:hover { --lmvz-menuitem-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } .sc-lmvz-menuitem-h:active { --lmvz-menuitem-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } .sc-lmvz-menuitem-h:focus-visible { z-index: 1; } [aria-expanded='true'].sc-lmvz-menuitem-h { --lmvz-menuitem-background: var(--lmvz-semantic-color-status-active, #f6fbfe); --lmvz-menuitem-color: var(--lmvz-semantic-color-status-on-active, #0e7ab4); }`;
10
11
 
@@ -17,14 +17,47 @@ const TYPE_SVG = {
17
17
  warning: WARNING_SVG,
18
18
  };
19
19
  const BLOCK_TAGS = new Set([
20
- 'ADDRESS', 'ARTICLE', 'ASIDE', 'BLOCKQUOTE',
21
- 'CAPTION', 'COLGROUP',
22
- 'DD', 'DETAILS', 'DIALOG', 'DIV', 'DL', 'DT',
23
- 'FIELDSET', 'FIGCAPTION', 'FIGURE', 'FOOTER', 'FORM',
24
- 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HEADER', 'HGROUP', 'HR',
25
- 'LI', 'MAIN', 'MENU', 'NAV',
26
- 'OL', 'P', 'PRE',
27
- 'SECTION', 'TABLE', 'TBODY', 'TD', 'TH', 'THEAD', 'TFOOT', 'TR',
20
+ 'ADDRESS',
21
+ 'ARTICLE',
22
+ 'ASIDE',
23
+ 'BLOCKQUOTE',
24
+ 'CAPTION',
25
+ 'COLGROUP',
26
+ 'DD',
27
+ 'DETAILS',
28
+ 'DIALOG',
29
+ 'DIV',
30
+ 'DL',
31
+ 'DT',
32
+ 'FIELDSET',
33
+ 'FIGCAPTION',
34
+ 'FIGURE',
35
+ 'FOOTER',
36
+ 'FORM',
37
+ 'H1',
38
+ 'H2',
39
+ 'H3',
40
+ 'H4',
41
+ 'H5',
42
+ 'H6',
43
+ 'HEADER',
44
+ 'HGROUP',
45
+ 'HR',
46
+ 'LI',
47
+ 'MAIN',
48
+ 'MENU',
49
+ 'NAV',
50
+ 'OL',
51
+ 'P',
52
+ 'PRE',
53
+ 'SECTION',
54
+ 'TABLE',
55
+ 'TBODY',
56
+ 'TD',
57
+ 'TH',
58
+ 'THEAD',
59
+ 'TFOOT',
60
+ 'TR',
28
61
  'UL',
29
62
  ]);
30
63
  const LmvzMessage = class {
@@ -70,7 +103,7 @@ const LmvzMessage = class {
70
103
  }
71
104
  render() {
72
105
  const role = this.live === 'assertive' ? 'alert' : this.live === 'polite' ? 'status' : 'note';
73
- return (index.h(index.Host, { key: 'f422e8ee4bb4466757c081bc6b33761db15cb02d', role: role }, this.leadingIcon && index.h("span", { key: 'c4077083db459a65cacce2cbb8e8dbb477572d95', class: "leading-icon", "aria-hidden": "true", innerHTML: TYPE_SVG[this.type] }), index.h("span", { key: '77c3af94194adc2b663c6d6626951e5789e17686', class: "message" }, index.h("slot", { key: '8db714f6bd0ac80a3c77a2768431baa37a63b3d1', ref: (el) => (this.messageSlot = el), onSlotchange: this.handleSlotChange })), this.actionLabel && (index.h("lmvz-button", { key: 'f75e835f39e97ea217727b55dc842ceda004834b', variant: "tertiary", scale: "small", onLmvzActivation: this.handleActionClick }, this.actionLabel)), this.dismissible && (index.h("lmvz-button", { key: '51b04ad48a68e0843445104e303eae5bb4cdd351', variant: "tertiary", scale: "small", "aria-label": this.closeLabel, onClick: this.handleDismissClick }, index.h("lmvz-icon", { key: '5949210f479a6a19f1c4bb9d3c91a77a1c0ad8a6', "aria-hidden": "true", icon: CLOSE_SM_SVG })))));
106
+ return (index.h(index.Host, { key: '99dad82a6300fb8d089f1ea688186d4b4316a058', role: role }, this.leadingIcon && index.h("span", { key: '2adf33102f7075a83ebf29d9b6e0d433a17beb68', class: "leading-icon", "aria-hidden": "true", innerHTML: TYPE_SVG[this.type] }), index.h("span", { key: '286d3d0ea065534b84be18c927b2fcd7f30f34bd', class: "message" }, index.h("slot", { key: '261e865980515a816382b2c7c6b3a52b500308bf', ref: (el) => (this.messageSlot = el), onSlotchange: this.handleSlotChange })), this.actionLabel && (index.h("lmvz-button", { key: '46d964c0490bbdd47426fc228db0e3ccb108b416', variant: "tertiary", scale: "small", onLmvzActivation: this.handleActionClick }, this.actionLabel)), this.dismissible && (index.h("lmvz-button", { key: 'ce1ec8beb756c2e11c948e227f94f81bd5568c88', variant: "tertiary", scale: "small", "aria-label": this.closeLabel, onClick: this.handleDismissClick }, index.h("lmvz-icon", { key: '5361c424e77ffea7984c2fd42357666cd86ba1d6', "aria-hidden": "true", icon: CLOSE_SM_SVG })))));
74
107
  }
75
108
  };
76
109
  LmvzMessage.style = lmvzMessageCss();
@@ -4,8 +4,8 @@ var index = require('./index-TGsVZNDP.js');
4
4
  var closeSm = require('./close-sm-CATLoxxd.js');
5
5
  var svg = require('./svg-CysxzZw7.js');
6
6
  var ariaValidationController = require('./aria-validation-controller-BC0Eaiv4.js');
7
- var element_util = require('./element.util-Dbyc8yUG.js');
8
- var reactiveControllerHost = require('./reactive-controller-host-B_lZtcA6.js');
7
+ var element_util = require('./element.util-CRS_YJ59.js');
8
+ var reactiveControllerHost = require('./reactive-controller-host-Bc6B_T45.js');
9
9
  require('./logger-NBdKPSou.js');
10
10
  require('./aria-loader-DWUVcapD.js');
11
11
 
@@ -233,7 +233,7 @@ const LmvzModal = class extends reactiveControllerHost.ReactiveControllerHost {
233
233
  this.hasHeader = this.hasAssignedContent(this.headerSlot);
234
234
  };
235
235
  render() {
236
- return (index.h(index.Host, { key: '8b5f506cdac223a440309d472639fe965b94f8c2' }, index.h("dialog", { key: '0b70ac4d9590266271052c4d7fdef03c684d9b72', ref: (element) => (this.dialogEl = element), onCancel: this.handleDialogCancel, onClose: this.handleDialogClose, ...this.dialogAccessibilityAttributes }, index.h("div", { key: '25b529bec1905408c2041b7370ab37586eade47d', class: "modal-shell" }, index.h("header", { key: 'd86ae4a6f4ac7f6efd38385f1407d1f6bfbb1abb', class: { header: true, 'has-title': this.hasHeader } }, index.h("div", { key: '7fd7059bfb0b90834895a87c2f2598e2e8c2ba80', class: "title", id: this.dialogTitleId, hidden: !this.hasHeader }, index.h("slot", { key: 'b6eb7885e220e5def4c3c8420d5b83f4a7e30907', name: "header", ref: (element) => (this.headerSlot = element), onSlotchange: this.handleHeaderSlotChange })), index.h("lmvz-button", { key: 'dcebb06482cdef7423c6b62ef877ca9aaabf55a4', ref: (element) => (this.closeButtonEl = element), type: "button", class: "close-button", "aria-label": this.closeLabel, onClick: this.handleCloseButtonClick, variant: "tertiary" }, index.h("lmvz-icon", { key: '0db22c68fe164ed2a33bfaeacf9eac619424f464', icon: closeIconSvg }))), index.h("div", { key: 'ef402c343f2c68210351f7556eec08f2e9be851b', class: "body" }, index.h("slot", { key: '3fe86dc88c88c2cf7bfe3429c62cb2047b64611a' })), index.h("footer", { key: '92b7bdab1ffe700749fc029723f70913f436397d', class: "actions", hidden: !this.buttonGroupEl?.hasActions }, index.h("lmvz-button-group", { key: '7e1b310fb1b20449ead14d0702af4977c74198dd', ref: (element) => (this.buttonGroupEl = element) }, index.h("slot", { key: 'cb2187ab2758c61e80b65f9fc55c6be5f9fd0458', name: "actions" })))))));
236
+ return (index.h(index.Host, { key: '8b5f506cdac223a440309d472639fe965b94f8c2' }, index.h("dialog", { key: '0b70ac4d9590266271052c4d7fdef03c684d9b72', ref: (element) => (this.dialogEl = element), onCancel: this.handleDialogCancel, onClose: this.handleDialogClose, ...this.dialogAccessibilityAttributes }, index.h("div", { key: '25b529bec1905408c2041b7370ab37586eade47d', class: "modal-shell" }, index.h("header", { key: 'd86ae4a6f4ac7f6efd38385f1407d1f6bfbb1abb', class: { header: true, 'has-title': this.hasHeader } }, index.h("div", { key: '7fd7059bfb0b90834895a87c2f2598e2e8c2ba80', class: "title", id: this.dialogTitleId, hidden: !this.hasHeader }, index.h("slot", { key: 'b6eb7885e220e5def4c3c8420d5b83f4a7e30907', name: "header", ref: (element) => (this.headerSlot = element), onSlotchange: this.handleHeaderSlotChange })), index.h("lmvz-button", { key: '72e17391097dfa756e572764f40080b6eec222b2', ref: (element) => (this.closeButtonEl = element), type: "button", class: "close-button", "aria-label": this.closeLabel, onLmvzActivation: this.handleCloseButtonClick, variant: "tertiary" }, index.h("lmvz-icon", { key: '7bbae1aefa9ccc6646d5861683e3476339a545e4', icon: closeIconSvg }))), index.h("div", { key: '9f22628448e9af527eb10ef2602c498afc55c029', class: "body" }, index.h("slot", { key: '413e72707749b3abc987ef47a81cccda4b874c84' })), index.h("footer", { key: 'a1a8f648e88d1f9045e9cf866d332aac69e033df', class: "actions", hidden: !this.buttonGroupEl?.hasActions }, index.h("lmvz-button-group", { key: '7d7eeee7a2551a09bfb4fc513bde48828be5ee8b', ref: (element) => (this.buttonGroupEl = element) }, index.h("slot", { key: '76b00523167c5fa08f11fc351a37638227401711', name: "actions" })))))));
237
237
  }
238
238
  static get watchers() { return {
239
239
  "open": [{