@vonage/vivid 4.3.0 → 4.4.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 (44) hide show
  1. package/custom-elements.json +392 -41
  2. package/index.cjs +1 -0
  3. package/index.js +1 -1
  4. package/lib/dialog/dialog.d.ts +1 -0
  5. package/lib/empty-state/definition.d.ts +1 -0
  6. package/lib/empty-state/empty-state.d.ts +5 -0
  7. package/lib/enums.d.ts +4 -0
  8. package/lib/popup/popup.d.ts +5 -0
  9. package/lib/range-slider/range-slider.d.ts +2 -0
  10. package/lib/slider/slider.d.ts +5 -0
  11. package/lib/slider/slider.template.d.ts +2 -2
  12. package/package.json +1 -1
  13. package/shared/definition.cjs +1 -1
  14. package/shared/definition.js +1 -1
  15. package/shared/definition21.cjs +67 -30
  16. package/shared/definition21.js +67 -30
  17. package/shared/definition23.cjs +18 -3
  18. package/shared/definition23.js +19 -4
  19. package/shared/definition25.cjs +1 -1
  20. package/shared/definition25.js +1 -1
  21. package/shared/definition30.cjs +1 -1
  22. package/shared/definition30.js +1 -1
  23. package/shared/definition42.cjs +123 -18
  24. package/shared/definition42.js +123 -18
  25. package/shared/definition46.cjs +96 -11
  26. package/shared/definition46.js +97 -12
  27. package/shared/definition56.cjs +1 -1
  28. package/shared/definition56.js +1 -1
  29. package/shared/definition63.cjs +155 -2
  30. package/shared/definition63.js +156 -4
  31. package/shared/enums.cjs +6 -0
  32. package/shared/enums.js +6 -1
  33. package/shared/patterns/anchored.d.ts +4 -4
  34. package/shared/presentationDate.cjs +1 -1
  35. package/shared/presentationDate.js +1 -1
  36. package/shared/slider.template.cjs +27 -4
  37. package/shared/slider.template.js +27 -4
  38. package/styles/core/all.css +1 -1
  39. package/styles/core/theme.css +1 -1
  40. package/styles/core/typography.css +1 -1
  41. package/styles/tokens/theme-dark.css +4 -4
  42. package/styles/tokens/theme-light.css +4 -4
  43. package/styles/tokens/vivid-2-compat.css +1 -1
  44. package/vivid.api.json +211 -0
@@ -11,7 +11,7 @@ import { w as when } from './when.js';
11
11
  import { r as ref } from './ref.js';
12
12
  import { c as classNames } from './class-names.js';
13
13
 
14
- const styles = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column}.control{display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;--focus-inset: 1px;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))}.main{pointer-events:none}.dz-preview{display:grid;box-sizing:border-box;padding:6px 12px;border-radius:8px;grid-template-columns:1fr auto;grid-template-rows:auto auto;inline-size:100%}.dz-preview .dz-details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.dz-preview .dz-details .dz-filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.dz-preview .dz-details .dz-size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.dz-preview .dz-error-message{color:var(--vvd-color-alert-500);font:var(--vvd-typography-base-condensed);margin-block-start:4px}.dz-preview:not(.dz-error) .dz-error-message{display:none}.dz-preview.dz-error{border:1px solid var(--vvd-color-alert-500)}.dz-preview.dz-error .dz-details .dz-size,.dz-preview.dz-error .dz-progress{display:none}.dz-preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.message{margin-block-start:4px;--_low-ink-color: var(--vvd-color-neutral-600)}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:empty{display:none}";
14
+ const styles = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column}.control{display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;--focus-inset: 1px;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))}.main{pointer-events:none}.dz-preview{display:grid;box-sizing:border-box;padding:8px;border-radius:8px;background-color:var(--file-picker-list-item-background-color, var(--vvd-color-canvas));grid-template-columns:1fr auto;grid-template-rows:auto auto;inline-size:100%}.dz-preview .dz-details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.dz-preview .dz-details .dz-filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.dz-preview .dz-details .dz-size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.dz-preview .dz-error-message{color:var(--vvd-color-alert-500);font:var(--vvd-typography-base-condensed);margin-block-start:4px}.dz-preview:not(.dz-error) .dz-error-message{display:none}.dz-preview.dz-error{border:1px solid var(--vvd-color-alert-500)}.dz-preview.dz-error .dz-details .dz-size,.dz-preview.dz-error .dz-progress{display:none}.dz-preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.message{margin-block-start:4px;--_low-ink-color: var(--vvd-color-neutral-600)}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:empty{display:none}";
15
15
 
16
16
  var objectExtend = extend;
17
17
 
@@ -7,7 +7,7 @@ const anchored = require('./anchored.cjs');
7
7
  const slotted = require('./slotted.cjs');
8
8
  const classNames = require('./class-names.cjs');
9
9
 
10
- const styles = ":host{display:var(--_popup-display, inline)}:host([slotted-anchor]){--_popup-display: contents}.base{display:flex;overflow:hidden auto;box-sizing:border-box;flex-direction:column;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);max-inline-size:var(--menu-max-inline-size);min-inline-size:var(--menu-min-inline-size);padding-block:8px}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[role=menuitem]: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;display:block;border-radius:8px}.header{padding-block-start:8px;padding-inline:16px}.hide-header .header{display:none}.body{display:flex;flex-direction:column;row-gap:1px}.hide-body .body{display:none}.action-items{display:flex;justify-content:flex-end;gap:8px;padding-inline:8px}.hide-actions .action-items{display:none}";
10
+ const styles = ":host{display:var(--_popup-display, inline)}:host([slotted-anchor]){--_popup-display: contents}.base{display:flex;overflow:hidden auto;box-sizing:border-box;flex-direction:column;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);max-inline-size:var(--menu-max-inline-size);min-inline-size:var(--menu-min-inline-size);padding-block:8px}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[role=menuitem]: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;display:block;border-radius:8px}.header{padding-block-start:4px;padding-inline:12px}.hide-header .header{display:none}.body{display:flex;flex-direction:column;row-gap:1px}.hide-body .body{display:none}.action-items{display:flex;justify-content:flex-end;gap:8px;padding-block-end:4px;padding-inline:12px}.hide-actions .action-items{display:none}";
11
11
 
12
12
  const getClasses = ({
13
13
  headerSlottedContent,
@@ -5,7 +5,7 @@ import { a as anchorSlotTemplateFactory } from './anchored.js';
5
5
  import { s as slotted } from './slotted.js';
6
6
  import { c as classNames } from './class-names.js';
7
7
 
8
- const styles = ":host{display:var(--_popup-display, inline)}:host([slotted-anchor]){--_popup-display: contents}.base{display:flex;overflow:hidden auto;box-sizing:border-box;flex-direction:column;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);max-inline-size:var(--menu-max-inline-size);min-inline-size:var(--menu-min-inline-size);padding-block:8px}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[role=menuitem]: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;display:block;border-radius:8px}.header{padding-block-start:8px;padding-inline:16px}.hide-header .header{display:none}.body{display:flex;flex-direction:column;row-gap:1px}.hide-body .body{display:none}.action-items{display:flex;justify-content:flex-end;gap:8px;padding-inline:8px}.hide-actions .action-items{display:none}";
8
+ const styles = ":host{display:var(--_popup-display, inline)}:host([slotted-anchor]){--_popup-display: contents}.base{display:flex;overflow:hidden auto;box-sizing:border-box;flex-direction:column;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);max-inline-size:var(--menu-max-inline-size);min-inline-size:var(--menu-min-inline-size);padding-block:8px}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[role=menuitem]: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;display:block;border-radius:8px}.header{padding-block-start:4px;padding-inline:12px}.hide-header .header{display:none}.body{display:flex;flex-direction:column;row-gap:1px}.hide-body .body{display:none}.action-items{display:flex;justify-content:flex-end;gap:8px;padding-block-end:4px;padding-inline:12px}.hide-actions .action-items{display:none}";
9
9
 
10
10
  const getClasses = ({
11
11
  headerSlottedContent,
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const index = require('./index.cjs');
4
+ const definition = require('./definition63.cjs');
4
5
  const keyCodes = require('./key-codes2.cjs');
5
6
  require('./affix.cjs');
6
7
  const index$1 = require('./index2.cjs');
@@ -13,7 +14,7 @@ const ref = require('./ref.cjs');
13
14
  const when = require('./when.cjs');
14
15
  const classNames = require('./class-names.cjs');
15
16
 
16
- 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}";
17
+ 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: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}";
17
18
 
18
19
  class _RangeSlider extends index.FoundationElement {
19
20
  }
@@ -61,7 +62,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
61
62
  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);
62
63
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
63
64
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
64
- 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;
65
+ 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;
65
66
  const Direction = {
66
67
  Increment: 1,
67
68
  Decrement: -1
@@ -81,6 +82,7 @@ let RangeSlider = class extends FormAssociatedRangeSlider {
81
82
  this.ariaStartLabel = null;
82
83
  this.ariaEndLabel = null;
83
84
  this.markers = false;
85
+ this.pin = false;
84
86
  this.valueTextFormatter = (value) => parseFloat(value).toLocaleString(this.locale.lang);
85
87
  // --- Thumbs ---
86
88
  /**
@@ -95,10 +97,27 @@ let RangeSlider = class extends FormAssociatedRangeSlider {
95
97
  * @internal
96
98
  */
97
99
  this._endThumbEl = null;
98
- __privateAdd(this, _draggingThumb, false);
100
+ this._draggingThumb = false;
101
+ this._visiblyFocusedThumb = null;
102
+ this._hoveredThumb = null;
99
103
  this._startThumbCss = "";
100
104
  this._endThumbCss = "";
101
105
  this._selectedRangeCss = "";
106
+ __privateAdd(this, _isNonVisibleFocus, false);
107
+ __privateAdd(this, _onThumbFocus, (e) => {
108
+ if (!__privateGet(this, _isNonVisibleFocus)) {
109
+ this._visiblyFocusedThumb = __privateMethod(this, _RangeSlider_instances, getThumbIdFromEvent_fn).call(this, e);
110
+ }
111
+ });
112
+ __privateAdd(this, _onThumbBlur, () => {
113
+ this._visiblyFocusedThumb = null;
114
+ });
115
+ __privateAdd(this, _onMouseOver, (e) => {
116
+ this._hoveredThumb = __privateMethod(this, _RangeSlider_instances, getThumbIdFromEvent_fn).call(this, e);
117
+ });
118
+ __privateAdd(this, _onMouseOut, () => {
119
+ this._hoveredThumb = null;
120
+ });
102
121
  __privateAdd(this, _onThumbMousedown, (event) => {
103
122
  if (this.disabled || event.defaultPrevented) {
104
123
  return;
@@ -107,12 +126,13 @@ let RangeSlider = class extends FormAssociatedRangeSlider {
107
126
  if (target === this._endThumbEl && this.startAsNumber === this.max && this.endAsNumber === this.max) {
108
127
  target = this._startThumbEl;
109
128
  }
110
- target.focus();
111
- __privateSet(this, _draggingThumb, target === this._startThumbEl ? "start" : "end");
129
+ __privateMethod(this, _RangeSlider_instances, focusThumbNonVisibly_fn).call(this, target);
130
+ this._draggingThumb = __privateMethod(this, _RangeSlider_instances, getThumbId_fn).call(this, target);
112
131
  __privateMethod(this, _RangeSlider_instances, registerDragHandlers_fn).call(this);
113
132
  });
114
133
  __privateAdd(this, _onThumbKeydown, (e) => {
115
- const thumb = e.target === this._startThumbEl ? "start" : "end";
134
+ const thumb = __privateMethod(this, _RangeSlider_instances, getThumbIdFromEvent_fn).call(this, e);
135
+ this._visiblyFocusedThumb = thumb;
116
136
  if (e.key === keyCodes.keyHome) {
117
137
  e.preventDefault();
118
138
  __privateMethod(this, _RangeSlider_instances, updateValues_fn).call(this, { [thumb]: `${__privateGet(this, _RangeSlider_instances, thumbConstraints_get)[thumb].min}` });
@@ -135,17 +155,17 @@ let RangeSlider = class extends FormAssociatedRangeSlider {
135
155
  }
136
156
  });
137
157
  __privateAdd(this, _onDragMove, (e) => {
138
- if (this.disabled || e.defaultPrevented || !__privateGet(this, _draggingThumb)) {
158
+ if (this.disabled || e.defaultPrevented || !this._draggingThumb) {
139
159
  return;
140
160
  }
141
161
  const sourceEvent = "TouchEvent" in window && e instanceof TouchEvent ? e.touches[0] : e;
142
162
  const value = __privateMethod(this, _RangeSlider_instances, calculateValueFromMouseEvent_fn).call(this, sourceEvent);
143
163
  __privateMethod(this, _RangeSlider_instances, updateValues_fn).call(this, {
144
- [__privateGet(this, _draggingThumb)]: `${__privateMethod(this, _RangeSlider_instances, roundToNearestStep_fn).call(this, __privateGet(this, _draggingThumb), value)}`
164
+ [this._draggingThumb]: `${__privateMethod(this, _RangeSlider_instances, roundToNearestStep_fn).call(this, this._draggingThumb, value)}`
145
165
  });
146
166
  });
147
167
  __privateAdd(this, _onDragEnd, () => {
148
- __privateSet(this, _draggingThumb, false);
168
+ this._draggingThumb = false;
149
169
  __privateMethod(this, _RangeSlider_instances, unregisterDragListeners_fn).call(this);
150
170
  });
151
171
  }
@@ -250,6 +270,12 @@ let RangeSlider = class extends FormAssociatedRangeSlider {
250
270
  });
251
271
  super.formResetCallback();
252
272
  }
273
+ /**
274
+ * @internal
275
+ */
276
+ _isThumbPopupOpen(thumb) {
277
+ return this._visiblyFocusedThumb === thumb || this._hoveredThumb === thumb || this._draggingThumb === thumb;
278
+ }
253
279
  // --- Lifecycle ---
254
280
  connectedCallback() {
255
281
  super.connectedCallback();
@@ -269,7 +295,7 @@ let RangeSlider = class extends FormAssociatedRangeSlider {
269
295
  * @internal
270
296
  */
271
297
  _onMouseDown(e) {
272
- if (this.disabled || __privateGet(this, _draggingThumb)) {
298
+ if (this.disabled || this._draggingThumb) {
273
299
  return;
274
300
  }
275
301
  const value = __privateMethod(this, _RangeSlider_instances, calculateValueFromMouseEvent_fn).call(this, e);
@@ -279,8 +305,8 @@ let RangeSlider = class extends FormAssociatedRangeSlider {
279
305
  __privateMethod(this, _RangeSlider_instances, updateValues_fn).call(this, {
280
306
  [thumb]: `${__privateMethod(this, _RangeSlider_instances, roundToNearestStep_fn).call(this, thumb, value)}`
281
307
  });
282
- __privateSet(this, _draggingThumb, thumb);
283
- __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].focus();
308
+ this._draggingThumb = thumb;
309
+ __privateMethod(this, _RangeSlider_instances, focusThumbNonVisibly_fn).call(this, __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb]);
284
310
  __privateMethod(this, _RangeSlider_instances, registerDragHandlers_fn).call(this);
285
311
  }
286
312
  };
@@ -344,12 +370,17 @@ thumbConstraints_get = function() {
344
370
  end: { min: this.startAsNumber, max: this.max }
345
371
  };
346
372
  };
347
- _draggingThumb = new WeakMap();
373
+ getThumbId_fn = function(thumb) {
374
+ return thumb === this._startThumbEl ? "start" : "end";
375
+ };
376
+ getThumbIdFromEvent_fn = function(e) {
377
+ return __privateMethod(this, _RangeSlider_instances, getThumbId_fn).call(this, e.target);
378
+ };
348
379
  updateThumbPositions_fn = function() {
349
380
  const startOffsetPct = __privateMethod(this, _RangeSlider_instances, thumbTrackEndOffset_fn).call(this, this.startAsNumber);
350
381
  const endOffsetPct = __privateMethod(this, _RangeSlider_instances, thumbTrackEndOffset_fn).call(this, this.endAsNumber);
351
382
  const [dirProp, dimProp] = this.orientation === aria.Orientation.horizontal ? ["right", "width"] : ["bottom", "height"];
352
- const transition = `transition: ${__privateGet(this, _draggingThumb) ? "none" : "all 0.2s ease"};`;
383
+ const transition = `transition: ${this._draggingThumb ? "none" : "all 0.2s ease"};`;
353
384
  this._startThumbCss = `${dirProp}: ${startOffsetPct}%; ${transition}`;
354
385
  this._endThumbCss = `${dirProp}: ${endOffsetPct}%; ${transition}`;
355
386
  this._selectedRangeCss = `${dirProp}: ${endOffsetPct}%; ${dimProp}: ${startOffsetPct - endOffsetPct}%; ${transition}`;
@@ -377,6 +408,12 @@ roundToNearestStep_fn = function(thumb, value) {
377
408
  roundToStepValue(value - this.min, this.step) + this.min
378
409
  );
379
410
  };
411
+ _isNonVisibleFocus = new WeakMap();
412
+ focusThumbNonVisibly_fn = function(thumb) {
413
+ __privateSet(this, _isNonVisibleFocus, true);
414
+ thumb.focus();
415
+ __privateSet(this, _isNonVisibleFocus, false);
416
+ };
380
417
  // --- Event handling ---
381
418
  registerThumbListeners_fn = function() {
382
419
  for (const thumb of ["start", "end"]) {
@@ -391,6 +428,14 @@ registerThumbListeners_fn = function() {
391
428
  __privateGet(this, _onThumbMousedown),
392
429
  { passive: true }
393
430
  );
431
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].addEventListener("mouseover", __privateGet(this, _onMouseOver), {
432
+ passive: true
433
+ });
434
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].addEventListener("mouseout", __privateGet(this, _onMouseOut), {
435
+ passive: true
436
+ });
437
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].addEventListener("focus", __privateGet(this, _onThumbFocus));
438
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].addEventListener("blur", __privateGet(this, _onThumbBlur));
394
439
  }
395
440
  };
396
441
  unregisterThumbListeners_fn = function() {
@@ -404,8 +449,16 @@ unregisterThumbListeners_fn = function() {
404
449
  "touchstart",
405
450
  __privateGet(this, _onThumbMousedown)
406
451
  );
452
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].removeEventListener("mouseover", __privateGet(this, _onMouseOver));
453
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].removeEventListener("mouseout", __privateGet(this, _onMouseOut));
454
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].removeEventListener("focus", __privateGet(this, _onThumbFocus));
455
+ __privateGet(this, _RangeSlider_instances, thumbs_get)[thumb].removeEventListener("blur", __privateGet(this, _onThumbBlur));
407
456
  }
408
457
  };
458
+ _onThumbFocus = new WeakMap();
459
+ _onThumbBlur = new WeakMap();
460
+ _onMouseOver = new WeakMap();
461
+ _onMouseOut = new WeakMap();
409
462
  _onThumbMousedown = new WeakMap();
410
463
  _onThumbKeydown = new WeakMap();
411
464
  registerDragHandlers_fn = function() {
@@ -466,9 +519,21 @@ __decorateClass([
466
519
  __decorateClass([
467
520
  index.attr
468
521
  ], RangeSlider.prototype, "connotation", 2);
522
+ __decorateClass([
523
+ index.attr({ mode: "boolean" })
524
+ ], RangeSlider.prototype, "pin", 2);
469
525
  __decorateClass([
470
526
  index.observable
471
527
  ], RangeSlider.prototype, "valueTextFormatter", 2);
528
+ __decorateClass([
529
+ index.observable
530
+ ], RangeSlider.prototype, "_draggingThumb", 2);
531
+ __decorateClass([
532
+ index.observable
533
+ ], RangeSlider.prototype, "_visiblyFocusedThumb", 2);
534
+ __decorateClass([
535
+ index.observable
536
+ ], RangeSlider.prototype, "_hoveredThumb", 2);
472
537
  __decorateClass([
473
538
  index.observable
474
539
  ], RangeSlider.prototype, "_startThumbCss", 2);
@@ -488,7 +553,12 @@ const getClasses = ({ disabled, connotation }) => classNames.classNames(
488
553
  ["disabled", Boolean(disabled)],
489
554
  [`connotation-${connotation}`, Boolean(connotation)]
490
555
  );
491
- const RangeSliderTemplate = () => {
556
+ const getThumbClassesFor = (thumb) => ({ _visiblyFocusedThumb }) => classNames.classNames("thumb-container", [
557
+ "focus-visible",
558
+ _visiblyFocusedThumb === thumb
559
+ ]);
560
+ const RangeSliderTemplate = (context) => {
561
+ const popupTag = context.tagFor(definition.Popup);
492
562
  return index.html` <template
493
563
  @mousedown="${(x, c) => x._onMouseDown(c.event)}"
494
564
  >
@@ -506,7 +576,7 @@ const RangeSliderTemplate = () => {
506
576
  </div>
507
577
  <div
508
578
  ${ref.ref("_startThumbEl")}
509
- class="thumb-container"
579
+ class="${getThumbClassesFor("start")}"
510
580
  style="${(x) => x._startThumbCss}"
511
581
  role="slider"
512
582
  tabindex="${(x) => x.disabled ? null : 0}"
@@ -518,9 +588,25 @@ const RangeSliderTemplate = () => {
518
588
  aria-disabled="${(x) => x.disabled}"
519
589
  aria-orientation="${(x) => x.orientation}"
520
590
  ></div>
591
+ ${when.when(
592
+ (x) => x.pin,
593
+ index.html`<${popupTag}
594
+ class="popup"
595
+ arrow
596
+ alternate
597
+ :anchor="${(x) => x._startThumbEl}"
598
+ :open=${(x) => x._isThumbPopupOpen("start")}
599
+ :placementStrategy=${(x) => x.orientation === aria.Orientation.horizontal ? definition.PlacementStrategy.AutoPlacementHorizontal : definition.PlacementStrategy.AutoPlacementVertical}
600
+ animation-frame
601
+ exportparts="vvd-theme-alternate"
602
+ aria-hidden="true"
603
+ >
604
+ <div class="tooltip">${(x) => x.valueTextFormatter(x.start)}</div>
605
+ </${popupTag}>`
606
+ )}
521
607
  <div
522
608
  ${ref.ref("_endThumbEl")}
523
- class="thumb-container"
609
+ class="${getThumbClassesFor("end")}"
524
610
  style="${(x) => x._endThumbCss}"
525
611
  role="slider"
526
612
  tabindex="${(x) => x.disabled ? null : 0}"
@@ -532,6 +618,22 @@ const RangeSliderTemplate = () => {
532
618
  aria-disabled="${(x) => x.disabled}"
533
619
  aria-orientation="${(x) => x.orientation}"
534
620
  ></div>
621
+ ${when.when(
622
+ (x) => x.pin,
623
+ index.html`<${popupTag}
624
+ class="popup"
625
+ arrow
626
+ alternate
627
+ :anchor="${(x) => x._endThumbEl}"
628
+ :open=${(x) => x._isThumbPopupOpen("end")}
629
+ :placementStrategy=${(x) => x.orientation === aria.Orientation.horizontal ? definition.PlacementStrategy.AutoPlacementHorizontal : definition.PlacementStrategy.AutoPlacementVertical}
630
+ animation-frame
631
+ exportparts="vvd-theme-alternate"
632
+ aria-hidden="true"
633
+ >
634
+ <div class="tooltip">${(x) => x.valueTextFormatter(x.end)}</div>
635
+ </${popupTag}>`
636
+ )}
535
637
  </div>
536
638
  </div>
537
639
  </template>`;
@@ -545,7 +647,10 @@ const rangeSliderDefinition = RangeSlider.compose({
545
647
  delegatesFocus: true
546
648
  }
547
649
  });
548
- const rangeSliderRegistries = [rangeSliderDefinition()];
650
+ const rangeSliderRegistries = [
651
+ ...definition.popupRegistries,
652
+ rangeSliderDefinition()
653
+ ];
549
654
  const registerRangeSlider = index.registerFactory(rangeSliderRegistries);
550
655
 
551
656
  exports.rangeSliderDefinition = rangeSliderDefinition;