@vonage/vivid 3.52.0 → 3.53.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 (289) hide show
  1. package/README.md +1 -1
  2. package/accordion/index.cjs +1 -1
  3. package/accordion/index.js +1 -1
  4. package/accordion-item/index.cjs +1 -1
  5. package/accordion-item/index.js +1 -1
  6. package/alert/index.cjs +3 -3
  7. package/alert/index.js +3 -3
  8. package/audio-player/index.cjs +3 -3
  9. package/audio-player/index.js +3 -3
  10. package/avatar/index.cjs +1 -1
  11. package/avatar/index.js +1 -1
  12. package/badge/index.cjs +1 -1
  13. package/badge/index.js +1 -1
  14. package/banner/index.cjs +2 -2
  15. package/banner/index.js +2 -2
  16. package/breadcrumb-item/index.cjs +1 -1
  17. package/breadcrumb-item/index.js +1 -1
  18. package/button/index.cjs +2 -2
  19. package/button/index.js +2 -2
  20. package/card/index.cjs +2 -2
  21. package/card/index.js +2 -2
  22. package/checkbox/index.cjs +3 -2
  23. package/checkbox/index.js +3 -2
  24. package/combobox/index.cjs +5 -5
  25. package/combobox/index.js +5 -5
  26. package/custom-elements.json +717 -4
  27. package/data-grid/index.cjs +1 -1
  28. package/data-grid/index.js +1 -1
  29. package/date-picker/index.cjs +7 -6
  30. package/date-picker/index.js +7 -6
  31. package/date-range-picker/index.cjs +7 -6
  32. package/date-range-picker/index.js +7 -6
  33. package/dial-pad/index.cjs +33 -0
  34. package/dial-pad/index.js +31 -0
  35. package/dialog/index.cjs +4 -4
  36. package/dialog/index.js +4 -4
  37. package/divider/index.cjs +1 -1
  38. package/divider/index.js +1 -1
  39. package/elevation/index.cjs +1 -1
  40. package/elevation/index.js +1 -1
  41. package/empty-state/index.cjs +2 -2
  42. package/empty-state/index.js +2 -2
  43. package/fab/index.cjs +2 -2
  44. package/fab/index.js +2 -2
  45. package/file-picker/index.cjs +4 -3
  46. package/file-picker/index.js +4 -3
  47. package/header/index.cjs +2 -2
  48. package/header/index.js +2 -2
  49. package/icon/index.cjs +1 -1
  50. package/icon/index.js +1 -1
  51. package/index.cjs +132 -122
  52. package/index.js +46 -43
  53. package/layout/index.cjs +1 -1
  54. package/layout/index.js +1 -1
  55. package/lib/components.d.ts +2 -0
  56. package/lib/dial-pad/definition.d.ts +3 -0
  57. package/lib/dial-pad/dial-pad.d.ts +14 -0
  58. package/lib/dial-pad/dial-pad.template.d.ts +4 -0
  59. package/lib/dial-pad/locale.d.ts +18 -0
  60. package/lib/enums.d.ts +6 -0
  61. package/lib/text-anchor/definition.d.ts +1 -0
  62. package/lib/text-anchor/text-anchor.d.ts +5 -0
  63. package/lib/video-player/definition.d.ts +3 -0
  64. package/lib/video-player/locale.d.ts +1 -0
  65. package/lib/video-player/video-player.d.ts +17 -0
  66. package/lib/video-player/video-player.template.d.ts +4 -0
  67. package/listbox/index.cjs +2 -2
  68. package/listbox/index.js +2 -2
  69. package/locales/en-GB.cjs +30 -0
  70. package/locales/en-GB.js +30 -0
  71. package/locales/en-US.cjs +198 -0
  72. package/locales/en-US.js +198 -0
  73. package/locales/ja-JP.cjs +197 -0
  74. package/locales/ja-JP.js +197 -0
  75. package/locales/zh-CN.cjs +199 -0
  76. package/locales/zh-CN.js +199 -0
  77. package/menu/index.cjs +6 -6
  78. package/menu/index.js +6 -6
  79. package/menu-item/index.cjs +2 -2
  80. package/menu-item/index.js +2 -2
  81. package/nav/index.cjs +1 -1
  82. package/nav/index.js +1 -1
  83. package/nav-disclosure/index.cjs +2 -2
  84. package/nav-disclosure/index.js +2 -2
  85. package/nav-item/index.cjs +2 -2
  86. package/nav-item/index.js +2 -2
  87. package/note/index.cjs +2 -2
  88. package/note/index.js +2 -2
  89. package/number-field/index.cjs +5 -4
  90. package/number-field/index.js +5 -4
  91. package/option/index.cjs +2 -2
  92. package/option/index.js +2 -2
  93. package/package.json +1 -1
  94. package/pagination/index.cjs +3 -3
  95. package/pagination/index.js +3 -3
  96. package/popup/index.cjs +4 -4
  97. package/popup/index.js +4 -4
  98. package/progress/index.cjs +1 -1
  99. package/progress/index.js +1 -1
  100. package/progress-ring/index.cjs +1 -1
  101. package/progress-ring/index.js +1 -1
  102. package/radio/index.cjs +1 -1
  103. package/radio/index.js +1 -1
  104. package/radio-group/index.cjs +1 -1
  105. package/radio-group/index.js +1 -1
  106. package/range-slider/index.cjs +2 -2
  107. package/range-slider/index.js +2 -2
  108. package/select/index.cjs +7 -6
  109. package/select/index.js +7 -6
  110. package/selectable-box/index.cjs +5 -4
  111. package/selectable-box/index.js +5 -4
  112. package/shared/applyMixinsWithObservables.cjs +15 -0
  113. package/shared/applyMixinsWithObservables.js +13 -0
  114. package/shared/definition.cjs +1 -1
  115. package/shared/definition.js +1 -1
  116. package/shared/definition11.cjs +3 -3
  117. package/shared/definition11.js +3 -3
  118. package/shared/definition14.cjs +2 -2
  119. package/shared/definition14.js +2 -2
  120. package/shared/definition15.cjs +8 -9
  121. package/shared/definition15.js +8 -9
  122. package/shared/definition16.cjs +3 -3
  123. package/shared/definition16.js +3 -3
  124. package/shared/definition17.cjs +2 -2
  125. package/shared/definition17.js +3 -3
  126. package/shared/definition18.cjs +3 -3
  127. package/shared/definition18.js +3 -3
  128. package/shared/definition19.cjs +3 -3
  129. package/shared/definition19.js +3 -3
  130. package/shared/definition20.cjs +186 -227
  131. package/shared/definition20.js +181 -222
  132. package/shared/definition21.cjs +264 -67
  133. package/shared/definition21.js +263 -65
  134. package/shared/definition22.cjs +66 -57
  135. package/shared/definition22.js +64 -56
  136. package/shared/definition23.cjs +42 -76
  137. package/shared/definition23.js +41 -75
  138. package/shared/definition24.cjs +70 -2402
  139. package/shared/definition24.js +69 -2401
  140. package/shared/definition25.cjs +2402 -46
  141. package/shared/definition25.js +2401 -45
  142. package/shared/definition26.cjs +63 -30
  143. package/shared/definition26.js +62 -29
  144. package/shared/definition27.cjs +28 -56
  145. package/shared/definition27.js +27 -55
  146. package/shared/definition28.cjs +35 -881
  147. package/shared/definition28.js +34 -879
  148. package/shared/definition29.cjs +893 -60
  149. package/shared/definition29.js +893 -61
  150. package/shared/definition30.cjs +68 -86
  151. package/shared/definition30.js +67 -85
  152. package/shared/definition31.cjs +86 -21
  153. package/shared/definition31.js +86 -21
  154. package/shared/definition32.cjs +24 -12
  155. package/shared/definition32.js +23 -11
  156. package/shared/definition33.cjs +11 -50
  157. package/shared/definition33.js +10 -49
  158. package/shared/definition34.cjs +26 -515
  159. package/shared/definition34.js +26 -515
  160. package/shared/definition35.cjs +448 -194
  161. package/shared/definition35.js +448 -192
  162. package/shared/definition36.cjs +256 -202
  163. package/shared/definition36.js +253 -201
  164. package/shared/definition37.cjs +204 -65
  165. package/shared/definition37.js +203 -63
  166. package/shared/definition38.cjs +63 -57
  167. package/shared/definition38.js +60 -55
  168. package/shared/definition39.cjs +65 -432
  169. package/shared/definition39.js +64 -431
  170. package/shared/definition4.cjs +2 -2
  171. package/shared/definition4.js +2 -2
  172. package/shared/definition40.cjs +441 -34
  173. package/shared/definition40.js +438 -31
  174. package/shared/definition41.cjs +34 -576
  175. package/shared/definition41.js +33 -575
  176. package/shared/definition42.cjs +531 -654
  177. package/shared/definition42.js +531 -654
  178. package/shared/definition43.cjs +690 -114
  179. package/shared/definition43.js +689 -113
  180. package/shared/definition44.cjs +124 -79
  181. package/shared/definition44.js +122 -77
  182. package/shared/definition45.cjs +78 -520
  183. package/shared/definition45.js +77 -518
  184. package/shared/definition46.cjs +520 -119
  185. package/shared/definition46.js +518 -118
  186. package/shared/definition47.cjs +118 -135
  187. package/shared/definition47.js +117 -134
  188. package/shared/definition48.cjs +151 -19
  189. package/shared/definition48.js +150 -18
  190. package/shared/definition49.cjs +21 -84
  191. package/shared/definition49.js +20 -83
  192. package/shared/definition5.cjs +1 -1
  193. package/shared/definition5.js +1 -1
  194. package/shared/definition50.cjs +52 -505
  195. package/shared/definition50.js +51 -504
  196. package/shared/definition51.cjs +526 -28
  197. package/shared/definition51.js +525 -27
  198. package/shared/definition52.cjs +28 -123
  199. package/shared/definition52.js +26 -122
  200. package/shared/definition53.cjs +110 -309
  201. package/shared/definition53.js +110 -308
  202. package/shared/definition54.cjs +255 -271
  203. package/shared/definition54.js +255 -271
  204. package/shared/definition55.cjs +262 -791
  205. package/shared/definition55.js +261 -790
  206. package/shared/definition56.cjs +818 -107
  207. package/shared/definition56.js +817 -106
  208. package/shared/definition57.cjs +85 -55
  209. package/shared/definition57.js +84 -54
  210. package/shared/definition58.cjs +125 -72
  211. package/shared/definition58.js +124 -71
  212. package/shared/definition59.cjs +72 -285
  213. package/shared/definition59.js +73 -286
  214. package/shared/definition6.cjs +1 -1
  215. package/shared/definition6.js +1 -1
  216. package/shared/definition60.cjs +298 -39
  217. package/shared/definition60.js +297 -38
  218. package/shared/definition61.cjs +65739 -1688
  219. package/shared/definition61.js +65738 -1687
  220. package/shared/definition62.cjs +50 -0
  221. package/shared/definition62.js +46 -0
  222. package/shared/definition63.cjs +1828 -0
  223. package/shared/definition63.js +1824 -0
  224. package/shared/definition7.cjs +2 -2
  225. package/shared/definition7.js +2 -2
  226. package/shared/definition8.cjs +2 -2
  227. package/shared/definition8.js +2 -2
  228. package/shared/definition9.cjs +1 -1
  229. package/shared/definition9.js +1 -1
  230. package/shared/enums.cjs +8 -0
  231. package/shared/enums.js +8 -1
  232. package/shared/index2.cjs +66 -37
  233. package/shared/index2.js +66 -37
  234. package/shared/key-codes2.js +1 -1
  235. package/shared/listbox.cjs +1 -1
  236. package/shared/listbox.js +1 -1
  237. package/shared/localization/Locale.d.ts +4 -0
  238. package/shared/patterns/form-elements/form-elements.d.ts +2 -3
  239. package/shared/presentationDate.cjs +16 -5
  240. package/shared/presentationDate.js +16 -5
  241. package/shared/text-anchor.cjs +6 -0
  242. package/shared/text-anchor.js +6 -0
  243. package/shared/text-anchor.template.cjs +6 -1
  244. package/shared/text-anchor.template.js +6 -1
  245. package/shared/text-field.cjs +1 -1
  246. package/shared/text-field.js +1 -1
  247. package/shared/utils/applyMixinsWithObservables.d.ts +1 -0
  248. package/side-drawer/index.cjs +1 -1
  249. package/side-drawer/index.js +1 -1
  250. package/slider/index.cjs +1 -1
  251. package/slider/index.js +1 -1
  252. package/split-button/index.cjs +2 -2
  253. package/split-button/index.js +2 -2
  254. package/style.css +1 -0
  255. package/styles/core/all.css +1 -1
  256. package/styles/core/theme.css +1 -1
  257. package/styles/core/typography.css +1 -1
  258. package/styles/tokens/theme-dark.css +4 -4
  259. package/styles/tokens/theme-light.css +4 -4
  260. package/styles/tokens/vivid-2-compat.css +1 -1
  261. package/switch/index.cjs +2 -2
  262. package/switch/index.js +2 -2
  263. package/tab/index.cjs +2 -2
  264. package/tab/index.js +2 -2
  265. package/tab-panel/index.cjs +1 -1
  266. package/tab-panel/index.js +1 -1
  267. package/tabs/index.cjs +4 -4
  268. package/tabs/index.js +4 -4
  269. package/tag/index.cjs +2 -2
  270. package/tag/index.js +2 -2
  271. package/tag-group/index.cjs +1 -1
  272. package/tag-group/index.js +1 -1
  273. package/text-area/index.cjs +4 -3
  274. package/text-area/index.js +4 -3
  275. package/text-field/index.cjs +4 -3
  276. package/text-field/index.js +4 -3
  277. package/time-picker/index.cjs +8 -7
  278. package/time-picker/index.js +8 -7
  279. package/toggletip/index.cjs +5 -5
  280. package/toggletip/index.js +5 -5
  281. package/tooltip/index.cjs +5 -5
  282. package/tooltip/index.js +5 -5
  283. package/tree-item/index.cjs +2 -2
  284. package/tree-item/index.js +2 -2
  285. package/tree-view/index.cjs +1 -1
  286. package/tree-view/index.js +1 -1
  287. package/video-player/index.cjs +17 -0
  288. package/video-player/index.js +15 -0
  289. package/vivid.api.json +311 -0
@@ -1,715 +1,592 @@
1
1
  'use strict';
2
2
 
3
3
  const index = require('./index.cjs');
4
- const definition = require('./definition61.cjs');
5
- const definition$2 = require('./definition26.cjs');
6
- const definition$1 = require('./definition35.cjs');
7
- const affix = require('./affix.cjs');
4
+ const keyCodes = require('./key-codes2.cjs');
5
+ require('./affix.cjs');
8
6
  const index$1 = require('./index2.cjs');
9
- const listbox = require('./listbox.cjs');
10
- const startEnd = require('./start-end.cjs');
11
- const applyMixins = require('./apply-mixins.cjs');
7
+ const localized = require('./localized.cjs');
12
8
  const formAssociated = require('./form-associated.cjs');
13
- const select_options = require('./select.options.cjs');
14
- const strings = require('./strings.cjs');
15
- const keyCodes = require('./key-codes.cjs');
16
- const when = require('./when.cjs');
9
+ const slider_template = require('./slider.template.cjs');
10
+ const applyMixins = require('./apply-mixins.cjs');
11
+ const aria = require('./aria2.cjs');
17
12
  const ref = require('./ref.cjs');
18
- const slotted = require('./slotted.cjs');
13
+ const when = require('./when.cjs');
19
14
  const classNames = require('./class-names.cjs');
20
15
 
21
- class _Select extends listbox.ListboxElement {
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}.control.horizontal .track .mark{block-size:4px;inline-size:100%}.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{block-size:100%;inline-size:4px}.control.vertical .track-start{block-size:auto;inline-size:100%;inset-block-start:var(--_track-start-inset-block-start)}.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)}.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}\n";
17
+
18
+ class _RangeSlider extends index.FoundationElement {
22
19
  }
23
- /**
24
- * A form-associated base class for the {@link @microsoft/fast-foundation#(Select:class)} component.
25
- *
26
- * @internal
27
- */
28
- class FormAssociatedSelect extends formAssociated.FormAssociated(_Select) {
29
- constructor() {
30
- super(...arguments);
31
- this.proxy = document.createElement("select");
32
- }
20
+ class FormAssociatedRangeSlider extends formAssociated.FormAssociated(_RangeSlider) {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.proxy = document.createElement("input");
24
+ }
33
25
  }
34
26
 
35
- /**
36
- * A Select Custom HTML Element.
37
- * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#select | ARIA select }.
38
- *
39
- * @slot start - Content which can be provided before the button content
40
- * @slot end - Content which can be provided after the button content
41
- * @slot button-container - The element representing the select button
42
- * @slot selected-value - The selected value
43
- * @slot indicator - The visual indicator for the expand/collapse state of the button
44
- * @slot - The default slot for slotted options
45
- * @csspart control - The element representing the select invoking element
46
- * @csspart selected-value - The element wrapping the selected value
47
- * @csspart indicator - The element wrapping the visual indicator
48
- * @csspart listbox - The listbox element
49
- * @fires input - Fires a custom 'input' event when the value updates
50
- * @fires change - Fires a custom 'change' event when the value updates
51
- *
52
- * @public
53
- */
54
- let Select$1 = class Select extends FormAssociatedSelect {
55
- constructor() {
56
- super(...arguments);
57
- /**
58
- * The open attribute.
59
- *
60
- * @public
61
- * @remarks
62
- * HTML Attribute: open
63
- */
64
- this.open = false;
65
- /**
66
- * Indicates the initial state of the position attribute.
67
- *
68
- * @internal
69
- */
70
- this.forcedPosition = false;
71
- /**
72
- * The unique id for the internal listbox element.
73
- *
74
- * @internal
75
- */
76
- this.listboxId = strings.uniqueId("listbox-");
77
- /**
78
- * The max height for the listbox when opened.
79
- *
80
- * @internal
81
- */
82
- this.maxHeight = 0;
83
- }
84
- /**
85
- * Sets focus and synchronizes ARIA attributes when the open property changes.
86
- *
87
- * @param prev - the previous open value
88
- * @param next - the current open value
89
- *
90
- * @internal
91
- */
92
- openChanged(prev, next) {
93
- if (!this.collapsible) {
94
- return;
95
- }
96
- if (this.open) {
97
- this.ariaControls = this.listboxId;
98
- this.ariaExpanded = "true";
99
- this.setPositioning();
100
- this.focusAndScrollOptionIntoView();
101
- this.indexWhenOpened = this.selectedIndex;
102
- // focus is directed to the element when `open` is changed programmatically
103
- index.DOM.queueUpdate(() => this.focus());
104
- return;
105
- }
106
- this.ariaControls = "";
107
- this.ariaExpanded = "false";
108
- }
109
- /**
110
- * The component is collapsible when in single-selection mode with no size attribute.
111
- *
112
- * @internal
113
- */
114
- get collapsible() {
115
- return !(this.multiple || typeof this.size === "number");
116
- }
117
- /**
118
- * The value property.
119
- *
120
- * @public
121
- */
122
- get value() {
123
- index.Observable.track(this, "value");
124
- return this._value;
125
- }
126
- set value(next) {
127
- var _a, _b, _c, _d, _e, _f, _g;
128
- const prev = `${this._value}`;
129
- if ((_a = this._options) === null || _a === void 0 ? void 0 : _a.length) {
130
- const selectedIndex = this._options.findIndex(el => el.value === next);
131
- const prevSelectedValue = (_c = (_b = this._options[this.selectedIndex]) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : null;
132
- const nextSelectedValue = (_e = (_d = this._options[selectedIndex]) === null || _d === void 0 ? void 0 : _d.value) !== null && _e !== void 0 ? _e : null;
133
- if (selectedIndex === -1 || prevSelectedValue !== nextSelectedValue) {
134
- next = "";
135
- this.selectedIndex = selectedIndex;
136
- }
137
- next = (_g = (_f = this.firstSelectedOption) === null || _f === void 0 ? void 0 : _f.value) !== null && _g !== void 0 ? _g : next;
138
- }
139
- if (prev !== next) {
140
- this._value = next;
141
- super.valueChanged(prev, next);
142
- index.Observable.notify(this, "value");
143
- this.updateDisplayValue();
144
- }
145
- }
146
- /**
147
- * Sets the value and display value to match the first selected option.
148
- *
149
- * @param shouldEmit - if true, the input and change events will be emitted
150
- *
151
- * @internal
152
- */
153
- updateValue(shouldEmit) {
154
- var _a, _b;
155
- if (this.$fastController.isConnected) {
156
- this.value = (_b = (_a = this.firstSelectedOption) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : "";
157
- }
158
- if (shouldEmit) {
159
- this.$emit("input");
160
- this.$emit("change", this, {
161
- bubbles: true,
162
- composed: undefined,
163
- });
164
- }
165
- }
166
- /**
167
- * Updates the proxy value when the selected index changes.
168
- *
169
- * @param prev - the previous selected index
170
- * @param next - the next selected index
171
- *
172
- * @internal
173
- */
174
- selectedIndexChanged(prev, next) {
175
- super.selectedIndexChanged(prev, next);
176
- this.updateValue();
177
- }
178
- positionChanged(prev, next) {
179
- this.positionAttribute = next;
180
- this.setPositioning();
181
- }
182
- /**
183
- * Calculate and apply listbox positioning based on available viewport space.
184
- *
185
- * @public
186
- */
187
- setPositioning() {
188
- const currentBox = this.getBoundingClientRect();
189
- const viewportHeight = window.innerHeight;
190
- const availableBottom = viewportHeight - currentBox.bottom;
191
- this.position = this.forcedPosition
192
- ? this.positionAttribute
193
- : currentBox.top > availableBottom
194
- ? select_options.SelectPosition.above
195
- : select_options.SelectPosition.below;
196
- this.positionAttribute = this.forcedPosition
197
- ? this.positionAttribute
198
- : this.position;
199
- this.maxHeight =
200
- this.position === select_options.SelectPosition.above ? ~~currentBox.top : ~~availableBottom;
201
- }
202
- /**
203
- * The value displayed on the button.
204
- *
205
- * @public
206
- */
207
- get displayValue() {
208
- var _a, _b;
209
- index.Observable.track(this, "displayValue");
210
- return (_b = (_a = this.firstSelectedOption) === null || _a === void 0 ? void 0 : _a.text) !== null && _b !== void 0 ? _b : "";
211
- }
212
- /**
213
- * Synchronize the `aria-disabled` property when the `disabled` property changes.
214
- *
215
- * @param prev - The previous disabled value
216
- * @param next - The next disabled value
217
- *
218
- * @internal
219
- */
220
- disabledChanged(prev, next) {
221
- if (super.disabledChanged) {
222
- super.disabledChanged(prev, next);
223
- }
224
- this.ariaDisabled = this.disabled ? "true" : "false";
225
- }
226
- /**
227
- * Reset the element to its first selectable option when its parent form is reset.
228
- *
229
- * @internal
230
- */
231
- formResetCallback() {
232
- this.setProxyOptions();
233
- // Call the base class's implementation setDefaultSelectedOption instead of the select's
234
- // override, in order to reset the selectedIndex without using the value property.
235
- super.setDefaultSelectedOption();
236
- if (this.selectedIndex === -1) {
237
- this.selectedIndex = 0;
238
- }
239
- }
240
- /**
241
- * Handle opening and closing the listbox when the select is clicked.
242
- *
243
- * @param e - the mouse event
244
- * @internal
245
- */
246
- clickHandler(e) {
247
- // do nothing if the select is disabled
248
- if (this.disabled) {
249
- return;
250
- }
251
- if (this.open) {
252
- const captured = e.target.closest(`option,[role=option]`);
253
- if (captured && captured.disabled) {
254
- return;
255
- }
256
- }
257
- super.clickHandler(e);
258
- this.open = this.collapsible && !this.open;
259
- if (!this.open && this.indexWhenOpened !== this.selectedIndex) {
260
- this.updateValue(true);
261
- }
262
- return true;
263
- }
264
- /**
265
- * Handles focus state when the element or its children lose focus.
266
- *
267
- * @param e - The focus event
268
- * @internal
269
- */
270
- focusoutHandler(e) {
271
- var _a;
272
- super.focusoutHandler(e);
273
- if (!this.open) {
274
- return true;
275
- }
276
- const focusTarget = e.relatedTarget;
277
- if (this.isSameNode(focusTarget)) {
278
- this.focus();
279
- return;
280
- }
281
- if (!((_a = this.options) === null || _a === void 0 ? void 0 : _a.includes(focusTarget))) {
282
- this.open = false;
283
- if (this.indexWhenOpened !== this.selectedIndex) {
284
- this.updateValue(true);
285
- }
286
- }
287
- }
27
+ const getDecimalPlaces = (num) => {
28
+ const match = num.toString().match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
29
+ return Math.max(
30
+ 0,
31
+ // Number of digits right of decimal point.
32
+ (match[1] ? match[1].length : 0) - // Adjust for scientific notation.
33
+ (match[2] ? +match[2] : 0)
34
+ );
35
+ };
36
+ const roundToStepValue = (value, step) => {
37
+ const decimalPlaces = getDecimalPlaces(step);
38
+ const factor = Math.pow(10, decimalPlaces);
39
+ const roundedValue = Math.round(value / step) * step;
40
+ return Math.round(roundedValue * factor) / factor;
41
+ };
42
+
43
+ const lerp = (a, b, value) => a + (b - a) * value;
44
+ const inverseLerp = (a, b, value) => slider_template.limit(0, 1, (value - a) / (b - a));
45
+
46
+ var __defProp = Object.defineProperty;
47
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
48
+ var __decorateClass = (decorators, target, key, kind) => {
49
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
50
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
51
+ if (decorator = decorators[i])
52
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
53
+ if (kind && result)
54
+ __defProp(target, key, result);
55
+ return result;
56
+ };
57
+ var __accessCheck = (obj, member, msg) => {
58
+ if (!member.has(obj))
59
+ throw TypeError("Cannot " + msg);
60
+ };
61
+ var __privateGet = (obj, member, getter) => {
62
+ __accessCheck(obj, member, "read from private field");
63
+ return getter ? getter.call(obj) : member.get(obj);
64
+ };
65
+ var __privateAdd = (obj, member, value) => {
66
+ if (member.has(obj))
67
+ throw TypeError("Cannot add the same private member more than once");
68
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
69
+ };
70
+ var __privateSet = (obj, member, value, setter) => {
71
+ __accessCheck(obj, member, "write to private field");
72
+ setter ? setter.call(obj, value) : member.set(obj, value);
73
+ return value;
74
+ };
75
+ var __privateMethod = (obj, member, method) => {
76
+ __accessCheck(obj, member, "access private method");
77
+ return method;
78
+ };
79
+ var _isInternalValueUpdate, _updateValues, updateValues_fn, _applyStep, applyStep_fn, _updateFormValue, updateFormValue_fn, _thumbs, thumbs_get, _thumbConstraints, thumbConstraints_get, _draggingThumb, _updateThumbPositions, updateThumbPositions_fn, _thumbTrackEndOffset, thumbTrackEndOffset_fn, _calculateValueFromMouseEvent, calculateValueFromMouseEvent_fn, _roundToNearestStep, roundToNearestStep_fn, _registerThumbListeners, registerThumbListeners_fn, _unregisterThumbListeners, unregisterThumbListeners_fn, _onThumbMousedown, _onThumbKeydown, _registerDragHandlers, registerDragHandlers_fn, _unregisterDragListeners, unregisterDragListeners_fn, _onDragMove, _onDragEnd;
80
+ const Direction = {
81
+ Increment: 1,
82
+ Decrement: -1
83
+ };
84
+ let RangeSlider = class extends FormAssociatedRangeSlider {
85
+ constructor() {
86
+ super(...arguments);
87
+ __privateAdd(this, _updateValues);
88
+ __privateAdd(this, _applyStep);
89
+ __privateAdd(this, _updateFormValue);
90
+ __privateAdd(this, _thumbs);
91
+ __privateAdd(this, _thumbConstraints);
92
+ __privateAdd(this, _updateThumbPositions);
93
+ __privateAdd(this, _thumbTrackEndOffset);
94
+ __privateAdd(this, _calculateValueFromMouseEvent);
95
+ __privateAdd(this, _roundToNearestStep);
96
+ // --- Event handling ---
97
+ __privateAdd(this, _registerThumbListeners);
98
+ __privateAdd(this, _unregisterThumbListeners);
99
+ __privateAdd(this, _registerDragHandlers);
100
+ __privateAdd(this, _unregisterDragListeners);
101
+ // --- Start & end values ---
102
+ __privateAdd(this, _isInternalValueUpdate, false);
103
+ this.start = "";
104
+ this.end = "";
105
+ this.min = 0;
106
+ this.max = 10;
107
+ this.step = 1;
108
+ this.orientation = aria.Orientation.horizontal;
109
+ this.ariaStartLabel = null;
110
+ this.ariaEndLabel = null;
111
+ this.markers = false;
112
+ this.valueTextFormatter = (value) => value;
113
+ // --- Thumbs ---
288
114
  /**
289
- * Updates the value when an option's value changes.
290
- *
291
- * @param source - the source object
292
- * @param propertyName - the property to evaluate
293
- *
294
115
  * @internal
295
- * @override
296
116
  */
297
- handleChange(source, propertyName) {
298
- super.handleChange(source, propertyName);
299
- if (propertyName === "value") {
300
- this.updateValue();
301
- }
302
- }
117
+ this._trackEl = null;
303
118
  /**
304
- * Synchronize the form-associated proxy and updates the value property of the element.
305
- *
306
- * @param prev - the previous collection of slotted option elements
307
- * @param next - the next collection of slotted option elements
308
- *
309
119
  * @internal
310
120
  */
311
- slottedOptionsChanged(prev, next) {
312
- this.options.forEach(o => {
313
- const notifier = index.Observable.getNotifier(o);
314
- notifier.unsubscribe(this, "value");
315
- });
316
- super.slottedOptionsChanged(prev, next);
317
- this.options.forEach(o => {
318
- const notifier = index.Observable.getNotifier(o);
319
- notifier.subscribe(this, "value");
320
- });
321
- this.setProxyOptions();
322
- this.updateValue();
323
- }
121
+ this._startThumbEl = null;
324
122
  /**
325
- * Prevents focus when size is set and a scrollbar is clicked.
326
- *
327
- * @param e - the mouse event object
328
- *
329
- * @override
330
123
  * @internal
331
124
  */
332
- mousedownHandler(e) {
333
- var _a;
334
- if (e.offsetX >= 0 && e.offsetX <= ((_a = this.listbox) === null || _a === void 0 ? void 0 : _a.scrollWidth)) {
335
- return super.mousedownHandler(e);
125
+ this._endThumbEl = null;
126
+ __privateAdd(this, _draggingThumb, false);
127
+ this._startThumbCss = "";
128
+ this._endThumbCss = "";
129
+ this._selectedRangeCss = "";
130
+ __privateAdd(this, _onThumbMousedown, (event) => {
131
+ if (this.disabled || event.defaultPrevented) {
132
+ return;
133
+ }
134
+ let target = event.target;
135
+ if (target === this._endThumbEl && this.startAsNumber === this.max && this.endAsNumber === this.max) {
136
+ target = this._startThumbEl;
137
+ }
138
+ target.focus();
139
+ __privateSet(this, _draggingThumb, target === this._startThumbEl ? "start" : "end");
140
+ __privateMethod(this, _registerDragHandlers, registerDragHandlers_fn).call(this);
141
+ });
142
+ __privateAdd(this, _onThumbKeydown, (e) => {
143
+ const thumb = e.target === this._startThumbEl ? "start" : "end";
144
+ if (e.key === keyCodes.keyHome) {
145
+ e.preventDefault();
146
+ __privateMethod(this, _updateValues, updateValues_fn).call(this, { [thumb]: `${__privateGet(this, _thumbConstraints, thumbConstraints_get)[thumb].min}` });
147
+ } else if (e.key === keyCodes.keyEnd) {
148
+ e.preventDefault();
149
+ __privateMethod(this, _updateValues, updateValues_fn).call(this, { [thumb]: `${__privateGet(this, _thumbConstraints, thumbConstraints_get)[thumb].max}` });
150
+ } else if (!e.shiftKey) {
151
+ switch (e.key) {
152
+ case keyCodes.keyArrowRight:
153
+ case keyCodes.keyArrowDown:
154
+ e.preventDefault();
155
+ __privateMethod(this, _applyStep, applyStep_fn).call(this, thumb, Direction.Increment);
156
+ break;
157
+ case keyCodes.keyArrowLeft:
158
+ case keyCodes.keyArrowUp:
159
+ e.preventDefault();
160
+ __privateMethod(this, _applyStep, applyStep_fn).call(this, thumb, Direction.Decrement);
161
+ break;
336
162
  }
337
- return this.collapsible;
163
+ }
164
+ });
165
+ __privateAdd(this, _onDragMove, (e) => {
166
+ if (this.disabled || e.defaultPrevented || !__privateGet(this, _draggingThumb)) {
167
+ return;
168
+ }
169
+ const sourceEvent = "TouchEvent" in window && e instanceof TouchEvent ? e.touches[0] : e;
170
+ const value = __privateMethod(this, _calculateValueFromMouseEvent, calculateValueFromMouseEvent_fn).call(this, sourceEvent);
171
+ __privateMethod(this, _updateValues, updateValues_fn).call(this, {
172
+ [__privateGet(this, _draggingThumb)]: `${__privateMethod(this, _roundToNearestStep, roundToNearestStep_fn).call(this, __privateGet(this, _draggingThumb), value)}`
173
+ });
174
+ });
175
+ __privateAdd(this, _onDragEnd, () => {
176
+ __privateSet(this, _draggingThumb, false);
177
+ __privateMethod(this, _unregisterDragListeners, unregisterDragListeners_fn).call(this);
178
+ });
179
+ }
180
+ /**
181
+ * @internal
182
+ */
183
+ startChanged() {
184
+ this.currentStart = this.start;
185
+ if (!__privateGet(this, _isInternalValueUpdate)) {
186
+ this.dirtyValue = true;
187
+ __privateMethod(this, _updateFormValue, updateFormValue_fn).call(this);
338
188
  }
339
- /**
340
- * Sets the multiple property on the proxy element.
341
- *
342
- * @param prev - the previous multiple value
343
- * @param next - the current multiple value
344
- */
345
- multipleChanged(prev, next) {
346
- super.multipleChanged(prev, next);
347
- if (this.proxy) {
348
- this.proxy.multiple = next;
349
- }
189
+ if (this.$fastController.isConnected) {
190
+ __privateMethod(this, _updateThumbPositions, updateThumbPositions_fn).call(this);
350
191
  }
351
- /**
352
- * Updates the selectedness of each option when the list of selected options changes.
353
- *
354
- * @param prev - the previous list of selected options
355
- * @param next - the current list of selected options
356
- *
357
- * @override
358
- * @internal
359
- */
360
- selectedOptionsChanged(prev, next) {
361
- var _a;
362
- super.selectedOptionsChanged(prev, next);
363
- (_a = this.options) === null || _a === void 0 ? void 0 : _a.forEach((o, i) => {
364
- var _a;
365
- const proxyOption = (_a = this.proxy) === null || _a === void 0 ? void 0 : _a.options.item(i);
366
- if (proxyOption) {
367
- proxyOption.selected = o.selected;
368
- }
369
- });
192
+ }
193
+ /**
194
+ * @internal
195
+ */
196
+ initialStartChanged(_, newValue) {
197
+ if (newValue && !this.dirtyValue) {
198
+ this.start = newValue;
199
+ this.dirtyValue = false;
370
200
  }
371
- /**
372
- * Sets the selected index to match the first option with the selected attribute, or
373
- * the first selectable option.
374
- *
375
- * @override
376
- * @internal
377
- */
378
- setDefaultSelectedOption() {
379
- var _a;
380
- const options = (_a = this.options) !== null && _a !== void 0 ? _a : Array.from(this.children).filter(listbox.Listbox$1.slottedOptionFilter);
381
- const selectedIndex = options === null || options === void 0 ? void 0 : options.findIndex(el => el.hasAttribute("selected") || el.selected || el.value === this.value);
382
- if (selectedIndex !== -1) {
383
- this.selectedIndex = selectedIndex;
384
- return;
385
- }
386
- this.selectedIndex = 0;
201
+ }
202
+ /**
203
+ * @internal
204
+ */
205
+ currentStartChanged() {
206
+ this.start = this.currentStart;
207
+ }
208
+ /**
209
+ * The start property, typed as a number.
210
+ *
211
+ * @public
212
+ */
213
+ get startAsNumber() {
214
+ return parseFloat(this.start);
215
+ }
216
+ set startAsNumber(next) {
217
+ this.start = next.toString();
218
+ }
219
+ /**
220
+ * @internal
221
+ */
222
+ endChanged() {
223
+ this.currentEnd = this.end;
224
+ if (!__privateGet(this, _isInternalValueUpdate)) {
225
+ this.dirtyValue = true;
226
+ __privateMethod(this, _updateFormValue, updateFormValue_fn).call(this);
387
227
  }
388
- /**
389
- * Resets and fills the proxy to match the component's options.
390
- *
391
- * @internal
392
- */
393
- setProxyOptions() {
394
- if (this.proxy instanceof HTMLSelectElement && this.options) {
395
- this.proxy.options.length = 0;
396
- this.options.forEach(option => {
397
- const proxyOption = option.proxy ||
398
- (option instanceof HTMLOptionElement ? option.cloneNode() : null);
399
- if (proxyOption) {
400
- this.proxy.options.add(proxyOption);
401
- }
402
- });
403
- }
228
+ if (this.$fastController.isConnected) {
229
+ __privateMethod(this, _updateThumbPositions, updateThumbPositions_fn).call(this);
404
230
  }
405
- /**
406
- * Handle keyboard interaction for the select.
407
- *
408
- * @param e - the keyboard event
409
- * @internal
410
- */
411
- keydownHandler(e) {
412
- super.keydownHandler(e);
413
- const key = e.key || e.key.charCodeAt(0);
414
- switch (key) {
415
- case keyCodes.keySpace: {
416
- e.preventDefault();
417
- if (this.collapsible && this.typeAheadExpired) {
418
- this.open = !this.open;
419
- }
420
- break;
421
- }
422
- case keyCodes.keyHome:
423
- case keyCodes.keyEnd: {
424
- e.preventDefault();
425
- break;
426
- }
427
- case keyCodes.keyEnter: {
428
- e.preventDefault();
429
- this.open = !this.open;
430
- break;
431
- }
432
- case keyCodes.keyEscape: {
433
- if (this.collapsible && this.open) {
434
- e.preventDefault();
435
- this.open = false;
436
- }
437
- break;
438
- }
439
- case keyCodes.keyTab: {
440
- if (this.collapsible && this.open) {
441
- e.preventDefault();
442
- this.open = false;
443
- }
444
- return true;
445
- }
446
- }
447
- if (!this.open && this.indexWhenOpened !== this.selectedIndex) {
448
- this.updateValue(true);
449
- this.indexWhenOpened = this.selectedIndex;
450
- }
451
- return !(key === keyCodes.keyArrowDown || key === keyCodes.keyArrowUp);
231
+ }
232
+ /**
233
+ * @internal
234
+ */
235
+ initialEndChanged(_, newValue) {
236
+ if (newValue && !this.dirtyValue) {
237
+ this.end = newValue;
238
+ this.dirtyValue = false;
452
239
  }
453
- connectedCallback() {
454
- super.connectedCallback();
455
- this.forcedPosition = !!this.positionAttribute;
456
- this.addEventListener("contentchange", this.updateDisplayValue);
240
+ }
241
+ /**
242
+ * @internal
243
+ */
244
+ currentEndChanged() {
245
+ this.end = this.currentEnd;
246
+ }
247
+ /**
248
+ * The end property, typed as a number.
249
+ *
250
+ * @public
251
+ */
252
+ get endAsNumber() {
253
+ return parseFloat(this.end);
254
+ }
255
+ set endAsNumber(next) {
256
+ this.end = next.toString();
257
+ }
258
+ /**
259
+ * @internal
260
+ */
261
+ orientationChanged() {
262
+ if (this.$fastController.isConnected) {
263
+ __privateMethod(this, _updateThumbPositions, updateThumbPositions_fn).call(this);
457
264
  }
458
- disconnectedCallback() {
459
- this.removeEventListener("contentchange", this.updateDisplayValue);
460
- super.disconnectedCallback();
265
+ }
266
+ // --- Form handling ---
267
+ /**
268
+ * @internal
269
+ */
270
+ nameChanged(previous, next) {
271
+ super.nameChanged(previous, next);
272
+ __privateMethod(this, _updateFormValue, updateFormValue_fn).call(this);
273
+ }
274
+ formResetCallback() {
275
+ __privateMethod(this, _updateValues, updateValues_fn).call(this, {
276
+ start: this.initialStart ?? this.min.toString(),
277
+ end: this.initialEnd ?? this.max.toString()
278
+ });
279
+ super.formResetCallback();
280
+ }
281
+ // --- Lifecycle ---
282
+ connectedCallback() {
283
+ super.connectedCallback();
284
+ __privateMethod(this, _updateValues, updateValues_fn).call(this, {
285
+ start: this.start || this.initialStart || this.min.toString(),
286
+ end: this.end || this.initialEnd || this.max.toString()
287
+ }, false);
288
+ __privateMethod(this, _registerThumbListeners, registerThumbListeners_fn).call(this);
289
+ __privateMethod(this, _updateThumbPositions, updateThumbPositions_fn).call(this);
290
+ }
291
+ disconnectedCallback() {
292
+ super.disconnectedCallback();
293
+ __privateMethod(this, _unregisterThumbListeners, unregisterThumbListeners_fn).call(this);
294
+ __privateMethod(this, _unregisterDragListeners, unregisterDragListeners_fn).call(this);
295
+ }
296
+ /**
297
+ * @internal
298
+ */
299
+ _onMouseDown(e) {
300
+ if (this.disabled || __privateGet(this, _draggingThumb)) {
301
+ return;
461
302
  }
462
- /**
463
- * Updates the proxy's size property when the size attribute changes.
464
- *
465
- * @param prev - the previous size
466
- * @param next - the current size
467
- *
468
- * @override
469
- * @internal
470
- */
471
- sizeChanged(prev, next) {
472
- super.sizeChanged(prev, next);
473
- if (this.proxy) {
474
- this.proxy.size = next;
475
- }
303
+ const value = __privateMethod(this, _calculateValueFromMouseEvent, calculateValueFromMouseEvent_fn).call(this, e);
304
+ const startDistance = Math.abs(value - Number(this.start));
305
+ const endDistance = Math.abs(value - Number(this.end));
306
+ const thumb = startDistance < endDistance || startDistance === endDistance && value < Number(this.start) ? "start" : "end";
307
+ __privateMethod(this, _updateValues, updateValues_fn).call(this, {
308
+ [thumb]: `${__privateMethod(this, _roundToNearestStep, roundToNearestStep_fn).call(this, thumb, value)}`
309
+ });
310
+ __privateSet(this, _draggingThumb, thumb);
311
+ __privateGet(this, _thumbs, thumbs_get)[thumb].focus();
312
+ __privateMethod(this, _registerDragHandlers, registerDragHandlers_fn).call(this);
313
+ }
314
+ };
315
+ _isInternalValueUpdate = new WeakMap();
316
+ _updateValues = new WeakSet();
317
+ updateValues_fn = function({ start, end }, emitEvents = true) {
318
+ if (start === this.start) {
319
+ start = void 0;
320
+ }
321
+ if (end === this.end) {
322
+ end = void 0;
323
+ }
324
+ if (start === void 0 && end === void 0) {
325
+ return;
326
+ }
327
+ __privateSet(this, _isInternalValueUpdate, true);
328
+ if (start !== void 0) {
329
+ this.start = start;
330
+ }
331
+ if (end !== void 0) {
332
+ this.end = end;
333
+ }
334
+ __privateSet(this, _isInternalValueUpdate, false);
335
+ if (emitEvents) {
336
+ if (start !== void 0) {
337
+ this.$emit("input:start");
476
338
  }
477
- /**
478
- *
479
- * @internal
480
- */
481
- updateDisplayValue() {
482
- if (this.collapsible) {
483
- index.Observable.notify(this, "displayValue");
484
- }
339
+ if (end !== void 0) {
340
+ this.$emit("input:end");
485
341
  }
342
+ this.$emit("input");
343
+ this.$emit("change");
344
+ this.dirtyValue = true;
345
+ }
346
+ __privateMethod(this, _updateFormValue, updateFormValue_fn).call(this);
486
347
  };
487
- index.__decorate([
488
- index.attr({ attribute: "open", mode: "boolean" })
489
- ], Select$1.prototype, "open", void 0);
490
- index.__decorate([
491
- index.volatile
492
- ], Select$1.prototype, "collapsible", null);
493
- index.__decorate([
494
- index.observable
495
- ], Select$1.prototype, "control", void 0);
496
- index.__decorate([
497
- index.attr({ attribute: "position" })
498
- ], Select$1.prototype, "positionAttribute", void 0);
499
- index.__decorate([
500
- index.observable
501
- ], Select$1.prototype, "position", void 0);
502
- index.__decorate([
503
- index.observable
504
- ], Select$1.prototype, "maxHeight", void 0);
505
- /**
506
- * Includes ARIA states and properties relating to the ARIA select role.
507
- *
508
- * @public
509
- */
510
- class DelegatesARIASelect {
511
- }
512
- index.__decorate([
513
- index.observable
514
- ], DelegatesARIASelect.prototype, "ariaControls", void 0);
515
- applyMixins.applyMixins(DelegatesARIASelect, listbox.DelegatesARIAListbox);
516
- applyMixins.applyMixins(Select$1, startEnd.StartEnd, DelegatesARIASelect);
517
-
518
- const styles = "@supports selector(:focus-visible){: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-primary);--_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-primary);--_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-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}.icon{display:flex;flex-shrink:0}.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}.selected-value slot[name=icon]{flex:0 0 20px;font-size:20px;line-height:1}.control.has-meta .selected-value{padding-inline-end:8px}::part(popup-base){inline-size:max-content;min-inline-size:var(--_select-fixed-width, 100%)}:host([multiple]) ::part(popup-base){position:static}\n";
519
-
520
- var __defProp = Object.defineProperty;
521
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
522
- var __decorateClass = (decorators, target, key, kind) => {
523
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
524
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
525
- if (decorator = decorators[i])
526
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
527
- if (kind && result)
528
- __defProp(target, key, result);
529
- return result;
348
+ _applyStep = new WeakSet();
349
+ applyStep_fn = function(thumb, direction) {
350
+ __privateMethod(this, _updateValues, updateValues_fn).call(this, {
351
+ [thumb]: __privateMethod(this, _roundToNearestStep, roundToNearestStep_fn).call(this, thumb, Number(this[thumb]) + direction * this.step).toString()
352
+ });
530
353
  };
531
- let Select = class extends Select$1 {
532
- constructor() {
533
- super(...arguments);
534
- this.fixedDropdown = false;
535
- this.placeholderOption = null;
536
- }
537
- connectedCallback() {
538
- super.connectedCallback();
354
+ _updateFormValue = new WeakSet();
355
+ updateFormValue_fn = function() {
356
+ if (!this.name) {
357
+ this.setFormValue(null);
358
+ } else {
359
+ const formData = new FormData();
360
+ formData.append(this.name, this.start);
361
+ formData.append(this.name, this.end);
362
+ this.setFormValue(formData);
539
363
  }
540
- get displayValue() {
541
- index.Observable.track(this, "displayValue");
542
- return this.firstSelectedOption?.getAttribute("label") ?? this.firstSelectedOption?.text ?? this.placeholder ?? "";
364
+ };
365
+ _thumbs = new WeakSet();
366
+ thumbs_get = function() {
367
+ return {
368
+ start: this._startThumbEl,
369
+ end: this._endThumbEl
370
+ };
371
+ };
372
+ _thumbConstraints = new WeakSet();
373
+ thumbConstraints_get = function() {
374
+ return {
375
+ start: { min: this.min, max: this.endAsNumber },
376
+ end: { min: this.startAsNumber, max: this.max }
377
+ };
378
+ };
379
+ _draggingThumb = new WeakMap();
380
+ _updateThumbPositions = new WeakSet();
381
+ updateThumbPositions_fn = function() {
382
+ const startOffsetPct = __privateMethod(this, _thumbTrackEndOffset, thumbTrackEndOffset_fn).call(this, this.startAsNumber);
383
+ const endOffsetPct = __privateMethod(this, _thumbTrackEndOffset, thumbTrackEndOffset_fn).call(this, this.endAsNumber);
384
+ const [dirProp, dimProp] = this.orientation === aria.Orientation.horizontal ? ["right", "width"] : ["bottom", "height"];
385
+ const transition = `transition: ${__privateGet(this, _draggingThumb) ? "none" : "all 0.2s ease"};`;
386
+ this._startThumbCss = `${dirProp}: ${startOffsetPct}%; ${transition}`;
387
+ this._endThumbCss = `${dirProp}: ${endOffsetPct}%; ${transition}`;
388
+ this._selectedRangeCss = `${dirProp}: ${endOffsetPct}%; ${dimProp}: ${startOffsetPct - endOffsetPct}%; ${transition}`;
389
+ };
390
+ _thumbTrackEndOffset = new WeakSet();
391
+ thumbTrackEndOffset_fn = function(value) {
392
+ return (1 - inverseLerp(this.min, this.max, value)) * 100;
393
+ };
394
+ _calculateValueFromMouseEvent = new WeakSet();
395
+ calculateValueFromMouseEvent_fn = function(e) {
396
+ const trackClientRect = this._trackEl.getBoundingClientRect();
397
+ const [minPos, maxPos, valuePos] = this.orientation === aria.Orientation.horizontal ? [
398
+ this._trackEl.clientLeft,
399
+ this._trackEl.clientWidth,
400
+ e.pageX - document.documentElement.scrollLeft - this.getBoundingClientRect().left
401
+ ] : [
402
+ trackClientRect.top,
403
+ trackClientRect.bottom,
404
+ e.pageY - document.documentElement.scrollTop
405
+ ];
406
+ return lerp(this.min, this.max, inverseLerp(minPos, maxPos, valuePos));
407
+ };
408
+ _roundToNearestStep = new WeakSet();
409
+ roundToNearestStep_fn = function(thumb, value) {
410
+ return slider_template.limit(
411
+ __privateGet(this, _thumbConstraints, thumbConstraints_get)[thumb].min,
412
+ __privateGet(this, _thumbConstraints, thumbConstraints_get)[thumb].max,
413
+ roundToStepValue(value - this.min, this.step) + this.min
414
+ );
415
+ };
416
+ _registerThumbListeners = new WeakSet();
417
+ registerThumbListeners_fn = function() {
418
+ for (const thumb of ["start", "end"]) {
419
+ __privateGet(this, _thumbs, thumbs_get)[thumb].addEventListener("keydown", __privateGet(this, _onThumbKeydown));
420
+ __privateGet(this, _thumbs, thumbs_get)[thumb].addEventListener(
421
+ "mousedown",
422
+ __privateGet(this, _onThumbMousedown),
423
+ { passive: true }
424
+ );
425
+ __privateGet(this, _thumbs, thumbs_get)[thumb].addEventListener(
426
+ "touchstart",
427
+ __privateGet(this, _onThumbMousedown),
428
+ { passive: true }
429
+ );
543
430
  }
544
- setDefaultSelectedOption() {
545
- const options = Array.from(this.children).filter(
546
- listbox.Listbox.slottedOptionFilter
431
+ };
432
+ _unregisterThumbListeners = new WeakSet();
433
+ unregisterThumbListeners_fn = function() {
434
+ for (const thumb of ["start", "end"]) {
435
+ __privateGet(this, _thumbs, thumbs_get)[thumb].removeEventListener("keydown", __privateGet(this, _onThumbKeydown));
436
+ __privateGet(this, _thumbs, thumbs_get)[thumb].removeEventListener(
437
+ "mousedown",
438
+ __privateGet(this, _onThumbMousedown)
547
439
  );
548
- const selectedIndex = options.findIndex(
549
- (el) => el.hasAttribute("selected") || el.selected || el.value === this.value
440
+ __privateGet(this, _thumbs, thumbs_get)[thumb].removeEventListener(
441
+ "touchstart",
442
+ __privateGet(this, _onThumbMousedown)
550
443
  );
551
- if (selectedIndex === -1 && !this.placeholderOption) {
552
- this.selectedIndex = 0;
553
- return;
554
- }
555
- if (selectedIndex !== -1 || this.placeholder !== "") {
556
- this.selectedIndex = selectedIndex;
557
- return;
558
- }
559
444
  }
560
445
  };
446
+ _onThumbMousedown = new WeakMap();
447
+ _onThumbKeydown = new WeakMap();
448
+ _registerDragHandlers = new WeakSet();
449
+ registerDragHandlers_fn = function() {
450
+ window.addEventListener("mousemove", __privateGet(this, _onDragMove), { passive: true });
451
+ window.addEventListener("touchmove", __privateGet(this, _onDragMove), { passive: true });
452
+ window.addEventListener("mouseup", __privateGet(this, _onDragEnd));
453
+ window.addEventListener("touchend", __privateGet(this, _onDragEnd));
454
+ window.document.addEventListener("mouseleave", __privateGet(this, _onDragEnd));
455
+ };
456
+ _unregisterDragListeners = new WeakSet();
457
+ unregisterDragListeners_fn = function() {
458
+ window.removeEventListener("mouseup", __privateGet(this, _onDragEnd));
459
+ window.document.removeEventListener("mouseleave", __privateGet(this, _onDragEnd));
460
+ window.removeEventListener("mousemove", __privateGet(this, _onDragMove));
461
+ window.removeEventListener("touchmove", __privateGet(this, _onDragMove));
462
+ window.removeEventListener("touchend", __privateGet(this, _onDragEnd));
463
+ };
464
+ _onDragMove = new WeakMap();
465
+ _onDragEnd = new WeakMap();
561
466
  __decorateClass([
562
467
  index.observable
563
- ], Select.prototype, "_anchor", 2);
468
+ ], RangeSlider.prototype, "start", 2);
564
469
  __decorateClass([
565
- index.attr
566
- ], Select.prototype, "appearance", 2);
470
+ index.attr({ mode: "fromView", attribute: "start" })
471
+ ], RangeSlider.prototype, "initialStart", 2);
472
+ __decorateClass([
473
+ index.attr({ attribute: "current-start" })
474
+ ], RangeSlider.prototype, "currentStart", 2);
475
+ __decorateClass([
476
+ index.observable
477
+ ], RangeSlider.prototype, "end", 2);
478
+ __decorateClass([
479
+ index.attr({ mode: "fromView", attribute: "end" })
480
+ ], RangeSlider.prototype, "initialEnd", 2);
481
+ __decorateClass([
482
+ index.attr({ attribute: "current-end" })
483
+ ], RangeSlider.prototype, "currentEnd", 2);
484
+ __decorateClass([
485
+ index.attr({ converter: index.nullableNumberConverter })
486
+ ], RangeSlider.prototype, "min", 2);
487
+ __decorateClass([
488
+ index.attr({ converter: index.nullableNumberConverter })
489
+ ], RangeSlider.prototype, "max", 2);
490
+ __decorateClass([
491
+ index.attr({ converter: index.nullableNumberConverter })
492
+ ], RangeSlider.prototype, "step", 2);
567
493
  __decorateClass([
568
494
  index.attr
569
- ], Select.prototype, "shape", 2);
495
+ ], RangeSlider.prototype, "orientation", 2);
496
+ __decorateClass([
497
+ index.attr({ attribute: "aria-start-label" })
498
+ ], RangeSlider.prototype, "ariaStartLabel", 2);
570
499
  __decorateClass([
571
- index.attr({ mode: "boolean", attribute: "fixed-dropdown" })
572
- ], Select.prototype, "fixedDropdown", 2);
500
+ index.attr({ attribute: "aria-end-label" })
501
+ ], RangeSlider.prototype, "ariaEndLabel", 2);
502
+ __decorateClass([
503
+ index.attr({ mode: "boolean" })
504
+ ], RangeSlider.prototype, "markers", 2);
573
505
  __decorateClass([
574
506
  index.attr
575
- ], Select.prototype, "placeholder", 2);
507
+ ], RangeSlider.prototype, "connotation", 2);
508
+ __decorateClass([
509
+ index.observable
510
+ ], RangeSlider.prototype, "valueTextFormatter", 2);
576
511
  __decorateClass([
577
512
  index.observable
578
- ], Select.prototype, "placeholderOption", 2);
513
+ ], RangeSlider.prototype, "_startThumbCss", 2);
579
514
  __decorateClass([
580
515
  index.observable
581
- ], Select.prototype, "metaSlottedContent", 2);
582
- Select = __decorateClass([
583
- index$1.errorText,
516
+ ], RangeSlider.prototype, "_endThumbCss", 2);
517
+ __decorateClass([
518
+ index.observable
519
+ ], RangeSlider.prototype, "_selectedRangeCss", 2);
520
+ RangeSlider = __decorateClass([
584
521
  index$1.formElements
585
- ], Select);
586
- applyMixins.applyMixins(
587
- Select,
588
- affix.AffixIconWithTrailing,
589
- index$1.FormElementHelperText,
590
- index$1.FormElementSuccessText
591
- );
522
+ ], RangeSlider);
523
+ applyMixins.applyMixins(RangeSlider, localized.Localized);
592
524
 
593
- const getStateClasses = ({
594
- shape,
595
- disabled,
596
- appearance,
597
- metaSlottedContent,
598
- errorValidationMessage,
599
- successText
600
- }) => classNames.classNames(
601
- ["disabled", disabled],
602
- [`appearance-${appearance}`, Boolean(appearance)],
603
- [`shape-${shape}`, Boolean(shape)],
604
- ["has-meta", Boolean(metaSlottedContent?.length)],
605
- ["error", Boolean(errorValidationMessage)],
606
- ["success", !!successText],
607
- ["has-meta", Boolean(metaSlottedContent?.length)]
525
+ const getClasses = ({ disabled, connotation }) => classNames.classNames(
526
+ "control",
527
+ ["disabled", Boolean(disabled)],
528
+ [`connotation-${connotation}`, Boolean(connotation)]
608
529
  );
609
- function renderLabel() {
610
- return index.html` <label for="control" class="label" id="label">
611
- ${(x) => x.label}
612
- </label>`;
613
- }
614
- function renderPlaceholder(context) {
615
- const optionTag = context.tagFor(definition$1.ListboxOption);
616
- return index.html`
617
- <${optionTag} ${ref.ref("placeholderOption")}
618
- text="${(x) => x.placeholder}" hidden disabled>
619
- </${optionTag}>`;
620
- }
621
- function selectValue(context) {
622
- const affixIconTemplate = affix.affixIconTemplateFactory(context);
623
- return index.html` <div
624
- class="control ${getStateClasses}"
625
- ${ref.ref("_anchor")}
626
- id="control"
627
- ?disabled="${(x) => x.disabled}"
628
- >
629
- <div class="selected-value">
630
- ${(x) => affixIconTemplate(x.icon, affix.IconWrapper.Slot)}
631
- <span class="text">${(x) => x.displayValue}</span>
632
- <slot name="meta" ${slotted.slotted("metaSlottedContent")}></slot>
633
- </div>
634
- ${() => affixIconTemplate("chevron-down-line")}
635
- </div>`;
636
- }
637
- function setFixedDropdownVarWidth(x) {
638
- return x.open && x.fixedDropdown ? `--_select-fixed-width: ${Math.round(x.getBoundingClientRect().width)}px` : null;
639
- }
640
- function renderControl(context) {
641
- const popupTag = context.tagFor(definition.Popup);
642
- return index.html`
643
- ${when.when((x) => x.label, renderLabel())}
644
- <div class="control-wrapper">
645
- ${when.when((x) => !x.multiple, selectValue(context))}
646
- <${popupTag} class="popup"
647
- style="${setFixedDropdownVarWidth}"
648
- ?open="${(x) => x.collapsible ? x.open : true}"
649
- :anchor="${(x) => x._anchor}"
650
- placement="bottom-start"
651
- strategy="${(x) => x.fixedDropdown ? null : "absolute"}">
652
- <div class="listbox"
653
- id="${(x) => x.listboxId}"
654
- role="listbox"
655
- ?disabled="${(x) => x.disabled}"
656
- ?hidden="${(x) => x.collapsible ? !x.open : false}"
657
- ${ref.ref("listbox")}>
658
- ${when.when((x) => x.placeholder, renderPlaceholder(context))}
659
- <slot
660
- ${slotted.slotted({
661
- filter: listbox.Listbox.slottedOptionFilter,
662
- flatten: true,
663
- property: "slottedOptions"
664
- })}>
665
- </slot>
666
- </div>
667
- </${popupTag}>
668
- </div>
669
- ${when.when((x) => x.helperText?.length, index$1.getFeedbackTemplate("helper", context))}
670
- ${when.when(
671
- (x) => !x.successText && x.errorValidationMessage,
672
- index$1.getFeedbackTemplate("error", context)
673
- )}
674
- ${when.when((x) => x.successText, index$1.getFeedbackTemplate("success", context))}
675
- `;
676
- }
677
- const SelectTemplate = (context) => {
530
+ const RangeSliderTemplate = () => {
678
531
  return index.html` <template
679
- class="base"
680
- aria-label="${(x) => x.ariaLabel}"
681
- aria-activedescendant="${(x) => x.ariaActiveDescendant}"
682
- aria-controls="${(x) => x.ariaControls}"
683
- aria-disabled="${(x) => x.ariaDisabled}"
684
- aria-expanded="${(x) => x.ariaExpanded}"
685
- aria-haspopup="${(x) => x.collapsible ? "listbox" : null}"
686
- aria-multiselectable="${(x) => x.ariaMultiSelectable}"
687
- ?open="${(x) => x.open}"
688
- role="combobox"
689
- tabindex="${(x) => !x.disabled ? "0" : null}"
690
- @click="${(x, c) => x.clickHandler(c.event)}"
691
- @focusin="${(x, c) => x.focusinHandler(c.event)}"
692
- @focusout="${(x, c) => x.focusoutHandler(c.event)}"
693
- @keydown="${(x, c) => x.keydownHandler(c.event)}"
694
- @mousedown="${(x, c) => x.mousedownHandler(c.event)}"
532
+ @mousedown="${(x, c) => x._onMouseDown(c.event)}"
695
533
  >
696
- ${renderControl(context)}
534
+ <div class="${getClasses} ${(x) => x.orientation}">
535
+ <div class="positioning-region">
536
+ <div ${ref.ref("_trackEl")} class="track">
537
+ <div class="track-start" style="${(x) => x._selectedRangeCss}"></div>
538
+ ${when.when(
539
+ (x) => x.markers,
540
+ index.html`${(x) => slider_template.getMarkersTemplate(
541
+ x.orientation === aria.Orientation.horizontal,
542
+ Math.floor((x.max - x.min) / x.step)
543
+ )}`
544
+ )}
545
+ </div>
546
+ <div
547
+ ${ref.ref("_startThumbEl")}
548
+ class="thumb-container"
549
+ style="${(x) => x._startThumbCss}"
550
+ role="slider"
551
+ tabindex="${(x) => x.disabled ? null : 0}"
552
+ aria-label="${(x) => x.ariaStartLabel || x.locale.rangeSlider.startThumbLabel}"
553
+ aria-valuetext="${(x) => x.valueTextFormatter(x.start)}"
554
+ aria-valuenow="${(x) => x.start}"
555
+ aria-valuemin="${(x) => x.min}"
556
+ aria-valuemax="${(x) => x.end}"
557
+ aria-disabled="${(x) => x.disabled}"
558
+ aria-orientation="${(x) => x.orientation}"
559
+ ></div>
560
+ <div
561
+ ${ref.ref("_endThumbEl")}
562
+ class="thumb-container"
563
+ style="${(x) => x._endThumbCss}"
564
+ role="slider"
565
+ tabindex="${(x) => x.disabled ? null : 0}"
566
+ aria-label="${(x) => x.ariaEndLabel || x.locale.rangeSlider.endThumbLabel}"
567
+ aria-valuetext="${(x) => x.valueTextFormatter(x.end)}"
568
+ aria-valuenow="${(x) => x.end}"
569
+ aria-valuemin="${(x) => x.start}"
570
+ aria-valuemax="${(x) => x.max}"
571
+ aria-disabled="${(x) => x.disabled}"
572
+ aria-orientation="${(x) => x.orientation}"
573
+ ></div>
574
+ </div>
575
+ </div>
697
576
  </template>`;
698
577
  };
699
578
 
700
- const selectDefinition = Select.compose({
701
- baseName: "select",
702
- template: SelectTemplate,
703
- styles
579
+ const rangeSliderDefinition = RangeSlider.compose({
580
+ baseName: "range-slider",
581
+ template: RangeSliderTemplate,
582
+ styles,
583
+ shadowOptions: {
584
+ delegatesFocus: true
585
+ }
704
586
  });
705
- const selectRegistries = [
706
- selectDefinition(),
707
- ...definition.popupRegistries,
708
- ...definition$2.iconRegistries,
709
- ...definition$1.listboxOptionRegistries
710
- ];
711
- const registerSelect = index.registerFactory(selectRegistries);
587
+ const rangeSliderRegistries = [rangeSliderDefinition()];
588
+ const registerRangeSlider = index.registerFactory(rangeSliderRegistries);
712
589
 
713
- exports.registerSelect = registerSelect;
714
- exports.selectDefinition = selectDefinition;
715
- exports.selectRegistries = selectRegistries;
590
+ exports.rangeSliderDefinition = rangeSliderDefinition;
591
+ exports.rangeSliderRegistries = rangeSliderRegistries;
592
+ exports.registerRangeSlider = registerRangeSlider;