@lmvz-ds/components 0.27.1 → 0.28.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 (150) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/assets/icons/chevron-down.svg +1 -1
  3. package/cjs/{aria-validation-controller-BMV2tv9-.js → aria-validation-controller-Z4TtOp2l.js} +1 -1
  4. package/cjs/close-sm-CATLoxxd.js +5 -0
  5. package/cjs/{ds.constants-BbWUmoDv.js → ds.constants-JXqgKnXL.js} +5 -0
  6. package/cjs/{index-BCFBLj0e.js → index-TGsVZNDP.js} +26 -2
  7. package/cjs/index.cjs.js +3 -1
  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 +2 -2
  11. package/cjs/lmvz-card.cjs.entry.js +1 -1
  12. package/cjs/lmvz-checkbox.cjs.entry.js +2 -2
  13. package/cjs/lmvz-chip.cjs.entry.js +3 -3
  14. package/cjs/lmvz-components.cjs.js +2 -2
  15. package/cjs/lmvz-header_2.cjs.entry.js +2 -2
  16. package/cjs/lmvz-input.cjs.entry.js +2 -2
  17. package/cjs/lmvz-menuitem.cjs.entry.js +2 -2
  18. package/cjs/lmvz-message.cjs.entry.js +78 -0
  19. package/cjs/lmvz-modal.cjs.entry.js +5 -6
  20. package/cjs/lmvz-radio.cjs.entry.js +3 -3
  21. package/cjs/lmvz-select.cjs.entry.js +6 -6
  22. package/cjs/lmvz-snackbar.cjs.entry.js +5 -8
  23. package/cjs/lmvz-spinner.cjs.entry.js +20 -0
  24. package/cjs/lmvz-tab.cjs.entry.js +2 -2
  25. package/cjs/lmvz-tabs.cjs.entry.js +2 -2
  26. package/cjs/lmvz-toggle.cjs.entry.js +3 -3
  27. package/cjs/loader.cjs.js +2 -2
  28. package/cjs/warning-WEX_ABWL.js +8 -0
  29. package/collection/api/ds.constants.js +2 -0
  30. package/collection/assets/icons/chevron-down.svg +1 -1
  31. package/collection/collection-manifest.json +2 -0
  32. package/collection/components/lmvz-message/lmvz-message.css +50 -0
  33. package/collection/components/lmvz-message/lmvz-message.js +240 -0
  34. package/collection/components/lmvz-message/public.js +1 -0
  35. package/collection/components/lmvz-modal/lmvz-modal.js +1 -1
  36. package/collection/components/lmvz-radio/lmvz-radio.js +1 -1
  37. package/collection/components/lmvz-select/lmvz-select.css +63 -20
  38. package/collection/components/lmvz-select/lmvz-select.js +53 -2
  39. package/collection/components/lmvz-snackbar/lmvz-snackbar.js +1 -1
  40. package/collection/components/lmvz-spinner/lmvz-spinner.css +40 -0
  41. package/collection/components/lmvz-spinner/lmvz-spinner.js +64 -0
  42. package/collection/components/lmvz-tab/lmvz-tab.js +1 -1
  43. package/collection/components/lmvz-tabs/lmvz-tabs.js +1 -1
  44. package/collection/components/lmvz-toggle/lmvz-toggle.js +1 -1
  45. package/collection/index.js +2 -1
  46. package/collection/integration/header-integration/header-integration.js +1 -1
  47. package/components/index.d.ts +4 -0
  48. package/components/index.d.ts.bak +4 -0
  49. package/components/index.js +1 -1
  50. package/components/lmvz-action.js +1 -1
  51. package/components/lmvz-button-group.js +1 -1
  52. package/components/lmvz-button.js +1 -1
  53. package/components/lmvz-card.js +1 -1
  54. package/components/lmvz-checkbox.js +1 -1
  55. package/components/lmvz-chip.js +1 -1
  56. package/components/lmvz-header.js +1 -1
  57. package/components/lmvz-icon.js +1 -1
  58. package/components/lmvz-input.js +1 -1
  59. package/components/lmvz-menuitem.js +1 -1
  60. package/components/lmvz-message.d.ts +11 -0
  61. package/components/lmvz-message.d.ts.bak +11 -0
  62. package/components/lmvz-message.js +1 -0
  63. package/components/lmvz-modal.js +1 -1
  64. package/components/lmvz-radio.js +1 -1
  65. package/components/lmvz-select.js +1 -1
  66. package/components/lmvz-snackbar.js +1 -1
  67. package/components/lmvz-spinner.d.ts +11 -0
  68. package/components/lmvz-spinner.d.ts.bak +11 -0
  69. package/components/lmvz-spinner.js +1 -0
  70. package/components/lmvz-tab.js +1 -1
  71. package/components/lmvz-tabs.js +1 -1
  72. package/components/lmvz-toggle.js +1 -1
  73. package/components/p-BSV3KDWl.js +1 -0
  74. package/components/{p-2VdcUIrr.js → p-C0f2nNPZ.js} +1 -1
  75. package/components/{p-BJEQw1Sz.js → p-C8znmF2h.js} +1 -1
  76. package/components/{p-DjvbwRyl.js → p-CXakymyP.js} +1 -1
  77. package/components/{p-0P2Wb3pE.js → p-DAMVH-31.js} +1 -1
  78. package/components/p-DGg7OzDl.js +1 -0
  79. package/components/{p-Cs7RCOHZ.js → p-DGlgVBPj.js} +1 -1
  80. package/components/p-DsT_K3_I.js +1 -0
  81. package/esm/{aria-validation-controller-D-KO0Asb.js → aria-validation-controller-BnyUKeJ6.js} +1 -1
  82. package/esm/close-sm-BSV3KDWl.js +3 -0
  83. package/esm/{ds.constants-HeV_qTCr.js → ds.constants-DWePb-zu.js} +4 -1
  84. package/esm/{index-CKYszC64.js → index-BPeerEwm.js} +26 -2
  85. package/esm/index.js +1 -1
  86. package/esm/lmvz-action.entry.js +1 -1
  87. package/esm/lmvz-button-group.entry.js +1 -1
  88. package/esm/lmvz-button_2.entry.js +2 -2
  89. package/esm/lmvz-card.entry.js +1 -1
  90. package/esm/lmvz-checkbox.entry.js +2 -2
  91. package/esm/lmvz-chip.entry.js +3 -3
  92. package/esm/lmvz-components.js +3 -3
  93. package/esm/lmvz-header_2.entry.js +2 -2
  94. package/esm/lmvz-input.entry.js +2 -2
  95. package/esm/lmvz-menuitem.entry.js +2 -2
  96. package/esm/lmvz-message.entry.js +76 -0
  97. package/esm/lmvz-modal.entry.js +4 -5
  98. package/esm/lmvz-radio.entry.js +3 -3
  99. package/esm/lmvz-select.entry.js +6 -6
  100. package/esm/lmvz-snackbar.entry.js +3 -6
  101. package/esm/lmvz-spinner.entry.js +18 -0
  102. package/esm/lmvz-tab.entry.js +2 -2
  103. package/esm/lmvz-tabs.entry.js +2 -2
  104. package/esm/lmvz-toggle.entry.js +3 -3
  105. package/esm/loader.js +3 -3
  106. package/esm/warning-DsT_K3_I.js +5 -0
  107. package/hydrate/index.js +154 -17
  108. package/hydrate/index.mjs +154 -17
  109. package/lmvz-components/index.esm.js +1 -1
  110. package/lmvz-components/lmvz-components.esm.js +1 -1
  111. package/lmvz-components/{p-6484fbc6.entry.js → p-211ee69d.entry.js} +1 -1
  112. package/lmvz-components/{p-c6228cee.entry.js → p-3b3e532f.entry.js} +1 -1
  113. package/lmvz-components/p-4484ab62.entry.js +1 -0
  114. package/lmvz-components/{p-cb756f95.entry.js → p-44fea470.entry.js} +1 -1
  115. package/lmvz-components/p-45c3ccb6.entry.js +1 -0
  116. package/lmvz-components/{p-758dbb82.entry.js → p-4dc44520.entry.js} +1 -1
  117. package/lmvz-components/{p-c5c064f1.entry.js → p-5ace2c2d.entry.js} +1 -1
  118. package/lmvz-components/p-5c951888.entry.js +1 -0
  119. package/lmvz-components/{p-8874ff19.entry.js → p-5fcc6f84.entry.js} +1 -1
  120. package/lmvz-components/p-61752dcd.entry.js +1 -0
  121. package/lmvz-components/p-84edbe53.entry.js +1 -0
  122. package/lmvz-components/{p-43b463bf.entry.js → p-877d0f3e.entry.js} +1 -1
  123. package/lmvz-components/{p-bd23eab3.entry.js → p-8b4740bb.entry.js} +1 -1
  124. package/lmvz-components/p-8fc25ee2.entry.js +1 -0
  125. package/lmvz-components/p-BPeerEwm.js +2 -0
  126. package/lmvz-components/p-BSV3KDWl.js +1 -0
  127. package/lmvz-components/{p-hRb38wX6.js → p-CPOia2kT.js} +1 -1
  128. package/lmvz-components/p-DWePb-zu.js +1 -0
  129. package/lmvz-components/p-DsT_K3_I.js +1 -0
  130. package/lmvz-components/{p-25f045b2.entry.js → p-a4077c9f.entry.js} +1 -1
  131. package/lmvz-components/{p-a5c921dc.entry.js → p-d53f8afe.entry.js} +1 -1
  132. package/lmvz-components/p-dc28c6d8.entry.js +1 -0
  133. package/lmvz-components/{p-6de9981f.entry.js → p-e3ce44a3.entry.js} +1 -1
  134. package/manifest.json +430 -2
  135. package/package.json +9 -1
  136. package/types/api/ds.constants.d.ts +8 -0
  137. package/types/components/lmvz-message/lmvz-message.d.ts +20 -0
  138. package/types/components/lmvz-message/public.d.ts +1 -0
  139. package/types/components/lmvz-select/lmvz-select.d.ts +3 -0
  140. package/types/components/lmvz-spinner/lmvz-spinner.d.ts +5 -0
  141. package/types/components.d.ts +133 -0
  142. package/types/index.d.ts +2 -1
  143. package/components/p-c7OzBK8f.js +0 -1
  144. package/lmvz-components/p-0a37e0f2.entry.js +0 -1
  145. package/lmvz-components/p-6988c3ea.entry.js +0 -1
  146. package/lmvz-components/p-7b15cdce.entry.js +0 -1
  147. package/lmvz-components/p-CKYszC64.js +0 -2
  148. package/lmvz-components/p-HeV_qTCr.js +0 -1
  149. package/lmvz-components/p-da16ff58.entry.js +0 -1
  150. package/lmvz-components/p-fe607f10.entry.js +0 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BCFBLj0e.js');
3
+ var index = require('./index-TGsVZNDP.js');
4
4
  var listKeyboardController = require('./list-keyboard-controller-CzZdPBeH.js');
5
5
  var reactiveControllerHost = require('./reactive-controller-host-B_lZtcA6.js');
6
6
  require('./component-C7cavwmZ.js');
@@ -240,7 +240,7 @@ const LmvzTabs = class extends reactiveControllerHost.ReactiveControllerHost {
240
240
  this.selectTab(value);
241
241
  };
242
242
  render() {
243
- return (index.h(index.Host, { key: '3a503531069e0d83be9bde0e9bc2e1747498baf2', onClick: this.handleTabClick, onKeydown: this.handleKeydown }, index.h("div", { key: '25a37d52ba6c8c1b46c1e624da13b918e9bd33d1', role: "tablist", "aria-orientation": this.orientation, class: "tablist" }, index.h("slot", { key: '00b4ba4cf88081d8cd4ee21976398646e4f19679', ref: (el) => (this.tabSlotEl = el) })), index.h("div", { key: '872aba20a4d26facafc71821f7fc88cf96b05a33', part: "panels-container", class: "panels-container" }, index.h("slot", { key: '7681c24945e7d50e95f749bd5c056704db120b11', name: "panels", ref: (el) => (this.panelSlotEl = el) }))));
243
+ return (index.h(index.Host, { key: '5f15ece5a15ef010e84c169171acc3647386ac76', onClick: this.handleTabClick, onKeydown: this.handleKeydown }, index.h("div", { key: '38fca070606c4e15fe3218d818c9c271619088c6', role: "tablist", "aria-orientation": this.orientation, class: "tablist" }, index.h("slot", { key: 'a18f16a5fbcd5bdd7694abfd362cd601e852b546', ref: (el) => (this.tabSlotEl = el) })), index.h("div", { key: '2d84a819e13e658a677835e629e057f7a19556a0', part: "panels-container", class: "panels-container" }, index.h("slot", { key: 'e66d34d3f861b23700ad5a29076744fa1f93a5f2', name: "panels", ref: (el) => (this.panelSlotEl = el) }))));
244
244
  }
245
245
  static get watchers() { return {
246
246
  "value": [{
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BCFBLj0e.js');
4
- var ariaValidationController = require('./aria-validation-controller-BMV2tv9-.js');
3
+ var index = require('./index-TGsVZNDP.js');
4
+ var ariaValidationController = require('./aria-validation-controller-Z4TtOp2l.js');
5
5
  var component = require('./component-C7cavwmZ.js');
6
6
  var reactiveControllerHost = require('./reactive-controller-host-B_lZtcA6.js');
7
7
  require('./aria-loader-BRo2FTGh.js');
@@ -82,7 +82,7 @@ const LmvzToggle = class extends reactiveControllerHost.ReactiveControllerHost {
82
82
  this.lmvzChange.emit(newChecked);
83
83
  };
84
84
  render() {
85
- return (index.h(index.Host, { key: '452ea30df1191b45c606d7512982a0f743b7bf7a' }, index.h("span", { key: 'c538806b64de8bce70d0bc55c6a9eb279f4eff4c', class: "track" }, index.h("input", { key: 'afe04f4305744b3110092f9bfcbe8b4ee6f21c37', type: "checkbox", role: "switch", id: this.toggleId, checked: this.checked, disabled: this.disabled, required: this.required, name: this.name, value: this.value, form: this.form, ref: (el) => (this.nativeInputElement = el), onChange: this.handleChange }), index.h("span", { key: 'e8089a6e8ee084b3f316c837cf3225017c33a15e', class: "thumb", "aria-hidden": "true" })), index.h("label", { key: '085055f461f4240df2eb2b4ea441a5e782240276', htmlFor: this.toggleId }, this.label)));
85
+ return (index.h(index.Host, { key: '0b0266a50b2307a13c635ee1a2c1b7e44cacccb4' }, index.h("span", { key: 'e8cf4c4e35e013627bb6eeb4b7bae46060c3a846', class: "track" }, index.h("input", { key: '6dc43e819aa89c5b6394c3d2eed0e8852213766a', 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 }), index.h("span", { key: '7e57a501ebcb9f560d0a03c35dbaa7744933246b', class: "thumb", "aria-hidden": "true" })), index.h("label", { key: '0e8d733132e72593048ce3eb1f8c2049f3420b2a', htmlFor: this.toggleId }, this.label)));
86
86
  }
87
87
  static get formAssociated() { return true; }
88
88
  static get watchers() { return {
package/cjs/loader.cjs.js CHANGED
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BCFBLj0e.js');
3
+ var index = require('./index-TGsVZNDP.js');
4
4
  var appGlobals = require('./app-globals-V2Kpy_OQ.js');
5
5
 
6
6
  const defineCustomElements = async (win, options) => {
7
7
  if (typeof window === 'undefined') return undefined;
8
8
  await appGlobals.globalScripts();
9
- return index.bootstrapLazy([["lmvz-modal.cjs",[[769,"lmvz-modal",{"open":[1540],"closeLabel":[1,"close-label"],"hasHeader":[32]},[[0,"submit","handleFormDialogSubmit"]],{"open":[{"handleOpenChange":0}]}]]],["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-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-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-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],"selectedLabel":[32]},null,{"value":[{"handleValueChange":0}]}]]],["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",[[257,"lmvz-button-group",{"primaryEnabledAction":[2064],"hasActions":[2052,"has-actions"]}]]],["lmvz-button_2.cjs",[[785,"lmvz-button",{"ti":[2562,"tabindex"],"scale":[513],"variant":[513],"disabled":[516],"type":[1],"form":[1],"formMethod":[1,"form-method"],"name":[1],"value":[1]}],[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);
9
+ 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-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-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-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",[[257,"lmvz-button-group",{"primaryEnabledAction":[2064],"hasActions":[2052,"has-actions"]}]]],["lmvz-button_2.cjs",[[785,"lmvz-button",{"ti":[2562,"tabindex"],"scale":[513],"variant":[513],"disabled":[516],"type":[1],"form":[1],"formMethod":[1,"form-method"],"name":[1],"value":[1]}],[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);
10
10
  };
11
11
 
12
12
  exports.setNonce = index.setNonce;
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ const infoSvg = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEyIDJDNi40NzcxNSAyIDIgNi40NzcxNSAyIDEyQzIgMTcuNTIyOCA2LjQ3NzE1IDIyIDEyIDIyQzE3LjUyMjggMjIgMjIgMTcuNTIyOCAyMiAxMkMyMiA2LjQ3NzE1IDE3LjUyMjggMiAxMiAyWk0xMiA3QzExLjQ0NzcgNyAxMSA3LjQ0NzcyIDExIDhDMTEgOC41NTIyOCAxMS40NDc3IDkgMTIgOUMxMi41NTIzIDkgMTMgOC41NTIyOCAxMyA4QzEzIDcuNDQ3NzIgMTIuNTUyMyA3IDEyIDdaTTExIDExQzEwLjQ0NzcgMTEgMTAgMTEuNDQ3NyAxMCAxMkMxMCAxMi41NTIzIDEwLjQ0NzcgMTMgMTEgMTNWMTZDMTEgMTYuNTUyMyAxMS40NDc3IDE3IDEyIDE3SDEzQzEzLjU1MjMgMTcgMTQgMTYuNTUyMyAxNCAxNkMxNCAxNS40NDc3IDEzLjU1MjMgMTUgMTMgMTVWMTJDMTMgMTEuNDQ3NyAxMi41NTIzIDExIDEyIDExSDExWiIvPgo8L3N2Zz4K';
4
+
5
+ const warningSvg = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjI4NjQgMy4wNDkzOEMxMS4wMzgwIDEuNjUwMjEgMTIuOTYyMCAxLjY1MDIxIDEzLjcxMzYgMy4wNDkzOEwyMi42NjY4IDE5LjI0OTRDMjMuNDAyNiAyMC42MTYxIDIyLjQ1ODggMjIuMjUwMCAyMC45NTMyIDIyLjI1MDBIMy4wNDY4MEMxLjU0MTIwIDIyLjI1MDAgMC41OTc0MTAgMjAuNjE2MSAxLjMzMzIwIDE5LjI0OTRMMTAuMjg2NCAzLjA0OTM4Wk0xMiA4QzExLjQ0NzcgOCAxMSA4LjQ0NzcyIDExIDlWMTRDMTEgMTQuNTUyMyAxMS40NDc3IDE1IDEyIDE1QzEyLjU1MjMgMTUgMTMgMTQuNTUyMyAxMyAxNFY5QzEzIDguNDQ3NzIgMTIuNTUyMyA4IDEyIDhaTTEyIDE2QzExLjQ0NzcgMTYgMTEgMTYuNDQ3NyAxMSAxN0MxMSAxNy41NTIzIDExLjQ0NzcgMTggMTIgMThDMTIuNTUyMyAxOCAxMyAxNy41NTIzIDEzIDE3QzEzIDE2LjQ0NzcgMTIuNTUyMyAxNiAxMiAxNloiLz4KPC9zdmc+Cg==';
6
+
7
+ exports.infoSvg = infoSvg;
8
+ exports.warningSvg = warningSvg;
@@ -4,10 +4,12 @@ export const sizes = ['xs', 'sm', 'md', 'lg'];
4
4
  export const textSizes = [...sizes, 'xl'];
5
5
  export const inputTypes = ['text', 'email', 'password', 'tel', 'url', 'search', 'number'];
6
6
  export const inputSizes = ['sm', 'md', 'lg'];
7
+ export const selectSizes = scaleValues;
7
8
  export const iconSizes = [...sizes, 'inherit'];
8
9
  export const iconWeights = ['thin', 'medium', 'bold'];
9
10
  export const chipTypes = ['active', 'warning', 'success', 'error', 'neutral'];
10
11
  export const chipSizes = ['default', 'small'];
12
+ export const messageTypes = ['neutral', 'warning'];
11
13
  export const snackbarStatuses = ['success', 'warning', 'error'];
12
14
  export const snackbarPriorities = ['low', 'normal', 'high'];
13
15
  export const snackbarDismissReasons = ['timeout', 'manual', 'action', 'overridden', 'swallowed'];
@@ -1,3 +1,3 @@
1
1
  <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M20.3334 8.66663L12.0001 17L3.66675 8.66663" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
2
+ <path d="M20.3334 8.66663L12.0001 17L3.66675 8.66663" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"/>
3
3
  </svg>
@@ -10,10 +10,12 @@
10
10
  "components/lmvz-icon/lmvz-icon.js",
11
11
  "components/lmvz-input/lmvz-input.js",
12
12
  "components/lmvz-menuitem/lmvz-menuitem.js",
13
+ "components/lmvz-message/lmvz-message.js",
13
14
  "components/lmvz-modal/lmvz-modal.js",
14
15
  "components/lmvz-radio/lmvz-radio.js",
15
16
  "components/lmvz-select/lmvz-select.js",
16
17
  "components/lmvz-snackbar/lmvz-snackbar.js",
18
+ "components/lmvz-spinner/lmvz-spinner.js",
17
19
  "components/lmvz-tab/lmvz-tab.js",
18
20
  "components/lmvz-tabs/lmvz-tabs.js",
19
21
  "components/lmvz-toggle/lmvz-toggle.js",
@@ -0,0 +1,50 @@
1
+ :host {
2
+ display: flex;
3
+ flex-direction: row;
4
+ align-items: flex-start;
5
+ width: 100%;
6
+
7
+ padding: var(--lmvz-dimension-10-12, clamp(0.63rem, 0.59rem + 0.13vw, 0.75rem)) var(--lmvz-dimension-12-14, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem));
8
+ gap: var(--lmvz-dimension-8-12, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem));
9
+
10
+ border: var(--lmvz-semantic-border-width-default, 1px) solid;
11
+ border-radius: var(--lmvz-semantic-border-radius-md, 6px);
12
+
13
+ font: var(--lmvz-typography-body-md-strong, 500 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5
14
+ Router);
15
+ }
16
+
17
+ /* neutral maps to status-active tokens to preserve Figma's "neutral" naming convention;
18
+ the design system token uses "active" for the neutral/informational status colour role */
19
+
20
+ :host([type='neutral']) {
21
+ background-color: var(--lmvz-semantic-color-status-active, #f6fbfe);
22
+ border-color: var(--lmvz-semantic-color-status-on-active-subtle, #c1e6fa);
23
+ color: var(--lmvz-semantic-color-status-on-active, #0e7ab4);
24
+ }
25
+
26
+ :host([type='warning']) {
27
+ background-color: var(--lmvz-semantic-color-status-warning, #fffbf0);
28
+ border-color: var(--lmvz-semantic-color-status-on-warning-subtle, #ffdf75);
29
+ color: var(--lmvz-semantic-color-status-on-warning, #7a5e00);
30
+ }
31
+
32
+ .leading-icon {
33
+ flex-shrink: 0;
34
+ display: flex;
35
+ align-items: flex-start;
36
+ /* 2px raw value — parity row TM-1: icon optical alignment offset; no token exists for
37
+ sub-4px micro-adjustments in the current token scale */
38
+ padding-top: 2px;
39
+ width: var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem));
40
+ height: var(--lmvz-component-icon-size-md, clamp(1rem, 0.94rem + 0.26vw, 1.25rem));
41
+ }
42
+
43
+ .leading-icon svg {
44
+ width: 100%;
45
+ height: 100%;
46
+ }
47
+
48
+ .message {
49
+ flex: 1;
50
+ }
@@ -0,0 +1,240 @@
1
+ import { toValidSvgStringWithFallback } from "@lmvz-ds/lib-ts/validation/svg.js";
2
+ import { Host, h } from "@stencil/core";
3
+ import { isAriaValidationEnabled } from "../..";
4
+ import closeSmSvg from "@lmvz-ds/icons/assets/close-sm.svg";
5
+ import infoSvg from "@lmvz-ds/icons/assets/info.svg";
6
+ import warningSvg from "@lmvz-ds/icons/assets/warning.svg";
7
+ const INFO_SVG = toValidSvgStringWithFallback(infoSvg);
8
+ const WARNING_SVG = toValidSvgStringWithFallback(warningSvg);
9
+ const CLOSE_SM_SVG = toValidSvgStringWithFallback(closeSmSvg);
10
+ const TYPE_SVG = {
11
+ neutral: INFO_SVG,
12
+ warning: WARNING_SVG,
13
+ };
14
+ const BLOCK_TAGS = new Set([
15
+ 'ADDRESS', 'ARTICLE', 'ASIDE', 'BLOCKQUOTE',
16
+ 'CAPTION', 'COLGROUP',
17
+ 'DD', 'DETAILS', 'DIALOG', 'DIV', 'DL', 'DT',
18
+ 'FIELDSET', 'FIGCAPTION', 'FIGURE', 'FOOTER', 'FORM',
19
+ 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HEADER', 'HGROUP', 'HR',
20
+ 'LI', 'MAIN', 'MENU', 'NAV',
21
+ 'OL', 'P', 'PRE',
22
+ 'SECTION', 'TABLE', 'TBODY', 'TD', 'TH', 'THEAD', 'TFOOT', 'TR',
23
+ 'UL',
24
+ ]);
25
+ export class LmvzMessage {
26
+ messageSlot;
27
+ warnedTags = new Set();
28
+ type = 'neutral';
29
+ live = 'off';
30
+ leadingIcon = true;
31
+ dismissible = false;
32
+ closeLabel = 'Schliessen';
33
+ actionLabel;
34
+ lmvzDismiss;
35
+ lmvzAction;
36
+ componentDidLoad() {
37
+ this.checkSlotContent();
38
+ }
39
+ handleDismissClick = () => {
40
+ this.lmvzDismiss.emit();
41
+ };
42
+ handleActionClick = () => {
43
+ this.lmvzAction.emit();
44
+ };
45
+ handleSlotChange = () => {
46
+ this.checkSlotContent();
47
+ };
48
+ checkSlotContent() {
49
+ if (!isAriaValidationEnabled())
50
+ return;
51
+ this.warnedTags.clear();
52
+ const elements = this.messageSlot?.assignedElements({ flatten: true }) ?? [];
53
+ for (const el of elements) {
54
+ const tag = el.tagName;
55
+ if (BLOCK_TAGS.has(tag) && !this.warnedTags.has(tag)) {
56
+ console.warn(`[lmvz-message] Block-level element <${tag.toLowerCase()}> is not allowed in the message slot. Only inline content is permitted.`);
57
+ this.warnedTags.add(tag);
58
+ }
59
+ }
60
+ }
61
+ render() {
62
+ const role = this.live === 'assertive' ? 'alert' : this.live === 'polite' ? 'status' : 'note';
63
+ return (h(Host, { key: '447fd8ce5b2c9cd176eb4408e9e29773364bfcef', role: role }, this.leadingIcon && h("span", { key: '63414bc912e2feda3a553ead42c660953e25d4c4', class: "leading-icon", "aria-hidden": "true", innerHTML: TYPE_SVG[this.type] }), h("span", { key: '4cbdeffedcb8e8c3b7a267b25d2ab2eef6ad26bb', class: "message" }, h("slot", { key: 'b7b6a462f9ae5571114c8b8876387ee9f97c9903', ref: (el) => (this.messageSlot = el), onSlotchange: this.handleSlotChange })), this.actionLabel && (h("lmvz-button", { key: '7b4362ef6d69e27cc614b2445daf5f217e8f21ea', variant: "tertiary", scale: "small", onLmvzActivation: this.handleActionClick }, this.actionLabel)), this.dismissible && (h("lmvz-button", { key: 'dae3ff6f9f8606811722c08b6465145b542149a1', variant: "tertiary", scale: "small", "aria-label": this.closeLabel, onClick: this.handleDismissClick }, h("lmvz-icon", { key: '0e5e7e1deef5027e218271c79d04b43f3a3109e1', "aria-hidden": "true", icon: CLOSE_SM_SVG })))));
64
+ }
65
+ static get is() { return "lmvz-message"; }
66
+ static get encapsulation() { return "shadow"; }
67
+ static get originalStyleUrls() {
68
+ return {
69
+ "$": ["lmvz-message.css"]
70
+ };
71
+ }
72
+ static get styleUrls() {
73
+ return {
74
+ "$": ["lmvz-message.css"]
75
+ };
76
+ }
77
+ static get properties() {
78
+ return {
79
+ "type": {
80
+ "type": "string",
81
+ "mutable": false,
82
+ "complexType": {
83
+ "original": "Message.Type",
84
+ "resolved": "\"neutral\" | \"warning\"",
85
+ "references": {
86
+ "Message": {
87
+ "location": "import",
88
+ "path": "../../api",
89
+ "id": "src/api/index.d.ts::Message",
90
+ "referenceLocation": "Message"
91
+ }
92
+ }
93
+ },
94
+ "required": false,
95
+ "optional": false,
96
+ "docs": {
97
+ "tags": [],
98
+ "text": ""
99
+ },
100
+ "getter": false,
101
+ "setter": false,
102
+ "reflect": true,
103
+ "attribute": "type",
104
+ "defaultValue": "'neutral'"
105
+ },
106
+ "live": {
107
+ "type": "string",
108
+ "mutable": false,
109
+ "complexType": {
110
+ "original": "'off' | 'polite' | 'assertive'",
111
+ "resolved": "\"assertive\" | \"off\" | \"polite\"",
112
+ "references": {}
113
+ },
114
+ "required": false,
115
+ "optional": false,
116
+ "docs": {
117
+ "tags": [],
118
+ "text": ""
119
+ },
120
+ "getter": false,
121
+ "setter": false,
122
+ "reflect": false,
123
+ "attribute": "live",
124
+ "defaultValue": "'off'"
125
+ },
126
+ "leadingIcon": {
127
+ "type": "boolean",
128
+ "mutable": false,
129
+ "complexType": {
130
+ "original": "boolean",
131
+ "resolved": "boolean",
132
+ "references": {}
133
+ },
134
+ "required": false,
135
+ "optional": false,
136
+ "docs": {
137
+ "tags": [],
138
+ "text": ""
139
+ },
140
+ "getter": false,
141
+ "setter": false,
142
+ "reflect": false,
143
+ "attribute": "leading-icon",
144
+ "defaultValue": "true"
145
+ },
146
+ "dismissible": {
147
+ "type": "boolean",
148
+ "mutable": false,
149
+ "complexType": {
150
+ "original": "boolean",
151
+ "resolved": "boolean",
152
+ "references": {}
153
+ },
154
+ "required": false,
155
+ "optional": false,
156
+ "docs": {
157
+ "tags": [],
158
+ "text": ""
159
+ },
160
+ "getter": false,
161
+ "setter": false,
162
+ "reflect": false,
163
+ "attribute": "dismissible",
164
+ "defaultValue": "false"
165
+ },
166
+ "closeLabel": {
167
+ "type": "string",
168
+ "mutable": false,
169
+ "complexType": {
170
+ "original": "string",
171
+ "resolved": "string",
172
+ "references": {}
173
+ },
174
+ "required": false,
175
+ "optional": false,
176
+ "docs": {
177
+ "tags": [],
178
+ "text": ""
179
+ },
180
+ "getter": false,
181
+ "setter": false,
182
+ "reflect": false,
183
+ "attribute": "close-label",
184
+ "defaultValue": "'Schliessen'"
185
+ },
186
+ "actionLabel": {
187
+ "type": "string",
188
+ "mutable": false,
189
+ "complexType": {
190
+ "original": "string",
191
+ "resolved": "string | undefined",
192
+ "references": {}
193
+ },
194
+ "required": false,
195
+ "optional": true,
196
+ "docs": {
197
+ "tags": [],
198
+ "text": ""
199
+ },
200
+ "getter": false,
201
+ "setter": false,
202
+ "reflect": false,
203
+ "attribute": "action-label"
204
+ }
205
+ };
206
+ }
207
+ static get events() {
208
+ return [{
209
+ "method": "lmvzDismiss",
210
+ "name": "lmvzDismiss",
211
+ "bubbles": true,
212
+ "cancelable": false,
213
+ "composed": true,
214
+ "docs": {
215
+ "tags": [],
216
+ "text": ""
217
+ },
218
+ "complexType": {
219
+ "original": "void",
220
+ "resolved": "void",
221
+ "references": {}
222
+ }
223
+ }, {
224
+ "method": "lmvzAction",
225
+ "name": "lmvzAction",
226
+ "bubbles": true,
227
+ "cancelable": false,
228
+ "composed": true,
229
+ "docs": {
230
+ "tags": [],
231
+ "text": ""
232
+ },
233
+ "complexType": {
234
+ "original": "void",
235
+ "resolved": "void",
236
+ "references": {}
237
+ }
238
+ }];
239
+ }
240
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -223,7 +223,7 @@ export class LmvzModal extends ReactiveControllerHost {
223
223
  this.hasHeader = this.hasAssignedContent(this.headerSlot);
224
224
  };
225
225
  render() {
226
- return (h(Host, { key: '1fbdbb1ab2d3ad423075465108d4ff807d07404e' }, h("dialog", { key: '622dd60366ad594e16471cc8921c97d23af14ccb', ref: (element) => (this.dialogEl = element), onCancel: this.handleDialogCancel, onClose: this.handleDialogClose, ...this.dialogAccessibilityAttributes }, h("div", { key: 'bcdfbefbd5f380e2bf946aed479d542a33927af1', class: "modal-shell" }, h("header", { key: 'dcd23467473d58b51bddaf613b3ac8c922eecdc6', class: { header: true, 'has-title': this.hasHeader } }, h("div", { key: 'b2aa21fda4a80d2ea003e6ec876c2b74df5d29fd', class: "title", id: this.dialogTitleId, hidden: !this.hasHeader }, h("slot", { key: 'b7238e5b24c0822a94087d4ff0567e6406542c73', name: "header", ref: (element) => (this.headerSlot = element), onSlotchange: this.handleHeaderSlotChange })), h("lmvz-button", { key: '5059671fb4d81c685becd3adb0be52dd92ec4dec', ref: (element) => (this.closeButtonEl = element), type: "button", class: "close-button", "aria-label": this.closeLabel, onClick: this.handleCloseButtonClick, variant: "tertiary" }, h("lmvz-icon", { key: '498447e60e0e33fc165f39cea35434080e869d3c', icon: closeIconSvg }))), h("div", { key: '39ecefb52d5990cb689b0e4f18a8b6fc501c840d', class: "body" }, h("slot", { key: 'b014d0633c28fb6b399f11f2323e102949548776' })), h("footer", { key: '201dae98bcf810f369d77b7e9f36d7cc71ed5db4', class: "actions", hidden: !this.buttonGroupEl?.hasActions }, h("lmvz-button-group", { key: 'e4559d383992e059f915670a0874cc3b9ef655a3', ref: (element) => (this.buttonGroupEl = element) }, h("slot", { key: '88b007e139d4a166a2ee886dcd0256293d5d33c9', name: "actions" })))))));
226
+ return (h(Host, { key: '5fbfbed1ae590e58f32ba47a8c3e1a321d59ba6b' }, h("dialog", { key: '90f0393450eaf0681b54cbb95f79379d951d652a', ref: (element) => (this.dialogEl = element), onCancel: this.handleDialogCancel, onClose: this.handleDialogClose, ...this.dialogAccessibilityAttributes }, h("div", { key: 'f07319e7cdf70f8d35b9aaabb83d7c284fec2c0f', class: "modal-shell" }, h("header", { key: 'a17ee4e506cef206357d07db1689dd46cf6cab05', class: { header: true, 'has-title': this.hasHeader } }, h("div", { key: '3695c1c15530a330493fb1d8e990b59ddb246375', class: "title", id: this.dialogTitleId, hidden: !this.hasHeader }, h("slot", { key: 'a2113f68da9c8ad2b697d5b76644533b9b59c664', name: "header", ref: (element) => (this.headerSlot = element), onSlotchange: this.handleHeaderSlotChange })), h("lmvz-button", { key: '33c6c3339144a0a69d869857b18b950726281d9e', ref: (element) => (this.closeButtonEl = element), type: "button", class: "close-button", "aria-label": this.closeLabel, onClick: this.handleCloseButtonClick, variant: "tertiary" }, h("lmvz-icon", { key: 'e680344beebd5ae4a7a24496f5f8113fd6d98187', icon: closeIconSvg }))), h("div", { key: '1798cdc2f930ae04959c8c0630347fb6f9825693', class: "body" }, h("slot", { key: 'eb77bb57b51a5efe18a765a45d4157613f50bbd4' })), h("footer", { key: '4c8c1f12919822af2471c60f78443b539f7a20e8', class: "actions", hidden: !this.buttonGroupEl?.hasActions }, h("lmvz-button-group", { key: '0a26fc145d70d7d95adbd8f3e4c29edabfc12422', ref: (element) => (this.buttonGroupEl = element) }, h("slot", { key: '8d05a256d8b8c28f20f51ea03358522768a15913', name: "actions" })))))));
227
227
  }
228
228
  static get is() { return "lmvz-modal"; }
229
229
  static get encapsulation() { return "shadow"; }
@@ -137,7 +137,7 @@ export class LmvzRadio extends ReactiveControllerHost {
137
137
  this.radioGroupController.setFocused(target);
138
138
  }
139
139
  render() {
140
- return (h(Host, { key: '0226e313fcf4fe3c3cf343cfe0776cf71da169a6' }, h("input", { key: '5bb1f733d2f29217bc7544d8fd24f6b21bedc654', type: "radio", id: this.radioId, name: this.name ?? undefined, value: this.value, checked: this.checked, disabled: this.disabled, required: this.required, autoFocus: this.autofocus, "aria-invalid": this.error ? 'true' : undefined, "aria-describedby": this.helperId, ref: (el) => (this.nativeInput = el), onChange: this.handleChange }), h("span", { key: 'ae18f49167d1a2e8e6ec4ceca435e69e3d79f593', class: "circle", "aria-hidden": "true" }, this.checked && h("span", { key: '5dfb65105831a672f2a47952aff987cd45e9b178', class: "dot" })), h("span", { key: 'df148ca52be7e580226d94ff9aef4e3cf5a6182c', class: "content" }, h("label", { key: 'e042c57755eadb64692ace49204dccb1ee03ed1c', htmlFor: this.radioId }, this.label), h("span", { key: 'a90b0bef927dddb39f9e6357adf888e0818a3c5a', "aria-live": "polite", class: "helper-text", id: this.helperId }, this.helperText))));
140
+ return (h(Host, { key: 'c07af5c7d75b0f0d2c20b3af9ea763bd28e027b5' }, h("input", { key: '2e7fddb7aa5df3f8bc0f1efbd110158680ec45d7', type: "radio", id: this.radioId, name: this.name ?? undefined, value: this.value, checked: this.checked, disabled: this.disabled, required: this.required, autoFocus: this.autofocus, "aria-invalid": this.error ? 'true' : undefined, "aria-describedby": this.helperId, ref: (el) => (this.nativeInput = el), onChange: this.handleChange }), h("span", { key: 'a2afc55b85527674e5a18bfc28e194ecc034053a', class: "circle", "aria-hidden": "true" }, this.checked && h("span", { key: 'd135da1d567743ea98ec5860feda3e6e8013bdb6', class: "dot" })), h("span", { key: '38c83e877135b221260bacdefca3cdb5446a4453', class: "content" }, h("label", { key: '781d9d5544c0cb9d061875ef3674f3c3156f0675', htmlFor: this.radioId }, this.label), h("span", { key: '1ed064b27dea65cbfb1b1bd38a9cb1b7a07de37e', "aria-live": "polite", class: "helper-text", id: this.helperId }, this.helperText))));
141
141
  }
142
142
  static get is() { return "lmvz-radio"; }
143
143
  static get encapsulation() { return "scoped"; }
@@ -46,16 +46,17 @@
46
46
 
47
47
  padding-top: var(--lmvz-internal-select-floating-label-top-offset);
48
48
 
49
- /* Component variable mapping */
50
49
  --lmvz-select-radius: var(--lmvz-component-input-radius-default, 999px);
51
- --lmvz-select-bg: var(--lmvz-semantic-color-int-secondary, #f0f0f0);
52
- --lmvz-select-bg-hover: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0);
53
- --lmvz-select-text-color: var(--lmvz-semantic-color-int-on-secondary, #000000);
50
+ --lmvz-select-bg: var(--lmvz-semantic-color-surface-input-primary, #ffffff);
51
+ --lmvz-select-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0);
52
+ --lmvz-select-border-color-hover: var(--lmvz-semantic-color-border-hover, #c7c7c7);
53
+ --lmvz-select-border-width: var(--lmvz-semantic-border-width-default, 1px);
54
+ --lmvz-select-text-color: var(--lmvz-semantic-color-on-surface-input-primary, #000000);
54
55
  --lmvz-select-label-color: var(--lmvz-semantic-color-on-surface-input-primary, #000000);
55
- --lmvz-select-padding-x: var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem));
56
- --lmvz-select-gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem));
57
- --lmvz-select-height: 40px;
58
- --lmvz-select-label-font-size: var(--lmvz-component-component-typography-body-sm-font-size, 0.75rem);
56
+ --lmvz-select-padding-x: var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem));
57
+ --lmvz-select-gap: var(--lmvz-component-input-gap-md, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem));
58
+ --lmvz-select-height: var(--lmvz-component-input-size-md, clamp(2.5rem, 2.44rem + 0.26vw, 2.75rem));
59
+ --lmvz-select-label-font-size: var(--lmvz-component-body-xs-font-size, clamp(0.63rem, 0.61rem + 0.06vw, 0.69rem));
59
60
  --lmvz-select-label-top-offset: calc(var(--lmvz-internal-select-floating-label-top-offset) * -1);
60
61
  --lmvz-select-label-minimized-padding-x: 4px;
61
62
  --lmvz-select-disabled-opacity: var(--lmvz-component-input-disabled-opacity, 40%);
@@ -116,13 +117,27 @@ div[aria-hidden] {
116
117
  padding: 0 var(--lmvz-select-padding-x);
117
118
  border-radius: var(--lmvz-select-radius);
118
119
  background-color: var(--lmvz-select-bg);
120
+ border: var(--lmvz-select-border-width) solid var(--lmvz-select-border-color);
121
+ box-sizing: border-box;
119
122
  cursor: pointer;
120
123
  position: relative;
121
124
  z-index: 1;
122
- transition: background-color 0.15s ease;
125
+ transition: border-color 0.15s ease;
123
126
  }
124
- :host(:not([disabled])) .select-wrapper:hover div[aria-hidden] {
125
- background-color: var(--lmvz-select-bg-hover);
127
+ :host(:not([disabled], [highlighted])) .select-wrapper:hover div[aria-hidden] {
128
+ border-color: var(--lmvz-select-border-color-hover);
129
+ }
130
+ :host([highlighted]) div[aria-hidden] {
131
+ background-color: var(--lmvz-semantic-color-status-active-alternate, #0f8acc);
132
+ border-color: var(--lmvz-semantic-color-border-active, #0f8acc);
133
+ color: var(--lmvz-semantic-color-status-on-active-alternate, #ffffff);
134
+ }
135
+ :host([highlighted]) div[aria-hidden] > span:first-child {
136
+ color: var(--lmvz-semantic-color-status-on-active-alternate, #ffffff);
137
+ }
138
+ :host([highlighted]) label.floating-label {
139
+ background-color: var(--lmvz-semantic-color-status-active-alternate, #0f8acc);
140
+ color: var(--lmvz-semantic-color-status-on-active-alternate, #ffffff);
126
141
  }
127
142
  .select-wrapper:focus-within div[aria-hidden] {
128
143
  outline: var(--lmvz-ds-outline, 1px solid #0e7ab4);
@@ -130,27 +145,29 @@ div[aria-hidden] {
130
145
  }
131
146
  div[aria-hidden] > span:first-child {
132
147
  flex: 1 0 0;
133
- font-size: var(--lmvz-component-component-typography-body-md-font-size, 0.875rem);
134
- font-weight: var(--lmvz-global-font-weight-500, 500);
148
+ font: var(--lmvz-typography-body-md-strong, 500 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5
149
+ Router);
135
150
  color: var(--lmvz-select-text-color);
136
- line-height: 1.4;
137
- letter-spacing: var(--lmvz-component-body-md-letter-spacing, 0);
138
151
  overflow: hidden;
139
152
  text-overflow: ellipsis;
140
153
  white-space: nowrap;
141
154
  }
155
+ /* Active-selected text color: when a value is selected (not applicable in highlighted state) */
156
+ :host(:not([highlighted])) .select-wrapper.has-value div[aria-hidden] > span:first-child {
157
+ color: var(--lmvz-semantic-color-int-on-secondary-active, #000000);
158
+ }
142
159
  div[aria-hidden] > span:last-child {
143
160
  flex-shrink: 0;
144
161
  display: flex;
145
162
  align-items: center;
146
163
  justify-content: center;
147
164
  }
148
- img {
149
- display: block;
150
- width: var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem));
151
- height: var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem));
165
+ div[aria-hidden] svg {
166
+ width: var(--lmvz-component-icon-size-2xs, clamp(0.63rem, 0.59rem + 0.13vw, 0.75rem));
167
+ height: var(--lmvz-component-icon-size-2xs, clamp(0.63rem, 0.59rem + 0.13vw, 0.75rem));
168
+ flex-shrink: 0;
152
169
  }
153
- /* Native select absolutely covers the trigger, invisible, intercepts clicks */
170
+ /* Native select absolutely covers the trigger, invisible, intercepts clicks */
154
171
  select {
155
172
  appearance: none;
156
173
  position: absolute;
@@ -177,3 +194,29 @@ select {
177
194
  color: var(--lmvz-select-helper-color);
178
195
  line-height: normal;
179
196
  }
197
+ :host([size='small']) {
198
+ --lmvz-select-height: var(--lmvz-component-input-size-sm, clamp(2rem, 1.94rem + 0.26vw, 2.25rem));
199
+ --lmvz-select-padding-x: var(--lmvz-component-input-padding-sm, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem));
200
+ --lmvz-select-gap: var(--lmvz-component-input-gap-sm, clamp(0.38rem, 0.31rem + 0.26vw, 0.63rem));
201
+ --lmvz-select-label-font-size: var(--lmvz-component-body-2xs-font-size, clamp(0.5rem, 0.47rem + 0.13vw, 0.63rem));
202
+ }
203
+ :host([size='small']) div[aria-hidden] > span:first-child {
204
+ font-size: var(--lmvz-component-body-sm-font-size, clamp(0.69rem, 0.67rem + 0.06vw, 0.75rem));
205
+ }
206
+ :host([size='small']) div[aria-hidden] svg {
207
+ width: var(--lmvz-component-icon-size-4xs, clamp(0.5rem, 0.47rem + 0.13vw, 0.63rem));
208
+ height: var(--lmvz-component-icon-size-4xs, clamp(0.5rem, 0.47rem + 0.13vw, 0.63rem));
209
+ }
210
+ :host([size='large']) {
211
+ --lmvz-select-height: var(--lmvz-component-input-size-lg, clamp(2.75rem, 2.69rem + 0.26vw, 3rem));
212
+ --lmvz-select-padding-x: var(--lmvz-component-input-padding-lg, clamp(1rem, 0.94rem + 0.26vw, 1.25rem));
213
+ --lmvz-select-gap: var(--lmvz-component-input-gap-lg, clamp(0.75rem, 0.69rem + 0.26vw, 1rem));
214
+ --lmvz-select-label-font-size: var(--lmvz-component-body-sm-font-size, clamp(0.69rem, 0.67rem + 0.06vw, 0.75rem));
215
+ }
216
+ :host([size='large']) div[aria-hidden] > span:first-child {
217
+ font-size: var(--lmvz-component-body-lg-font-size, clamp(1rem, 0.97rem + 0.13vw, 1.13rem));
218
+ }
219
+ :host([size='large']) div[aria-hidden] svg {
220
+ width: var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem));
221
+ height: var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem));
222
+ }