@vonage/vivid 3.51.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 (340) 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/appearance-ui/index.cjs +19 -11
  9. package/appearance-ui/index.js +19 -11
  10. package/audio-player/index.cjs +4 -3
  11. package/audio-player/index.js +4 -3
  12. package/avatar/index.cjs +1 -1
  13. package/avatar/index.js +1 -1
  14. package/badge/index.cjs +1 -1
  15. package/badge/index.js +1 -1
  16. package/banner/index.cjs +2 -2
  17. package/banner/index.js +2 -2
  18. package/breadcrumb-item/index.cjs +1 -1
  19. package/breadcrumb-item/index.js +1 -1
  20. package/button/index.cjs +2 -2
  21. package/button/index.js +2 -2
  22. package/card/index.cjs +2 -2
  23. package/card/index.js +2 -2
  24. package/checkbox/index.cjs +3 -2
  25. package/checkbox/index.js +3 -2
  26. package/combobox/index.cjs +5 -8
  27. package/combobox/index.js +5 -8
  28. package/custom-elements.json +2310 -769
  29. package/data-grid/index.cjs +1 -1
  30. package/data-grid/index.js +1 -1
  31. package/date-picker/index.cjs +7 -9
  32. package/date-picker/index.js +7 -9
  33. package/date-range-picker/index.cjs +7 -9
  34. package/date-range-picker/index.js +7 -9
  35. package/dial-pad/index.cjs +33 -0
  36. package/dial-pad/index.js +31 -0
  37. package/dialog/index.cjs +4 -4
  38. package/dialog/index.js +4 -4
  39. package/divider/index.cjs +1 -1
  40. package/divider/index.js +1 -1
  41. package/elevation/index.cjs +1 -1
  42. package/elevation/index.js +1 -1
  43. package/empty-state/index.cjs +2 -2
  44. package/empty-state/index.js +2 -2
  45. package/fab/index.cjs +2 -2
  46. package/fab/index.js +2 -2
  47. package/file-picker/index.cjs +4 -5
  48. package/file-picker/index.js +4 -5
  49. package/header/index.cjs +2 -2
  50. package/header/index.js +2 -2
  51. package/icon/index.cjs +1 -1
  52. package/icon/index.js +1 -1
  53. package/index.cjs +135 -123
  54. package/index.js +48 -46
  55. package/layout/index.cjs +1 -1
  56. package/layout/index.js +1 -1
  57. package/lib/avatar/definition.d.ts +1 -1
  58. package/lib/button/button.d.ts +1 -0
  59. package/lib/button/definition.d.ts +1 -1
  60. package/lib/calendar-event/definition.d.ts +1 -1
  61. package/lib/components.d.ts +3 -0
  62. package/lib/dial-pad/definition.d.ts +3 -0
  63. package/lib/dial-pad/dial-pad.d.ts +14 -0
  64. package/lib/dial-pad/dial-pad.template.d.ts +4 -0
  65. package/lib/dial-pad/locale.d.ts +18 -0
  66. package/lib/enums.d.ts +6 -0
  67. package/lib/layout/definition.d.ts +1 -1
  68. package/lib/menu-item/menu-item.d.ts +3 -0
  69. package/lib/range-slider/definition.d.ts +3 -0
  70. package/lib/range-slider/locale.d.ts +4 -0
  71. package/lib/range-slider/range-slider.d.ts +32 -0
  72. package/lib/range-slider/range-slider.form-associated.d.ts +10 -0
  73. package/lib/range-slider/range-slider.template.d.ts +4 -0
  74. package/lib/range-slider/utils/lerp.d.ts +2 -0
  75. package/lib/range-slider/utils/roundToStepValue.d.ts +1 -0
  76. package/lib/slider/slider.template.d.ts +1 -0
  77. package/lib/split-button/definition.d.ts +1 -1
  78. package/lib/text-anchor/definition.d.ts +1 -0
  79. package/lib/text-anchor/text-anchor.d.ts +5 -0
  80. package/lib/video-player/definition.d.ts +3 -0
  81. package/lib/video-player/locale.d.ts +1 -0
  82. package/lib/video-player/video-player.d.ts +17 -0
  83. package/lib/video-player/video-player.template.d.ts +4 -0
  84. package/listbox/index.cjs +25 -24
  85. package/listbox/index.js +25 -24
  86. package/locales/en-GB.cjs +34 -0
  87. package/locales/en-GB.js +34 -0
  88. package/locales/en-US.cjs +202 -0
  89. package/locales/en-US.js +202 -0
  90. package/locales/ja-JP.cjs +202 -1
  91. package/locales/ja-JP.js +202 -1
  92. package/locales/zh-CN.cjs +203 -0
  93. package/locales/zh-CN.js +203 -0
  94. package/menu/index.cjs +7 -7
  95. package/menu/index.js +7 -7
  96. package/menu-item/index.cjs +4 -4
  97. package/menu-item/index.js +4 -4
  98. package/nav/index.cjs +1 -1
  99. package/nav/index.js +1 -1
  100. package/nav-disclosure/index.cjs +2 -2
  101. package/nav-disclosure/index.js +2 -2
  102. package/nav-item/index.cjs +2 -2
  103. package/nav-item/index.js +2 -2
  104. package/note/index.cjs +2 -2
  105. package/note/index.js +2 -2
  106. package/number-field/index.cjs +5 -6
  107. package/number-field/index.js +5 -6
  108. package/option/index.cjs +2 -2
  109. package/option/index.js +2 -2
  110. package/package.json +34 -34
  111. package/pagination/index.cjs +3 -3
  112. package/pagination/index.js +3 -3
  113. package/popup/index.cjs +4 -4
  114. package/popup/index.js +4 -4
  115. package/progress/index.cjs +1 -1
  116. package/progress/index.js +1 -1
  117. package/progress-ring/index.cjs +1 -1
  118. package/progress-ring/index.js +1 -1
  119. package/radio/index.cjs +1 -1
  120. package/radio/index.js +1 -1
  121. package/radio-group/index.cjs +1 -1
  122. package/radio-group/index.js +1 -1
  123. package/range-slider/index.cjs +22 -0
  124. package/range-slider/index.js +20 -0
  125. package/select/index.cjs +7 -6
  126. package/select/index.js +7 -6
  127. package/selectable-box/index.cjs +5 -4
  128. package/selectable-box/index.js +5 -4
  129. package/shared/Reflector.cjs +5 -1
  130. package/shared/Reflector.js +5 -1
  131. package/shared/affix.cjs +11 -4
  132. package/shared/affix.js +12 -4
  133. package/shared/anchored.cjs +8 -2
  134. package/shared/anchored.js +8 -2
  135. package/shared/applyMixinsWithObservables.cjs +15 -0
  136. package/shared/applyMixinsWithObservables.js +13 -0
  137. package/shared/definition.cjs +9 -4
  138. package/shared/definition.js +9 -4
  139. package/shared/definition10.cjs +5 -5
  140. package/shared/definition10.js +5 -5
  141. package/shared/definition11.cjs +77 -49
  142. package/shared/definition11.js +78 -50
  143. package/shared/definition12.cjs +12 -14
  144. package/shared/definition12.js +12 -14
  145. package/shared/definition13.cjs +118 -75
  146. package/shared/definition13.js +118 -75
  147. package/shared/definition14.cjs +34 -33
  148. package/shared/definition14.js +34 -33
  149. package/shared/definition15.cjs +24 -12
  150. package/shared/definition15.js +24 -12
  151. package/shared/definition16.cjs +38 -43
  152. package/shared/definition16.js +38 -43
  153. package/shared/definition17.cjs +126 -66
  154. package/shared/definition17.js +127 -67
  155. package/shared/definition18.cjs +31 -15
  156. package/shared/definition18.js +31 -15
  157. package/shared/definition19.cjs +117 -81
  158. package/shared/definition19.js +117 -81
  159. package/shared/definition2.cjs +10 -5
  160. package/shared/definition2.js +10 -5
  161. package/shared/definition20.cjs +187 -227
  162. package/shared/definition20.js +183 -223
  163. package/shared/definition21.cjs +262 -69
  164. package/shared/definition21.js +261 -67
  165. package/shared/definition22.cjs +66 -61
  166. package/shared/definition22.js +64 -60
  167. package/shared/definition23.cjs +42 -77
  168. package/shared/definition23.js +41 -76
  169. package/shared/definition24.cjs +65 -2350
  170. package/shared/definition24.js +64 -2349
  171. package/shared/definition25.cjs +2402 -48
  172. package/shared/definition25.js +2401 -47
  173. package/shared/definition26.cjs +62 -28
  174. package/shared/definition26.js +61 -27
  175. package/shared/definition27.cjs +28 -54
  176. package/shared/definition27.js +27 -53
  177. package/shared/definition28.cjs +39 -819
  178. package/shared/definition28.js +38 -817
  179. package/shared/definition29.cjs +893 -54
  180. package/shared/definition29.js +893 -55
  181. package/shared/definition3.cjs +7 -10
  182. package/shared/definition3.js +7 -10
  183. package/shared/definition30.cjs +69 -85
  184. package/shared/definition30.js +68 -84
  185. package/shared/definition31.cjs +86 -23
  186. package/shared/definition31.js +86 -23
  187. package/shared/definition32.cjs +24 -14
  188. package/shared/definition32.js +23 -13
  189. package/shared/definition33.cjs +11 -53
  190. package/shared/definition33.js +10 -52
  191. package/shared/definition34.cjs +28 -500
  192. package/shared/definition34.js +28 -500
  193. package/shared/definition35.cjs +447 -194
  194. package/shared/definition35.js +447 -192
  195. package/shared/definition36.cjs +258 -188
  196. package/shared/definition36.js +255 -187
  197. package/shared/definition37.cjs +204 -78
  198. package/shared/definition37.js +203 -76
  199. package/shared/definition38.cjs +55 -51
  200. package/shared/definition38.js +52 -49
  201. package/shared/definition39.cjs +65 -423
  202. package/shared/definition39.js +64 -422
  203. package/shared/definition4.cjs +24 -12
  204. package/shared/definition4.js +24 -12
  205. package/shared/definition40.cjs +447 -35
  206. package/shared/definition40.js +444 -32
  207. package/shared/definition41.cjs +35 -678
  208. package/shared/definition41.js +34 -677
  209. package/shared/definition42.cjs +544 -99
  210. package/shared/definition42.js +543 -98
  211. package/shared/definition43.cjs +696 -77
  212. package/shared/definition43.js +695 -76
  213. package/shared/definition44.cjs +113 -563
  214. package/shared/definition44.js +112 -561
  215. package/shared/definition45.cjs +77 -117
  216. package/shared/definition45.js +75 -115
  217. package/shared/definition46.cjs +474 -86
  218. package/shared/definition46.js +474 -87
  219. package/shared/definition47.cjs +140 -23
  220. package/shared/definition47.js +139 -22
  221. package/shared/definition48.cjs +132 -57
  222. package/shared/definition48.js +131 -56
  223. package/shared/definition49.cjs +18 -524
  224. package/shared/definition49.js +17 -523
  225. package/shared/definition5.cjs +20 -17
  226. package/shared/definition5.js +20 -17
  227. package/shared/definition50.cjs +73 -25
  228. package/shared/definition50.js +72 -24
  229. package/shared/definition51.cjs +506 -99
  230. package/shared/definition51.js +505 -99
  231. package/shared/definition52.cjs +29 -277
  232. package/shared/definition52.js +28 -276
  233. package/shared/definition53.cjs +97 -256
  234. package/shared/definition53.js +97 -255
  235. package/shared/definition54.cjs +287 -769
  236. package/shared/definition54.js +287 -769
  237. package/shared/definition55.cjs +305 -105
  238. package/shared/definition55.js +304 -104
  239. package/shared/definition56.cjs +841 -81
  240. package/shared/definition56.js +840 -80
  241. package/shared/definition57.cjs +153 -69
  242. package/shared/definition57.js +152 -68
  243. package/shared/definition58.cjs +138 -299
  244. package/shared/definition58.js +137 -298
  245. package/shared/definition59.cjs +72 -27
  246. package/shared/definition59.js +71 -26
  247. package/shared/definition6.cjs +4 -5
  248. package/shared/definition6.js +4 -5
  249. package/shared/definition60.cjs +279 -1780
  250. package/shared/definition60.js +278 -1779
  251. package/shared/definition61.cjs +65870 -11
  252. package/shared/definition61.js +65869 -11
  253. package/shared/definition62.cjs +50 -0
  254. package/shared/definition62.js +46 -0
  255. package/shared/definition63.cjs +1828 -0
  256. package/shared/definition63.js +1824 -0
  257. package/shared/definition7.cjs +8 -6
  258. package/shared/definition7.js +8 -6
  259. package/shared/definition8.cjs +27 -20
  260. package/shared/definition8.js +27 -20
  261. package/shared/definition9.cjs +7 -10
  262. package/shared/definition9.js +7 -10
  263. package/shared/enums.cjs +8 -0
  264. package/shared/enums.js +8 -1
  265. package/shared/icon.cjs +7 -2
  266. package/shared/icon.js +7 -2
  267. package/shared/index2.cjs +67 -38
  268. package/shared/index2.js +67 -38
  269. package/shared/key-codes2.cjs +8 -0
  270. package/shared/key-codes2.js +5 -1
  271. package/shared/listbox.cjs +1 -1
  272. package/shared/listbox.js +1 -1
  273. package/shared/localization/Locale.d.ts +6 -0
  274. package/shared/patterns/form-elements/form-elements.d.ts +2 -3
  275. package/shared/patterns/index.d.ts +0 -1
  276. package/shared/presentationDate.cjs +140 -81
  277. package/shared/presentationDate.js +140 -81
  278. package/shared/slider.template.cjs +71 -0
  279. package/shared/slider.template.js +67 -0
  280. package/shared/text-anchor.cjs +6 -0
  281. package/shared/text-anchor.js +6 -0
  282. package/shared/text-anchor.template.cjs +33 -33
  283. package/shared/text-anchor.template.js +33 -33
  284. package/shared/text-field.cjs +1 -1
  285. package/shared/text-field.js +1 -1
  286. package/shared/utils/applyMixinsWithObservables.d.ts +1 -0
  287. package/side-drawer/index.cjs +1 -1
  288. package/side-drawer/index.js +1 -1
  289. package/slider/index.cjs +2 -1
  290. package/slider/index.js +2 -1
  291. package/split-button/index.cjs +2 -2
  292. package/split-button/index.js +2 -2
  293. package/style.css +1 -0
  294. package/styles/core/all.css +1 -1
  295. package/styles/core/theme.css +1 -1
  296. package/styles/core/typography.css +1 -1
  297. package/styles/fonts/spezia-variable.css +39 -13
  298. package/styles/tokens/theme-dark.css +4 -4
  299. package/styles/tokens/theme-light.css +4 -4
  300. package/styles/tokens/vivid-2-compat.css +4 -2
  301. package/switch/index.cjs +2 -2
  302. package/switch/index.js +2 -2
  303. package/tab/index.cjs +2 -2
  304. package/tab/index.js +2 -2
  305. package/tab-panel/index.cjs +1 -1
  306. package/tab-panel/index.js +1 -1
  307. package/tabs/index.cjs +4 -4
  308. package/tabs/index.js +4 -4
  309. package/tag/index.cjs +2 -2
  310. package/tag/index.js +2 -2
  311. package/tag-group/index.cjs +1 -1
  312. package/tag-group/index.js +1 -1
  313. package/text-area/index.cjs +4 -3
  314. package/text-area/index.js +4 -3
  315. package/text-field/index.cjs +4 -6
  316. package/text-field/index.js +4 -6
  317. package/time-picker/index.cjs +8 -10
  318. package/time-picker/index.js +8 -10
  319. package/toggletip/index.cjs +5 -5
  320. package/toggletip/index.js +5 -5
  321. package/tooltip/index.cjs +5 -5
  322. package/tooltip/index.js +5 -5
  323. package/tree-item/index.cjs +2 -2
  324. package/tree-item/index.js +2 -2
  325. package/tree-view/index.cjs +1 -1
  326. package/tree-view/index.js +1 -1
  327. package/video-player/index.cjs +17 -0
  328. package/video-player/index.js +15 -0
  329. package/vivid.api.json +428 -1
  330. package/focus/index.cjs +0 -7
  331. package/focus/index.js +0 -5
  332. package/lib/focus/definition.d.ts +0 -3
  333. package/lib/focus/focus.d.ts +0 -3
  334. package/lib/focus/focus.template.d.ts +0 -4
  335. package/lib/popup/popup.d.ts +0 -21
  336. package/shared/focus.cjs +0 -8
  337. package/shared/focus.js +0 -6
  338. package/shared/focus2.cjs +0 -11
  339. package/shared/focus2.js +0 -9
  340. package/shared/patterns/focus.d.ts +0 -3
@@ -1,14 +1,47 @@
1
1
  'use strict';
2
2
 
3
3
  const index = require('./index.cjs');
4
- const definition = require('./definition15.cjs');
5
- const definition$1 = require('./definition40.cjs');
6
- const enums = require('./enums.cjs');
7
- const radio$1 = require('./radio.cjs');
8
- const classNames = require('./class-names.cjs');
4
+ const keyCodes = require('./key-codes2.cjs');
5
+ require('./affix.cjs');
6
+ const index$1 = require('./index2.cjs');
7
+ const localized = require('./localized.cjs');
8
+ const formAssociated = require('./form-associated.cjs');
9
+ const slider_template = require('./slider.template.cjs');
10
+ const applyMixins = require('./apply-mixins.cjs');
11
+ const aria = require('./aria2.cjs');
12
+ const ref = require('./ref.cjs');
9
13
  const when = require('./when.cjs');
14
+ const classNames = require('./class-names.cjs');
10
15
 
11
- const styles = ":host{display:flex}.base{position:relative;padding:var(--selectable-box-spacing, 16px);border:1px solid var(--_appearance-color-outline);background-color:var(--_appearance-color-fill);border-radius:8px;inline-size:100%;padding-block-start:calc(var(--selectable-box-spacing, 16px) + 36px);text-align:start}.base.connotation-cta{--_connotation-color-firm-all: var(--vvd-selectable-box-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-pale: var(--vvd-selectable-box-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-selectable-box-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-faint: var(--vvd-selectable-box-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-selectable-box-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-firm-all: var(--vvd-selectable-box-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-pale: var(--vvd-selectable-box-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-selectable-box-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-selectable-box-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-selectable-box-accent-soft, var(--vvd-color-neutral-100))}.base{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(:hover,.hover):where(:not(:disabled,.disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:where(.selected,[aria-current]):where(:not(:disabled,.disabled)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.selected,[aria-current]):where(:hover,.hover):where(:not(:disabled,.disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}.base.tight{overflow:hidden;min-height:calc(var(--selectable-box-spacing, 16px) * 2 + 22px);padding:0}.base.clickable{cursor:pointer}.control{position:absolute;inset-block-start:var(--selectable-box-spacing, 16px);inset-inline-end:var(--selectable-box-spacing, 16px)}\n";
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 {
19
+ }
20
+ class FormAssociatedRangeSlider extends formAssociated.FormAssociated(_RangeSlider) {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.proxy = document.createElement("input");
24
+ }
25
+ }
26
+
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));
12
45
 
13
46
  var __defProp = Object.defineProperty;
14
47
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -21,127 +54,539 @@ var __decorateClass = (decorators, target, key, kind) => {
21
54
  __defProp(target, key, result);
22
55
  return result;
23
56
  };
24
- class SelectableBox extends index.FoundationElement {
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 {
25
85
  constructor() {
26
86
  super(...arguments);
27
- this.ariaLabel = null;
28
- this.checked = false;
29
- this.clickable = false;
30
- this.clickableBox = false;
31
- this.tight = false;
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 ---
114
+ /**
115
+ * @internal
116
+ */
117
+ this._trackEl = null;
118
+ /**
119
+ * @internal
120
+ */
121
+ this._startThumbEl = null;
122
+ /**
123
+ * @internal
124
+ */
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;
162
+ }
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
+ });
32
179
  }
33
180
  /**
34
181
  * @internal
35
182
  */
36
- _handleCheckedChange() {
37
- if (this.controlType === "radio" && this.checked)
38
- return;
39
- this.checked = !this.checked;
40
- if (this.clickableBox || this.clickable)
41
- this.$emit("change");
183
+ startChanged() {
184
+ this.currentStart = this.start;
185
+ if (!__privateGet(this, _isInternalValueUpdate)) {
186
+ this.dirtyValue = true;
187
+ __privateMethod(this, _updateFormValue, updateFormValue_fn).call(this);
188
+ }
189
+ if (this.$fastController.isConnected) {
190
+ __privateMethod(this, _updateThumbPositions, updateThumbPositions_fn).call(this);
191
+ }
42
192
  }
43
193
  /**
44
194
  * @internal
45
195
  */
46
- _handleKeydown(event) {
47
- if ((event.code === "Space" || event.code === "Enter") && (this.clickableBox || this.clickable))
48
- return this._handleCheckedChange();
49
- return true;
196
+ initialStartChanged(_, newValue) {
197
+ if (newValue && !this.dirtyValue) {
198
+ this.start = newValue;
199
+ this.dirtyValue = false;
200
+ }
50
201
  }
51
- }
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);
227
+ }
228
+ if (this.$fastController.isConnected) {
229
+ __privateMethod(this, _updateThumbPositions, updateThumbPositions_fn).call(this);
230
+ }
231
+ }
232
+ /**
233
+ * @internal
234
+ */
235
+ initialEndChanged(_, newValue) {
236
+ if (newValue && !this.dirtyValue) {
237
+ this.end = newValue;
238
+ this.dirtyValue = false;
239
+ }
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);
264
+ }
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;
302
+ }
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");
338
+ }
339
+ if (end !== void 0) {
340
+ this.$emit("input:end");
341
+ }
342
+ this.$emit("input");
343
+ this.$emit("change");
344
+ this.dirtyValue = true;
345
+ }
346
+ __privateMethod(this, _updateFormValue, updateFormValue_fn).call(this);
347
+ };
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
+ });
353
+ };
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);
363
+ }
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
+ );
430
+ }
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)
439
+ );
440
+ __privateGet(this, _thumbs, thumbs_get)[thumb].removeEventListener(
441
+ "touchstart",
442
+ __privateGet(this, _onThumbMousedown)
443
+ );
444
+ }
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();
52
466
  __decorateClass([
53
- index.attr({ attribute: "aria-label" })
54
- ], SelectableBox.prototype, "ariaLabel", 2);
467
+ index.observable
468
+ ], RangeSlider.prototype, "start", 2);
55
469
  __decorateClass([
56
- index.attr({ mode: "boolean" })
57
- ], SelectableBox.prototype, "checked", 2);
470
+ index.attr({ mode: "fromView", attribute: "start" })
471
+ ], RangeSlider.prototype, "initialStart", 2);
58
472
  __decorateClass([
59
- index.attr({ mode: "boolean" })
60
- ], SelectableBox.prototype, "clickable", 2);
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);
61
484
  __decorateClass([
62
- index.attr({ attribute: "clickable-box", mode: "boolean" })
63
- ], SelectableBox.prototype, "clickableBox", 2);
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);
64
493
  __decorateClass([
65
494
  index.attr
66
- ], SelectableBox.prototype, "connotation", 2);
495
+ ], RangeSlider.prototype, "orientation", 2);
496
+ __decorateClass([
497
+ index.attr({ attribute: "aria-start-label" })
498
+ ], RangeSlider.prototype, "ariaStartLabel", 2);
67
499
  __decorateClass([
68
- index.attr({ attribute: "control-type" })
69
- ], SelectableBox.prototype, "controlType", 2);
500
+ index.attr({ attribute: "aria-end-label" })
501
+ ], RangeSlider.prototype, "ariaEndLabel", 2);
70
502
  __decorateClass([
71
503
  index.attr({ mode: "boolean" })
72
- ], SelectableBox.prototype, "tight", 2);
504
+ ], RangeSlider.prototype, "markers", 2);
505
+ __decorateClass([
506
+ index.attr
507
+ ], RangeSlider.prototype, "connotation", 2);
508
+ __decorateClass([
509
+ index.observable
510
+ ], RangeSlider.prototype, "valueTextFormatter", 2);
511
+ __decorateClass([
512
+ index.observable
513
+ ], RangeSlider.prototype, "_startThumbCss", 2);
514
+ __decorateClass([
515
+ index.observable
516
+ ], RangeSlider.prototype, "_endThumbCss", 2);
517
+ __decorateClass([
518
+ index.observable
519
+ ], RangeSlider.prototype, "_selectedRangeCss", 2);
520
+ RangeSlider = __decorateClass([
521
+ index$1.formElements
522
+ ], RangeSlider);
523
+ applyMixins.applyMixins(RangeSlider, localized.Localized);
73
524
 
74
- const getClasses = ({ connotation, tight, checked, clickableBox, clickable }) => classNames.classNames(
75
- "base",
76
- [`connotation-${connotation}`, Boolean(connotation)],
77
- ["tight", tight],
78
- ["selected", checked],
79
- ["clickable", clickableBox || clickable],
80
- ["readonly", !clickableBox && !clickable]
525
+ const getClasses = ({ disabled, connotation }) => classNames.classNames(
526
+ "control",
527
+ ["disabled", Boolean(disabled)],
528
+ [`connotation-${connotation}`, Boolean(connotation)]
81
529
  );
82
- function handleControlChange(x) {
83
- if (!x.clickableBox)
84
- x._handleCheckedChange();
85
- }
86
- function checkbox(context) {
87
- const checkboxTag = context.tagFor(definition.Checkbox);
88
- return index.html`${when.when((x) => x.controlType !== "radio", index.html`
89
- <${checkboxTag}
90
- aria-label="${(x) => !x.clickableBox && !x.clickable && x.ariaLabel ? x.ariaLabel : null}"
91
- @change="${(x) => handleControlChange(x)}"
92
- class="control checkbox"
93
- connotation="${(x) => x.connotation === "cta" ? enums.Connotation.CTA : enums.Connotation.Accent}"
94
- :checked="${(x) => x.checked}"
95
- inert="${(x) => x.clickableBox || x.clickable ? true : null}"
96
- ></${checkboxTag}>`)}
97
- `;
98
- }
99
- function radio(context) {
100
- const radioTag = context.tagFor(radio$1.Radio);
101
- return index.html`${when.when((x) => x.controlType === "radio", index.html`
102
- <${radioTag}
103
- aria-label="${(x) => !x.clickableBox && !x.clickable && x.ariaLabel ? x.ariaLabel : null}"
104
- @change="${(x) => handleControlChange(x)}"
105
- class="control radio"
106
- connotation="${(x) => x.connotation === "cta" ? enums.Connotation.CTA : enums.Connotation.Accent}"
107
- :checked="${(x) => x.checked}"
108
- inert="${(x) => x.clickableBox || x.clickable ? true : null}"
109
- ></${radioTag}>`)}
110
- `;
111
- }
112
- const SelectableBoxTemplate = (context) => {
113
- return index.html`<template role="presentation">
114
- <div
115
- class="${getClasses}"
116
- tabindex="${(x) => x.clickableBox || x.clickable ? "0" : null}"
117
- role="${(x) => x.clickableBox || x.clickable ? "button" : null}"
118
- aria-pressed="${(x) => (x.clickableBox || x.clickable) && x.checked ? x.checked : null}"
119
- aria-label="${(x) => x.clickableBox || x.clickable ? x.ariaLabel : null}"
120
- @keydown="${(x, c) => x._handleKeydown(c.event)}"
121
- @click="${(x) => x.clickableBox || x.clickable ? x._handleCheckedChange() : null}"
530
+ const RangeSliderTemplate = () => {
531
+ return index.html` <template
532
+ @mousedown="${(x, c) => x._onMouseDown(c.event)}"
122
533
  >
123
- ${checkbox(context)}
124
- ${radio(context)}
125
- <slot></slot>
126
- </div>
127
- </template>`;
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>
576
+ </template>`;
128
577
  };
129
578
 
130
- const selectableBoxDefinition = SelectableBox.compose({
131
- baseName: "selectable-box",
132
- template: SelectableBoxTemplate,
579
+ const rangeSliderDefinition = RangeSlider.compose({
580
+ baseName: "range-slider",
581
+ template: RangeSliderTemplate,
133
582
  styles,
134
583
  shadowOptions: {
135
584
  delegatesFocus: true
136
585
  }
137
586
  });
138
- const selectableBoxRegistries = [
139
- selectableBoxDefinition(),
140
- ...definition.checkboxRegistries,
141
- ...definition$1.radioRegistries
142
- ];
143
- const registerSelectableBox = index.registerFactory(selectableBoxRegistries);
587
+ const rangeSliderRegistries = [rangeSliderDefinition()];
588
+ const registerRangeSlider = index.registerFactory(rangeSliderRegistries);
144
589
 
145
- exports.registerSelectableBox = registerSelectableBox;
146
- exports.selectableBoxDefinition = selectableBoxDefinition;
147
- exports.selectableBoxRegistries = selectableBoxRegistries;
590
+ exports.rangeSliderDefinition = rangeSliderDefinition;
591
+ exports.rangeSliderRegistries = rangeSliderRegistries;
592
+ exports.registerRangeSlider = registerRangeSlider;