@vonage/vivid 4.3.0 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/api-extractor.json +25 -0
  2. package/custom-elements.json +444 -692
  3. package/index.cjs +18 -17
  4. package/index.js +3 -3
  5. package/lib/dialog/dialog.d.ts +1 -0
  6. package/lib/empty-state/definition.d.ts +1 -0
  7. package/lib/empty-state/empty-state.d.ts +5 -0
  8. package/lib/enums.d.ts +4 -0
  9. package/lib/fab/fab.d.ts +1 -1
  10. package/lib/icon/icon.d.ts +1 -1
  11. package/lib/popup/popup.d.ts +5 -0
  12. package/lib/range-slider/range-slider.d.ts +2 -0
  13. package/lib/select/select.d.ts +1 -0
  14. package/lib/slider/slider.d.ts +5 -0
  15. package/lib/slider/slider.template.d.ts +2 -2
  16. package/lib/tabs/tabs.d.ts +2 -0
  17. package/lib/video-player/video-player.d.ts +0 -1
  18. package/listbox/index.cjs +1 -1
  19. package/listbox/index.js +1 -1
  20. package/package.json +6 -1
  21. package/shared/anchored.js +1 -1
  22. package/shared/calendar-event.js +1 -1
  23. package/shared/definition.cjs +2 -2
  24. package/shared/definition.js +2 -2
  25. package/shared/definition11.cjs +1 -1
  26. package/shared/definition11.js +1 -1
  27. package/shared/definition12.cjs +1 -1
  28. package/shared/definition12.js +1 -1
  29. package/shared/definition13.js +1 -1
  30. package/shared/definition15.cjs +7 -8
  31. package/shared/definition15.js +2 -3
  32. package/shared/definition16.cjs +10 -6
  33. package/shared/definition16.js +9 -5
  34. package/shared/definition17.cjs +2 -2
  35. package/shared/definition17.js +2 -2
  36. package/shared/definition18.cjs +3 -4
  37. package/shared/definition18.js +1 -2
  38. package/shared/definition19.cjs +3 -4
  39. package/shared/definition19.js +1 -2
  40. package/shared/definition20.cjs +2 -4
  41. package/shared/definition20.js +3 -5
  42. package/shared/definition21.cjs +72 -34
  43. package/shared/definition21.js +73 -35
  44. package/shared/definition23.cjs +18 -3
  45. package/shared/definition23.js +18 -3
  46. package/shared/definition24.cjs +2 -2
  47. package/shared/definition24.js +2 -2
  48. package/shared/definition25.cjs +7 -8
  49. package/shared/definition25.js +3 -4
  50. package/shared/definition26.js +1 -1
  51. package/shared/definition27.cjs +1 -1
  52. package/shared/definition27.js +1 -1
  53. package/shared/definition28.js +1 -1
  54. package/shared/definition29.cjs +4 -4
  55. package/shared/definition29.js +4 -4
  56. package/shared/definition3.cjs +1 -1
  57. package/shared/definition3.js +2 -2
  58. package/shared/definition30.cjs +3 -2
  59. package/shared/definition30.js +3 -2
  60. package/shared/definition31.cjs +1 -1
  61. package/shared/definition31.js +2 -2
  62. package/shared/definition32.cjs +1 -1
  63. package/shared/definition32.js +1 -1
  64. package/shared/definition34.cjs +2 -3
  65. package/shared/definition34.js +2 -3
  66. package/shared/definition35.cjs +10 -10
  67. package/shared/definition35.js +5 -5
  68. package/shared/definition36.cjs +1 -1
  69. package/shared/definition36.js +1 -1
  70. package/shared/definition37.js +1 -1
  71. package/shared/definition38.cjs +1 -1
  72. package/shared/definition38.js +1 -1
  73. package/shared/definition4.cjs +5 -3
  74. package/shared/definition4.js +6 -4
  75. package/shared/definition41.cjs +1 -1
  76. package/shared/definition41.js +1 -1
  77. package/shared/definition42.cjs +127 -23
  78. package/shared/definition42.js +127 -23
  79. package/shared/definition43.cjs +18 -11
  80. package/shared/definition43.js +13 -6
  81. package/shared/definition44.cjs +1 -1
  82. package/shared/definition44.js +2 -2
  83. package/shared/definition45.cjs +3 -2
  84. package/shared/definition45.js +4 -3
  85. package/shared/definition46.cjs +97 -14
  86. package/shared/definition46.js +98 -15
  87. package/shared/definition47.cjs +2 -3
  88. package/shared/definition47.js +3 -4
  89. package/shared/definition48.cjs +1 -1
  90. package/shared/definition48.js +1 -1
  91. package/shared/definition5.cjs +4 -5
  92. package/shared/definition5.js +4 -5
  93. package/shared/definition50.cjs +1 -1
  94. package/shared/definition50.js +1 -1
  95. package/shared/definition51.cjs +56 -10
  96. package/shared/definition51.js +56 -10
  97. package/shared/definition52.js +1 -1
  98. package/shared/definition53.cjs +1 -1
  99. package/shared/definition53.js +2 -2
  100. package/shared/definition54.cjs +8 -9
  101. package/shared/definition54.js +2 -3
  102. package/shared/definition55.cjs +8 -8
  103. package/shared/definition55.js +2 -2
  104. package/shared/definition56.cjs +9 -9
  105. package/shared/definition56.js +7 -7
  106. package/shared/definition57.cjs +10 -1
  107. package/shared/definition57.js +11 -2
  108. package/shared/definition58.cjs +7 -1
  109. package/shared/definition58.js +8 -2
  110. package/shared/definition59.cjs +1 -1
  111. package/shared/definition59.js +1 -1
  112. package/shared/definition6.cjs +1 -1
  113. package/shared/definition6.js +1 -1
  114. package/shared/definition61.cjs +65845 -2
  115. package/shared/definition61.js +65845 -2
  116. package/shared/definition62.js +1 -1
  117. package/shared/definition63.cjs +155 -2
  118. package/shared/definition63.js +156 -4
  119. package/shared/definition7.cjs +1 -1
  120. package/shared/definition7.js +1 -1
  121. package/shared/definition8.cjs +2 -3
  122. package/shared/definition8.js +3 -4
  123. package/shared/definition9.cjs +1 -1
  124. package/shared/definition9.js +1 -1
  125. package/shared/dialog/index.d.ts +1 -0
  126. package/shared/enums.cjs +6 -0
  127. package/shared/enums.js +6 -1
  128. package/shared/form-elements.cjs +236 -0
  129. package/shared/form-elements.js +229 -0
  130. package/shared/icon.js +1 -1
  131. package/shared/index2.cjs +6 -256
  132. package/shared/index2.js +6 -249
  133. package/shared/localized.cjs +26 -2
  134. package/shared/localized.js +25 -2
  135. package/shared/patterns/anchored.d.ts +4 -4
  136. package/shared/playbackRates.cjs +13 -0
  137. package/shared/playbackRates.js +11 -0
  138. package/shared/presentationDate.cjs +9 -9
  139. package/shared/presentationDate.js +9 -9
  140. package/shared/slider.template.cjs +27 -4
  141. package/shared/slider.template.js +27 -4
  142. package/shared/text-anchor.cjs +1 -1
  143. package/shared/text-anchor.js +1 -1
  144. package/shared/text-field.cjs +1 -1
  145. package/shared/text-field.js +1 -1
  146. package/shared/utils/playbackRates.d.ts +1 -0
  147. package/styles/core/all.css +1 -1
  148. package/styles/core/theme.css +1 -1
  149. package/styles/core/typography.css +1 -1
  150. package/styles/tokens/theme-dark.css +4 -4
  151. package/styles/tokens/theme-light.css +4 -4
  152. package/styles/tokens/vivid-2-compat.css +1 -1
  153. package/tsdoc-metadata.json +11 -0
  154. package/vivid.api.json +228 -8
  155. package/appearance-ui/index.cjs +0 -102
  156. package/appearance-ui/index.js +0 -100
  157. package/lib/appearance-ui/appearance-ui.d.ts +0 -12
  158. package/lib/appearance-ui/appearance-ui.template.d.ts +0 -4
  159. package/lib/appearance-ui/definition.d.ts +0 -3
  160. package/shared/video-player.cjs +0 -65860
  161. package/shared/video-player.js +0 -65857
@@ -1,17 +1,17 @@
1
- import { F as FoundationElement, a as attr, o as observable, n as nullableNumberConverter, h as html, r as registerFactory } from './index.js';
1
+ import { F as FoundationElement, o as observable, a as attr, n as nullableNumberConverter, h as html, r as registerFactory } from './index.js';
2
+ import { P as Popup, a as PlacementStrategy, p as popupRegistries } from './definition63.js';
2
3
  import { e as keyHome, f as keyEnd, d as keyArrowUp, k as keyArrowLeft, c as keyArrowDown, a as keyArrowRight } from './key-codes2.js';
3
- import './affix.js';
4
- import { f as formElements } from './index2.js';
5
- import { L as Localized } from './localized.js';
6
4
  import { F as FormAssociated } from './form-associated.js';
7
5
  import { l as limit, g as getMarkersTemplate } from './slider.template.js';
8
- import { a as applyMixins } from './apply-mixins.js';
9
6
  import { O as Orientation } from './aria.js';
7
+ import { a as applyMixins } from './apply-mixins.js';
8
+ import { L as Localized } from './localized.js';
9
+ import { f as formElements } from './form-elements.js';
10
10
  import { r as ref } from './ref.js';
11
11
  import { w as when } from './when.js';
12
12
  import { c as classNames } from './class-names.js';
13
13
 
14
- const styles = ":host{display:inline-block}:host(:not([orientation=vertical])){inline-size:100%}:host([orientation=vertical]){block-size:100%;min-block-size:calc(var(--_thumb-interaction-indicator-size) * 5)}:host([disabled]){cursor:not-allowed}.control{--_thumb-size: 12px;--_thumb-interaction-indicator-size: 36px;--_track-start-inset-inline-start: 0;--_track-start-inset-block-start: 0;cursor:pointer;outline:none;user-select:none}.control.connotation-cta{--_connotation-color-primary: var(--vvd-slider-cta-primary, var(--vvd-color-cta-500))}.control:not(.connotation-cta){--_connotation-color-primary: var(--vvd-slider-accent-primary, var(--vvd-color-canvas-text))}.control{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.control .positioning-region{position:relative}.control .track{position:absolute;border-radius:4px;background:var(--_track-background-color)}.control .track-start{position:absolute;border-radius:inherit;background:var(--_track-start-background-color);block-size:100%;inset-inline-start:var(--_track-start-inset-inline-start)}.control.horizontal{block-size:var(--_thumb-interaction-indicator-size);inline-size:calc(100% - var(--_thumb-size));margin-inline-start:calc(var(--_thumb-size) / 2);min-inline-size:var(--_thumb-size)}.control.horizontal .track{top:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);right:0;left:0;block-size:2px}:host([markers]) .control.horizontal .track-start{--_track-start-inset-inline-start: 1px;border-bottom-left-radius:0;border-top-left-radius:0}.control.horizontal .track .mark{position:absolute;block-size:6px;inline-size:100%;inset-block-start:-2px;inset-inline-start:0}.control.vertical{margin-top:calc(var(--_thumb-interaction-indicator-size) / 2);block-size:calc(100% - var(--_thumb-interaction-indicator-size));inline-size:var(--_thumb-interaction-indicator-size);min-block-size:var(--_thumb-interaction-indicator-size)}.control.vertical .positioning-region{block-size:100%}.control.vertical .track{left:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);block-size:100%;inline-size:2px}.control.vertical .track .mark{position:absolute;block-size:100%;inline-size:6px;inset-block-start:0;inset-inline-start:-2px}.control.vertical .track-start{block-size:auto;inline-size:100%;inset-block-start:var(--_track-start-inset-block-start)}:host([markers]) .control.vertical .track-start{--_track-start-inset-block-start: 1px;border-radius:0}.control.disabled{--_track-background-color: var(--vvd-color-neutral-100);--_track-start-background-color: var(--vvd-color-neutral-300);pointer-events:none}.control:not(.disabled){--_track-background-color: var(--vvd-color-neutral-300);--_track-start-background-color: var(--_appearance-color-fill)}.control:not(.disabled) .mark{color:var(--vvd-color-neutral-950)}.control.disabled .mark{color:var(--_track-start-background-color)}.thumb-container{position:absolute;border-radius:50%;block-size:var(--_thumb-interaction-indicator-size);cursor:inherit;inline-size:var(--_thumb-interaction-indicator-size);outline-color:transparent;touch-action:none}:focus-visible .thumb-container,.thumb-container:focus-visible{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;--_thumb-interaction-indicator-alpha: .05;border-radius:50%}.control.horizontal .thumb-container{transform:translate(calc(var(--_thumb-interaction-indicator-size) / 2))}.control.vertical .thumb-container{transform:translateY(calc(var(--_thumb-interaction-indicator-size) / 2))}.control:not(.disabled) .thumb-container:hover{--_thumb-interaction-indicator-alpha: .12}.control:not(.disabled) .thumb-container:active{--_thumb-interaction-indicator-alpha: .25}.thumb-container:before{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-interaction-indicator-size);content:\"\";inline-size:var(--_thumb-interaction-indicator-size);opacity:var(--_thumb-interaction-indicator-alpha, 0);transition:opacity .2s ease-out 0s}.thumb-container:after{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-size);content:\"\";inline-size:var(--_thumb-size);inset:calc((var(--_thumb-interaction-indicator-size) - var(--_thumb-size)) / 2)}.control{--_track-start-inset-inline-start: auto;--_track-start-inset-block-start: auto}:host([markers]) .control.horizontal .track-start,:host([markers]) .control.vertical .track-start{--_track-start-inset-inline-start: auto;--_track-start-inset-block-start: auto}";
14
+ const styles = ":host{display:inline-block}:host(:not([orientation=vertical])){inline-size:100%}:host([orientation=vertical]){block-size:100%;min-block-size:calc(var(--_thumb-interaction-indicator-size) * 5)}:host([disabled]){cursor:not-allowed}.control.connotation-cta{--_connotation-color-primary: var(--vvd-slider-cta-primary, var(--vvd-color-cta-500))}.control:not(.connotation-cta){--_connotation-color-primary: var(--vvd-slider-accent-primary, var(--vvd-color-canvas-text))}.control{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.control{--_thumb-size: 12px;--_thumb-interaction-indicator-size: 36px;--_track-start-inset-inline-start: 0;--_track-start-inset-block-start: 0;cursor:pointer;outline:none;user-select:none}.control .positioning-region{position:relative}.control .track{position:absolute;border-radius:4px;background:var(--_track-background-color)}.control .track-start{position:absolute;border-radius:inherit;background:var(--_track-start-background-color);block-size:100%;inset-inline-start:var(--_track-start-inset-inline-start)}.control.horizontal{block-size:var(--_thumb-interaction-indicator-size);inline-size:calc(100% - var(--_thumb-size));margin-inline-start:calc(var(--_thumb-size) / 2);min-inline-size:var(--_thumb-size)}.control.horizontal .track{top:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);right:0;left:0;block-size:2px}:host([markers]) .control.horizontal .track-start{--_track-start-inset-inline-start: 1px;border-bottom-left-radius:0;border-top-left-radius:0}.control.horizontal .track .mark{position:absolute;block-size:6px;inline-size:100%;inset-block-start:-2px;inset-inline-start:0}.control.vertical{margin-top:calc(var(--_thumb-interaction-indicator-size) / 2);block-size:calc(100% - var(--_thumb-interaction-indicator-size));inline-size:var(--_thumb-interaction-indicator-size);min-block-size:var(--_thumb-interaction-indicator-size)}.control.vertical .positioning-region{block-size:100%}.control.vertical .track{left:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);block-size:100%;inline-size:2px}.control.vertical .track .mark{position:absolute;block-size:100%;inline-size:6px;inset-block-start:0;inset-inline-start:-2px}.control.vertical .track-start{block-size:auto;inline-size:100%;inset-block-start:var(--_track-start-inset-block-start)}:host([markers]) .control.vertical .track-start{--_track-start-inset-block-start: 1px;border-radius:0}.control.disabled{--_track-background-color: var(--vvd-color-neutral-100);--_track-start-background-color: var(--vvd-color-neutral-300);pointer-events:none}.control:not(.disabled){--_track-background-color: var(--vvd-color-neutral-300);--_track-start-background-color: var(--_appearance-color-fill)}.control:not(.disabled) .mark{color:var(--vvd-color-neutral-950)}.control.disabled .mark{color:var(--_track-start-background-color)}.thumb-container{position:absolute;border-radius:50%;block-size:var(--_thumb-interaction-indicator-size);cursor:inherit;inline-size:var(--_thumb-interaction-indicator-size);outline:none;touch-action:none}.thumb-container.focus-visible{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;--_thumb-interaction-indicator-alpha: .05;border-radius:50%}.control.horizontal .thumb-container{transform:translate(calc(var(--_thumb-interaction-indicator-size) / 2))}.control.vertical .thumb-container{transform:translateY(calc(var(--_thumb-interaction-indicator-size) / 2))}.control:not(.disabled) .thumb-container:hover{--_thumb-interaction-indicator-alpha: .12}.control:not(.disabled) .thumb-container:active{--_thumb-interaction-indicator-alpha: .25}.thumb-container:before{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-interaction-indicator-size);content:\"\";inline-size:var(--_thumb-interaction-indicator-size);opacity:var(--_thumb-interaction-indicator-alpha, 0);transition:opacity .2s ease-out 0s}.thumb-container:after{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-size);content:\"\";inline-size:var(--_thumb-size);inset:calc((var(--_thumb-interaction-indicator-size) - var(--_thumb-size)) / 2)}.popup{pointer-events:none}.tooltip{width:auto;padding:8px 12px;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold)}.control{--_track-start-inset-inline-start: auto;--_track-start-inset-block-start: auto}:host([markers]) .control.horizontal .track-start,:host([markers]) .control.vertical .track-start{--_track-start-inset-inline-start: auto;--_track-start-inset-block-start: auto}";
15
15
 
16
16
  class _RangeSlider extends FoundationElement {
17
17
  }
@@ -59,7 +59,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
59
59
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
60
60
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
61
61
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
62
- var _isInternalValueUpdate, _RangeSlider_instances, updateValues_fn, applyStep_fn, updateFormValue_fn, thumbs_get, thumbConstraints_get, _draggingThumb, updateThumbPositions_fn, thumbTrackEndOffset_fn, calculateValueFromMouseEvent_fn, roundToNearestStep_fn, registerThumbListeners_fn, unregisterThumbListeners_fn, _onThumbMousedown, _onThumbKeydown, registerDragHandlers_fn, unregisterDragListeners_fn, _onDragMove, _onDragEnd;
62
+ var _isInternalValueUpdate, _RangeSlider_instances, updateValues_fn, applyStep_fn, updateFormValue_fn, thumbs_get, thumbConstraints_get, getThumbId_fn, getThumbIdFromEvent_fn, updateThumbPositions_fn, thumbTrackEndOffset_fn, calculateValueFromMouseEvent_fn, roundToNearestStep_fn, _isNonVisibleFocus, focusThumbNonVisibly_fn, registerThumbListeners_fn, unregisterThumbListeners_fn, _onThumbFocus, _onThumbBlur, _onMouseOver, _onMouseOut, _onThumbMousedown, _onThumbKeydown, registerDragHandlers_fn, unregisterDragListeners_fn, _onDragMove, _onDragEnd;
63
63
  const Direction = {
64
64
  Increment: 1,
65
65
  Decrement: -1
@@ -79,6 +79,7 @@ let RangeSlider = class extends FormAssociatedRangeSlider {
79
79
  this.ariaStartLabel = null;
80
80
  this.ariaEndLabel = null;
81
81
  this.markers = false;
82
+ this.pin = false;
82
83
  this.valueTextFormatter = (value) => parseFloat(value).toLocaleString(this.locale.lang);
83
84
  // --- Thumbs ---
84
85
  /**
@@ -93,10 +94,27 @@ let RangeSlider = class extends FormAssociatedRangeSlider {
93
94
  * @internal
94
95
  */
95
96
  this._endThumbEl = null;
96
- __privateAdd(this, _draggingThumb, false);
97
+ this._draggingThumb = false;
98
+ this._visiblyFocusedThumb = null;
99
+ this._hoveredThumb = null;
97
100
  this._startThumbCss = "";
98
101
  this._endThumbCss = "";
99
102
  this._selectedRangeCss = "";
103
+ __privateAdd(this, _isNonVisibleFocus, false);
104
+ __privateAdd(this, _onThumbFocus, (e) => {
105
+ if (!__privateGet(this, _isNonVisibleFocus)) {
106
+ this._visiblyFocusedThumb = __privateMethod(this, _RangeSlider_instances, getThumbIdFromEvent_fn).call(this, e);
107
+ }
108
+ });
109
+ __privateAdd(this, _onThumbBlur, () => {
110
+ this._visiblyFocusedThumb = null;
111
+ });
112
+ __privateAdd(this, _onMouseOver, (e) => {
113
+ this._hoveredThumb = __privateMethod(this, _RangeSlider_instances, getThumbIdFromEvent_fn).call(this, e);
114
+ });
115
+ __privateAdd(this, _onMouseOut, () => {
116
+ this._hoveredThumb = null;
117
+ });
100
118
  __privateAdd(this, _onThumbMousedown, (event) => {
101
119
  if (this.disabled || event.defaultPrevented) {
102
120
  return;
@@ -105,12 +123,13 @@ let RangeSlider = class extends FormAssociatedRangeSlider {
105
123
  if (target === this._endThumbEl && this.startAsNumber === this.max && this.endAsNumber === this.max) {
106
124
  target = this._startThumbEl;
107
125
  }
108
- target.focus();
109
- __privateSet(this, _draggingThumb, target === this._startThumbEl ? "start" : "end");
126
+ __privateMethod(this, _RangeSlider_instances, focusThumbNonVisibly_fn).call(this, target);
127
+ this._draggingThumb = __privateMethod(this, _RangeSlider_instances, getThumbId_fn).call(this, target);
110
128
  __privateMethod(this, _RangeSlider_instances, registerDragHandlers_fn).call(this);
111
129
  });
112
130
  __privateAdd(this, _onThumbKeydown, (e) => {
113
- const thumb = e.target === this._startThumbEl ? "start" : "end";
131
+ const thumb = __privateMethod(this, _RangeSlider_instances, getThumbIdFromEvent_fn).call(this, e);
132
+ this._visiblyFocusedThumb = thumb;
114
133
  if (e.key === keyHome) {
115
134
  e.preventDefault();
116
135
  __privateMethod(this, _RangeSlider_instances, updateValues_fn).call(this, { [thumb]: `${__privateGet(this, _RangeSlider_instances, thumbConstraints_get)[thumb].min}` });
@@ -133,17 +152,17 @@ let RangeSlider = class extends FormAssociatedRangeSlider {
133
152
  }
134
153
  });
135
154
  __privateAdd(this, _onDragMove, (e) => {
136
- if (this.disabled || e.defaultPrevented || !__privateGet(this, _draggingThumb)) {
155
+ if (this.disabled || e.defaultPrevented || !this._draggingThumb) {
137
156
  return;
138
157
  }
139
158
  const sourceEvent = "TouchEvent" in window && e instanceof TouchEvent ? e.touches[0] : e;
140
159
  const value = __privateMethod(this, _RangeSlider_instances, calculateValueFromMouseEvent_fn).call(this, sourceEvent);
141
160
  __privateMethod(this, _RangeSlider_instances, updateValues_fn).call(this, {
142
- [__privateGet(this, _draggingThumb)]: `${__privateMethod(this, _RangeSlider_instances, roundToNearestStep_fn).call(this, __privateGet(this, _draggingThumb), value)}`
161
+ [this._draggingThumb]: `${__privateMethod(this, _RangeSlider_instances, roundToNearestStep_fn).call(this, this._draggingThumb, value)}`
143
162
  });
144
163
  });
145
164
  __privateAdd(this, _onDragEnd, () => {
146
- __privateSet(this, _draggingThumb, false);
165
+ this._draggingThumb = false;
147
166
  __privateMethod(this, _RangeSlider_instances, unregisterDragListeners_fn).call(this);
148
167
  });
149
168
  }
@@ -248,6 +267,12 @@ let RangeSlider = class extends FormAssociatedRangeSlider {
248
267
  });
249
268
  super.formResetCallback();
250
269
  }
270
+ /**
271
+ * @internal
272
+ */
273
+ _isThumbPopupOpen(thumb) {
274
+ return this._visiblyFocusedThumb === thumb || this._hoveredThumb === thumb || this._draggingThumb === thumb;
275
+ }
251
276
  // --- Lifecycle ---
252
277
  connectedCallback() {
253
278
  super.connectedCallback();
@@ -267,7 +292,7 @@ let RangeSlider = class extends FormAssociatedRangeSlider {
267
292
  * @internal
268
293
  */
269
294
  _onMouseDown(e) {
270
- if (this.disabled || __privateGet(this, _draggingThumb)) {
295
+ if (this.disabled || this._draggingThumb) {
271
296
  return;
272
297
  }
273
298
  const value = __privateMethod(this, _RangeSlider_instances, calculateValueFromMouseEvent_fn).call(this, e);
@@ -277,8 +302,8 @@ let RangeSlider = class extends FormAssociatedRangeSlider {
277
302
  __privateMethod(this, _RangeSlider_instances, updateValues_fn).call(this, {
278
303
  [thumb]: `${__privateMethod(this, _RangeSlider_instances, roundToNearestStep_fn).call(this, thumb, value)}`
279
304
  });
280
- __privateSet(this, _draggingThumb, thumb);
281
- __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].focus();
305
+ this._draggingThumb = thumb;
306
+ __privateMethod(this, _RangeSlider_instances, focusThumbNonVisibly_fn).call(this, __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb]);
282
307
  __privateMethod(this, _RangeSlider_instances, registerDragHandlers_fn).call(this);
283
308
  }
284
309
  };
@@ -342,12 +367,17 @@ thumbConstraints_get = function() {
342
367
  end: { min: this.startAsNumber, max: this.max }
343
368
  };
344
369
  };
345
- _draggingThumb = new WeakMap();
370
+ getThumbId_fn = function(thumb) {
371
+ return thumb === this._startThumbEl ? "start" : "end";
372
+ };
373
+ getThumbIdFromEvent_fn = function(e) {
374
+ return __privateMethod(this, _RangeSlider_instances, getThumbId_fn).call(this, e.target);
375
+ };
346
376
  updateThumbPositions_fn = function() {
347
377
  const startOffsetPct = __privateMethod(this, _RangeSlider_instances, thumbTrackEndOffset_fn).call(this, this.startAsNumber);
348
378
  const endOffsetPct = __privateMethod(this, _RangeSlider_instances, thumbTrackEndOffset_fn).call(this, this.endAsNumber);
349
379
  const [dirProp, dimProp] = this.orientation === Orientation.horizontal ? ["right", "width"] : ["bottom", "height"];
350
- const transition = `transition: ${__privateGet(this, _draggingThumb) ? "none" : "all 0.2s ease"};`;
380
+ const transition = `transition: ${this._draggingThumb ? "none" : "all 0.2s ease"};`;
351
381
  this._startThumbCss = `${dirProp}: ${startOffsetPct}%; ${transition}`;
352
382
  this._endThumbCss = `${dirProp}: ${endOffsetPct}%; ${transition}`;
353
383
  this._selectedRangeCss = `${dirProp}: ${endOffsetPct}%; ${dimProp}: ${startOffsetPct - endOffsetPct}%; ${transition}`;
@@ -375,6 +405,12 @@ roundToNearestStep_fn = function(thumb, value) {
375
405
  roundToStepValue(value - this.min, this.step) + this.min
376
406
  );
377
407
  };
408
+ _isNonVisibleFocus = new WeakMap();
409
+ focusThumbNonVisibly_fn = function(thumb) {
410
+ __privateSet(this, _isNonVisibleFocus, true);
411
+ thumb.focus();
412
+ __privateSet(this, _isNonVisibleFocus, false);
413
+ };
378
414
  // --- Event handling ---
379
415
  registerThumbListeners_fn = function() {
380
416
  for (const thumb of ["start", "end"]) {
@@ -389,6 +425,14 @@ registerThumbListeners_fn = function() {
389
425
  __privateGet(this, _onThumbMousedown),
390
426
  { passive: true }
391
427
  );
428
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].addEventListener("mouseover", __privateGet(this, _onMouseOver), {
429
+ passive: true
430
+ });
431
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].addEventListener("mouseout", __privateGet(this, _onMouseOut), {
432
+ passive: true
433
+ });
434
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].addEventListener("focus", __privateGet(this, _onThumbFocus));
435
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].addEventListener("blur", __privateGet(this, _onThumbBlur));
392
436
  }
393
437
  };
394
438
  unregisterThumbListeners_fn = function() {
@@ -402,8 +446,16 @@ unregisterThumbListeners_fn = function() {
402
446
  "touchstart",
403
447
  __privateGet(this, _onThumbMousedown)
404
448
  );
449
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].removeEventListener("mouseover", __privateGet(this, _onMouseOver));
450
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].removeEventListener("mouseout", __privateGet(this, _onMouseOut));
451
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].removeEventListener("focus", __privateGet(this, _onThumbFocus));
452
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].removeEventListener("blur", __privateGet(this, _onThumbBlur));
405
453
  }
406
454
  };
455
+ _onThumbFocus = new WeakMap();
456
+ _onThumbBlur = new WeakMap();
457
+ _onMouseOver = new WeakMap();
458
+ _onMouseOut = new WeakMap();
407
459
  _onThumbMousedown = new WeakMap();
408
460
  _onThumbKeydown = new WeakMap();
409
461
  registerDragHandlers_fn = function() {
@@ -464,9 +516,21 @@ __decorateClass([
464
516
  __decorateClass([
465
517
  attr
466
518
  ], RangeSlider.prototype, "connotation", 2);
519
+ __decorateClass([
520
+ attr({ mode: "boolean" })
521
+ ], RangeSlider.prototype, "pin", 2);
467
522
  __decorateClass([
468
523
  observable
469
524
  ], RangeSlider.prototype, "valueTextFormatter", 2);
525
+ __decorateClass([
526
+ observable
527
+ ], RangeSlider.prototype, "_draggingThumb", 2);
528
+ __decorateClass([
529
+ observable
530
+ ], RangeSlider.prototype, "_visiblyFocusedThumb", 2);
531
+ __decorateClass([
532
+ observable
533
+ ], RangeSlider.prototype, "_hoveredThumb", 2);
470
534
  __decorateClass([
471
535
  observable
472
536
  ], RangeSlider.prototype, "_startThumbCss", 2);
@@ -486,7 +550,12 @@ const getClasses = ({ disabled, connotation }) => classNames(
486
550
  ["disabled", Boolean(disabled)],
487
551
  [`connotation-${connotation}`, Boolean(connotation)]
488
552
  );
489
- const RangeSliderTemplate = () => {
553
+ const getThumbClassesFor = (thumb) => ({ _visiblyFocusedThumb }) => classNames("thumb-container", [
554
+ "focus-visible",
555
+ _visiblyFocusedThumb === thumb
556
+ ]);
557
+ const RangeSliderTemplate = (context) => {
558
+ const popupTag = context.tagFor(Popup);
490
559
  return html` <template
491
560
  @mousedown="${(x, c) => x._onMouseDown(c.event)}"
492
561
  >
@@ -504,7 +573,7 @@ const RangeSliderTemplate = () => {
504
573
  </div>
505
574
  <div
506
575
  ${ref("_startThumbEl")}
507
- class="thumb-container"
576
+ class="${getThumbClassesFor("start")}"
508
577
  style="${(x) => x._startThumbCss}"
509
578
  role="slider"
510
579
  tabindex="${(x) => x.disabled ? null : 0}"
@@ -516,9 +585,25 @@ const RangeSliderTemplate = () => {
516
585
  aria-disabled="${(x) => x.disabled}"
517
586
  aria-orientation="${(x) => x.orientation}"
518
587
  ></div>
588
+ ${when(
589
+ (x) => x.pin,
590
+ html`<${popupTag}
591
+ class="popup"
592
+ arrow
593
+ alternate
594
+ :anchor="${(x) => x._startThumbEl}"
595
+ :open=${(x) => x._isThumbPopupOpen("start")}
596
+ :placementStrategy=${(x) => x.orientation === Orientation.horizontal ? PlacementStrategy.AutoPlacementHorizontal : PlacementStrategy.AutoPlacementVertical}
597
+ animation-frame
598
+ exportparts="vvd-theme-alternate"
599
+ aria-hidden="true"
600
+ >
601
+ <div class="tooltip">${(x) => x.valueTextFormatter(x.start)}</div>
602
+ </${popupTag}>`
603
+ )}
519
604
  <div
520
605
  ${ref("_endThumbEl")}
521
- class="thumb-container"
606
+ class="${getThumbClassesFor("end")}"
522
607
  style="${(x) => x._endThumbCss}"
523
608
  role="slider"
524
609
  tabindex="${(x) => x.disabled ? null : 0}"
@@ -530,6 +615,22 @@ const RangeSliderTemplate = () => {
530
615
  aria-disabled="${(x) => x.disabled}"
531
616
  aria-orientation="${(x) => x.orientation}"
532
617
  ></div>
618
+ ${when(
619
+ (x) => x.pin,
620
+ html`<${popupTag}
621
+ class="popup"
622
+ arrow
623
+ alternate
624
+ :anchor="${(x) => x._endThumbEl}"
625
+ :open=${(x) => x._isThumbPopupOpen("end")}
626
+ :placementStrategy=${(x) => x.orientation === Orientation.horizontal ? PlacementStrategy.AutoPlacementHorizontal : PlacementStrategy.AutoPlacementVertical}
627
+ animation-frame
628
+ exportparts="vvd-theme-alternate"
629
+ aria-hidden="true"
630
+ >
631
+ <div class="tooltip">${(x) => x.valueTextFormatter(x.end)}</div>
632
+ </${popupTag}>`
633
+ )}
533
634
  </div>
534
635
  </div>
535
636
  </template>`;
@@ -543,7 +644,10 @@ const rangeSliderDefinition = RangeSlider.compose({
543
644
  delegatesFocus: true
544
645
  }
545
646
  });
546
- const rangeSliderRegistries = [rangeSliderDefinition()];
647
+ const rangeSliderRegistries = [
648
+ ...popupRegistries,
649
+ rangeSliderDefinition()
650
+ ];
547
651
  const registerRangeSlider = registerFactory(rangeSliderRegistries);
548
652
 
549
653
  export { rangeSliderRegistries as a, registerRangeSlider as b, rangeSliderDefinition as r };
@@ -4,8 +4,6 @@ const index = require('./index.cjs');
4
4
  const definition = require('./definition63.cjs');
5
5
  const definition$3 = require('./definition27.cjs');
6
6
  const definition$1 = require('./definition36.cjs');
7
- const affix = require('./affix.cjs');
8
- const index$1 = require('./index2.cjs');
9
7
  const listbox = require('./listbox.cjs');
10
8
  const applyMixinsWithObservables = require('./applyMixinsWithObservables.cjs');
11
9
  const startEnd = require('./start-end.cjs');
@@ -14,7 +12,10 @@ const formAssociated = require('./form-associated.cjs');
14
12
  const select_options = require('./select.options.cjs');
15
13
  const strings = require('./strings.cjs');
16
14
  const keyCodes = require('./key-codes.cjs');
15
+ const affix = require('./affix.cjs');
16
+ const formElements = require('./form-elements.cjs');
17
17
  const definition$2 = require('./definition11.cjs');
18
+ const index$1 = require('./index2.cjs');
18
19
  const ref = require('./ref.cjs');
19
20
  const when = require('./when.cjs');
20
21
  const slotted = require('./slotted.cjs');
@@ -517,7 +518,7 @@ index.__decorate([
517
518
  applyMixins.applyMixins(DelegatesARIASelect, listbox.DelegatesARIAListbox);
518
519
  applyMixins.applyMixins(Select$1, startEnd.StartEnd, DelegatesARIASelect);
519
520
 
520
- const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([aria-expanded=true]) .chevron{transform:rotate(180deg)}:host(:focus-visible){outline:none}:host{display:inline-flex;flex-direction:column;gap:4px;--_low-ink-color: var(--vvd-color-neutral-600);--focus-stroke-gap-color: transparent}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.label{color:var(--vvd-color-canvas-text);contain:inline-size;font:var(--vvd-typography-base)}.control{display:flex;align-items:center;justify-content:space-between;border-radius:var(--_select-control-border-radius);background-color:var(--_appearance-color-fill);block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;padding-inline:16px;transition:box-shadow .2s,background-color .2s}.control{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-intermediate)}.control.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-fierce)}.control:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.control:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.control:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.control:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.control:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.control:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.control:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.control{--_connotation-color-primary: var(--vvd-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-select-accent-fierce, var(--vvd-color-neutral-700))}.control-wrapper{position:relative}.control:not(.disabled){cursor:pointer}.control.disabled{pointer-events:none}.control:not(.shape-pill){--_select-control-border-radius: 8px}.control.shape-pill{--_select-control-border-radius: 24px}:host(:focus-visible) .control{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}.listbox{display:flex;max-height:var(--select-height, 408px);flex-direction:column;padding:4px;gap:2px;overflow-y:auto}:host([multiple]:focus-visible) .listbox{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));border-radius:8px}.selected-value{display:flex;overflow:hidden;flex-grow:1;align-items:center;column-gap:12px;white-space:nowrap}.selected-value .text{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis}.control.shows-placeholder .selected-value .text{color:var(--vvd-color-neutral-600)}.selected-value slot[name=icon]{flex:0 0 20px;font-size:20px;line-height:1}.control.has-meta .selected-value{padding-inline-end:8px}.feedback-wrapper{display:contents}::part(popup-base){inline-size:max-content;min-inline-size:var(--_select-fixed-width, 100%)}:host([multiple]) ::part(popup-base){position:static}";
521
+ const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([aria-expanded=true]) .chevron{transform:rotate(180deg)}:host(:focus-visible){outline:none}:host{display:inline-flex;flex-direction:column;gap:4px;--_low-ink-color: var(--vvd-color-neutral-600);--focus-stroke-gap-color: transparent}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.label{color:var(--vvd-color-canvas-text);contain:inline-size;font:var(--vvd-typography-base)}.control{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-intermediate)}.control.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-fierce)}.control:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.control:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.control:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.control:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.control:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.control:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.control:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.control{--_connotation-color-primary: var(--vvd-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-select-accent-fierce, var(--vvd-color-neutral-700))}.control{display:flex;align-items:center;justify-content:space-between;border-radius:var(--_select-control-border-radius);background-color:var(--_appearance-color-fill);block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;padding-inline:16px;transition:box-shadow .2s,background-color .2s}.control-wrapper{position:relative}.control:not(.disabled){cursor:pointer}.control.disabled{pointer-events:none}.control:not(.shape-pill){--_select-control-border-radius: 8px}.control.shape-pill{--_select-control-border-radius: 24px}:host(:focus-visible) .control{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}.listbox{display:flex;max-height:var(--select-height, 408px);flex-direction:column;padding:4px;gap:2px;overflow-y:auto}:host([multiple]:focus-visible) .listbox{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));border-radius:8px}.selected-value{display:flex;overflow:hidden;flex-grow:1;align-items:center;column-gap:12px;white-space:nowrap}.selected-value .text{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis}.control.shows-placeholder .selected-value .text{color:var(--vvd-color-neutral-600)}.selected-value slot[name=icon]{flex:0 0 20px;font-size:20px;line-height:1}.control.has-meta .selected-value{padding-inline-end:8px}.feedback-wrapper{display:contents}::part(popup-base){inline-size:max-content;min-inline-size:var(--_select-fixed-width, 100%)}:host([multiple]) ::part(popup-base){position:static}";
521
522
 
522
523
  var __defProp = Object.defineProperty;
523
524
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -536,6 +537,11 @@ let Select = class extends Select$1 {
536
537
  this.placeholderOption = null;
537
538
  this._feedbackWrapper = null;
538
539
  }
540
+ labelChanged() {
541
+ if (!this.ariaLabel) {
542
+ this.ariaLabel = this.label;
543
+ }
544
+ }
539
545
  connectedCallback() {
540
546
  super.connectedCallback();
541
547
  }
@@ -599,14 +605,14 @@ __decorateClass([
599
605
  index.observable
600
606
  ], Select.prototype, "metaSlottedContent", 2);
601
607
  Select = __decorateClass([
602
- index$1.errorText,
603
- index$1.formElements
608
+ formElements.errorText,
609
+ formElements.formElements
604
610
  ], Select);
605
611
  applyMixinsWithObservables.applyMixinsWithObservables(
606
612
  Select,
607
613
  affix.AffixIconWithTrailing,
608
- index$1.FormElementHelperText,
609
- index$1.FormElementSuccessText
614
+ formElements.FormElementHelperText,
615
+ formElements.FormElementSuccessText
610
616
  );
611
617
 
612
618
  const getStateClasses = ({
@@ -717,16 +723,17 @@ const SelectTemplate = (context) => {
717
723
  @focusout="${ifNotFromFeedback(
718
724
  (x, e) => x.focusoutHandler(e)
719
725
  )}"
720
- @keydown="${ifNotFromFeedback(
721
- (x, e) => x.keydownHandler(e)
722
- )}"
726
+ @keydown="${ifNotFromFeedback((x, e) => {
727
+ x.open && index$1.handleEscapeKeyAndStopPropogation(e);
728
+ return x.keydownHandler(e);
729
+ })}"
723
730
  @mousedown="${ifNotFromFeedback(
724
731
  (x, e) => x.mousedownHandler(e)
725
732
  )}"
726
733
  >
727
734
  ${renderControl(context)}
728
735
  <div class="feedback-wrapper" ${ref.ref("_feedbackWrapper")}>
729
- ${index$1.getFeedbackTemplate(context)}
736
+ ${formElements.getFeedbackTemplate(context)}
730
737
  </div>
731
738
  </template>
732
739
  `;
@@ -2,8 +2,6 @@ import { D as DOM, O as Observable, _ as __decorate, a as attr, v as volatile, o
2
2
  import { P as Popup, p as popupRegistries } from './definition63.js';
3
3
  import { a as iconRegistries } from './definition27.js';
4
4
  import { L as ListboxOption, a as listboxOptionRegistries } from './definition36.js';
5
- import { b as AffixIconWithTrailing, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
6
- import { e as errorText, f as formElements, F as FormElementSuccessText, a as FormElementHelperText, g as getFeedbackTemplate } from './index2.js';
7
5
  import { L as ListboxElement, b as Listbox, D as DelegatesARIAListbox, a as Listbox$1 } from './listbox.js';
8
6
  import { a as applyMixinsWithObservables } from './applyMixinsWithObservables.js';
9
7
  import { S as StartEnd } from './start-end.js';
@@ -12,7 +10,10 @@ import { F as FormAssociated } from './form-associated.js';
12
10
  import { S as SelectPosition } from './select.options.js';
13
11
  import { u as uniqueId } from './strings.js';
14
12
  import { c as keyTab, b as keyEscape, k as keyEnter, d as keyEnd, g as keyHome, a as keySpace, f as keyArrowDown, e as keyArrowUp } from './key-codes.js';
13
+ import { b as AffixIconWithTrailing, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
14
+ import { e as errorText, f as formElements, F as FormElementSuccessText, a as FormElementHelperText, g as getFeedbackTemplate } from './form-elements.js';
15
15
  import { c as chevronTemplateFactory } from './definition11.js';
16
+ import { h as handleEscapeKeyAndStopPropogation } from './index2.js';
16
17
  import { r as ref } from './ref.js';
17
18
  import { w as when } from './when.js';
18
19
  import { s as slotted } from './slotted.js';
@@ -515,7 +516,7 @@ __decorate([
515
516
  applyMixins(DelegatesARIASelect, DelegatesARIAListbox);
516
517
  applyMixins(Select$1, StartEnd, DelegatesARIASelect);
517
518
 
518
- const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([aria-expanded=true]) .chevron{transform:rotate(180deg)}:host(:focus-visible){outline:none}:host{display:inline-flex;flex-direction:column;gap:4px;--_low-ink-color: var(--vvd-color-neutral-600);--focus-stroke-gap-color: transparent}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.label{color:var(--vvd-color-canvas-text);contain:inline-size;font:var(--vvd-typography-base)}.control{display:flex;align-items:center;justify-content:space-between;border-radius:var(--_select-control-border-radius);background-color:var(--_appearance-color-fill);block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;padding-inline:16px;transition:box-shadow .2s,background-color .2s}.control{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-intermediate)}.control.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-fierce)}.control:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.control:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.control:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.control:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.control:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.control:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.control:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.control{--_connotation-color-primary: var(--vvd-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-select-accent-fierce, var(--vvd-color-neutral-700))}.control-wrapper{position:relative}.control:not(.disabled){cursor:pointer}.control.disabled{pointer-events:none}.control:not(.shape-pill){--_select-control-border-radius: 8px}.control.shape-pill{--_select-control-border-radius: 24px}:host(:focus-visible) .control{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}.listbox{display:flex;max-height:var(--select-height, 408px);flex-direction:column;padding:4px;gap:2px;overflow-y:auto}:host([multiple]:focus-visible) .listbox{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));border-radius:8px}.selected-value{display:flex;overflow:hidden;flex-grow:1;align-items:center;column-gap:12px;white-space:nowrap}.selected-value .text{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis}.control.shows-placeholder .selected-value .text{color:var(--vvd-color-neutral-600)}.selected-value slot[name=icon]{flex:0 0 20px;font-size:20px;line-height:1}.control.has-meta .selected-value{padding-inline-end:8px}.feedback-wrapper{display:contents}::part(popup-base){inline-size:max-content;min-inline-size:var(--_select-fixed-width, 100%)}:host([multiple]) ::part(popup-base){position:static}";
519
+ const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([aria-expanded=true]) .chevron{transform:rotate(180deg)}:host(:focus-visible){outline:none}:host{display:inline-flex;flex-direction:column;gap:4px;--_low-ink-color: var(--vvd-color-neutral-600);--focus-stroke-gap-color: transparent}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.label{color:var(--vvd-color-canvas-text);contain:inline-size;font:var(--vvd-typography-base)}.control{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-intermediate)}.control.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-fierce)}.control:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.control:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.control:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.control:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.control:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.control:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.control:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.control:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.control{--_connotation-color-primary: var(--vvd-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-select-accent-fierce, var(--vvd-color-neutral-700))}.control{display:flex;align-items:center;justify-content:space-between;border-radius:var(--_select-control-border-radius);background-color:var(--_appearance-color-fill);block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;padding-inline:16px;transition:box-shadow .2s,background-color .2s}.control-wrapper{position:relative}.control:not(.disabled){cursor:pointer}.control.disabled{pointer-events:none}.control:not(.shape-pill){--_select-control-border-radius: 8px}.control.shape-pill{--_select-control-border-radius: 24px}:host(:focus-visible) .control{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}.listbox{display:flex;max-height:var(--select-height, 408px);flex-direction:column;padding:4px;gap:2px;overflow-y:auto}:host([multiple]:focus-visible) .listbox{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));border-radius:8px}.selected-value{display:flex;overflow:hidden;flex-grow:1;align-items:center;column-gap:12px;white-space:nowrap}.selected-value .text{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis}.control.shows-placeholder .selected-value .text{color:var(--vvd-color-neutral-600)}.selected-value slot[name=icon]{flex:0 0 20px;font-size:20px;line-height:1}.control.has-meta .selected-value{padding-inline-end:8px}.feedback-wrapper{display:contents}::part(popup-base){inline-size:max-content;min-inline-size:var(--_select-fixed-width, 100%)}:host([multiple]) ::part(popup-base){position:static}";
519
520
 
520
521
  var __defProp = Object.defineProperty;
521
522
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -534,6 +535,11 @@ let Select = class extends Select$1 {
534
535
  this.placeholderOption = null;
535
536
  this._feedbackWrapper = null;
536
537
  }
538
+ labelChanged() {
539
+ if (!this.ariaLabel) {
540
+ this.ariaLabel = this.label;
541
+ }
542
+ }
537
543
  connectedCallback() {
538
544
  super.connectedCallback();
539
545
  }
@@ -715,9 +721,10 @@ const SelectTemplate = (context) => {
715
721
  @focusout="${ifNotFromFeedback(
716
722
  (x, e) => x.focusoutHandler(e)
717
723
  )}"
718
- @keydown="${ifNotFromFeedback(
719
- (x, e) => x.keydownHandler(e)
720
- )}"
724
+ @keydown="${ifNotFromFeedback((x, e) => {
725
+ x.open && handleEscapeKeyAndStopPropogation(e);
726
+ return x.keydownHandler(e);
727
+ })}"
721
728
  @mousedown="${ifNotFromFeedback(
722
729
  (x, e) => x.mousedownHandler(e)
723
730
  )}"
@@ -8,7 +8,7 @@ const radio$1 = require('./radio.cjs');
8
8
  const classNames = require('./class-names.cjs');
9
9
  const when = require('./when.cjs');
10
10
 
11
- const styles = ":host{display:flex}.base{position:relative;padding:var(--selectable-box-spacing, 16px);border:1px solid var(--_appearance-color-outline);border-radius:8px;background-color:var(--_appearance-color-fill);inline-size:100%;padding-block-start:calc(var(--selectable-box-spacing, 16px) + 36px);text-align:start}.base.connotation-cta{--_connotation-color-firm-all: var(--vvd-selectable-box-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-pale: var(--vvd-selectable-box-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-selectable-box-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-faint: var(--vvd-selectable-box-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-selectable-box-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-firm-all: var(--vvd-selectable-box-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-pale: var(--vvd-selectable-box-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-selectable-box-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-selectable-box-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-selectable-box-accent-soft, var(--vvd-color-neutral-100))}.base{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}.base.tight{overflow:hidden;min-height:calc(var(--selectable-box-spacing, 16px) * 2 + 22px);padding:0}.base.clickable{cursor:pointer}.control{position:absolute;inset-block-start:var(--selectable-box-spacing, 16px);inset-inline-end:var(--selectable-box-spacing, 16px)}";
11
+ const styles = ":host{display:flex}.base.connotation-cta{--_connotation-color-firm-all: var(--vvd-selectable-box-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-pale: var(--vvd-selectable-box-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-selectable-box-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-faint: var(--vvd-selectable-box-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-selectable-box-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-firm-all: var(--vvd-selectable-box-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-pale: var(--vvd-selectable-box-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-selectable-box-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-selectable-box-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-selectable-box-accent-soft, var(--vvd-color-neutral-100))}.base{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}.base{position:relative;padding:var(--selectable-box-spacing, 16px);border:1px solid var(--_appearance-color-outline);border-radius:8px;background-color:var(--_appearance-color-fill);inline-size:100%;padding-block-start:calc(var(--selectable-box-spacing, 16px) + 36px);text-align:start}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}.base.tight{overflow:hidden;min-height:calc(var(--selectable-box-spacing, 16px) * 2 + 22px);padding:0}.base.clickable{cursor:pointer}.control{position:absolute;inset-block-start:var(--selectable-box-spacing, 16px);inset-inline-end:var(--selectable-box-spacing, 16px)}";
12
12
 
13
13
  var __defProp = Object.defineProperty;
14
14
  var __decorateClass = (decorators, target, key, kind) => {
@@ -1,4 +1,4 @@
1
- import { a as attr, F as FoundationElement, h as html, r as registerFactory } from './index.js';
1
+ import { F as FoundationElement, a as attr, h as html, r as registerFactory } from './index.js';
2
2
  import { C as Checkbox, a as checkboxRegistries } from './definition15.js';
3
3
  import { a as radioRegistries } from './definition41.js';
4
4
  import { C as Connotation } from './enums.js';
@@ -6,7 +6,7 @@ import { R as Radio } from './radio.js';
6
6
  import { c as classNames } from './class-names.js';
7
7
  import { w as when } from './when.js';
8
8
 
9
- const styles = ":host{display:flex}.base{position:relative;padding:var(--selectable-box-spacing, 16px);border:1px solid var(--_appearance-color-outline);border-radius:8px;background-color:var(--_appearance-color-fill);inline-size:100%;padding-block-start:calc(var(--selectable-box-spacing, 16px) + 36px);text-align:start}.base.connotation-cta{--_connotation-color-firm-all: var(--vvd-selectable-box-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-pale: var(--vvd-selectable-box-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-selectable-box-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-faint: var(--vvd-selectable-box-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-selectable-box-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-firm-all: var(--vvd-selectable-box-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-pale: var(--vvd-selectable-box-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-selectable-box-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-selectable-box-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-selectable-box-accent-soft, var(--vvd-color-neutral-100))}.base{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}.base.tight{overflow:hidden;min-height:calc(var(--selectable-box-spacing, 16px) * 2 + 22px);padding:0}.base.clickable{cursor:pointer}.control{position:absolute;inset-block-start:var(--selectable-box-spacing, 16px);inset-inline-end:var(--selectable-box-spacing, 16px)}";
9
+ const styles = ":host{display:flex}.base.connotation-cta{--_connotation-color-firm-all: var(--vvd-selectable-box-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-pale: var(--vvd-selectable-box-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-selectable-box-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-faint: var(--vvd-selectable-box-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-selectable-box-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-firm-all: var(--vvd-selectable-box-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-pale: var(--vvd-selectable-box-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-selectable-box-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-selectable-box-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-selectable-box-accent-soft, var(--vvd-color-neutral-100))}.base{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}.base{position:relative;padding:var(--selectable-box-spacing, 16px);border:1px solid var(--_appearance-color-outline);border-radius:8px;background-color:var(--_appearance-color-fill);inline-size:100%;padding-block-start:calc(var(--selectable-box-spacing, 16px) + 36px);text-align:start}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}.base.tight{overflow:hidden;min-height:calc(var(--selectable-box-spacing, 16px) * 2 + 22px);padding:0}.base.clickable{cursor:pointer}.control{position:absolute;inset-block-start:var(--selectable-box-spacing, 16px);inset-inline-end:var(--selectable-box-spacing, 16px)}";
10
10
 
11
11
  var __defProp = Object.defineProperty;
12
12
  var __decorateClass = (decorators, target, key, kind) => {
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const index = require('./index.cjs');
4
+ const index$1 = require('./index2.cjs');
4
5
  const when = require('./when.cjs');
5
6
  const classNames = require('./class-names.cjs');
6
7
 
@@ -88,8 +89,8 @@ const sideDrawerTemplate = () => index.html`
88
89
  ></div>`
89
90
  )}
90
91
  `;
91
- const handleKeydown = (x, { key }) => {
92
- if (key === "Escape") {
92
+ const handleKeydown = (x, event) => {
93
+ if (index$1.handleEscapeKeyAndStopPropogation(event)) {
93
94
  x.open = false;
94
95
  } else {
95
96
  return true;
@@ -1,4 +1,5 @@
1
- import { a as attr, F as FoundationElement, h as html, r as registerFactory } from './index.js';
1
+ import { F as FoundationElement, a as attr, h as html, r as registerFactory } from './index.js';
2
+ import { h as handleEscapeKeyAndStopPropogation } from './index2.js';
2
3
  import { w as when } from './when.js';
3
4
  import { c as classNames } from './class-names.js';
4
5
 
@@ -86,8 +87,8 @@ const sideDrawerTemplate = () => html`
86
87
  ></div>`
87
88
  )}
88
89
  `;
89
- const handleKeydown = (x, { key }) => {
90
- if (key === "Escape") {
90
+ const handleKeydown = (x, event) => {
91
+ if (handleEscapeKeyAndStopPropogation(event)) {
91
92
  x.open = false;
92
93
  } else {
93
94
  return true;