@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,12 +1,45 @@
1
- import { a as attr, F as FoundationElement, h as html, r as registerFactory } from './index.js';
2
- import { C as Checkbox, a as checkboxRegistries } from './definition15.js';
3
- import { a as radioRegistries } from './definition40.js';
4
- import { C as Connotation } from './enums.js';
5
- import { R as Radio } from './radio.js';
6
- import { c as classNames } from './class-names.js';
1
+ import { F as FoundationElement, a as attr, o as observable, n as nullableNumberConverter, h as html, r as registerFactory } from './index.js';
2
+ import { c as keyHome, d as keyEnd, e as keyArrowUp, k as keyArrowLeft, f as keyArrowDown, a as keyArrowRight } from './key-codes2.js';
3
+ import './affix.js';
4
+ import { f as formElements } from './index2.js';
5
+ import { L as Localized } from './localized.js';
6
+ import { F as FormAssociated } from './form-associated.js';
7
+ import { l as limit, g as getMarkersTemplate } from './slider.template.js';
8
+ import { a as applyMixins } from './apply-mixins.js';
9
+ import { O as Orientation } from './aria2.js';
10
+ import { r as ref } from './ref.js';
7
11
  import { w as when } from './when.js';
12
+ import { c as classNames } from './class-names.js';
8
13
 
9
- 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";
14
+ const styles = ":host{display:inline-block}:host(:not([orientation=vertical])){inline-size:100%}:host([orientation=vertical]){block-size:100%;min-block-size:calc(var(--_thumb-interaction-indicator-size) * 5)}:host([disabled]){cursor:not-allowed}.control{--_thumb-size: 12px;--_thumb-interaction-indicator-size: 36px;--_track-start-inset-inline-start: 0;--_track-start-inset-block-start: 0;cursor:pointer;outline:none;user-select:none}.control.connotation-cta{--_connotation-color-primary: var(--vvd-slider-cta-primary, var(--vvd-color-cta-500))}.control:not(.connotation-cta){--_connotation-color-primary: var(--vvd-slider-accent-primary, var(--vvd-color-canvas-text))}.control{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.control .positioning-region{position:relative}.control .track{position:absolute;border-radius:4px;background:var(--_track-background-color)}.control .track-start{position:absolute;border-radius:inherit;background:var(--_track-start-background-color);block-size:100%;inset-inline-start:var(--_track-start-inset-inline-start)}.control.horizontal{block-size:var(--_thumb-interaction-indicator-size);inline-size:calc(100% - var(--_thumb-size));margin-inline-start:calc(var(--_thumb-size) / 2);min-inline-size:var(--_thumb-size)}.control.horizontal .track{top:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);right:0;left:0;block-size:2px}.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";
15
+
16
+ class _RangeSlider extends FoundationElement {
17
+ }
18
+ class FormAssociatedRangeSlider extends FormAssociated(_RangeSlider) {
19
+ constructor() {
20
+ super(...arguments);
21
+ this.proxy = document.createElement("input");
22
+ }
23
+ }
24
+
25
+ const getDecimalPlaces = (num) => {
26
+ const match = num.toString().match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
27
+ return Math.max(
28
+ 0,
29
+ // Number of digits right of decimal point.
30
+ (match[1] ? match[1].length : 0) - // Adjust for scientific notation.
31
+ (match[2] ? +match[2] : 0)
32
+ );
33
+ };
34
+ const roundToStepValue = (value, step) => {
35
+ const decimalPlaces = getDecimalPlaces(step);
36
+ const factor = Math.pow(10, decimalPlaces);
37
+ const roundedValue = Math.round(value / step) * step;
38
+ return Math.round(roundedValue * factor) / factor;
39
+ };
40
+
41
+ const lerp = (a, b, value) => a + (b - a) * value;
42
+ const inverseLerp = (a, b, value) => limit(0, 1, (value - a) / (b - a));
10
43
 
11
44
  var __defProp = Object.defineProperty;
12
45
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -19,125 +52,537 @@ var __decorateClass = (decorators, target, key, kind) => {
19
52
  __defProp(target, key, result);
20
53
  return result;
21
54
  };
22
- class SelectableBox extends FoundationElement {
55
+ var __accessCheck = (obj, member, msg) => {
56
+ if (!member.has(obj))
57
+ throw TypeError("Cannot " + msg);
58
+ };
59
+ var __privateGet = (obj, member, getter) => {
60
+ __accessCheck(obj, member, "read from private field");
61
+ return getter ? getter.call(obj) : member.get(obj);
62
+ };
63
+ var __privateAdd = (obj, member, value) => {
64
+ if (member.has(obj))
65
+ throw TypeError("Cannot add the same private member more than once");
66
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
67
+ };
68
+ var __privateSet = (obj, member, value, setter) => {
69
+ __accessCheck(obj, member, "write to private field");
70
+ setter ? setter.call(obj, value) : member.set(obj, value);
71
+ return value;
72
+ };
73
+ var __privateMethod = (obj, member, method) => {
74
+ __accessCheck(obj, member, "access private method");
75
+ return method;
76
+ };
77
+ 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;
78
+ const Direction = {
79
+ Increment: 1,
80
+ Decrement: -1
81
+ };
82
+ let RangeSlider = class extends FormAssociatedRangeSlider {
23
83
  constructor() {
24
84
  super(...arguments);
25
- this.ariaLabel = null;
26
- this.checked = false;
27
- this.clickable = false;
28
- this.clickableBox = false;
29
- this.tight = false;
85
+ __privateAdd(this, _updateValues);
86
+ __privateAdd(this, _applyStep);
87
+ __privateAdd(this, _updateFormValue);
88
+ __privateAdd(this, _thumbs);
89
+ __privateAdd(this, _thumbConstraints);
90
+ __privateAdd(this, _updateThumbPositions);
91
+ __privateAdd(this, _thumbTrackEndOffset);
92
+ __privateAdd(this, _calculateValueFromMouseEvent);
93
+ __privateAdd(this, _roundToNearestStep);
94
+ // --- Event handling ---
95
+ __privateAdd(this, _registerThumbListeners);
96
+ __privateAdd(this, _unregisterThumbListeners);
97
+ __privateAdd(this, _registerDragHandlers);
98
+ __privateAdd(this, _unregisterDragListeners);
99
+ // --- Start & end values ---
100
+ __privateAdd(this, _isInternalValueUpdate, false);
101
+ this.start = "";
102
+ this.end = "";
103
+ this.min = 0;
104
+ this.max = 10;
105
+ this.step = 1;
106
+ this.orientation = Orientation.horizontal;
107
+ this.ariaStartLabel = null;
108
+ this.ariaEndLabel = null;
109
+ this.markers = false;
110
+ this.valueTextFormatter = (value) => value;
111
+ // --- Thumbs ---
112
+ /**
113
+ * @internal
114
+ */
115
+ this._trackEl = null;
116
+ /**
117
+ * @internal
118
+ */
119
+ this._startThumbEl = null;
120
+ /**
121
+ * @internal
122
+ */
123
+ this._endThumbEl = null;
124
+ __privateAdd(this, _draggingThumb, false);
125
+ this._startThumbCss = "";
126
+ this._endThumbCss = "";
127
+ this._selectedRangeCss = "";
128
+ __privateAdd(this, _onThumbMousedown, (event) => {
129
+ if (this.disabled || event.defaultPrevented) {
130
+ return;
131
+ }
132
+ let target = event.target;
133
+ if (target === this._endThumbEl && this.startAsNumber === this.max && this.endAsNumber === this.max) {
134
+ target = this._startThumbEl;
135
+ }
136
+ target.focus();
137
+ __privateSet(this, _draggingThumb, target === this._startThumbEl ? "start" : "end");
138
+ __privateMethod(this, _registerDragHandlers, registerDragHandlers_fn).call(this);
139
+ });
140
+ __privateAdd(this, _onThumbKeydown, (e) => {
141
+ const thumb = e.target === this._startThumbEl ? "start" : "end";
142
+ if (e.key === keyHome) {
143
+ e.preventDefault();
144
+ __privateMethod(this, _updateValues, updateValues_fn).call(this, { [thumb]: `${__privateGet(this, _thumbConstraints, thumbConstraints_get)[thumb].min}` });
145
+ } else if (e.key === keyEnd) {
146
+ e.preventDefault();
147
+ __privateMethod(this, _updateValues, updateValues_fn).call(this, { [thumb]: `${__privateGet(this, _thumbConstraints, thumbConstraints_get)[thumb].max}` });
148
+ } else if (!e.shiftKey) {
149
+ switch (e.key) {
150
+ case keyArrowRight:
151
+ case keyArrowDown:
152
+ e.preventDefault();
153
+ __privateMethod(this, _applyStep, applyStep_fn).call(this, thumb, Direction.Increment);
154
+ break;
155
+ case keyArrowLeft:
156
+ case keyArrowUp:
157
+ e.preventDefault();
158
+ __privateMethod(this, _applyStep, applyStep_fn).call(this, thumb, Direction.Decrement);
159
+ break;
160
+ }
161
+ }
162
+ });
163
+ __privateAdd(this, _onDragMove, (e) => {
164
+ if (this.disabled || e.defaultPrevented || !__privateGet(this, _draggingThumb)) {
165
+ return;
166
+ }
167
+ const sourceEvent = "TouchEvent" in window && e instanceof TouchEvent ? e.touches[0] : e;
168
+ const value = __privateMethod(this, _calculateValueFromMouseEvent, calculateValueFromMouseEvent_fn).call(this, sourceEvent);
169
+ __privateMethod(this, _updateValues, updateValues_fn).call(this, {
170
+ [__privateGet(this, _draggingThumb)]: `${__privateMethod(this, _roundToNearestStep, roundToNearestStep_fn).call(this, __privateGet(this, _draggingThumb), value)}`
171
+ });
172
+ });
173
+ __privateAdd(this, _onDragEnd, () => {
174
+ __privateSet(this, _draggingThumb, false);
175
+ __privateMethod(this, _unregisterDragListeners, unregisterDragListeners_fn).call(this);
176
+ });
30
177
  }
31
178
  /**
32
179
  * @internal
33
180
  */
34
- _handleCheckedChange() {
35
- if (this.controlType === "radio" && this.checked)
36
- return;
37
- this.checked = !this.checked;
38
- if (this.clickableBox || this.clickable)
39
- this.$emit("change");
181
+ startChanged() {
182
+ this.currentStart = this.start;
183
+ if (!__privateGet(this, _isInternalValueUpdate)) {
184
+ this.dirtyValue = true;
185
+ __privateMethod(this, _updateFormValue, updateFormValue_fn).call(this);
186
+ }
187
+ if (this.$fastController.isConnected) {
188
+ __privateMethod(this, _updateThumbPositions, updateThumbPositions_fn).call(this);
189
+ }
40
190
  }
41
191
  /**
42
192
  * @internal
43
193
  */
44
- _handleKeydown(event) {
45
- if ((event.code === "Space" || event.code === "Enter") && (this.clickableBox || this.clickable))
46
- return this._handleCheckedChange();
47
- return true;
194
+ initialStartChanged(_, newValue) {
195
+ if (newValue && !this.dirtyValue) {
196
+ this.start = newValue;
197
+ this.dirtyValue = false;
198
+ }
48
199
  }
49
- }
200
+ /**
201
+ * @internal
202
+ */
203
+ currentStartChanged() {
204
+ this.start = this.currentStart;
205
+ }
206
+ /**
207
+ * The start property, typed as a number.
208
+ *
209
+ * @public
210
+ */
211
+ get startAsNumber() {
212
+ return parseFloat(this.start);
213
+ }
214
+ set startAsNumber(next) {
215
+ this.start = next.toString();
216
+ }
217
+ /**
218
+ * @internal
219
+ */
220
+ endChanged() {
221
+ this.currentEnd = this.end;
222
+ if (!__privateGet(this, _isInternalValueUpdate)) {
223
+ this.dirtyValue = true;
224
+ __privateMethod(this, _updateFormValue, updateFormValue_fn).call(this);
225
+ }
226
+ if (this.$fastController.isConnected) {
227
+ __privateMethod(this, _updateThumbPositions, updateThumbPositions_fn).call(this);
228
+ }
229
+ }
230
+ /**
231
+ * @internal
232
+ */
233
+ initialEndChanged(_, newValue) {
234
+ if (newValue && !this.dirtyValue) {
235
+ this.end = newValue;
236
+ this.dirtyValue = false;
237
+ }
238
+ }
239
+ /**
240
+ * @internal
241
+ */
242
+ currentEndChanged() {
243
+ this.end = this.currentEnd;
244
+ }
245
+ /**
246
+ * The end property, typed as a number.
247
+ *
248
+ * @public
249
+ */
250
+ get endAsNumber() {
251
+ return parseFloat(this.end);
252
+ }
253
+ set endAsNumber(next) {
254
+ this.end = next.toString();
255
+ }
256
+ /**
257
+ * @internal
258
+ */
259
+ orientationChanged() {
260
+ if (this.$fastController.isConnected) {
261
+ __privateMethod(this, _updateThumbPositions, updateThumbPositions_fn).call(this);
262
+ }
263
+ }
264
+ // --- Form handling ---
265
+ /**
266
+ * @internal
267
+ */
268
+ nameChanged(previous, next) {
269
+ super.nameChanged(previous, next);
270
+ __privateMethod(this, _updateFormValue, updateFormValue_fn).call(this);
271
+ }
272
+ formResetCallback() {
273
+ __privateMethod(this, _updateValues, updateValues_fn).call(this, {
274
+ start: this.initialStart ?? this.min.toString(),
275
+ end: this.initialEnd ?? this.max.toString()
276
+ });
277
+ super.formResetCallback();
278
+ }
279
+ // --- Lifecycle ---
280
+ connectedCallback() {
281
+ super.connectedCallback();
282
+ __privateMethod(this, _updateValues, updateValues_fn).call(this, {
283
+ start: this.start || this.initialStart || this.min.toString(),
284
+ end: this.end || this.initialEnd || this.max.toString()
285
+ }, false);
286
+ __privateMethod(this, _registerThumbListeners, registerThumbListeners_fn).call(this);
287
+ __privateMethod(this, _updateThumbPositions, updateThumbPositions_fn).call(this);
288
+ }
289
+ disconnectedCallback() {
290
+ super.disconnectedCallback();
291
+ __privateMethod(this, _unregisterThumbListeners, unregisterThumbListeners_fn).call(this);
292
+ __privateMethod(this, _unregisterDragListeners, unregisterDragListeners_fn).call(this);
293
+ }
294
+ /**
295
+ * @internal
296
+ */
297
+ _onMouseDown(e) {
298
+ if (this.disabled || __privateGet(this, _draggingThumb)) {
299
+ return;
300
+ }
301
+ const value = __privateMethod(this, _calculateValueFromMouseEvent, calculateValueFromMouseEvent_fn).call(this, e);
302
+ const startDistance = Math.abs(value - Number(this.start));
303
+ const endDistance = Math.abs(value - Number(this.end));
304
+ const thumb = startDistance < endDistance || startDistance === endDistance && value < Number(this.start) ? "start" : "end";
305
+ __privateMethod(this, _updateValues, updateValues_fn).call(this, {
306
+ [thumb]: `${__privateMethod(this, _roundToNearestStep, roundToNearestStep_fn).call(this, thumb, value)}`
307
+ });
308
+ __privateSet(this, _draggingThumb, thumb);
309
+ __privateGet(this, _thumbs, thumbs_get)[thumb].focus();
310
+ __privateMethod(this, _registerDragHandlers, registerDragHandlers_fn).call(this);
311
+ }
312
+ };
313
+ _isInternalValueUpdate = new WeakMap();
314
+ _updateValues = new WeakSet();
315
+ updateValues_fn = function({ start, end }, emitEvents = true) {
316
+ if (start === this.start) {
317
+ start = void 0;
318
+ }
319
+ if (end === this.end) {
320
+ end = void 0;
321
+ }
322
+ if (start === void 0 && end === void 0) {
323
+ return;
324
+ }
325
+ __privateSet(this, _isInternalValueUpdate, true);
326
+ if (start !== void 0) {
327
+ this.start = start;
328
+ }
329
+ if (end !== void 0) {
330
+ this.end = end;
331
+ }
332
+ __privateSet(this, _isInternalValueUpdate, false);
333
+ if (emitEvents) {
334
+ if (start !== void 0) {
335
+ this.$emit("input:start");
336
+ }
337
+ if (end !== void 0) {
338
+ this.$emit("input:end");
339
+ }
340
+ this.$emit("input");
341
+ this.$emit("change");
342
+ this.dirtyValue = true;
343
+ }
344
+ __privateMethod(this, _updateFormValue, updateFormValue_fn).call(this);
345
+ };
346
+ _applyStep = new WeakSet();
347
+ applyStep_fn = function(thumb, direction) {
348
+ __privateMethod(this, _updateValues, updateValues_fn).call(this, {
349
+ [thumb]: __privateMethod(this, _roundToNearestStep, roundToNearestStep_fn).call(this, thumb, Number(this[thumb]) + direction * this.step).toString()
350
+ });
351
+ };
352
+ _updateFormValue = new WeakSet();
353
+ updateFormValue_fn = function() {
354
+ if (!this.name) {
355
+ this.setFormValue(null);
356
+ } else {
357
+ const formData = new FormData();
358
+ formData.append(this.name, this.start);
359
+ formData.append(this.name, this.end);
360
+ this.setFormValue(formData);
361
+ }
362
+ };
363
+ _thumbs = new WeakSet();
364
+ thumbs_get = function() {
365
+ return {
366
+ start: this._startThumbEl,
367
+ end: this._endThumbEl
368
+ };
369
+ };
370
+ _thumbConstraints = new WeakSet();
371
+ thumbConstraints_get = function() {
372
+ return {
373
+ start: { min: this.min, max: this.endAsNumber },
374
+ end: { min: this.startAsNumber, max: this.max }
375
+ };
376
+ };
377
+ _draggingThumb = new WeakMap();
378
+ _updateThumbPositions = new WeakSet();
379
+ updateThumbPositions_fn = function() {
380
+ const startOffsetPct = __privateMethod(this, _thumbTrackEndOffset, thumbTrackEndOffset_fn).call(this, this.startAsNumber);
381
+ const endOffsetPct = __privateMethod(this, _thumbTrackEndOffset, thumbTrackEndOffset_fn).call(this, this.endAsNumber);
382
+ const [dirProp, dimProp] = this.orientation === Orientation.horizontal ? ["right", "width"] : ["bottom", "height"];
383
+ const transition = `transition: ${__privateGet(this, _draggingThumb) ? "none" : "all 0.2s ease"};`;
384
+ this._startThumbCss = `${dirProp}: ${startOffsetPct}%; ${transition}`;
385
+ this._endThumbCss = `${dirProp}: ${endOffsetPct}%; ${transition}`;
386
+ this._selectedRangeCss = `${dirProp}: ${endOffsetPct}%; ${dimProp}: ${startOffsetPct - endOffsetPct}%; ${transition}`;
387
+ };
388
+ _thumbTrackEndOffset = new WeakSet();
389
+ thumbTrackEndOffset_fn = function(value) {
390
+ return (1 - inverseLerp(this.min, this.max, value)) * 100;
391
+ };
392
+ _calculateValueFromMouseEvent = new WeakSet();
393
+ calculateValueFromMouseEvent_fn = function(e) {
394
+ const trackClientRect = this._trackEl.getBoundingClientRect();
395
+ const [minPos, maxPos, valuePos] = this.orientation === Orientation.horizontal ? [
396
+ this._trackEl.clientLeft,
397
+ this._trackEl.clientWidth,
398
+ e.pageX - document.documentElement.scrollLeft - this.getBoundingClientRect().left
399
+ ] : [
400
+ trackClientRect.top,
401
+ trackClientRect.bottom,
402
+ e.pageY - document.documentElement.scrollTop
403
+ ];
404
+ return lerp(this.min, this.max, inverseLerp(minPos, maxPos, valuePos));
405
+ };
406
+ _roundToNearestStep = new WeakSet();
407
+ roundToNearestStep_fn = function(thumb, value) {
408
+ return limit(
409
+ __privateGet(this, _thumbConstraints, thumbConstraints_get)[thumb].min,
410
+ __privateGet(this, _thumbConstraints, thumbConstraints_get)[thumb].max,
411
+ roundToStepValue(value - this.min, this.step) + this.min
412
+ );
413
+ };
414
+ _registerThumbListeners = new WeakSet();
415
+ registerThumbListeners_fn = function() {
416
+ for (const thumb of ["start", "end"]) {
417
+ __privateGet(this, _thumbs, thumbs_get)[thumb].addEventListener("keydown", __privateGet(this, _onThumbKeydown));
418
+ __privateGet(this, _thumbs, thumbs_get)[thumb].addEventListener(
419
+ "mousedown",
420
+ __privateGet(this, _onThumbMousedown),
421
+ { passive: true }
422
+ );
423
+ __privateGet(this, _thumbs, thumbs_get)[thumb].addEventListener(
424
+ "touchstart",
425
+ __privateGet(this, _onThumbMousedown),
426
+ { passive: true }
427
+ );
428
+ }
429
+ };
430
+ _unregisterThumbListeners = new WeakSet();
431
+ unregisterThumbListeners_fn = function() {
432
+ for (const thumb of ["start", "end"]) {
433
+ __privateGet(this, _thumbs, thumbs_get)[thumb].removeEventListener("keydown", __privateGet(this, _onThumbKeydown));
434
+ __privateGet(this, _thumbs, thumbs_get)[thumb].removeEventListener(
435
+ "mousedown",
436
+ __privateGet(this, _onThumbMousedown)
437
+ );
438
+ __privateGet(this, _thumbs, thumbs_get)[thumb].removeEventListener(
439
+ "touchstart",
440
+ __privateGet(this, _onThumbMousedown)
441
+ );
442
+ }
443
+ };
444
+ _onThumbMousedown = new WeakMap();
445
+ _onThumbKeydown = new WeakMap();
446
+ _registerDragHandlers = new WeakSet();
447
+ registerDragHandlers_fn = function() {
448
+ window.addEventListener("mousemove", __privateGet(this, _onDragMove), { passive: true });
449
+ window.addEventListener("touchmove", __privateGet(this, _onDragMove), { passive: true });
450
+ window.addEventListener("mouseup", __privateGet(this, _onDragEnd));
451
+ window.addEventListener("touchend", __privateGet(this, _onDragEnd));
452
+ window.document.addEventListener("mouseleave", __privateGet(this, _onDragEnd));
453
+ };
454
+ _unregisterDragListeners = new WeakSet();
455
+ unregisterDragListeners_fn = function() {
456
+ window.removeEventListener("mouseup", __privateGet(this, _onDragEnd));
457
+ window.document.removeEventListener("mouseleave", __privateGet(this, _onDragEnd));
458
+ window.removeEventListener("mousemove", __privateGet(this, _onDragMove));
459
+ window.removeEventListener("touchmove", __privateGet(this, _onDragMove));
460
+ window.removeEventListener("touchend", __privateGet(this, _onDragEnd));
461
+ };
462
+ _onDragMove = new WeakMap();
463
+ _onDragEnd = new WeakMap();
50
464
  __decorateClass([
51
- attr({ attribute: "aria-label" })
52
- ], SelectableBox.prototype, "ariaLabel", 2);
465
+ observable
466
+ ], RangeSlider.prototype, "start", 2);
53
467
  __decorateClass([
54
- attr({ mode: "boolean" })
55
- ], SelectableBox.prototype, "checked", 2);
468
+ attr({ mode: "fromView", attribute: "start" })
469
+ ], RangeSlider.prototype, "initialStart", 2);
56
470
  __decorateClass([
57
- attr({ mode: "boolean" })
58
- ], SelectableBox.prototype, "clickable", 2);
471
+ attr({ attribute: "current-start" })
472
+ ], RangeSlider.prototype, "currentStart", 2);
473
+ __decorateClass([
474
+ observable
475
+ ], RangeSlider.prototype, "end", 2);
476
+ __decorateClass([
477
+ attr({ mode: "fromView", attribute: "end" })
478
+ ], RangeSlider.prototype, "initialEnd", 2);
479
+ __decorateClass([
480
+ attr({ attribute: "current-end" })
481
+ ], RangeSlider.prototype, "currentEnd", 2);
59
482
  __decorateClass([
60
- attr({ attribute: "clickable-box", mode: "boolean" })
61
- ], SelectableBox.prototype, "clickableBox", 2);
483
+ attr({ converter: nullableNumberConverter })
484
+ ], RangeSlider.prototype, "min", 2);
485
+ __decorateClass([
486
+ attr({ converter: nullableNumberConverter })
487
+ ], RangeSlider.prototype, "max", 2);
488
+ __decorateClass([
489
+ attr({ converter: nullableNumberConverter })
490
+ ], RangeSlider.prototype, "step", 2);
62
491
  __decorateClass([
63
492
  attr
64
- ], SelectableBox.prototype, "connotation", 2);
493
+ ], RangeSlider.prototype, "orientation", 2);
494
+ __decorateClass([
495
+ attr({ attribute: "aria-start-label" })
496
+ ], RangeSlider.prototype, "ariaStartLabel", 2);
65
497
  __decorateClass([
66
- attr({ attribute: "control-type" })
67
- ], SelectableBox.prototype, "controlType", 2);
498
+ attr({ attribute: "aria-end-label" })
499
+ ], RangeSlider.prototype, "ariaEndLabel", 2);
68
500
  __decorateClass([
69
501
  attr({ mode: "boolean" })
70
- ], SelectableBox.prototype, "tight", 2);
502
+ ], RangeSlider.prototype, "markers", 2);
503
+ __decorateClass([
504
+ attr
505
+ ], RangeSlider.prototype, "connotation", 2);
506
+ __decorateClass([
507
+ observable
508
+ ], RangeSlider.prototype, "valueTextFormatter", 2);
509
+ __decorateClass([
510
+ observable
511
+ ], RangeSlider.prototype, "_startThumbCss", 2);
512
+ __decorateClass([
513
+ observable
514
+ ], RangeSlider.prototype, "_endThumbCss", 2);
515
+ __decorateClass([
516
+ observable
517
+ ], RangeSlider.prototype, "_selectedRangeCss", 2);
518
+ RangeSlider = __decorateClass([
519
+ formElements
520
+ ], RangeSlider);
521
+ applyMixins(RangeSlider, Localized);
71
522
 
72
- const getClasses = ({ connotation, tight, checked, clickableBox, clickable }) => classNames(
73
- "base",
74
- [`connotation-${connotation}`, Boolean(connotation)],
75
- ["tight", tight],
76
- ["selected", checked],
77
- ["clickable", clickableBox || clickable],
78
- ["readonly", !clickableBox && !clickable]
523
+ const getClasses = ({ disabled, connotation }) => classNames(
524
+ "control",
525
+ ["disabled", Boolean(disabled)],
526
+ [`connotation-${connotation}`, Boolean(connotation)]
79
527
  );
80
- function handleControlChange(x) {
81
- if (!x.clickableBox)
82
- x._handleCheckedChange();
83
- }
84
- function checkbox(context) {
85
- const checkboxTag = context.tagFor(Checkbox);
86
- return html`${when((x) => x.controlType !== "radio", html`
87
- <${checkboxTag}
88
- aria-label="${(x) => !x.clickableBox && !x.clickable && x.ariaLabel ? x.ariaLabel : null}"
89
- @change="${(x) => handleControlChange(x)}"
90
- class="control checkbox"
91
- connotation="${(x) => x.connotation === "cta" ? Connotation.CTA : Connotation.Accent}"
92
- :checked="${(x) => x.checked}"
93
- inert="${(x) => x.clickableBox || x.clickable ? true : null}"
94
- ></${checkboxTag}>`)}
95
- `;
96
- }
97
- function radio(context) {
98
- const radioTag = context.tagFor(Radio);
99
- return html`${when((x) => x.controlType === "radio", html`
100
- <${radioTag}
101
- aria-label="${(x) => !x.clickableBox && !x.clickable && x.ariaLabel ? x.ariaLabel : null}"
102
- @change="${(x) => handleControlChange(x)}"
103
- class="control radio"
104
- connotation="${(x) => x.connotation === "cta" ? Connotation.CTA : Connotation.Accent}"
105
- :checked="${(x) => x.checked}"
106
- inert="${(x) => x.clickableBox || x.clickable ? true : null}"
107
- ></${radioTag}>`)}
108
- `;
109
- }
110
- const SelectableBoxTemplate = (context) => {
111
- return html`<template role="presentation">
112
- <div
113
- class="${getClasses}"
114
- tabindex="${(x) => x.clickableBox || x.clickable ? "0" : null}"
115
- role="${(x) => x.clickableBox || x.clickable ? "button" : null}"
116
- aria-pressed="${(x) => (x.clickableBox || x.clickable) && x.checked ? x.checked : null}"
117
- aria-label="${(x) => x.clickableBox || x.clickable ? x.ariaLabel : null}"
118
- @keydown="${(x, c) => x._handleKeydown(c.event)}"
119
- @click="${(x) => x.clickableBox || x.clickable ? x._handleCheckedChange() : null}"
528
+ const RangeSliderTemplate = () => {
529
+ return html` <template
530
+ @mousedown="${(x, c) => x._onMouseDown(c.event)}"
120
531
  >
121
- ${checkbox(context)}
122
- ${radio(context)}
123
- <slot></slot>
124
- </div>
125
- </template>`;
532
+ <div class="${getClasses} ${(x) => x.orientation}">
533
+ <div class="positioning-region">
534
+ <div ${ref("_trackEl")} class="track">
535
+ <div class="track-start" style="${(x) => x._selectedRangeCss}"></div>
536
+ ${when(
537
+ (x) => x.markers,
538
+ html`${(x) => getMarkersTemplate(
539
+ x.orientation === Orientation.horizontal,
540
+ Math.floor((x.max - x.min) / x.step)
541
+ )}`
542
+ )}
543
+ </div>
544
+ <div
545
+ ${ref("_startThumbEl")}
546
+ class="thumb-container"
547
+ style="${(x) => x._startThumbCss}"
548
+ role="slider"
549
+ tabindex="${(x) => x.disabled ? null : 0}"
550
+ aria-label="${(x) => x.ariaStartLabel || x.locale.rangeSlider.startThumbLabel}"
551
+ aria-valuetext="${(x) => x.valueTextFormatter(x.start)}"
552
+ aria-valuenow="${(x) => x.start}"
553
+ aria-valuemin="${(x) => x.min}"
554
+ aria-valuemax="${(x) => x.end}"
555
+ aria-disabled="${(x) => x.disabled}"
556
+ aria-orientation="${(x) => x.orientation}"
557
+ ></div>
558
+ <div
559
+ ${ref("_endThumbEl")}
560
+ class="thumb-container"
561
+ style="${(x) => x._endThumbCss}"
562
+ role="slider"
563
+ tabindex="${(x) => x.disabled ? null : 0}"
564
+ aria-label="${(x) => x.ariaEndLabel || x.locale.rangeSlider.endThumbLabel}"
565
+ aria-valuetext="${(x) => x.valueTextFormatter(x.end)}"
566
+ aria-valuenow="${(x) => x.end}"
567
+ aria-valuemin="${(x) => x.start}"
568
+ aria-valuemax="${(x) => x.max}"
569
+ aria-disabled="${(x) => x.disabled}"
570
+ aria-orientation="${(x) => x.orientation}"
571
+ ></div>
572
+ </div>
573
+ </div>
574
+ </template>`;
126
575
  };
127
576
 
128
- const selectableBoxDefinition = SelectableBox.compose({
129
- baseName: "selectable-box",
130
- template: SelectableBoxTemplate,
577
+ const rangeSliderDefinition = RangeSlider.compose({
578
+ baseName: "range-slider",
579
+ template: RangeSliderTemplate,
131
580
  styles,
132
581
  shadowOptions: {
133
582
  delegatesFocus: true
134
583
  }
135
584
  });
136
- const selectableBoxRegistries = [
137
- selectableBoxDefinition(),
138
- ...checkboxRegistries,
139
- ...radioRegistries
140
- ];
141
- const registerSelectableBox = registerFactory(selectableBoxRegistries);
585
+ const rangeSliderRegistries = [rangeSliderDefinition()];
586
+ const registerRangeSlider = registerFactory(rangeSliderRegistries);
142
587
 
143
- export { selectableBoxRegistries as a, registerSelectableBox as r, selectableBoxDefinition as s };
588
+ export { rangeSliderRegistries as a, registerRangeSlider as b, rangeSliderDefinition as r };