@lmvz-ds/components 0.28.0 → 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 (63) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/assets/icons/chevron-down.svg +1 -1
  3. package/cjs/{ds.constants-CN0zFjB7.js → ds.constants-JXqgKnXL.js} +3 -0
  4. package/cjs/index.cjs.js +2 -1
  5. package/cjs/lmvz-chip.cjs.entry.js +1 -1
  6. package/cjs/lmvz-components.cjs.js +1 -1
  7. package/cjs/lmvz-select.cjs.entry.js +4 -4
  8. package/cjs/lmvz-snackbar.cjs.entry.js +1 -1
  9. package/cjs/lmvz-spinner.cjs.entry.js +1 -1
  10. package/cjs/lmvz-tab.cjs.entry.js +1 -1
  11. package/cjs/lmvz-tabs.cjs.entry.js +1 -1
  12. package/cjs/lmvz-toggle.cjs.entry.js +1 -1
  13. package/cjs/loader.cjs.js +1 -1
  14. package/collection/api/ds.constants.js +1 -0
  15. package/collection/assets/icons/chevron-down.svg +1 -1
  16. package/collection/components/lmvz-select/lmvz-select.css +61 -16
  17. package/collection/components/lmvz-select/lmvz-select.js +53 -2
  18. package/collection/components/lmvz-snackbar/lmvz-snackbar.js +1 -1
  19. package/collection/components/lmvz-spinner/lmvz-spinner.js +1 -1
  20. package/collection/components/lmvz-tab/lmvz-tab.js +1 -1
  21. package/collection/components/lmvz-tabs/lmvz-tabs.js +1 -1
  22. package/collection/components/lmvz-toggle/lmvz-toggle.js +1 -1
  23. package/collection/index.js +1 -1
  24. package/collection/integration/header-integration/header-integration.js +1 -1
  25. package/components/index.js +1 -1
  26. package/components/lmvz-chip.js +1 -1
  27. package/components/lmvz-select.js +1 -1
  28. package/components/lmvz-snackbar.js +1 -1
  29. package/components/lmvz-spinner.js +1 -1
  30. package/components/lmvz-tab.js +1 -1
  31. package/components/lmvz-tabs.js +1 -1
  32. package/components/lmvz-toggle.js +1 -1
  33. package/esm/{ds.constants-BTa7u4To.js → ds.constants-DWePb-zu.js} +3 -1
  34. package/esm/index.js +1 -1
  35. package/esm/lmvz-chip.entry.js +1 -1
  36. package/esm/lmvz-components.js +1 -1
  37. package/esm/lmvz-select.entry.js +4 -4
  38. package/esm/lmvz-snackbar.entry.js +1 -1
  39. package/esm/lmvz-spinner.entry.js +1 -1
  40. package/esm/lmvz-tab.entry.js +1 -1
  41. package/esm/lmvz-tabs.entry.js +1 -1
  42. package/esm/lmvz-toggle.entry.js +1 -1
  43. package/esm/loader.js +1 -1
  44. package/hydrate/index.js +12 -10
  45. package/hydrate/index.mjs +12 -10
  46. package/lmvz-components/index.esm.js +1 -1
  47. package/lmvz-components/lmvz-components.esm.js +1 -1
  48. package/lmvz-components/{p-e672c0fa.entry.js → p-211ee69d.entry.js} +1 -1
  49. package/lmvz-components/{p-fdb8de66.entry.js → p-4484ab62.entry.js} +1 -1
  50. package/lmvz-components/{p-80c6ec27.entry.js → p-5ace2c2d.entry.js} +1 -1
  51. package/lmvz-components/{p-98e3e85a.entry.js → p-5fcc6f84.entry.js} +1 -1
  52. package/lmvz-components/{p-85b0b718.entry.js → p-61752dcd.entry.js} +1 -1
  53. package/lmvz-components/{p-02e8e45a.entry.js → p-8b4740bb.entry.js} +1 -1
  54. package/lmvz-components/p-DWePb-zu.js +1 -0
  55. package/lmvz-components/p-dc28c6d8.entry.js +1 -0
  56. package/manifest.json +81 -2
  57. package/package.json +1 -1
  58. package/types/api/ds.constants.d.ts +4 -0
  59. package/types/components/lmvz-select/lmvz-select.d.ts +3 -0
  60. package/types/components.d.ts +28 -0
  61. package/types/index.d.ts +1 -1
  62. package/lmvz-components/p-6a1c3088.entry.js +0 -1
  63. package/lmvz-components/p-BTa7u4To.js +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @lmvz-ds/components
2
2
 
3
+ ## 0.28.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 5020583: lmvz-select: Neue `highlighted`-Variante hinzugefügt
8
+
3
9
  ## 0.28.0
4
10
 
5
11
  ### Minor Changes
@@ -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>
@@ -1,9 +1,11 @@
1
1
  'use strict';
2
2
 
3
+ const scaleValues = ['small', 'default', 'large'];
3
4
  const sizes = ['xs', 'sm', 'md', 'lg'];
4
5
  const textSizes = [...sizes, 'xl'];
5
6
  const inputTypes = ['text', 'email', 'password', 'tel', 'url', 'search', 'number'];
6
7
  const inputSizes = ['sm', 'md', 'lg'];
8
+ const selectSizes = scaleValues;
7
9
  const iconSizes = [...sizes, 'inherit'];
8
10
  const iconWeights = ['thin', 'medium', 'bold'];
9
11
  const chipTypes = ['active', 'warning', 'success', 'error', 'neutral'];
@@ -17,4 +19,5 @@ exports.iconWeights = iconWeights;
17
19
  exports.inputSizes = inputSizes;
18
20
  exports.inputTypes = inputTypes;
19
21
  exports.messageTypes = messageTypes;
22
+ exports.selectSizes = selectSizes;
20
23
  exports.textSizes = textSizes;
package/cjs/index.cjs.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var ariaLoader = require('./aria-loader-BRo2FTGh.js');
4
- var ds_constants = require('./ds.constants-CN0zFjB7.js');
4
+ var ds_constants = require('./ds.constants-JXqgKnXL.js');
5
5
  var icons = require('./icons-BQASWgk-.js');
6
6
  require('./svg-BMBduILB.js');
7
7
  require('./logger-DsM6xg6V.js');
@@ -214,6 +214,7 @@ exports.iconWeights = ds_constants.iconWeights;
214
214
  exports.inputSizes = ds_constants.inputSizes;
215
215
  exports.inputTypes = ds_constants.inputTypes;
216
216
  exports.messageTypes = ds_constants.messageTypes;
217
+ exports.selectSizes = ds_constants.selectSizes;
217
218
  exports.textSizes = ds_constants.textSizes;
218
219
  exports.getRegisteredIconProvider = icons.getRegisteredIconProvider;
219
220
  exports.registerIconProvider = icons.registerIconProvider;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-TGsVZNDP.js');
4
- var ds_constants = require('./ds.constants-CN0zFjB7.js');
4
+ var ds_constants = require('./ds.constants-JXqgKnXL.js');
5
5
  var ariaValidationController = require('./aria-validation-controller-Z4TtOp2l.js');
6
6
  var reactiveControllerHost = require('./reactive-controller-host-B_lZtcA6.js');
7
7
  var ariaLoader = require('./aria-loader-BRo2FTGh.js');
@@ -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-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-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);
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-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);
23
23
  });
24
24
 
25
25
  exports.setNonce = index.setNonce;
@@ -5,9 +5,7 @@ var ariaValidationController = require('./aria-validation-controller-Z4TtOp2l.js
5
5
  var reactiveControllerHost = require('./reactive-controller-host-B_lZtcA6.js');
6
6
  require('./aria-loader-BRo2FTGh.js');
7
7
 
8
- const chevronDownSvg = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIwLjMzMzQgOC42NjY2M0wxMi4wMDAxIDE3TDMuNjY2NzUgOC42NjY2MyIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=';
9
-
10
- const lmvzSelectCss = () => `@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-select-h { display: block; font-family: var(--lmvz-global-font-family-default, Router); --lmvz-internal-select-floating-label-top-offset: 0.375rem; padding-top: var(--lmvz-internal-select-floating-label-top-offset); --lmvz-select-radius: var(--lmvz-component-input-radius-default, 999px); --lmvz-select-bg: var(--lmvz-semantic-color-int-secondary, #f0f0f0); --lmvz-select-bg-hover: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0); --lmvz-select-text-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-select-label-color: var(--lmvz-semantic-color-on-surface-input-primary, #000000); --lmvz-select-padding-x: var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)); --lmvz-select-gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-select-height: 40px; --lmvz-select-label-font-size: var(--lmvz-component-component-typography-body-sm-font-size, 0.75rem); --lmvz-select-label-top-offset: calc(var(--lmvz-internal-select-floating-label-top-offset) * -1); --lmvz-select-label-minimized-padding-x: 4px; --lmvz-select-disabled-opacity: var(--lmvz-component-input-disabled-opacity, 40%); --lmvz-select-helper-color: var(--lmvz-semantic-color-on-surface-input-secondary, #545454); --lmvz-select-focus-color: var(--lmvz-semantic-color-status-on-active, #0e7ab4); --lmvz-select-error-color: var(--lmvz-semantic-color-status-on-danger, #e52a31); } .select-wrapper.sc-lmvz-select { position: relative; height: var(--lmvz-select-height); } label.sc-lmvz-select { position: absolute; top: 50%; left: var(--lmvz-select-padding-x); font-size: var(--lmvz-select-label-font-size); color: var(--lmvz-select-label-color); line-height: normal; white-space: nowrap; pointer-events: none; z-index: 2; transform: translateY(-50%); transform-origin: left top; transition: top 0.2s ease-out, transform 0.2s ease-out, opacity 0.2s ease-out, padding 0.2s ease-out; } label.assistive-label.sc-lmvz-select { opacity: 0; padding: 0; } label.floating-label.sc-lmvz-select { top: var(--lmvz-select-label-top-offset); transform: translateY(0) scale(0.85); left: calc(var(--lmvz-select-padding-x) - 2px); background-color: var(--lmvz-select-bg); padding: 0 var(--lmvz-select-label-minimized-padding-x); opacity: 1; font-weight: 500; } label.sc-lmvz-select > span[aria-hidden='true'].sc-lmvz-select, div[aria-hidden='true'].sc-lmvz-select > span.sc-lmvz-select:first-child > span[aria-hidden='true'].sc-lmvz-select { color: var(--lmvz-select-error-color); margin-left: 2px; display: inline-block; line-height: 0; vertical-align: middle; } div[aria-hidden].sc-lmvz-select { display: flex; align-items: center; gap: var(--lmvz-select-gap); height: 100%; padding: 0 var(--lmvz-select-padding-x); border-radius: var(--lmvz-select-radius); background-color: var(--lmvz-select-bg); cursor: pointer; position: relative; z-index: 1; transition: background-color 0.15s ease; } .sc-lmvz-select-h:not([disabled]) .select-wrapper.sc-lmvz-select:hover div[aria-hidden].sc-lmvz-select { background-color: var(--lmvz-select-bg-hover); } .select-wrapper.sc-lmvz-select:focus-within div[aria-hidden].sc-lmvz-select { outline: var(--lmvz-ds-outline, 1px solid #0e7ab4); outline-offset: var(--lmvz-ds-outline-offset, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)); } div[aria-hidden].sc-lmvz-select > span.sc-lmvz-select:first-child { flex: 1 0 0; font: var(--lmvz-typography-body-md-strong, 500 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5 Router); color: var(--lmvz-select-text-color); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } div[aria-hidden].sc-lmvz-select > span.sc-lmvz-select:last-child { flex-shrink: 0; display: flex; align-items: center; justify-content: center; } img.sc-lmvz-select { display: block; width: var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem)); height: var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem)); } select.sc-lmvz-select { appearance: none; position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 2; border: none; background: transparent; margin: 0; padding: 0; } [disabled].sc-lmvz-select-h .select-wrapper.sc-lmvz-select { opacity: var(--lmvz-select-disabled-opacity); pointer-events: none; cursor: not-allowed; } [role='status'].sc-lmvz-select { margin-top: 4px; padding-left: var(--lmvz-select-padding-x); font-size: var(--lmvz-select-label-font-size); color: var(--lmvz-select-helper-color); line-height: normal; }`;
8
+ const lmvzSelectCss = () => `@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-select-h { display: block; font-family: var(--lmvz-global-font-family-default, Router); --lmvz-internal-select-floating-label-top-offset: 0.375rem; padding-top: var(--lmvz-internal-select-floating-label-top-offset); --lmvz-select-radius: var(--lmvz-component-input-radius-default, 999px); --lmvz-select-bg: var(--lmvz-semantic-color-surface-input-primary, #ffffff); --lmvz-select-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); --lmvz-select-border-color-hover: var(--lmvz-semantic-color-border-hover, #c7c7c7); --lmvz-select-border-width: var(--lmvz-semantic-border-width-default, 1px); --lmvz-select-text-color: var(--lmvz-semantic-color-on-surface-input-primary, #000000); --lmvz-select-label-color: var(--lmvz-semantic-color-on-surface-input-primary, #000000); --lmvz-select-padding-x: var(--lmvz-component-input-padding-md, clamp(0.88rem, 0.84rem + 0.13vw, 1rem)); --lmvz-select-gap: var(--lmvz-component-input-gap-md, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-select-height: var(--lmvz-component-input-size-md, clamp(2.5rem, 2.44rem + 0.26vw, 2.75rem)); --lmvz-select-label-font-size: var(--lmvz-component-body-xs-font-size, clamp(0.63rem, 0.61rem + 0.06vw, 0.69rem)); --lmvz-select-label-top-offset: calc(var(--lmvz-internal-select-floating-label-top-offset) * -1); --lmvz-select-label-minimized-padding-x: 4px; --lmvz-select-disabled-opacity: var(--lmvz-component-input-disabled-opacity, 40%); --lmvz-select-helper-color: var(--lmvz-semantic-color-on-surface-input-secondary, #545454); --lmvz-select-focus-color: var(--lmvz-semantic-color-status-on-active, #0e7ab4); --lmvz-select-error-color: var(--lmvz-semantic-color-status-on-danger, #e52a31); } .select-wrapper.sc-lmvz-select { position: relative; height: var(--lmvz-select-height); } label.sc-lmvz-select { position: absolute; top: 50%; left: var(--lmvz-select-padding-x); font-size: var(--lmvz-select-label-font-size); color: var(--lmvz-select-label-color); line-height: normal; white-space: nowrap; pointer-events: none; z-index: 2; transform: translateY(-50%); transform-origin: left top; transition: top 0.2s ease-out, transform 0.2s ease-out, opacity 0.2s ease-out, padding 0.2s ease-out; } label.assistive-label.sc-lmvz-select { opacity: 0; padding: 0; } label.floating-label.sc-lmvz-select { top: var(--lmvz-select-label-top-offset); transform: translateY(0) scale(0.85); left: calc(var(--lmvz-select-padding-x) - 2px); background-color: var(--lmvz-select-bg); padding: 0 var(--lmvz-select-label-minimized-padding-x); opacity: 1; font-weight: 500; } label.sc-lmvz-select > span[aria-hidden='true'].sc-lmvz-select, div[aria-hidden='true'].sc-lmvz-select > span.sc-lmvz-select:first-child > span[aria-hidden='true'].sc-lmvz-select { color: var(--lmvz-select-error-color); margin-left: 2px; display: inline-block; line-height: 0; vertical-align: middle; } div[aria-hidden].sc-lmvz-select { display: flex; align-items: center; gap: var(--lmvz-select-gap); height: 100%; padding: 0 var(--lmvz-select-padding-x); border-radius: var(--lmvz-select-radius); background-color: var(--lmvz-select-bg); border: var(--lmvz-select-border-width) solid var(--lmvz-select-border-color); box-sizing: border-box; cursor: pointer; position: relative; z-index: 1; transition: border-color 0.15s ease; } .sc-lmvz-select-h:not([disabled] .select-wrapper.sc-lmvz-select:hover div[aria-hidden].sc-lmvz-select, [highlighted]).sc-lmvz-select-h .select-wrapper.sc-lmvz-select:hover div[aria-hidden].sc-lmvz-select { border-color: var(--lmvz-select-border-color-hover); } [highlighted].sc-lmvz-select-h div[aria-hidden].sc-lmvz-select { background-color: var(--lmvz-semantic-color-status-active-alternate, #0f8acc); border-color: var(--lmvz-semantic-color-border-active, #0f8acc); color: var(--lmvz-semantic-color-status-on-active-alternate, #ffffff); } [highlighted].sc-lmvz-select-h div[aria-hidden].sc-lmvz-select > span.sc-lmvz-select:first-child { color: var(--lmvz-semantic-color-status-on-active-alternate, #ffffff); } [highlighted].sc-lmvz-select-h label.floating-label.sc-lmvz-select { background-color: var(--lmvz-semantic-color-status-active-alternate, #0f8acc); color: var(--lmvz-semantic-color-status-on-active-alternate, #ffffff); } .select-wrapper.sc-lmvz-select:focus-within div[aria-hidden].sc-lmvz-select { outline: var(--lmvz-ds-outline, 1px solid #0e7ab4); outline-offset: var(--lmvz-ds-outline-offset, clamp(0.25rem, 0.19rem + 0.26vw, 0.5rem)); } div[aria-hidden].sc-lmvz-select > span.sc-lmvz-select:first-child { flex: 1 0 0; font: var(--lmvz-typography-body-md-strong, 500 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.5 Router); color: var(--lmvz-select-text-color); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .sc-lmvz-select-h:not([highlighted]) .select-wrapper.has-value.sc-lmvz-select div[aria-hidden].sc-lmvz-select > span.sc-lmvz-select:first-child { color: var(--lmvz-semantic-color-int-on-secondary-active, #000000); } div[aria-hidden].sc-lmvz-select > span.sc-lmvz-select:last-child { flex-shrink: 0; display: flex; align-items: center; justify-content: center; } div[aria-hidden].sc-lmvz-select svg.sc-lmvz-select { width: var(--lmvz-component-icon-size-2xs, clamp(0.63rem, 0.59rem + 0.13vw, 0.75rem)); height: var(--lmvz-component-icon-size-2xs, clamp(0.63rem, 0.59rem + 0.13vw, 0.75rem)); flex-shrink: 0; } select.sc-lmvz-select { appearance: none; position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 2; border: none; background: transparent; margin: 0; padding: 0; } [disabled].sc-lmvz-select-h .select-wrapper.sc-lmvz-select { opacity: var(--lmvz-select-disabled-opacity); pointer-events: none; cursor: not-allowed; } [role='status'].sc-lmvz-select { margin-top: 4px; padding-left: var(--lmvz-select-padding-x); font-size: var(--lmvz-select-label-font-size); color: var(--lmvz-select-helper-color); line-height: normal; } [size='small'].sc-lmvz-select-h { --lmvz-select-height: var(--lmvz-component-input-size-sm, clamp(2rem, 1.94rem + 0.26vw, 2.25rem)); --lmvz-select-padding-x: var(--lmvz-component-input-padding-sm, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem)); --lmvz-select-gap: var(--lmvz-component-input-gap-sm, clamp(0.38rem, 0.31rem + 0.26vw, 0.63rem)); --lmvz-select-label-font-size: var(--lmvz-component-body-2xs-font-size, clamp(0.5rem, 0.47rem + 0.13vw, 0.63rem)); } [size='small'].sc-lmvz-select-h div[aria-hidden].sc-lmvz-select > span.sc-lmvz-select:first-child { font-size: var(--lmvz-component-body-sm-font-size, clamp(0.69rem, 0.67rem + 0.06vw, 0.75rem)); } [size='small'].sc-lmvz-select-h div[aria-hidden].sc-lmvz-select svg.sc-lmvz-select { width: var(--lmvz-component-icon-size-4xs, clamp(0.5rem, 0.47rem + 0.13vw, 0.63rem)); height: var(--lmvz-component-icon-size-4xs, clamp(0.5rem, 0.47rem + 0.13vw, 0.63rem)); } [size='large'].sc-lmvz-select-h { --lmvz-select-height: var(--lmvz-component-input-size-lg, clamp(2.75rem, 2.69rem + 0.26vw, 3rem)); --lmvz-select-padding-x: var(--lmvz-component-input-padding-lg, clamp(1rem, 0.94rem + 0.26vw, 1.25rem)); --lmvz-select-gap: var(--lmvz-component-input-gap-lg, clamp(0.75rem, 0.69rem + 0.26vw, 1rem)); --lmvz-select-label-font-size: var(--lmvz-component-body-sm-font-size, clamp(0.69rem, 0.67rem + 0.06vw, 0.75rem)); } [size='large'].sc-lmvz-select-h div[aria-hidden].sc-lmvz-select > span.sc-lmvz-select:first-child { font-size: var(--lmvz-component-body-lg-font-size, clamp(1rem, 0.97rem + 0.13vw, 1.13rem)); } [size='large'].sc-lmvz-select-h div[aria-hidden].sc-lmvz-select svg.sc-lmvz-select { width: var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem)); height: var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem)); }`;
11
9
 
12
10
  let selectIdCounter = 0;
13
11
  const LmvzSelect = class extends reactiveControllerHost.ReactiveControllerHost {
@@ -30,6 +28,8 @@ const LmvzSelect = class extends reactiveControllerHost.ReactiveControllerHost {
30
28
  disabled = false;
31
29
  required = false;
32
30
  name;
31
+ size = 'default';
32
+ highlighted = false;
33
33
  selectedLabel = '';
34
34
  get hasValue() {
35
35
  return Boolean(this.value);
@@ -59,7 +59,7 @@ const LmvzSelect = class extends reactiveControllerHost.ReactiveControllerHost {
59
59
  render() {
60
60
  const hasValue = this.hasValue;
61
61
  const shouldShowLabel = hasValue;
62
- return (index.h(index.Host, { key: 'ea378aacdaae4df8eaecb3e906815d3d97b0b7b3' }, index.h("div", { key: '28d99d298556ca10233fcf7ebe159328989924bd', class: "select-wrapper" }, index.h("label", { key: '05e4969c87d11387a80c76731fb9e4f862554211', htmlFor: this.selectId, class: shouldShowLabel ? 'floating-label' : 'assistive-label' }, this.label, this.required && shouldShowLabel && index.h("span", { key: '4d1e5afd375b43a14e1b34214139fde45178b0ce', "aria-hidden": "true" }, " *")), index.h("div", { key: '93ba4ccbf77a17caaddeec5aa2d7576062dc47dd', "aria-hidden": "true" }, index.h("span", { key: '0c7054456cc775823dc3c118709e9dff72acbcb8' }, hasValue ? this.selectedLabel : this.label, this.required && !hasValue && index.h("span", { key: '1c8a75e56c0ca0187809e3c298a7e23304428dff', "aria-hidden": "true" }, " *")), index.h("span", { key: '1e696fd7a1203c1705e579c4425ccdd5d9e621a7' }, index.h("img", { key: 'c5723c1a240c360c50d02ff1b66c0bebb4337788', src: chevronDownSvg, alt: "" }))), index.h("select", { key: 'e50855b52dd997b6496ff8d0de23b2240843f742', id: this.selectId, ref: (el) => (this.nativeSelectEl = el), name: this.name, disabled: this.disabled, required: this.required, "aria-label": this.label, onChange: this.handleChange }, !hasValue && index.h("option", { key: '9044ee2e697c8e41e25acd019dabbf9dd2e54d3d', value: "", disabled: true, selected: true, hidden: true }), index.h("slot", { key: '87e0c5c64015c3920d33f4c316c1cf7ed94be4f0' }))), this.helperText && index.h("div", { key: '745e3512848019291c06bd7f0dcc230f63d960c1', role: "status" }, this.helperText)));
62
+ return (index.h(index.Host, { key: 'ce6cbd48640762e2d2c41f939c2bd0d400ada7a6', "data-highlighted": String(this.highlighted) }, index.h("div", { key: 'b89edad5195bfe39e1a236e67cd03ea61d20556e', class: hasValue ? 'select-wrapper has-value' : 'select-wrapper' }, index.h("label", { key: '29b4b78a8dd6e67107c6ae3bcfbf105f5f70de32', htmlFor: this.selectId, class: shouldShowLabel ? 'floating-label' : 'assistive-label' }, this.label, this.required && shouldShowLabel && index.h("span", { key: '0a6f4af49a0e842470b6babace9201a995dc625d', "aria-hidden": "true" }, " *")), index.h("div", { key: '277e73e2cc7aca046c66c6516e48cbcdec86b544', "aria-hidden": "true" }, index.h("span", { key: '763dbccfb4624f4996fb7f412e8792a1cc006f34' }, hasValue ? this.selectedLabel : this.label, this.required && !hasValue && index.h("span", { key: '1881c6bdbb577aed043fb19069398ca096c4cbc9', "aria-hidden": "true" }, " *")), index.h("span", { key: 'bcb3202de388bccb82882af748c7275327bb615b' }, index.h("svg", { key: '6a06e9eacb4c1e726b06b26243541c99f8b4ca1f', width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, index.h("path", { key: '4984bd9b193183b03ab4858b4e8bea1ec3d2f471', d: "M20.3334 8.66663L12.0001 17L3.66675 8.66663", stroke: "currentColor", "stroke-width": "1.75", "stroke-linecap": "round", "stroke-linejoin": "round" })))), index.h("select", { key: '24b57f7ad6a3f2c010485ecd0e7aa4749d204320', id: this.selectId, ref: (el) => (this.nativeSelectEl = el), name: this.name, disabled: this.disabled, required: this.required, "aria-label": this.label, onChange: this.handleChange }, !hasValue && index.h("option", { key: '8fc22471bb91bb1ec62bc49ec2c07bf3abb39b5c', value: "", disabled: true, selected: true, hidden: true }), index.h("slot", { key: '5273b6fae866178fa7c334c7d12d228634f65279' }))), this.helperText && index.h("div", { key: 'd3b93cac08ca5e74f335d6d867ac587036810482', role: "status" }, this.helperText)));
63
63
  }
64
64
  static get watchers() { return {
65
65
  "value": [{
@@ -67,7 +67,7 @@ const LmvzSnackbar = class {
67
67
  this.el.dispatchEvent(new CustomEvent('lmvzAction', { bubbles: false, composed: false }));
68
68
  };
69
69
  render() {
70
- return (index.h(index.Host, { key: 'd4b4af1831aebd6bb9fdc67bedf43d7d4dd0d785', class: this.animationClass }, index.h("lmvz-icon", { key: '388f9d6f6aa968e74fa080c21f1b33562332293c', icon: STATUS_SVG[this.status], size: "md", weight: "bold" }), index.h("span", { key: 'a00168060f23ac8b42b82d4ff2960d488b9cdc4b', class: "message" }, this.message), this.actionLabel && (index.h("lmvz-button", { key: '95ce1c5d98244490725ac797d95a54527a908f1e', variant: "tertiary", scale: "small", onLmvzActivation: this.handleActionClick }, this.actionLabel))));
70
+ return (index.h(index.Host, { key: '4018b33b7d4263c1e138217d5181231e3562a2ad', class: this.animationClass }, index.h("lmvz-icon", { key: '351f90e1fd9eb7b4f5e864bccd46a643cd158bf1', icon: STATUS_SVG[this.status], size: "md", weight: "bold" }), index.h("span", { key: 'fea43a01e328c7922d563e73256d7c3012b49fd9', class: "message" }, this.message), this.actionLabel && (index.h("lmvz-button", { key: '5ef8589a379ccbcfaf42197227dc95ba51c225fe', variant: "tertiary", scale: "small", onLmvzActivation: this.handleActionClick }, this.actionLabel))));
71
71
  }
72
72
  static get watchers() { return {
73
73
  "status": [{
@@ -12,7 +12,7 @@ const LmvzSpinner = class {
12
12
  ariaLabel;
13
13
  render() {
14
14
  const hasLabel = !!this.ariaLabel?.trim();
15
- return (index.h(index.Host, { key: '858398ba87b2d2d6fd0f44c742183a770c233597', role: hasLabel ? 'status' : undefined, "aria-label": hasLabel ? this.ariaLabel : undefined, "aria-hidden": hasLabel ? undefined : 'true' }, index.h("svg", { key: '5fb5c26c17efaaa69300f1c019e0d25a566b53d9', part: "indicator", viewBox: "0 0 16 16", "aria-hidden": "true" }, index.h("circle", { key: '82747f014363570ccf25cfdaba5eac052d1efdf7', pathLength: "100", cx: "8", cy: "8", r: "6" }))));
15
+ return (index.h(index.Host, { key: 'c788616cdce6548fe228671cb78dfcd98740c42b', role: hasLabel ? 'status' : undefined, "aria-label": hasLabel ? this.ariaLabel : undefined, "aria-hidden": hasLabel ? undefined : 'true' }, index.h("svg", { key: '01d2fd9a20454ae051f63fc3403e4b1679db2697', part: "indicator", viewBox: "0 0 16 16", "aria-hidden": "true" }, index.h("circle", { key: '1bc55615f8fc46b26031d4dc24a24b6e79ca8b98', pathLength: "100", cx: "8", cy: "8", r: "6" }))));
16
16
  }
17
17
  };
18
18
  LmvzSpinner.style = lmvzSpinnerCss();
@@ -22,7 +22,7 @@ const LmvzTab = class {
22
22
  this.el.dispatchEvent(new CustomEvent('lmvzTabReady', { bubbles: true, composed: false }));
23
23
  }
24
24
  render() {
25
- return (index.h(index.Host, { key: 'f773de6715166e8a321dc7c35f4f7c3e02f7f127' }, index.h("button", { key: '1c58f672e04956295292bb9becfd72e90ce36e6b', part: "button", role: "tab", disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, tabIndex: 0 }, index.h("slot", { key: '9381aeccc14ca81b963f9509f78ca0de420f0596', name: "media", ref: (el) => (this.mediaSlotEl = el), onSlotchange: this.handleMediaSlotChange }), index.h("span", { key: '289feb2180a5b190bc080804841d0a8f84d9ef2d', class: "label" }, index.h("slot", { key: 'df79c890e156883b37d6fbf34f4fbb957e33402c' })), index.h("span", { key: '54d091a18674ffd78e14f5a0da1dc648ffe91e13', "aria-hidden": "true", part: "indicator", class: "indicator" }))));
25
+ return (index.h(index.Host, { key: '1232c42d1e4b0a22710076dcd021e910e9b71c3c' }, index.h("button", { key: 'a5d85b761836038a93b102052ff9b09cab04bd7f', part: "button", role: "tab", disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, tabIndex: 0 }, index.h("slot", { key: 'ce429f5e6d05ed4ef506276231aa0a54cd9f050f', name: "media", ref: (el) => (this.mediaSlotEl = el), onSlotchange: this.handleMediaSlotChange }), index.h("span", { key: '637e0da61c21950b0b1c8d5622315c8921007fdb', class: "label" }, index.h("slot", { key: '1c035b6763d0fa894d9dadb1407b87ca3e2f0da5' })), index.h("span", { key: '88c6e4d8fe990e6b722664641d23310748afd7c0', "aria-hidden": "true", part: "indicator", class: "indicator" }))));
26
26
  }
27
27
  static get delegatesFocus() { return true; }
28
28
  };
@@ -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: 'f86adf9c3ce7bbe664d34ce8f408df89c719e3b8', onClick: this.handleTabClick, onKeydown: this.handleKeydown }, index.h("div", { key: '9188d39f972b77226221b33079d45c77b2b10583', role: "tablist", "aria-orientation": this.orientation, class: "tablist" }, index.h("slot", { key: 'a5ec2df3485181ec2eb62b6c479af169371b4006', ref: (el) => (this.tabSlotEl = el) })), index.h("div", { key: '9e57154ddcb069f58e5d457ab6cd275d5bacebd5', part: "panels-container", class: "panels-container" }, index.h("slot", { key: '84cada87d9a7c9f75a4bf16ce5e8437969aadbe9', 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": [{
@@ -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: '3bd8418b3c9161719d419d35f60d26843fb3110f' }, index.h("span", { key: '883a64fb80480e06bb175e626f8224aa6048b8f4', class: "track" }, index.h("input", { key: '21438217a82ab5049e341c7524de71429bd8c8c4', type: "checkbox", role: "switch", id: this.toggleId, checked: this.checked, disabled: this.disabled, required: this.required, name: this.name, value: this.value, form: this.form, ref: (el) => (this.nativeInputElement = el), onChange: this.handleChange }), index.h("span", { key: 'b652891bdd0462ac419e2e909a2e3a3e61d60993', class: "thumb", "aria-hidden": "true" })), index.h("label", { key: '3d934082c2b1fff11c057e62f5fbd9c9361ce5d4', 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
@@ -6,7 +6,7 @@ var appGlobals = require('./app-globals-V2Kpy_OQ.js');
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-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],"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);
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;
@@ -4,6 +4,7 @@ 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'];
@@ -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>
@@ -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);
@@ -137,18 +152,22 @@ div[aria-hidden] > span:first-child {
137
152
  text-overflow: ellipsis;
138
153
  white-space: nowrap;
139
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
+ }
140
159
  div[aria-hidden] > span:last-child {
141
160
  flex-shrink: 0;
142
161
  display: flex;
143
162
  align-items: center;
144
163
  justify-content: center;
145
164
  }
146
- img {
147
- display: block;
148
- width: var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.72rem + 0.13vw, 0.88rem));
149
- 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;
150
169
  }
151
- /* Native select absolutely covers the trigger, invisible, intercepts clicks */
170
+ /* Native select absolutely covers the trigger, invisible, intercepts clicks */
152
171
  select {
153
172
  appearance: none;
154
173
  position: absolute;
@@ -175,3 +194,29 @@ select {
175
194
  color: var(--lmvz-select-helper-color);
176
195
  line-height: normal;
177
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
+ }
@@ -1,5 +1,4 @@
1
1
  import { h, Host } from "@stencil/core";
2
- import chevronDownSvg from "../../assets/icons/chevron-down.svg";
3
2
  import { AriaValidationController } from "../../utils/aria/aria-validation-controller";
4
3
  import { ReactiveControllerHost } from "../../utils/reactive-controller-host";
5
4
  let selectIdCounter = 0;
@@ -21,6 +20,8 @@ export class LmvzSelect extends ReactiveControllerHost {
21
20
  disabled = false;
22
21
  required = false;
23
22
  name;
23
+ size = 'default';
24
+ highlighted = false;
24
25
  selectedLabel = '';
25
26
  get hasValue() {
26
27
  return Boolean(this.value);
@@ -50,7 +51,7 @@ export class LmvzSelect extends ReactiveControllerHost {
50
51
  render() {
51
52
  const hasValue = this.hasValue;
52
53
  const shouldShowLabel = hasValue;
53
- return (h(Host, { key: 'ea378aacdaae4df8eaecb3e906815d3d97b0b7b3' }, h("div", { key: '28d99d298556ca10233fcf7ebe159328989924bd', class: "select-wrapper" }, h("label", { key: '05e4969c87d11387a80c76731fb9e4f862554211', htmlFor: this.selectId, class: shouldShowLabel ? 'floating-label' : 'assistive-label' }, this.label, this.required && shouldShowLabel && h("span", { key: '4d1e5afd375b43a14e1b34214139fde45178b0ce', "aria-hidden": "true" }, " *")), h("div", { key: '93ba4ccbf77a17caaddeec5aa2d7576062dc47dd', "aria-hidden": "true" }, h("span", { key: '0c7054456cc775823dc3c118709e9dff72acbcb8' }, hasValue ? this.selectedLabel : this.label, this.required && !hasValue && h("span", { key: '1c8a75e56c0ca0187809e3c298a7e23304428dff', "aria-hidden": "true" }, " *")), h("span", { key: '1e696fd7a1203c1705e579c4425ccdd5d9e621a7' }, h("img", { key: 'c5723c1a240c360c50d02ff1b66c0bebb4337788', src: chevronDownSvg, alt: "" }))), h("select", { key: 'e50855b52dd997b6496ff8d0de23b2240843f742', id: this.selectId, ref: (el) => (this.nativeSelectEl = el), name: this.name, disabled: this.disabled, required: this.required, "aria-label": this.label, onChange: this.handleChange }, !hasValue && h("option", { key: '9044ee2e697c8e41e25acd019dabbf9dd2e54d3d', value: "", disabled: true, selected: true, hidden: true }), h("slot", { key: '87e0c5c64015c3920d33f4c316c1cf7ed94be4f0' }))), this.helperText && h("div", { key: '745e3512848019291c06bd7f0dcc230f63d960c1', role: "status" }, this.helperText)));
54
+ return (h(Host, { key: 'ce6cbd48640762e2d2c41f939c2bd0d400ada7a6', "data-highlighted": String(this.highlighted) }, h("div", { key: 'b89edad5195bfe39e1a236e67cd03ea61d20556e', class: hasValue ? 'select-wrapper has-value' : 'select-wrapper' }, h("label", { key: '29b4b78a8dd6e67107c6ae3bcfbf105f5f70de32', htmlFor: this.selectId, class: shouldShowLabel ? 'floating-label' : 'assistive-label' }, this.label, this.required && shouldShowLabel && h("span", { key: '0a6f4af49a0e842470b6babace9201a995dc625d', "aria-hidden": "true" }, " *")), h("div", { key: '277e73e2cc7aca046c66c6516e48cbcdec86b544', "aria-hidden": "true" }, h("span", { key: '763dbccfb4624f4996fb7f412e8792a1cc006f34' }, hasValue ? this.selectedLabel : this.label, this.required && !hasValue && h("span", { key: '1881c6bdbb577aed043fb19069398ca096c4cbc9', "aria-hidden": "true" }, " *")), h("span", { key: 'bcb3202de388bccb82882af748c7275327bb615b' }, h("svg", { key: '6a06e9eacb4c1e726b06b26243541c99f8b4ca1f', width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { key: '4984bd9b193183b03ab4858b4e8bea1ec3d2f471', d: "M20.3334 8.66663L12.0001 17L3.66675 8.66663", stroke: "currentColor", "stroke-width": "1.75", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("select", { key: '24b57f7ad6a3f2c010485ecd0e7aa4749d204320', id: this.selectId, ref: (el) => (this.nativeSelectEl = el), name: this.name, disabled: this.disabled, required: this.required, "aria-label": this.label, onChange: this.handleChange }, !hasValue && h("option", { key: '8fc22471bb91bb1ec62bc49ec2c07bf3abb39b5c', value: "", disabled: true, selected: true, hidden: true }), h("slot", { key: '5273b6fae866178fa7c334c7d12d228634f65279' }))), this.helperText && h("div", { key: 'd3b93cac08ca5e74f335d6d867ac587036810482', role: "status" }, this.helperText)));
54
55
  }
55
56
  static get is() { return "lmvz-select"; }
56
57
  static get encapsulation() { return "scoped"; }
@@ -187,6 +188,56 @@ export class LmvzSelect extends ReactiveControllerHost {
187
188
  "setter": false,
188
189
  "reflect": false,
189
190
  "attribute": "name"
191
+ },
192
+ "size": {
193
+ "type": "string",
194
+ "mutable": false,
195
+ "complexType": {
196
+ "original": "Select.Size",
197
+ "resolved": "\"default\" | \"large\" | \"small\"",
198
+ "references": {
199
+ "Select": {
200
+ "location": "import",
201
+ "path": "../../api",
202
+ "id": "src/api/index.d.ts::Select",
203
+ "referenceLocation": "Select"
204
+ }
205
+ }
206
+ },
207
+ "required": false,
208
+ "optional": false,
209
+ "docs": {
210
+ "tags": [],
211
+ "text": "Visual size variant of the select field.\n- `small` \u2014 compact height\n- `default` \u2014 standard height (default)\n- `large` \u2014 increased height"
212
+ },
213
+ "getter": false,
214
+ "setter": false,
215
+ "reflect": true,
216
+ "attribute": "size",
217
+ "defaultValue": "'default'"
218
+ },
219
+ "highlighted": {
220
+ "type": "boolean",
221
+ "mutable": false,
222
+ "complexType": {
223
+ "original": "boolean",
224
+ "resolved": "boolean",
225
+ "references": {}
226
+ },
227
+ "required": false,
228
+ "optional": false,
229
+ "docs": {
230
+ "tags": [{
231
+ "name": "default",
232
+ "text": "false"
233
+ }],
234
+ "text": "Whether the select has an active filter or selection that should be visually\ndistinguished (e.g. a filter chip is applied).\n\nWhen `true`:\n- The host attribute `highlighted` is present (CSS: `:host([highlighted])`).\n- The host attribute `data-highlighted=\"true\"` is set for assistive-technology\n consumers that observe data attributes. When `false`, `data-highlighted` is\n set to `\"false\"`.\n\nNote: `aria-pressed` and `aria-selected` are intentionally not used here.\n`aria-pressed` is reserved for toggle-button roles; `aria-selected` is\nreserved for option/listbox roles. The `data-highlighted` attribute provides\nthe accessible contract without conflicting with native `<select>` semantics."
235
+ },
236
+ "getter": false,
237
+ "setter": false,
238
+ "reflect": true,
239
+ "attribute": "highlighted",
240
+ "defaultValue": "false"
190
241
  }
191
242
  };
192
243
  }
@@ -58,7 +58,7 @@ export class LmvzSnackbar {
58
58
  this.el.dispatchEvent(new CustomEvent('lmvzAction', { bubbles: false, composed: false }));
59
59
  };
60
60
  render() {
61
- return (h(Host, { key: 'd4b4af1831aebd6bb9fdc67bedf43d7d4dd0d785', class: this.animationClass }, h("lmvz-icon", { key: '388f9d6f6aa968e74fa080c21f1b33562332293c', icon: STATUS_SVG[this.status], size: "md", weight: "bold" }), h("span", { key: 'a00168060f23ac8b42b82d4ff2960d488b9cdc4b', class: "message" }, this.message), this.actionLabel && (h("lmvz-button", { key: '95ce1c5d98244490725ac797d95a54527a908f1e', variant: "tertiary", scale: "small", onLmvzActivation: this.handleActionClick }, this.actionLabel))));
61
+ return (h(Host, { key: '4018b33b7d4263c1e138217d5181231e3562a2ad', class: this.animationClass }, h("lmvz-icon", { key: '351f90e1fd9eb7b4f5e864bccd46a643cd158bf1', icon: STATUS_SVG[this.status], size: "md", weight: "bold" }), h("span", { key: 'fea43a01e328c7922d563e73256d7c3012b49fd9', class: "message" }, this.message), this.actionLabel && (h("lmvz-button", { key: '5ef8589a379ccbcfaf42197227dc95ba51c225fe', variant: "tertiary", scale: "small", onLmvzActivation: this.handleActionClick }, this.actionLabel))));
62
62
  }
63
63
  static get is() { return "lmvz-snackbar"; }
64
64
  static get encapsulation() { return "shadow"; }
@@ -4,7 +4,7 @@ export class LmvzSpinner {
4
4
  ariaLabel;
5
5
  render() {
6
6
  const hasLabel = !!this.ariaLabel?.trim();
7
- return (h(Host, { key: '858398ba87b2d2d6fd0f44c742183a770c233597', role: hasLabel ? 'status' : undefined, "aria-label": hasLabel ? this.ariaLabel : undefined, "aria-hidden": hasLabel ? undefined : 'true' }, h("svg", { key: '5fb5c26c17efaaa69300f1c019e0d25a566b53d9', part: "indicator", viewBox: "0 0 16 16", "aria-hidden": "true" }, h("circle", { key: '82747f014363570ccf25cfdaba5eac052d1efdf7', pathLength: "100", cx: "8", cy: "8", r: "6" }))));
7
+ return (h(Host, { key: 'c788616cdce6548fe228671cb78dfcd98740c42b', role: hasLabel ? 'status' : undefined, "aria-label": hasLabel ? this.ariaLabel : undefined, "aria-hidden": hasLabel ? undefined : 'true' }, h("svg", { key: '01d2fd9a20454ae051f63fc3403e4b1679db2697', part: "indicator", viewBox: "0 0 16 16", "aria-hidden": "true" }, h("circle", { key: '1bc55615f8fc46b26031d4dc24a24b6e79ca8b98', pathLength: "100", cx: "8", cy: "8", r: "6" }))));
8
8
  }
9
9
  static get is() { return "lmvz-spinner"; }
10
10
  static get encapsulation() { return "shadow"; }
@@ -14,7 +14,7 @@ export class LmvzTab {
14
14
  this.el.dispatchEvent(new CustomEvent('lmvzTabReady', { bubbles: true, composed: false }));
15
15
  }
16
16
  render() {
17
- return (h(Host, { key: 'f773de6715166e8a321dc7c35f4f7c3e02f7f127' }, h("button", { key: '1c58f672e04956295292bb9becfd72e90ce36e6b', part: "button", role: "tab", disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, tabIndex: 0 }, h("slot", { key: '9381aeccc14ca81b963f9509f78ca0de420f0596', name: "media", ref: (el) => (this.mediaSlotEl = el), onSlotchange: this.handleMediaSlotChange }), h("span", { key: '289feb2180a5b190bc080804841d0a8f84d9ef2d', class: "label" }, h("slot", { key: 'df79c890e156883b37d6fbf34f4fbb957e33402c' })), h("span", { key: '54d091a18674ffd78e14f5a0da1dc648ffe91e13', "aria-hidden": "true", part: "indicator", class: "indicator" }))));
17
+ return (h(Host, { key: '1232c42d1e4b0a22710076dcd021e910e9b71c3c' }, h("button", { key: 'a5d85b761836038a93b102052ff9b09cab04bd7f', part: "button", role: "tab", disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, tabIndex: 0 }, h("slot", { key: 'ce429f5e6d05ed4ef506276231aa0a54cd9f050f', name: "media", ref: (el) => (this.mediaSlotEl = el), onSlotchange: this.handleMediaSlotChange }), h("span", { key: '637e0da61c21950b0b1c8d5622315c8921007fdb', class: "label" }, h("slot", { key: '1c035b6763d0fa894d9dadb1407b87ca3e2f0da5' })), h("span", { key: '88c6e4d8fe990e6b722664641d23310748afd7c0', "aria-hidden": "true", part: "indicator", class: "indicator" }))));
18
18
  }
19
19
  static get is() { return "lmvz-tab"; }
20
20
  static get encapsulation() { return "shadow"; }
@@ -232,7 +232,7 @@ export class LmvzTabs extends ReactiveControllerHost {
232
232
  this.selectTab(value);
233
233
  };
234
234
  render() {
235
- return (h(Host, { key: 'f86adf9c3ce7bbe664d34ce8f408df89c719e3b8', onClick: this.handleTabClick, onKeydown: this.handleKeydown }, h("div", { key: '9188d39f972b77226221b33079d45c77b2b10583', role: "tablist", "aria-orientation": this.orientation, class: "tablist" }, h("slot", { key: 'a5ec2df3485181ec2eb62b6c479af169371b4006', ref: (el) => (this.tabSlotEl = el) })), h("div", { key: '9e57154ddcb069f58e5d457ab6cd275d5bacebd5', part: "panels-container", class: "panels-container" }, h("slot", { key: '84cada87d9a7c9f75a4bf16ce5e8437969aadbe9', name: "panels", ref: (el) => (this.panelSlotEl = el) }))));
235
+ return (h(Host, { key: '5f15ece5a15ef010e84c169171acc3647386ac76', onClick: this.handleTabClick, onKeydown: this.handleKeydown }, h("div", { key: '38fca070606c4e15fe3218d818c9c271619088c6', role: "tablist", "aria-orientation": this.orientation, class: "tablist" }, h("slot", { key: 'a18f16a5fbcd5bdd7694abfd362cd601e852b546', ref: (el) => (this.tabSlotEl = el) })), h("div", { key: '2d84a819e13e658a677835e629e057f7a19556a0', part: "panels-container", class: "panels-container" }, h("slot", { key: 'e66d34d3f861b23700ad5a29076744fa1f93a5f2', name: "panels", ref: (el) => (this.panelSlotEl = el) }))));
236
236
  }
237
237
  static get is() { return "lmvz-tabs"; }
238
238
  static get encapsulation() { return "shadow"; }
@@ -65,7 +65,7 @@ export class LmvzToggle extends ReactiveControllerHost {
65
65
  this.lmvzChange.emit(newChecked);
66
66
  };
67
67
  render() {
68
- return (h(Host, { key: '3bd8418b3c9161719d419d35f60d26843fb3110f' }, h("span", { key: '883a64fb80480e06bb175e626f8224aa6048b8f4', class: "track" }, h("input", { key: '21438217a82ab5049e341c7524de71429bd8c8c4', type: "checkbox", role: "switch", id: this.toggleId, checked: this.checked, disabled: this.disabled, required: this.required, name: this.name, value: this.value, form: this.form, ref: (el) => (this.nativeInputElement = el), onChange: this.handleChange }), h("span", { key: 'b652891bdd0462ac419e2e909a2e3a3e61d60993', class: "thumb", "aria-hidden": "true" })), h("label", { key: '3d934082c2b1fff11c057e62f5fbd9c9361ce5d4', htmlFor: this.toggleId }, this.label)));
68
+ return (h(Host, { key: '0b0266a50b2307a13c635ee1a2c1b7e44cacccb4' }, h("span", { key: 'e8cf4c4e35e013627bb6eeb4b7bae46060c3a846', class: "track" }, 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 }), h("span", { key: '7e57a501ebcb9f560d0a03c35dbaa7744933246b', class: "thumb", "aria-hidden": "true" })), h("label", { key: '0e8d733132e72593048ce3eb1f8c2049f3420b2a', htmlFor: this.toggleId }, this.label)));
69
69
  }
70
70
  static get is() { return "lmvz-toggle"; }
71
71
  static get encapsulation() { return "scoped"; }
@@ -1,5 +1,5 @@
1
1
  export * from '@lmvz-ds/aria-validation';
2
- export { chipSizes, chipTypes, iconSizes, iconWeights, inputSizes, inputTypes, messageTypes, textSizes } from './api/ds.constants';
2
+ export { chipSizes, chipTypes, iconSizes, iconWeights, inputSizes, inputTypes, messageTypes, selectSizes, textSizes } from './api/ds.constants';
3
3
  export * from './components/lmvz-message/public';
4
4
  export * from './components/lmvz-snackbar/public';
5
5
  export * from './utils/public';
@@ -20,7 +20,7 @@ export class HeaderIntegration {
20
20
  this.activeNav = navId;
21
21
  }
22
22
  render() {
23
- return (h(Host, { key: '07108a713b01e8f3522f9229726323f26cb59b6d' }, h("lmvz-header", { key: 'a9b15b90749591ededab132f03586c1e3da32fa7', lmvzActiveNav: this.activeNav }, h("lmvz-menuitem", { key: 'bbf69ac95b385cb9edfe248eccf1b3661334ac1f', slot: "nav-primary", id: "lehrmittel", onLmvzActivation: this.activate.bind(this) }, h("a", { key: 'f102fde6cf92c1d461bad8d75a4eff68e10cceda', href: "#" }, "Lehrmittel")), h("lmvz-menuitem", { key: '1a708da8ef97f15358b6668bd2ee95772b29820d', slot: "nav-primary", id: "verwaltung", onLmvzActivation: this.activate.bind(this) }, h("a", { key: '0d875ddf5cb85e581389bcaf76e9702d87240ff4', href: "#" }, "Verwaltung")), h("lmvz-menuitem", { key: '37158886f98276bc541b84c4fbc903768476b141', slot: "connect-nav-lehrmittel" }, h("lmvz-icon", { key: '7c60c47c0016a8fbc1d3f74b5b7279606cd842bc', ...typedIconFromSet('lmvz', 'edit') }), "Deutsch 7"), h("lmvz-menuitem", { key: 'cc1bb4fbe8bb79474787cdc436e07bfe3410d316', slot: "connect-nav-lehrmittel" }, h("lmvz-icon", { key: '6fa4ac27509daeae8ab53f2a506272064265da33', ...typedIconFromSet('lmvz', 'edit') }), "Mathe 2"), h("lmvz-menuitem", { key: '8b71ae7219b9516d1900731e5bd996a0d43d9767', slot: "connect-nav-verwaltung" }, h("lmvz-icon", { key: '8567efa67481a392709dca4b137b5c601aca2ef9', ...typedIconFromSet('lmvz', 'settings') }), "iwas mit Verwaltung"), h("lmvz-menuitem", { key: '8ba600b2e116657929e6bb033f4570f0187eee48', slot: "connect-nav-verwaltung", "aria-label": "Einstellungen" }, h("lmvz-icon", { key: 'f233f27093a1d90dbafc98a585949aeb20ae9229', ...typedIconFromSet('lmvz', 'settings') })), h("lmvz-button", { key: '019814dd9f7108889f97ad007da046d21812da37', slot: "actions", "aria-label": "Benutzerkonto" }, h("lmvz-icon", { key: 'b2d80978d2c9582a291047a1522e83c20b6fd845', ...typedIconFromSet('lmvz', 'user'), size: "lg" })))));
23
+ return (h(Host, { key: '486f50ef3557f03de1dc65bf15dd57dfd2c87320' }, h("lmvz-header", { key: 'b211695fa242ab94fdce20ac81124947863a7b4b', lmvzActiveNav: this.activeNav }, h("lmvz-menuitem", { key: 'e115102451abce94e6379dc2b6720f9c9bafaf8c', slot: "nav-primary", id: "lehrmittel", onLmvzActivation: this.activate.bind(this) }, h("a", { key: 'cb6a95e74dd1c5b8573a39c065c6db15c5d61202', href: "#" }, "Lehrmittel")), h("lmvz-menuitem", { key: '97aa26d9baf88298471bc71b990deae3b60e7676', slot: "nav-primary", id: "verwaltung", onLmvzActivation: this.activate.bind(this) }, h("a", { key: 'f3bf5d14a42d34ad6db9002eb7d6c08f9494a582', href: "#" }, "Verwaltung")), h("lmvz-menuitem", { key: '701662627e73569de837fb5fbaed29d5876f32b5', slot: "connect-nav-lehrmittel" }, h("lmvz-icon", { key: '7bdb0638da817f9dbabe485d63e6cf1fc2855648', ...typedIconFromSet('lmvz', 'edit') }), "Deutsch 7"), h("lmvz-menuitem", { key: '75c6ee450059c8222e47ffc011b29450bb7cdb31', slot: "connect-nav-lehrmittel" }, h("lmvz-icon", { key: '8b2a7a3025841a898b1143f3fc96a1cf42660e8e', ...typedIconFromSet('lmvz', 'edit') }), "Mathe 2"), h("lmvz-menuitem", { key: '473f408b189415cbffbde216a2c3e73500a3b133', slot: "connect-nav-verwaltung" }, h("lmvz-icon", { key: '103c8189dc41562c45ac980725001f282b7b1992', ...typedIconFromSet('lmvz', 'settings') }), "iwas mit Verwaltung"), h("lmvz-menuitem", { key: '1a142f62810aa0fb3da4c1b4a41189f058bc845b', slot: "connect-nav-verwaltung", "aria-label": "Einstellungen" }, h("lmvz-icon", { key: '424be6810c1333c4b048fdf002d7957c2c66aca2', ...typedIconFromSet('lmvz', 'settings') })), h("lmvz-button", { key: 'cd47ed633202cb0da71fc5d1607509c246816436', slot: "actions", "aria-label": "Benutzerkonto" }, h("lmvz-icon", { key: '95ed21547f113346bf50b3d5d5617b2c4b8e1794', ...typedIconFromSet('lmvz', 'user'), size: "lg" })))));
24
24
  }
25
25
  static get is() { return "header-integration"; }
26
26
  static get encapsulation() { return "shadow"; }