@ds-mo/ui 15.5.1 → 15.7.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 (395) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +372 -25
  4. package/dist/angular/ds-data-preferences.d.ts +1 -1
  5. package/dist/angular/ds-data-preferences.js +3 -3
  6. package/dist/angular/ds-menu.d.ts +7 -1
  7. package/dist/angular/ds-menu.js +5 -2
  8. package/dist/angular/ds-navigation-tab-group.d.ts +15 -0
  9. package/dist/angular/ds-navigation-tab-group.js +42 -0
  10. package/dist/angular/ds-select-toggle.d.ts +15 -0
  11. package/dist/angular/ds-select-toggle.js +42 -0
  12. package/dist/angular/ds-table.d.ts +1 -1
  13. package/dist/angular/ds-table.js +3 -3
  14. package/dist/angular/index.d.ts +1 -1
  15. package/dist/angular/index.js +2 -0
  16. package/dist/angular/proxies.d.ts +2 -0
  17. package/dist/angular/proxies.js +2 -0
  18. package/dist/components/THIRD-PARTY-NOTICES +1 -1
  19. package/dist/components/bundled-dependencies.json +1 -1
  20. package/dist/components/ds-agent-activity.js +1 -1
  21. package/dist/components/ds-agent-questionnaire.js +1 -1
  22. package/dist/components/ds-agent-response.js +1 -1
  23. package/dist/components/ds-agent-source-list.js +1 -1
  24. package/dist/components/ds-agent-tool-call.js +1 -1
  25. package/dist/components/ds-attachment-list.js +1 -1
  26. package/dist/components/ds-badge.js +1 -1
  27. package/dist/components/ds-banner.js +1 -1
  28. package/dist/components/ds-bar-action.js +1 -1
  29. package/dist/components/ds-bar-nav.js +1 -1
  30. package/dist/components/ds-bar-page-title.js +1 -1
  31. package/dist/components/ds-bar-title.js +1 -1
  32. package/dist/components/ds-bar-workflow.js +1 -1
  33. package/dist/components/ds-breadcrumb.js +1 -1
  34. package/dist/components/ds-button-filled.js +1 -1
  35. package/dist/components/ds-button-inverted.js +1 -1
  36. package/dist/components/ds-button-unfilled.js +1 -1
  37. package/dist/components/ds-calendar.js +1 -1
  38. package/dist/components/ds-card-action-center.js +1 -1
  39. package/dist/components/ds-card-chart.js +1 -1
  40. package/dist/components/ds-card-navigation.js +1 -1
  41. package/dist/components/ds-card-overview.js +1 -1
  42. package/dist/components/ds-card-setting.js +1 -1
  43. package/dist/components/ds-card-settings-scope.js +1 -1
  44. package/dist/components/ds-chart-legend.js +1 -1
  45. package/dist/components/ds-chart.js +1 -1
  46. package/dist/components/ds-checkbox-group.js +1 -1
  47. package/dist/components/ds-checkbox.js +1 -1
  48. package/dist/components/ds-chip.js +1 -1
  49. package/dist/components/ds-code-block.js +1 -1
  50. package/dist/components/ds-conversation-list-item.js +1 -1
  51. package/dist/components/ds-conversation-list-section.js +1 -1
  52. package/dist/components/ds-conversation-list.js +1 -1
  53. package/dist/components/ds-data-customize.js +1 -1
  54. package/dist/components/ds-data-filter.js +1 -1
  55. package/dist/components/ds-data-group.js +1 -1
  56. package/dist/components/ds-data-preferences.js +1 -1
  57. package/dist/components/ds-data-preferences.js.map +1 -1
  58. package/dist/components/ds-data-saved-views.js +1 -1
  59. package/dist/components/ds-data-search.js +1 -1
  60. package/dist/components/ds-data-search.js.map +1 -1
  61. package/dist/components/ds-data-sort.js +1 -1
  62. package/dist/components/ds-data-toolbar.js +1 -1
  63. package/dist/components/ds-empty-state.js +1 -1
  64. package/dist/components/ds-field.js +1 -1
  65. package/dist/components/ds-filter-menu.js +1 -1
  66. package/dist/components/ds-inline-banner-settings.js +1 -1
  67. package/dist/components/ds-input-date.js +1 -1
  68. package/dist/components/ds-input-time.js +1 -1
  69. package/dist/components/ds-input.js +1 -1
  70. package/dist/components/ds-map-cluster-marker.js +1 -1
  71. package/dist/components/ds-map-entity-marker.js +1 -1
  72. package/dist/components/ds-markdown.js +1 -1
  73. package/dist/components/ds-menu.js +1 -1
  74. package/dist/components/ds-message-actions.js +1 -1
  75. package/dist/components/ds-message-composer.js +1 -1
  76. package/dist/components/ds-message-scroller.js +1 -1
  77. package/dist/components/ds-message.js +1 -1
  78. package/dist/components/ds-mobile-bar-nav.js +1 -1
  79. package/dist/components/ds-mobile-header.js +1 -1
  80. package/dist/components/ds-mobile-section-switcher.js +1 -1
  81. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  82. package/dist/components/ds-modal.js +1 -1
  83. package/dist/components/ds-navigation-tab-group.d.ts +11 -0
  84. package/dist/components/ds-navigation-tab-group.js +2 -0
  85. package/dist/components/ds-navigation-tab-group.js.map +1 -0
  86. package/dist/components/ds-pagination.js +1 -1
  87. package/dist/components/ds-panel-nav.js +1 -1
  88. package/dist/components/ds-panel-sub-nav.js +1 -1
  89. package/dist/components/ds-panel-tool-header.js +1 -1
  90. package/dist/components/ds-panel-tool-search.js +1 -1
  91. package/dist/components/ds-panel-tools.js +1 -1
  92. package/dist/components/ds-paper-texture.js +1 -1
  93. package/dist/components/ds-radio-tile.js +1 -1
  94. package/dist/components/ds-radio.js +1 -1
  95. package/dist/components/ds-score.js +1 -1
  96. package/dist/components/ds-select-toggle.d.ts +11 -0
  97. package/dist/components/ds-select-toggle.js +2 -0
  98. package/dist/components/ds-select-toggle.js.map +1 -0
  99. package/dist/components/ds-select.js +1 -1
  100. package/dist/components/ds-setting-row-checkbox.js +1 -1
  101. package/dist/components/ds-setting-row-radio.js +1 -1
  102. package/dist/components/ds-setting-row-radio.js.map +1 -1
  103. package/dist/components/ds-setting-row-toggle.js +1 -1
  104. package/dist/components/ds-shell-app.js +1 -1
  105. package/dist/components/ds-shell-page.js +1 -1
  106. package/dist/components/ds-shell-tools.js +1 -1
  107. package/dist/components/ds-skeleton.js +1 -1
  108. package/dist/components/ds-slider.js +1 -1
  109. package/dist/components/ds-slider.js.map +1 -1
  110. package/dist/components/ds-swatch-picker.js +1 -1
  111. package/dist/components/ds-switch.js +1 -1
  112. package/dist/components/ds-tab-group.js +1 -1
  113. package/dist/components/ds-table.js +1 -1
  114. package/dist/components/ds-table.js.map +1 -1
  115. package/dist/components/ds-tag.js +1 -1
  116. package/dist/components/ds-text.js +1 -1
  117. package/dist/components/ds-textarea.js +1 -1
  118. package/dist/components/ds-time-picker.js +1 -1
  119. package/dist/components/ds-toast.js +1 -1
  120. package/dist/components/ds-toast.js.map +1 -1
  121. package/dist/components/ds-tooltip-chart.js +1 -1
  122. package/dist/components/ds-tooltip.js +1 -1
  123. package/dist/components/ds-typing-indicator.js +1 -1
  124. package/dist/components/{p--pJyciTI.js → p--_bPiNCd.js} +2 -2
  125. package/dist/components/{p-UJMEz8_O.js → p-3SCy1PHa.js} +2 -2
  126. package/dist/components/{p-7MwoWtTJ.js → p-4sBUSsqs.js} +2 -2
  127. package/dist/components/p-4sBUSsqs.js.map +1 -0
  128. package/dist/components/{p-kwS-vkau.js → p-5aZVNYQz.js} +2 -2
  129. package/dist/components/{p-DKGW3gRa.js → p-AGqUGzNZ.js} +2 -2
  130. package/dist/components/p-BJf49edB.js +2 -0
  131. package/dist/components/p-BJf49edB.js.map +1 -0
  132. package/dist/components/{p-BNarCFJZ.js → p-BKyE025p.js} +2 -2
  133. package/dist/components/{p-S1Ct3FJV.js → p-BNN9KkXe.js} +2 -2
  134. package/dist/components/p-BPDo1eQV.js +2 -0
  135. package/dist/components/p-BPDo1eQV.js.map +1 -0
  136. package/dist/components/{p-CwdRaJER.js → p-BWJb2rih.js} +2 -2
  137. package/dist/components/{p-D8OWhnID.js → p-BbvAWFJA.js} +2 -2
  138. package/dist/components/p-Bdp2V6-c.js +2 -0
  139. package/dist/components/{p-Da3aFRk2.js.map → p-Bdp2V6-c.js.map} +1 -1
  140. package/dist/components/p-BjBFJ2dd.js +2 -0
  141. package/dist/components/{p-C5BBIDVm.js.map → p-BjBFJ2dd.js.map} +1 -1
  142. package/dist/components/{p-BmIllmq2.js → p-BwNW5nqj.js} +2 -2
  143. package/dist/components/{p-CzdE3M3g.js → p-C0L-VnSr.js} +2 -2
  144. package/dist/components/p-C2e7BkNn.js +2 -0
  145. package/dist/components/p-C2e7BkNn.js.map +1 -0
  146. package/dist/components/{p-BnuNaXR2.js → p-C4t7HnfZ.js} +2 -2
  147. package/dist/components/{p-C1ZfBbJ_.js → p-C7_awFtr.js} +2 -2
  148. package/dist/components/p-CCsxoztj.js +2 -0
  149. package/dist/components/{p-BuGlC5r8.js.map → p-CCsxoztj.js.map} +1 -1
  150. package/dist/components/{p-C378wwRj.js → p-CHyxUWqL.js} +2 -2
  151. package/dist/components/{p-d76Ry5nh.js → p-CKSJwSWd.js} +2 -2
  152. package/dist/components/p-CLqqb0Jp.js +2 -0
  153. package/dist/components/{p-CcwxySms.js.map → p-CLqqb0Jp.js.map} +1 -1
  154. package/dist/components/{p-C9H-3JOA.js → p-CRhoeCC8.js} +2 -2
  155. package/dist/components/p-CWc6Blcp.js +2 -0
  156. package/dist/components/{p-B95UP66y.js.map → p-CWc6Blcp.js.map} +1 -1
  157. package/dist/components/p-CXB_T13u.js +2 -0
  158. package/dist/components/{p-CNeDJTGX.js.map → p-CXB_T13u.js.map} +1 -1
  159. package/dist/components/{p-DZLtFn-r.js → p-CgC4SM5b.js} +2 -2
  160. package/dist/components/p-CqAC2IQO.js +2 -0
  161. package/dist/components/{p-5-gQbIIz.js.map → p-CqAC2IQO.js.map} +1 -1
  162. package/dist/components/{p--VQc5GDy.js → p-Cs8Gq-PZ.js} +2 -2
  163. package/dist/components/p-Ct2KQHF4.js +2 -0
  164. package/dist/components/{p-Df9S0aWi.js.map → p-Ct2KQHF4.js.map} +1 -1
  165. package/dist/components/{p-DYsRXun3.js → p-CvIHBa8S.js} +2 -2
  166. package/dist/components/{p-YC7UM4jH.js → p-D1tmszmN.js} +2 -2
  167. package/dist/components/{p-BlbfbYg6.js → p-D62yUMhr.js} +2 -2
  168. package/dist/components/{p-CgQB8Ct5.js → p-D9l0QBgN.js} +2 -2
  169. package/dist/components/{p-Dr5rkAhe.js → p-DGrSro-o.js} +2 -2
  170. package/dist/components/{p-BVxK8ce0.js → p-DKvHBXwn.js} +2 -2
  171. package/dist/components/p-D_xZ5SFL.js +2 -0
  172. package/dist/components/{p-bQE1NZVe.js.map → p-D_xZ5SFL.js.map} +1 -1
  173. package/dist/components/p-DdNJPBCS.js +2 -0
  174. package/dist/components/{p-a-cIN_BX.js.map → p-DdNJPBCS.js.map} +1 -1
  175. package/dist/components/p-DiPqdcD4.js +2 -0
  176. package/dist/components/{p-DPwptvZl.js.map → p-DiPqdcD4.js.map} +1 -1
  177. package/dist/components/p-Dkh_40bl.js +2 -0
  178. package/dist/components/p-Dkh_40bl.js.map +1 -0
  179. package/dist/components/p-DlCLfwP4.js +2 -0
  180. package/dist/components/p-DmgDVoDb.js +2 -0
  181. package/dist/components/{p-CXlklL-0.js.map → p-DmgDVoDb.js.map} +1 -1
  182. package/dist/components/{p-DXL5D30P.js → p-Du8LT8JS.js} +2 -2
  183. package/dist/components/p-DuCfCvPs.js +2 -0
  184. package/dist/components/p-DuCfCvPs.js.map +1 -0
  185. package/dist/components/{p-BuDxlhnQ.js → p-Dyjs8_Cl.js} +2 -2
  186. package/dist/components/{p-BYrBU_U9.js → p-HMDczkQf.js} +2 -2
  187. package/dist/components/p-LJXiEPw1.js +2 -0
  188. package/dist/components/{p-D9_iDlkT.js.map → p-LJXiEPw1.js.map} +1 -1
  189. package/dist/components/{p-CbCN9ew9.js → p-QGtBlTMt.js} +2 -2
  190. package/dist/components/{p-C35Tki38.js → p-UBQ5O7B-.js} +2 -2
  191. package/dist/components/{p-DVsGfz7J.js → p-dSNHIJz6.js} +2 -2
  192. package/dist/components/{p-B9y6azEw.js → p-eKnJNQtL.js} +2 -2
  193. package/dist/components/{p-sDm8BEMy.js → p-g2OUK8Z0.js} +2 -2
  194. package/dist/components/{p-DSmDyI2o.js → p-n_OBbh94.js} +2 -2
  195. package/dist/components/{p-BfVMaZZE.js → p-oBpjD9OA.js} +2 -2
  196. package/dist/components/p-pJ6gbwSa.js +2 -0
  197. package/dist/components/p-pJ6gbwSa.js.map +1 -0
  198. package/dist/components/{p-DfMTDFcE.js → p-v9Nhw5yM.js} +2 -2
  199. package/dist/docs/components.json +1067 -213
  200. package/dist/lint/index.js +1 -1
  201. package/dist/mcp-data/registry/agent-activity.json +1 -1
  202. package/dist/mcp-data/registry/agent-questionnaire.json +1 -1
  203. package/dist/mcp-data/registry/agent-response.json +1 -1
  204. package/dist/mcp-data/registry/agent-source-list.json +1 -1
  205. package/dist/mcp-data/registry/agent-tool-call.json +1 -1
  206. package/dist/mcp-data/registry/attachment-list.json +1 -1
  207. package/dist/mcp-data/registry/avatar.json +1 -1
  208. package/dist/mcp-data/registry/badge.json +1 -1
  209. package/dist/mcp-data/registry/banner.json +1 -1
  210. package/dist/mcp-data/registry/bar-action.json +1 -1
  211. package/dist/mcp-data/registry/bar-nav.json +1 -1
  212. package/dist/mcp-data/registry/bar-page-title.json +1 -1
  213. package/dist/mcp-data/registry/bar-title.json +1 -1
  214. package/dist/mcp-data/registry/bar-workflow.json +1 -1
  215. package/dist/mcp-data/registry/breadcrumb.json +1 -1
  216. package/dist/mcp-data/registry/button-filled.json +1 -1
  217. package/dist/mcp-data/registry/button-inverted.json +1 -1
  218. package/dist/mcp-data/registry/button-unfilled.json +1 -1
  219. package/dist/mcp-data/registry/calendar.json +1 -1
  220. package/dist/mcp-data/registry/card-action-center.json +1 -1
  221. package/dist/mcp-data/registry/card-chart.json +1 -1
  222. package/dist/mcp-data/registry/card-navigation.json +1 -1
  223. package/dist/mcp-data/registry/card-overview.json +1 -1
  224. package/dist/mcp-data/registry/card-setting.json +1 -1
  225. package/dist/mcp-data/registry/card-settings-scope.json +1 -1
  226. package/dist/mcp-data/registry/chart-legend.json +1 -1
  227. package/dist/mcp-data/registry/chart.json +1 -1
  228. package/dist/mcp-data/registry/checkbox-group.json +1 -1
  229. package/dist/mcp-data/registry/checkbox.json +1 -1
  230. package/dist/mcp-data/registry/chip.json +1 -1
  231. package/dist/mcp-data/registry/code-block.json +1 -1
  232. package/dist/mcp-data/registry/conversation-list-item.json +1 -1
  233. package/dist/mcp-data/registry/conversation-list-section.json +1 -1
  234. package/dist/mcp-data/registry/conversation-list.json +1 -1
  235. package/dist/mcp-data/registry/data-customize.json +1 -1
  236. package/dist/mcp-data/registry/data-filter.json +1 -1
  237. package/dist/mcp-data/registry/data-group.json +1 -1
  238. package/dist/mcp-data/registry/data-preferences.json +22 -6
  239. package/dist/mcp-data/registry/data-saved-views.json +1 -1
  240. package/dist/mcp-data/registry/data-search.json +1 -1
  241. package/dist/mcp-data/registry/data-sort.json +1 -1
  242. package/dist/mcp-data/registry/data-toolbar.json +1 -1
  243. package/dist/mcp-data/registry/divider.json +1 -1
  244. package/dist/mcp-data/registry/empty-state.json +1 -1
  245. package/dist/mcp-data/registry/field.json +1 -1
  246. package/dist/mcp-data/registry/filter-menu.json +1 -1
  247. package/dist/mcp-data/registry/icon.json +1 -1
  248. package/dist/mcp-data/registry/inline-banner-settings.json +1 -1
  249. package/dist/mcp-data/registry/input-date.json +1 -1
  250. package/dist/mcp-data/registry/input-time.json +1 -1
  251. package/dist/mcp-data/registry/input.json +1 -1
  252. package/dist/mcp-data/registry/loader.json +1 -1
  253. package/dist/mcp-data/registry/map-cluster-marker.json +1 -1
  254. package/dist/mcp-data/registry/map-entity-marker.json +1 -1
  255. package/dist/mcp-data/registry/markdown.json +1 -1
  256. package/dist/mcp-data/registry/menu.json +31 -12
  257. package/dist/mcp-data/registry/message-actions.json +1 -1
  258. package/dist/mcp-data/registry/message-bubble.json +1 -1
  259. package/dist/mcp-data/registry/message-composer.json +1 -1
  260. package/dist/mcp-data/registry/message-scroller.json +1 -1
  261. package/dist/mcp-data/registry/message.json +1 -1
  262. package/dist/mcp-data/registry/mobile-bar-nav.json +1 -1
  263. package/dist/mcp-data/registry/mobile-header.json +1 -1
  264. package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
  265. package/dist/mcp-data/registry/mobile-sheet-nav.json +1 -1
  266. package/dist/mcp-data/registry/modal.json +1 -1
  267. package/dist/mcp-data/registry/navigation-tab-group.json +279 -0
  268. package/dist/mcp-data/registry/pagination.json +1 -1
  269. package/dist/mcp-data/registry/panel-nav.json +1 -1
  270. package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
  271. package/dist/mcp-data/registry/panel-tool-header.json +1 -1
  272. package/dist/mcp-data/registry/panel-tool-search.json +1 -1
  273. package/dist/mcp-data/registry/panel-tools.json +1 -1
  274. package/dist/mcp-data/registry/paper-texture.json +1 -1
  275. package/dist/mcp-data/registry/radio-tile.json +1 -1
  276. package/dist/mcp-data/registry/radio.json +1 -1
  277. package/dist/mcp-data/registry/registry.json +378 -25
  278. package/dist/mcp-data/registry/score.json +1 -1
  279. package/dist/mcp-data/registry/scroll-overlay.json +1 -1
  280. package/dist/mcp-data/registry/select-toggle.json +351 -0
  281. package/dist/mcp-data/registry/select.json +1 -1
  282. package/dist/mcp-data/registry/setting-row-checkbox.json +1 -1
  283. package/dist/mcp-data/registry/setting-row-radio.json +1 -1
  284. package/dist/mcp-data/registry/setting-row-toggle.json +1 -1
  285. package/dist/mcp-data/registry/shell-app.json +1 -1
  286. package/dist/mcp-data/registry/shell-page.json +1 -1
  287. package/dist/mcp-data/registry/shell-tools.json +1 -1
  288. package/dist/mcp-data/registry/skeleton.json +1 -1
  289. package/dist/mcp-data/registry/slider.json +7 -6
  290. package/dist/mcp-data/registry/swatch-picker.json +1 -1
  291. package/dist/mcp-data/registry/switch.json +3 -3
  292. package/dist/mcp-data/registry/tab-group.json +15 -9
  293. package/dist/mcp-data/registry/table.json +80 -21
  294. package/dist/mcp-data/registry/tag.json +1 -1
  295. package/dist/mcp-data/registry/text.json +1 -1
  296. package/dist/mcp-data/registry/textarea.json +1 -1
  297. package/dist/mcp-data/registry/time-picker.json +1 -1
  298. package/dist/mcp-data/registry/toast.json +1 -1
  299. package/dist/mcp-data/registry/tooltip-chart.json +1 -1
  300. package/dist/mcp-data/registry/tooltip.json +1 -1
  301. package/dist/mcp-data/registry/typing-indicator.json +1 -1
  302. package/dist/react/components.d.ts +2 -0
  303. package/dist/react/components.js +2 -0
  304. package/dist/react/ds-menu.d.ts +2 -1
  305. package/dist/react/ds-menu.js +1 -0
  306. package/dist/react/ds-navigation-tab-group.d.ts +12 -0
  307. package/dist/react/ds-navigation-tab-group.js +12 -0
  308. package/dist/react/ds-select-toggle.d.ts +12 -0
  309. package/dist/react/ds-select-toggle.js +12 -0
  310. package/dist/styles/table.css +41 -0
  311. package/dist/types/components/DataPreferences/DataPreferences.d.ts +3 -0
  312. package/dist/types/components/Menu/Menu.d.ts +5 -1
  313. package/dist/types/components/Menu/menu-types.d.ts +36 -0
  314. package/dist/types/components/NavigationTabGroup/NavigationTabGroup.d.ts +16 -0
  315. package/dist/types/components/SelectToggle/SelectToggle.d.ts +46 -0
  316. package/dist/types/components/Slider/Slider.d.ts +1 -1
  317. package/dist/types/components/TabGroup/TabGroup.d.ts +2 -2
  318. package/dist/types/components/Table/Table.d.ts +14 -2
  319. package/dist/types/components/Table/index.d.ts +1 -1
  320. package/dist/types/components/Table/table-column-customizer.d.ts +23 -4
  321. package/dist/types/components/Table/table-layout-controller.d.ts +2 -1
  322. package/dist/types/components/Table/table-types.d.ts +3 -1
  323. package/dist/types/components.d.ts +279 -21
  324. package/dist/vue/components.d.ts +2 -0
  325. package/dist/vue/components.js +2 -0
  326. package/dist/vue/ds-data-preferences.js +1 -0
  327. package/dist/vue/ds-menu.js +2 -0
  328. package/dist/vue/ds-navigation-tab-group.d.ts +3 -0
  329. package/dist/vue/ds-navigation-tab-group.js +16 -0
  330. package/dist/vue/ds-select-toggle.d.ts +3 -0
  331. package/dist/vue/ds-select-toggle.js +19 -0
  332. package/dist/vue/ds-table.js +3 -0
  333. package/package.json +3 -3
  334. package/dist/components/p-5-gQbIIz.js +0 -2
  335. package/dist/components/p-7MwoWtTJ.js.map +0 -1
  336. package/dist/components/p-B95UP66y.js +0 -2
  337. package/dist/components/p-BLeHHoVb.js +0 -2
  338. package/dist/components/p-BLeHHoVb.js.map +0 -1
  339. package/dist/components/p-Bf-BphXP.js +0 -2
  340. package/dist/components/p-Bf-BphXP.js.map +0 -1
  341. package/dist/components/p-BuGlC5r8.js +0 -2
  342. package/dist/components/p-C5BBIDVm.js +0 -2
  343. package/dist/components/p-CE6MaXBg.js +0 -2
  344. package/dist/components/p-CE6MaXBg.js.map +0 -1
  345. package/dist/components/p-CNeDJTGX.js +0 -2
  346. package/dist/components/p-CXlklL-0.js +0 -2
  347. package/dist/components/p-CcwxySms.js +0 -2
  348. package/dist/components/p-D9_iDlkT.js +0 -2
  349. package/dist/components/p-DPwptvZl.js +0 -2
  350. package/dist/components/p-Da3aFRk2.js +0 -2
  351. package/dist/components/p-Df9S0aWi.js +0 -2
  352. package/dist/components/p-DvGrsLgt.js +0 -2
  353. package/dist/components/p-DvGrsLgt.js.map +0 -1
  354. package/dist/components/p-a-cIN_BX.js +0 -2
  355. package/dist/components/p-aD5cw_m2.js +0 -2
  356. package/dist/components/p-aD5cw_m2.js.map +0 -1
  357. package/dist/components/p-bQE1NZVe.js +0 -2
  358. package/dist/components/p-kDZ0sEII.js +0 -2
  359. package/dist/components/p-t2Ebn8si.js +0 -2
  360. package/dist/components/p-t2Ebn8si.js.map +0 -1
  361. /package/dist/components/{p--pJyciTI.js.map → p--_bPiNCd.js.map} +0 -0
  362. /package/dist/components/{p-UJMEz8_O.js.map → p-3SCy1PHa.js.map} +0 -0
  363. /package/dist/components/{p-kwS-vkau.js.map → p-5aZVNYQz.js.map} +0 -0
  364. /package/dist/components/{p-DKGW3gRa.js.map → p-AGqUGzNZ.js.map} +0 -0
  365. /package/dist/components/{p-BNarCFJZ.js.map → p-BKyE025p.js.map} +0 -0
  366. /package/dist/components/{p-S1Ct3FJV.js.map → p-BNN9KkXe.js.map} +0 -0
  367. /package/dist/components/{p-CwdRaJER.js.map → p-BWJb2rih.js.map} +0 -0
  368. /package/dist/components/{p-D8OWhnID.js.map → p-BbvAWFJA.js.map} +0 -0
  369. /package/dist/components/{p-BmIllmq2.js.map → p-BwNW5nqj.js.map} +0 -0
  370. /package/dist/components/{p-CzdE3M3g.js.map → p-C0L-VnSr.js.map} +0 -0
  371. /package/dist/components/{p-BnuNaXR2.js.map → p-C4t7HnfZ.js.map} +0 -0
  372. /package/dist/components/{p-C1ZfBbJ_.js.map → p-C7_awFtr.js.map} +0 -0
  373. /package/dist/components/{p-C378wwRj.js.map → p-CHyxUWqL.js.map} +0 -0
  374. /package/dist/components/{p-d76Ry5nh.js.map → p-CKSJwSWd.js.map} +0 -0
  375. /package/dist/components/{p-C9H-3JOA.js.map → p-CRhoeCC8.js.map} +0 -0
  376. /package/dist/components/{p-DZLtFn-r.js.map → p-CgC4SM5b.js.map} +0 -0
  377. /package/dist/components/{p--VQc5GDy.js.map → p-Cs8Gq-PZ.js.map} +0 -0
  378. /package/dist/components/{p-DYsRXun3.js.map → p-CvIHBa8S.js.map} +0 -0
  379. /package/dist/components/{p-YC7UM4jH.js.map → p-D1tmszmN.js.map} +0 -0
  380. /package/dist/components/{p-BlbfbYg6.js.map → p-D62yUMhr.js.map} +0 -0
  381. /package/dist/components/{p-CgQB8Ct5.js.map → p-D9l0QBgN.js.map} +0 -0
  382. /package/dist/components/{p-Dr5rkAhe.js.map → p-DGrSro-o.js.map} +0 -0
  383. /package/dist/components/{p-BVxK8ce0.js.map → p-DKvHBXwn.js.map} +0 -0
  384. /package/dist/components/{p-kDZ0sEII.js.map → p-DlCLfwP4.js.map} +0 -0
  385. /package/dist/components/{p-DXL5D30P.js.map → p-Du8LT8JS.js.map} +0 -0
  386. /package/dist/components/{p-BuDxlhnQ.js.map → p-Dyjs8_Cl.js.map} +0 -0
  387. /package/dist/components/{p-BYrBU_U9.js.map → p-HMDczkQf.js.map} +0 -0
  388. /package/dist/components/{p-CbCN9ew9.js.map → p-QGtBlTMt.js.map} +0 -0
  389. /package/dist/components/{p-C35Tki38.js.map → p-UBQ5O7B-.js.map} +0 -0
  390. /package/dist/components/{p-DVsGfz7J.js.map → p-dSNHIJz6.js.map} +0 -0
  391. /package/dist/components/{p-B9y6azEw.js.map → p-eKnJNQtL.js.map} +0 -0
  392. /package/dist/components/{p-sDm8BEMy.js.map → p-g2OUK8Z0.js.map} +0 -0
  393. /package/dist/components/{p-DSmDyI2o.js.map → p-n_OBbh94.js.map} +0 -0
  394. /package/dist/components/{p-BfVMaZZE.js.map → p-oBpjD9OA.js.map} +0 -0
  395. /package/dist/components/{p-DfMTDFcE.js.map → p-v9Nhw5yM.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{p as s,H as i,c as t,h as e,a as r,t as d}from"./index.js";import{n as a}from"./p-Dka0lUI_.js";import{d as l}from"./p-D8OWhnID.js";import{a as o,s as n,c,r as h}from"./p-DGVZhrMd.js";const u=()=>`@media (forced-colors: active){.sc-ds-slider:root,.sc-ds-slider-h,.ds-forced-colors-scope.sc-ds-slider{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control-inactive.sc-ds-slider-h,.ds-control-inactive.sc-ds-slider{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-slider-h,.ds-control-inactive.sc-ds-slider{color:var(--ds-forced-color-disabled);opacity:1}}.ds-field-stack.sc-ds-slider-h,.ds-field-stack.sc-ds-slider{display:flex;flex-direction:column;gap:var(--dimension-space-050)}.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider-h .error-text.sc-ds-slider,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider .error-text.sc-ds-slider,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider .field__description.sc-ds-slider,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider .field__error.sc-ds-slider{padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}@media (forced-colors: active){.sc-ds-slider:root,.sc-ds-slider-h,.ds-forced-colors-scope.sc-ds-slider{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.sc-ds-slider-h{--ds-slider-control-size:var(--dimension-size-400);--ds-slider-thumb-size:var(--dimension-size-200);--ds-slider-track-size:var(--dimension-size-100);--ds-slider-track-stroke:var(--dimension-stroke-width-012);--ds-slider-vertical-length:calc(var(--dimension-size-800) * 3);box-sizing:border-box;width:100%;color:var(--color-foreground-primary)}.slider--sm.sc-ds-slider-h{--ds-slider-control-size:var(--dimension-size-300);--ds-slider-thumb-size:var(--dimension-size-150);--ds-slider-track-size:var(--dimension-size-075)}.slider--xs.sc-ds-slider-h{--ds-slider-control-size:var(--dimension-size-200);--ds-slider-thumb-size:var(--dimension-size-100);--ds-slider-track-size:var(--dimension-size-050)}.slider--vertical.sc-ds-slider-h{width:fit-content;min-width:var(--dimension-form-width-xs)}.slider__label-row.sc-ds-slider{display:flex;align-items:baseline;justify-content:space-between;gap:var(--dimension-space-100);min-width:0}.slider__label.sc-ds-slider{min-width:0}.slider__value.sc-ds-slider{flex-shrink:0}.slider__control.sc-ds-slider{position:relative;width:100%;height:var(--ds-slider-control-size);border-radius:var(--dimension-radius-half);cursor:default;touch-action:none;user-select:none}.slider--vertical.sc-ds-slider-h .slider__control.sc-ds-slider{align-self:center;width:var(--ds-slider-control-size);height:var(--ds-slider-vertical-length)}.slider--readonly.sc-ds-slider-h .slider__control.sc-ds-slider{cursor:default}.ds-control-inactive.sc-ds-slider-h .slider__control.sc-ds-slider{cursor:not-allowed}.slider__rail.sc-ds-slider{position:absolute;top:50%;right:0;left:0;height:var(--ds-slider-track-size);overflow:hidden;border-radius:var(--dimension-radius-025);background-color:transparent;box-shadow:inset 0 0 0 var(--ds-slider-track-stroke) var(--color-border-secondary);transform:translateY(-50%);pointer-events:none}.slider--thumb-center.sc-ds-slider-h .slider__rail.sc-ds-slider{right:calc(var(--ds-slider-thumb-size) / 2);left:calc(var(--ds-slider-thumb-size) / 2)}.slider__indicator.sc-ds-slider{position:absolute;top:0;bottom:0;left:0;width:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)) );border-radius:inherit;background-color:var(--color-background-bold-brand)}.slider--range.sc-ds-slider-h .slider__indicator.sc-ds-slider{left:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)) );width:calc( ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) * (100% - var(--ds-slider-thumb-size)) )}.slider--thumb-center.sc-ds-slider-h .slider__indicator.sc-ds-slider{left:calc(var(--ds-slider-start-pct, 0) * 1%);width:calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%)}.slider__thumb.sc-ds-slider{position:absolute;top:50%;left:calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));width:var(--ds-slider-thumb-size);height:var(--ds-slider-thumb-size);transform:translateY(-50%);z-index:1}.slider__thumb--active.sc-ds-slider{z-index:2}.slider__input.sc-ds-slider{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;appearance:none;pointer-events:none;z-index:2}.slider__thumb-visual.sc-ds-slider{position:absolute;inset:0;box-sizing:border-box;overflow:visible;border-radius:var(--dimension-radius-025);background-color:var(--color-background-primary);box-shadow:var(--effect-elevation-elevated-sm);pointer-events:none;transition:background-color var(--effect-motion-short-2), box-shadow var(--effect-motion-short-2)}.slider__thumb-wash.sc-ds-slider{position:absolute;inset:0;border-radius:inherit;background-color:transparent;transition:background-color var(--effect-motion-short-2)}@media (hover: hover) and (pointer: fine){.sc-ds-slider-h:not(.slider--readonly):not(.ds-control-inactive) .slider__thumb.sc-ds-slider:hover .slider__thumb-wash.sc-ds-slider{background-color:var(--color-interaction-hover)}}[data-dragging].sc-ds-slider-h:not(.slider--readonly):not(.ds-control-inactive) .slider__thumb--active.sc-ds-slider .slider__thumb-wash.sc-ds-slider{background-color:var(--color-interaction-pressed)}.slider__input.sc-ds-slider:focus-visible+.slider__thumb-visual.sc-ds-slider,[data-review-focus].sc-ds-slider-h .slider__thumb[data-index='0'].sc-ds-slider .slider__thumb-visual.sc-ds-slider{outline:var(--dimension-stroke-width-025) solid var(--color-interaction-focus);outline-offset:var(--dimension-space-025)}.slider--vertical.sc-ds-slider-h .slider__rail.sc-ds-slider{top:0;right:auto;bottom:0;left:50%;width:var(--ds-slider-track-size);height:auto;transform:translateX(-50%)}.slider--vertical.slider--thumb-center.sc-ds-slider-h .slider__rail.sc-ds-slider{top:calc(var(--ds-slider-thumb-size) / 2);bottom:calc(var(--ds-slider-thumb-size) / 2)}.slider--vertical.sc-ds-slider-h .slider__indicator.sc-ds-slider{top:auto;right:0;bottom:0;left:0;width:auto;height:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)) )}.slider--vertical.slider--range.sc-ds-slider-h .slider__indicator.sc-ds-slider{bottom:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)) );height:calc( ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) * (100% - var(--ds-slider-thumb-size)) )}.slider--vertical.slider--thumb-center.sc-ds-slider-h .slider__indicator.sc-ds-slider{bottom:calc(var(--ds-slider-start-pct, 0) * 1%);height:calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%)}.slider--vertical.sc-ds-slider-h .slider__thumb.sc-ds-slider{top:auto;bottom:calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));left:50%;transform:translateX(-50%)}@media (prefers-reduced-motion: reduce){.slider__thumb-visual.sc-ds-slider,.slider__thumb-wash.sc-ds-slider{transition:none}}@media (forced-colors: active){.slider__rail.sc-ds-slider{border:var(--ds-slider-track-stroke) solid var(--ds-forced-color-content);box-shadow:none}.slider__indicator.sc-ds-slider{background-color:var(--ds-forced-color-selected)}.slider__thumb-visual.sc-ds-slider{border:var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);background-color:var(--ds-forced-color-surface);box-shadow:none}.slider__input.sc-ds-slider:focus-visible+.slider__thumb-visual.sc-ds-slider,[data-review-focus].sc-ds-slider-h .slider__thumb[data-index='0'].sc-ds-slider .slider__thumb-visual.sc-ds-slider{outline-color:var(--ds-forced-color-selected)}}.slider__tick.sc-ds-slider{position:absolute;top:calc( 50% + var(--ds-slider-track-size) / 2 + var(--dimension-space-050) + var(--dimension-space-012) );left:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-tick-pct) / 100) * (100% - var(--ds-slider-thumb-size)) );transform:translateX(-50%);pointer-events:none}.slider__tick-mark.sc-ds-slider{display:block;width:var(--dimension-stroke-width-025);height:var(--dimension-stroke-width-025);border-radius:var(--dimension-radius-half);background:var(--color-foreground-tertiary)}.slider__tick-label.sc-ds-slider{width:max-content;max-width:none;position:absolute;top:calc(100% + var(--dimension-space-050));left:50%;transform:translateX(-50%);white-space:nowrap}.sc-ds-slider-h:not(.slider--vertical) .slider__control.sc-ds-slider{container-type:inline-size}.sc-ds-slider-h:not(.slider--vertical) .slider__tick-label.sc-ds-slider{--ds-slider-label-anchor:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-tick-pct) / 100) * (100cqw - var(--ds-slider-thumb-size)) );transform:translateX( clamp( calc(-1 * var(--ds-slider-label-anchor)), -50%, calc(100cqw - var(--ds-slider-label-anchor) - 100%) ) )}.slider--tick-labels.sc-ds-slider-h:not(.slider--vertical) .slider__control.sc-ds-slider{margin-bottom:var(--dimension-space-200)}.slider--vertical.sc-ds-slider-h .slider__tick.sc-ds-slider{top:auto;bottom:calc( var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-tick-pct) / 100) * (100% - var(--ds-slider-thumb-size)) );left:calc(50% + var(--ds-slider-track-size) / 2 + var(--dimension-space-050));transform:translateY(50%)}.slider--vertical.sc-ds-slider-h .slider__tick-label.sc-ds-slider{top:50%;left:calc(100% + var(--dimension-space-050));transform:translateY(-50%)}`;let m=0;let f=0;const b=s(class s extends i{constructor(s){super();if(s!==false){this.__registerHost()}this.dsChange=t(this,"dsChange",7);this.dsCommit=t(this,"dsCommit",7);this.internals=this.attachInternals();this.value=0;this.min=0;this.max=100;this.step=1;this.ticks=[];this.minStepsBetweenValues=0;this.showValue=true;this.size="md";this.orientation="horizontal";this.thumbAlignment="edge";this.disabled=false;this.readOnly=false;this.isInactive=false;this.ariaLabel=null;this.startLabel="Minimum value";this.endLabel="Maximum value";this.valueTexts=[];this.valuePrefix="";this.valueSuffix="";this.rangeSeparator="–";this.formDisabled=false;this.dragging=false;this.focused=false;this.touched=false;this.activeThumbIndex=0;this.generatedId=`ds-slider-${++m}`;this.labelId=`${this.generatedId}-label`;this.initialValue=0;this.lastCommittedValue=0;this.pointerId=null;this.pointerStartValue=0;this.controlEl=null;this.handleNativeInput=(s,i)=>{const t=s.target;this.activeThumbIndex=i;if(this.readOnly||this.isDisabled){t.value=String(this.resolvedValues[i]);return}this.setValueAt(i,Number(t.value))};this.handleNativeChange=()=>{if(!this.readOnly&&!this.isDisabled)this.commitIfChanged()};this.handleKeyDown=(s,i)=>{const t=["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown"];if(!this.readOnly&&this.resolvedTicks.length&&t.includes(s.key)){s.preventDefault();if(this.isDisabled)return;const t=this.resolvedTicks.filter((s=>s.value>=this.allowedMin(i)&&s.value<=this.allowedMax(i)));const e=this.resolvedValues[i];const r=["ArrowRight","ArrowUp","PageUp"].includes(s.key);const d=s.key==="Home"?t[0]:s.key==="End"?t[t.length-1]:r?t.find((s=>s.value>e)):[...t].reverse().find((s=>s.value<e));if(d&&this.setValueAt(i,d.value))this.commitIfChanged();return}if(!this.readOnly)return;if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown"].includes(s.key)){s.preventDefault()}};this.handleFocus=s=>{this.activeThumbIndex=s;this.focused=true};this.handleBlur=s=>{const i=s.relatedTarget;if(i instanceof Node&&this.el.contains(i))return;this.focused=false;this.touched=true};this.handleHostClick=s=>{if(s.target!==this.el||this.isDisabled)return;const i=this.el.querySelectorAll(".slider__input");i[Math.min(this.activeThumbIndex,i.length-1)]?.focus()};this.handlePointerDown=s=>{if(s.button!==0||this.isDisabled||this.readOnly)return;s.preventDefault();const i=this.valueFromPointer(s);const t=this.closestThumbIndex(i,s.target);this.activeThumbIndex=t;this.pointerId=s.pointerId;this.pointerStartValue=this.cloneValue(this.publicValue);this.dragging=true;this.setValueAt(t,i);this.controlEl?.setPointerCapture(s.pointerId);requestAnimationFrame((()=>{const s=this.el.querySelectorAll(".slider__input")[t];s?.focus({preventScroll:true})}))};this.handlePointerMove=s=>{if(this.pointerId!==s.pointerId||!this.dragging)return;s.preventDefault();this.setValueAt(this.activeThumbIndex,this.valueFromPointer(s))}}componentWillLoad(){this.initialValue=this.cloneValue(this.publicValue);this.lastCommittedValue=this.cloneValue(this.publicValue);this.syncFormValue()}componentDidLoad(){this.syncNativeLabels()}syncFormValue(){const s=this.resolvedValues;if(this.isRange){o(this.internals,this.name,s,{inactive:this.isDisabled})}else{const i=String(s[0]);n(this.internals,this.name?i:null,{inactive:this.isDisabled,state:i})}}formDisabledCallback(s){this.formDisabled=s;this.syncFormValue()}formResetCallback(){this.value=this.cloneValue(this.initialValue);this.lastCommittedValue=this.cloneValue(this.initialValue);this.dragging=false;this.focused=false;this.touched=false}formStateRestoreCallback(s){if(this.isRange){const i=c(s,2);this.value=i.length?i:this.cloneValue(this.initialValue)}else{const i=Number(h(s,"NaN"));if(Number.isFinite(i))this.value=i}this.lastCommittedValue=this.cloneValue(this.publicValue)}async setFocus(s=0){const i=this.el.querySelectorAll(".slider__input");i[Math.max(0,Math.min(s,i.length-1))]?.focus()}get isDisabled(){return this.disabled||this.isInactive||this.formDisabled}get isRange(){return Array.isArray(this.value)}get safeStep(){const s=Number(this.step);return Number.isFinite(s)&&s>0?s:1}get resolvedTicks(){const s=new Map;for(const i of this.ticks){if(Number.isFinite(i.value)&&i.value>=this.safeMin&&i.value<=this.safeMax)s.set(i.value,i)}return[...s.values()].sort(((s,i)=>s.value-i.value))}get safeMin(){return Number.isFinite(this.min)?this.min:0}get safeMax(){const s=this.safeMin;return Number.isFinite(this.max)&&this.max>s?this.max:s+this.safeStep}get minimumGap(){const s=Number.isFinite(this.minStepsBetweenValues)?Math.max(0,Math.floor(this.minStepsBetweenValues)):0;const i=this.resolvedTicks;const t=i.length?i[i.length-1].value-i[0].value:this.safeMax-this.safeMin;return Math.min(t,s*this.safeStep)}get resolvedValues(){const s=this.safeMin;const i=this.safeMax;if(!this.isRange)return[this.snap(Number(this.value))];const t=this.value;let e=this.snap(Number(t[0]??s));let r=this.snap(Number(t[1]??i));if(e>r)[e,r]=[r,e];const d=Math.min(this.minimumGap,i-s);if(r-e<d){r=Math.min(i,this.snap(e+d));e=Math.max(s,this.snap(r-d));const t=this.resolvedTicks;if(t.length&&r-e<d){r=t.find((s=>s.value>=e+d))?.value??t[t.length-1].value;e=[...t].reverse().find((s=>s.value<=r-d))?.value??t[0].value}}return[e,r]}get publicValue(){const s=this.resolvedValues;return this.isRange?[...s]:s[0]}cloneValue(s){return Array.isArray(s)?[...s]:s}valuesEqual(s,i){if(Array.isArray(s)&&Array.isArray(i)){return s.length===i.length&&s.every(((s,t)=>s===i[t]))}return!Array.isArray(s)&&!Array.isArray(i)&&s===i}decimalPlaces(s){const i=String(s).toLowerCase();if(i.includes("e-"))return Number(i.split("e-")[1])||0;return i.includes(".")?i.split(".")[1].length:0}snap(s,i=this.safeMin,t=this.safeMax){const e=this.resolvedTicks.filter((s=>s.value>=i&&s.value<=t));if(e.length)return e.reduce(((i,t)=>Math.abs(t.value-s)<Math.abs(i.value-s)?t:i)).value;if(this.step==="any")return Math.min(t,Math.max(i,Number.isFinite(s)?s:i));const r=Number.isFinite(s)?s:i;const d=i+Math.round((r-i)/this.safeStep)*this.safeStep;const a=Math.min(10,Math.max(this.decimalPlaces(i),this.decimalPlaces(t),this.decimalPlaces(this.safeStep)));return Number(Math.min(t,Math.max(i,d)).toFixed(a))}percent(s){return(s-this.safeMin)/(this.safeMax-this.safeMin)*100}allowedMin(s,i=this.resolvedValues){return this.isRange&&s===1?Math.min(this.safeMax,i[0]+this.minimumGap):this.safeMin}allowedMax(s,i=this.resolvedValues){return this.isRange&&s===0?Math.max(this.safeMin,i[1]-this.minimumGap):this.safeMax}setValueAt(s,i){const t=this.publicValue;const e=this.resolvedValues;const r=Math.min(this.allowedMax(s,e),Math.max(this.allowedMin(s,e),this.snap(i,this.allowedMin(s,e),this.allowedMax(s,e))));e[s]=r;const d=this.isRange?[...e]:e[0];if(this.valuesEqual(t,d))return false;this.value=d;this.dsChange.emit(this.cloneValue(d));return true}commitIfChanged(){const s=this.publicValue;if(this.valuesEqual(s,this.lastCommittedValue))return;this.lastCommittedValue=this.cloneValue(s);this.dsCommit.emit(this.cloneValue(s))}syncNativeLabels(){if(this.label||this.ariaLabel||this.ariaLabelledby||this.isRange)return;const s=Array.from(this.internals.labels).map((s=>{if(!s.id)s.id=`ds-slider-label-${++f}`;return s.id}));if(s.length)this.externalLabelledby=s.join(" ")}formattedValue(s,i){const t=this.valueTexts[i]??this.valueText??this.resolvedTicks.find((i=>i.value===s))?.label;if(t)return t;let e;try{e=a(this.locale,this.formatOptions).format(s)}catch{e=String(s)}return`${this.valuePrefix}${e}${this.valueSuffix}`}ariaValueText(s,i){if(this.resolvedTicks.some((i=>i.value===s&&i.label))||this.valueTexts[i]||this.valueText||this.valuePrefix||this.valueSuffix||this.formatOptions){return this.formattedValue(s,i)}return undefined}pointerPercent(s){const i=this.controlEl;if(!i)return 0;const t=i.getBoundingClientRect();const e=this.el.querySelector(".slider__thumb");const r=e?this.orientation==="horizontal"?e.offsetWidth:e.offsetHeight:0;const d=r/2;if(this.orientation==="vertical"){const i=Math.max(1,t.height-d*2);return Math.min(1,Math.max(0,(t.bottom-d-s.clientY)/i))}const a=Math.max(1,t.width-d*2);const l=(s.clientX-t.left-d)/a;return Math.min(1,Math.max(0,l))}valueFromPointer(s){return this.snap(this.safeMin+this.pointerPercent(s)*(this.safeMax-this.safeMin))}closestThumbIndex(s,t){const e=t instanceof i?t.closest(".slider__thumb"):null;if(e?.dataset["index"])return Number(e.dataset["index"]);if(!this.isRange)return 0;const r=this.resolvedValues;const d=Math.abs(s-r[0]);const a=Math.abs(s-r[1]);if(d===a)return s>=r[0]?1:0;return d<a?0:1}endPointerInteraction(s,i){if(this.pointerId!==s.pointerId)return;if(this.controlEl?.hasPointerCapture(s.pointerId))this.controlEl.releasePointerCapture(s.pointerId);this.pointerId=null;this.dragging=false;this.touched=true;if(!i&&!this.valuesEqual(this.pointerStartValue,this.publicValue))this.commitIfChanged()}renderThumb(s,i){const t=i===0?this.inputId??`${this.generatedId}-input`:`${this.inputId??`${this.generatedId}-input`}-end`;const r=i===0?this.startLabel:this.endLabel;const d=this.isRange?undefined:this.ariaLabelledby??(this.label?this.labelId:this.externalLabelledby);const a=this.isRange?r:d?undefined:this.ariaLabel;return e("div",{class:{slider__thumb:true,"slider__thumb--active":i===this.activeThumbIndex},"data-index":String(i),style:{"--ds-slider-thumb-pct":String(this.percent(s))}},e("input",{class:"slider__input",type:"range",id:t,min:this.allowedMin(i),max:this.allowedMax(i),step:this.resolvedTicks.length||this.step==="any"?"any":this.safeStep,value:s,disabled:this.isDisabled,"aria-label":a,"aria-labelledby":d,"aria-describedby":this.ariaDescribedby,"aria-valuetext":this.ariaValueText(s,i),"aria-orientation":this.orientation==="vertical"?"vertical":undefined,"aria-readonly":this.readOnly?"true":undefined,onInput:s=>this.handleNativeInput(s,i),onChange:this.handleNativeChange,onKeyDown:s=>this.handleKeyDown(s,i),onFocus:()=>this.handleFocus(i),onBlur:this.handleBlur}),e("span",{class:"slider__thumb-visual","aria-hidden":"true"},e("span",{class:"slider__thumb-wash"})))}render(){const s=this.resolvedValues;const i=s[0];const t=s[s.length-1];const d=this.inputId??`${this.generatedId}-input`;const a=!this.valuesEqual(this.publicValue,this.initialValue);const l=s.map(((s,i)=>this.formattedValue(s,i))).join(` ${this.rangeSeparator} `);return e(r,{key:"f52110c78bc093c88d47ef017a22a0b479a00042","aria-disabled":this.isDisabled?"true":undefined,class:{slider:true,"ds-field-stack":true,[`slider--${this.size}`]:true,[`slider--${this.orientation}`]:true,[`slider--thumb-${this.thumbAlignment}`]:true,"slider--range":this.isRange,"slider--ticks":this.resolvedTicks.length>0,"slider--tick-labels":this.resolvedTicks.some((s=>Boolean(s.label))),"slider--readonly":this.readOnly,"ds-control-inactive":this.isDisabled},"data-orientation":this.orientation,"data-disabled":this.isDisabled?"":undefined,"data-readonly":this.readOnly?"":undefined,"data-dragging":this.dragging?"":undefined,"data-focused":this.focused?"":undefined,"data-filled":"","data-dirty":a?"":undefined,"data-touched":this.touched?"":undefined,"data-valid":!this.isDisabled?"":undefined,onClick:this.handleHostClick},(this.label||this.showValue)&&e("div",{key:"8c2dd5c7a815184d70dec2d47df917160d3b111c",class:"slider__label-row"},this.label&&e("ds-text",{key:"939e6d5940ddd8886a8e3c363209bc94f2f24453",class:"slider__label",as:"label",variant:"text-body-small",color:"primary",emphasis:true,for:d,textId:this.labelId},this.label),this.showValue&&e("ds-text",{key:"65947a19495e47ac7a6c24079deaa5ddf69e0f20",class:"slider__value",as:"span",variant:"text-body-small",color:"primary",fontFeature:"tabular-nums"},l)),e("div",{key:"e1a163d383d48de324ddee4ed471d2ee49244a02",class:"slider__control",ref:s=>{this.controlEl=s??null},style:{"--ds-slider-start-pct":String(this.isRange?this.percent(i):0),"--ds-slider-end-pct":String(this.percent(t))},onPointerDown:this.handlePointerDown,onPointerMove:this.handlePointerMove,onPointerUp:s=>this.endPointerInteraction(s,false),onPointerCancel:s=>this.endPointerInteraction(s,true)},e("div",{key:"f34014e2ce22ab893af2b540c5f92151ce2e7e19",class:"slider__rail","aria-hidden":"true"},e("div",{key:"8b3de0465f6f07867c372d4ea3b157d3e9239a6e",class:"slider__indicator"})),this.resolvedTicks.map((s=>e("span",{class:"slider__tick","data-edge":s.value===this.safeMin?"start":s.value===this.safeMax?"end":undefined,"aria-hidden":"true",style:{"--ds-slider-tick-pct":String(this.percent(s.value))}},e("span",{class:"slider__tick-mark"}),s.label&&e("ds-text",{class:"slider__tick-label",as:"span",variant:"text-caption",color:"secondary"},s.label)))),s.map(((s,i)=>this.renderThumb(s,i)))))}static get formAssociated(){return true}get el(){return this}static get watchers(){return{value:[{syncFormValue:0}],min:[{syncFormValue:0}],max:[{syncFormValue:0}],step:[{syncFormValue:0}],ticks:[{syncFormValue:0}],minStepsBetweenValues:[{syncFormValue:0}],name:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}]}}static get style(){return u()}},[66,"ds-slider",{value:[1026],min:[2],max:[2],step:[8],ticks:[16],minStepsBetweenValues:[2,"min-steps-between-values"],label:[1],showValue:[4,"show-value"],size:[1],orientation:[1],thumbAlignment:[1,"thumb-alignment"],name:[513],form:[513],disabled:[516],readOnly:[516,"read-only"],isInactive:[4,"is-inactive"],ariaLabel:[1,"aria-label"],ariaLabelledby:[1,"aria-labelledby"],ariaDescribedby:[1,"aria-describedby"],startLabel:[1,"start-label"],endLabel:[1,"end-label"],valueText:[1,"value-text"],valueTexts:[16],locale:[1],formatOptions:[16],valuePrefix:[1,"value-prefix"],valueSuffix:[1,"value-suffix"],rangeSeparator:[1,"range-separator"],inputId:[1,"input-id"],formDisabled:[32],dragging:[32],focused:[32],touched:[32],activeThumbIndex:[32],externalLabelledby:[32],setFocus:[64]},undefined,{value:[{syncFormValue:0}],min:[{syncFormValue:0}],max:[{syncFormValue:0}],step:[{syncFormValue:0}],ticks:[{syncFormValue:0}],minStepsBetweenValues:[{syncFormValue:0}],name:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}]}]);function v(){if(typeof customElements==="undefined"){return}const s=["ds-slider","ds-text"];s.forEach((s=>{switch(s){case"ds-slider":if(!customElements.get(d(s))){customElements.define(d(s),b)}break;case"ds-text":if(!customElements.get(d(s))){l()}break}}))}v();const p=b;const _=v;export{p as DsSlider,_ as defineCustomElement};
1
+ import{p as s,H as i,c as e,h as t,a as r,t as d}from"./index.js";import{n as a}from"./p-Dka0lUI_.js";import{d as l}from"./p-BbvAWFJA.js";import{a as o,s as n,c,r as h}from"./p-DGVZhrMd.js";const u=()=>`@media (forced-colors: active){.sc-ds-slider:root,.sc-ds-slider-h,.ds-forced-colors-scope.sc-ds-slider{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control-inactive.sc-ds-slider-h,.ds-control-inactive.sc-ds-slider{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-slider-h,.ds-control-inactive.sc-ds-slider{color:var(--ds-forced-color-disabled);opacity:1}}.ds-field-stack.sc-ds-slider-h,.ds-field-stack.sc-ds-slider{display:flex;flex-direction:column;gap:var(--dimension-space-050)}.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider-h .error-text.sc-ds-slider,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider .error-text.sc-ds-slider,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider .field__description.sc-ds-slider,.ds-field-stack.ds-field-stack--supporting-inset.sc-ds-slider .field__error.sc-ds-slider{padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}@media (forced-colors: active){.sc-ds-slider:root,.sc-ds-slider-h,.ds-forced-colors-scope.sc-ds-slider{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.sc-ds-slider-h{--ds-slider-control-size:var(--dimension-size-400);--ds-slider-track-size:var(--dimension-size-100);--ds-slider-thumb-size:calc( var(--ds-slider-track-size) + var(--dimension-space-050) + var(--dimension-space-050) );--ds-slider-endpoint-size:var(--ds-slider-track-size);--ds-slider-thumb-overhang:calc( (var(--ds-slider-thumb-size) - var(--ds-slider-endpoint-size)) / 2 );--ds-slider-track-stroke:var(--dimension-stroke-width-012);--ds-slider-vertical-length:calc(var(--dimension-size-800) * 3);box-sizing:border-box;width:100%;color:var(--color-foreground-primary)}.slider--sm.sc-ds-slider-h{--ds-slider-control-size:var(--dimension-size-300);--ds-slider-track-size:var(--dimension-size-075)}.slider--xs.sc-ds-slider-h{--ds-slider-control-size:var(--dimension-size-200);--ds-slider-track-size:var(--dimension-size-050)}.slider--thumb-center.sc-ds-slider-h{--ds-slider-endpoint-size:var(--ds-slider-thumb-size)}.slider--vertical.sc-ds-slider-h{width:fit-content;min-width:var(--dimension-form-width-xs)}.slider__label-row.sc-ds-slider{display:flex;align-items:baseline;justify-content:space-between;gap:var(--dimension-space-100);min-width:0}.slider__label.sc-ds-slider{min-width:0}.slider__value.sc-ds-slider{flex-shrink:0}.slider__control.sc-ds-slider{position:relative;width:100%;height:var(--ds-slider-control-size);border-radius:var(--dimension-radius-half);cursor:default;touch-action:none;user-select:none}.slider--vertical.sc-ds-slider-h .slider__control.sc-ds-slider{align-self:center;width:var(--ds-slider-control-size);height:var(--ds-slider-vertical-length)}.slider--readonly.sc-ds-slider-h .slider__control.sc-ds-slider{cursor:default}.ds-control-inactive.sc-ds-slider-h .slider__control.sc-ds-slider{cursor:not-allowed}.slider__rail.sc-ds-slider{position:absolute;top:50%;right:0;left:0;height:var(--ds-slider-track-size);overflow:hidden;border-radius:var(--dimension-radius-half);background-color:var(--color-background-faint-neutral);box-shadow:inset 0 0 0 var(--ds-slider-track-stroke) var(--color-border-tertiary);transform:translateY(-50%);pointer-events:none}.slider--thumb-center.sc-ds-slider-h .slider__rail.sc-ds-slider{right:calc(var(--ds-slider-thumb-size) / 2);left:calc(var(--ds-slider-thumb-size) / 2)}.slider__indicator.sc-ds-slider{position:absolute;top:0;bottom:0;left:0;width:calc( var(--ds-slider-endpoint-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) * (100% - var(--ds-slider-endpoint-size)) );border-radius:inherit;background-color:var(--color-background-bold-brand)}.slider--range.sc-ds-slider-h .slider__indicator.sc-ds-slider{left:calc( var(--ds-slider-endpoint-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) * (100% - var(--ds-slider-endpoint-size)) );width:calc( ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) * (100% - var(--ds-slider-endpoint-size)) )}.slider--thumb-center.sc-ds-slider-h .slider__indicator.sc-ds-slider{left:calc(var(--ds-slider-start-pct, 0) * 1%);width:calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%)}.slider__thumb.sc-ds-slider{position:absolute;top:50%;left:calc( (var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-endpoint-size)) - var(--ds-slider-thumb-overhang) );width:var(--ds-slider-thumb-size);height:var(--ds-slider-thumb-size);transform:translateY(-50%);z-index:1}.slider__thumb--active.sc-ds-slider{z-index:2}.slider__input.sc-ds-slider{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;appearance:none;pointer-events:none;z-index:2}.slider__thumb-visual.sc-ds-slider{position:absolute;inset:0;box-sizing:border-box;overflow:visible;border-radius:var(--dimension-radius-half);background-color:var(--color-background-transparent);-webkit-backdrop-filter:blur(var(--effect-blur-sm));backdrop-filter:blur(var(--effect-blur-sm));box-shadow:var(--effect-elevation-elevated-md);pointer-events:none;transition:background-color var(--effect-motion-short-2), box-shadow var(--effect-motion-short-2)}.slider__thumb-wash.sc-ds-slider{position:absolute;inset:0;border-radius:inherit;background-color:transparent;transition:background-color var(--effect-motion-short-2)}.slider__thumb-orb.sc-ds-slider{position:absolute;top:50%;left:50%;box-sizing:border-box;width:var(--ds-slider-track-size);height:var(--ds-slider-track-size);border-radius:var(--dimension-radius-half);background-color:var(--color-background-bold-brand);box-shadow:inset 0 0 0 var(--ds-slider-track-stroke) var(--color-border-tertiary);transform:translate(-50%, -50%)}@media (hover: hover) and (pointer: fine){.sc-ds-slider-h:not(.slider--readonly):not(.ds-control-inactive) .slider__thumb.sc-ds-slider:hover .slider__thumb-wash.sc-ds-slider{background-color:var(--color-interaction-hover)}}[data-dragging].sc-ds-slider-h:not(.slider--readonly):not(.ds-control-inactive) .slider__thumb--active.sc-ds-slider .slider__thumb-wash.sc-ds-slider{background-color:var(--color-interaction-pressed)}.slider__input.sc-ds-slider:focus-visible+.slider__thumb-visual.sc-ds-slider,[data-review-focus].sc-ds-slider-h .slider__thumb[data-index='0'].sc-ds-slider .slider__thumb-visual.sc-ds-slider{outline:var(--dimension-stroke-width-025) solid var(--color-interaction-focus);outline-offset:var(--dimension-space-025)}.slider--vertical.sc-ds-slider-h .slider__rail.sc-ds-slider{top:0;right:auto;bottom:0;left:50%;width:var(--ds-slider-track-size);height:auto;transform:translateX(-50%)}.slider--vertical.slider--thumb-center.sc-ds-slider-h .slider__rail.sc-ds-slider{top:calc(var(--ds-slider-thumb-size) / 2);bottom:calc(var(--ds-slider-thumb-size) / 2)}.slider--vertical.sc-ds-slider-h .slider__indicator.sc-ds-slider{top:auto;right:0;bottom:0;left:0;width:auto;height:calc( var(--ds-slider-endpoint-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) * (100% - var(--ds-slider-endpoint-size)) )}.slider--vertical.slider--range.sc-ds-slider-h .slider__indicator.sc-ds-slider{bottom:calc( var(--ds-slider-endpoint-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) * (100% - var(--ds-slider-endpoint-size)) );height:calc( ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) * (100% - var(--ds-slider-endpoint-size)) )}.slider--vertical.slider--thumb-center.sc-ds-slider-h .slider__indicator.sc-ds-slider{bottom:calc(var(--ds-slider-start-pct, 0) * 1%);height:calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%)}.slider--vertical.sc-ds-slider-h .slider__thumb.sc-ds-slider{top:auto;bottom:calc( (var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-endpoint-size)) - var(--ds-slider-thumb-overhang) );left:50%;transform:translateX(-50%)}@media (prefers-reduced-motion: reduce){.slider__thumb-visual.sc-ds-slider,.slider__thumb-wash.sc-ds-slider{transition:none}}@media (forced-colors: active){.slider__rail.sc-ds-slider{border:var(--ds-slider-track-stroke) solid var(--ds-forced-color-content);box-shadow:none}.slider__indicator.sc-ds-slider{background-color:var(--ds-forced-color-selected)}.slider__thumb-visual.sc-ds-slider{border:var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);background-color:var(--ds-forced-color-surface);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.slider__thumb-orb.sc-ds-slider{border:var(--ds-slider-track-stroke) solid var(--ds-forced-color-on-selected);background-color:var(--ds-forced-color-selected);box-shadow:none}.slider__input.sc-ds-slider:focus-visible+.slider__thumb-visual.sc-ds-slider,[data-review-focus].sc-ds-slider-h .slider__thumb[data-index='0'].sc-ds-slider .slider__thumb-visual.sc-ds-slider{outline-color:var(--ds-forced-color-selected)}}.slider__tick.sc-ds-slider{position:absolute;top:calc( 50% + var(--ds-slider-track-size) / 2 + var(--dimension-space-050) + var(--dimension-space-012) );left:calc( var(--ds-slider-endpoint-size) / 2 + (var(--ds-slider-tick-pct) / 100) * (100% - var(--ds-slider-endpoint-size)) );transform:translateX(-50%);pointer-events:none}.slider__tick-mark.sc-ds-slider{display:block;width:var(--dimension-stroke-width-025);height:var(--dimension-stroke-width-025);border-radius:var(--dimension-radius-half);background:var(--color-foreground-tertiary)}.slider__tick-label.sc-ds-slider{width:max-content;max-width:none;position:absolute;top:calc(100% + var(--dimension-space-050));left:50%;transform:translateX(-50%);white-space:nowrap}.sc-ds-slider-h:not(.slider--vertical) .slider__control.sc-ds-slider{container-type:inline-size}.sc-ds-slider-h:not(.slider--vertical) .slider__tick-label.sc-ds-slider{--ds-slider-label-anchor:calc( var(--ds-slider-endpoint-size) / 2 + (var(--ds-slider-tick-pct) / 100) * (100cqw - var(--ds-slider-endpoint-size)) );transform:translateX( clamp( calc(-1 * var(--ds-slider-label-anchor)), -50%, calc(100cqw - var(--ds-slider-label-anchor) - 100%) ) )}.slider--tick-labels.sc-ds-slider-h:not(.slider--vertical) .slider__control.sc-ds-slider{margin-bottom:var(--dimension-space-200)}.slider--vertical.sc-ds-slider-h .slider__tick.sc-ds-slider{top:auto;bottom:calc( var(--ds-slider-endpoint-size) / 2 + (var(--ds-slider-tick-pct) / 100) * (100% - var(--ds-slider-endpoint-size)) );left:calc(50% + var(--ds-slider-track-size) / 2 + var(--dimension-space-050));transform:translateY(50%)}.slider--vertical.sc-ds-slider-h .slider__tick-label.sc-ds-slider{top:50%;left:calc(100% + var(--dimension-space-050));transform:translateY(-50%)}`;let b=0;let f=0;const m=s(class s extends i{constructor(s){super();if(s!==false){this.__registerHost()}this.dsChange=e(this,"dsChange",7);this.dsCommit=e(this,"dsCommit",7);this.internals=this.attachInternals();this.value=0;this.min=0;this.max=100;this.step=1;this.ticks=[];this.minStepsBetweenValues=0;this.showValue=true;this.size="md";this.orientation="horizontal";this.thumbAlignment="edge";this.disabled=false;this.readOnly=false;this.isInactive=false;this.ariaLabel=null;this.startLabel="Minimum value";this.endLabel="Maximum value";this.valueTexts=[];this.valuePrefix="";this.valueSuffix="";this.rangeSeparator="–";this.formDisabled=false;this.dragging=false;this.focused=false;this.touched=false;this.activeThumbIndex=0;this.generatedId=`ds-slider-${++b}`;this.labelId=`${this.generatedId}-label`;this.initialValue=0;this.lastCommittedValue=0;this.pointerId=null;this.pointerStartValue=0;this.controlEl=null;this.handleNativeInput=(s,i)=>{const e=s.target;this.activeThumbIndex=i;if(this.readOnly||this.isDisabled){e.value=String(this.resolvedValues[i]);return}this.setValueAt(i,Number(e.value))};this.handleNativeChange=()=>{if(!this.readOnly&&!this.isDisabled)this.commitIfChanged()};this.handleKeyDown=(s,i)=>{const e=["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown"];if(!this.readOnly&&this.resolvedTicks.length&&e.includes(s.key)){s.preventDefault();if(this.isDisabled)return;const e=this.resolvedTicks.filter((s=>s.value>=this.allowedMin(i)&&s.value<=this.allowedMax(i)));const t=this.resolvedValues[i];const r=["ArrowRight","ArrowUp","PageUp"].includes(s.key);const d=s.key==="Home"?e[0]:s.key==="End"?e[e.length-1]:r?e.find((s=>s.value>t)):[...e].reverse().find((s=>s.value<t));if(d&&this.setValueAt(i,d.value))this.commitIfChanged();return}if(!this.readOnly)return;if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown"].includes(s.key)){s.preventDefault()}};this.handleFocus=s=>{this.activeThumbIndex=s;this.focused=true};this.handleBlur=s=>{const i=s.relatedTarget;if(i instanceof Node&&this.el.contains(i))return;this.focused=false;this.touched=true};this.handleHostClick=s=>{if(s.target!==this.el||this.isDisabled)return;const i=this.el.querySelectorAll(".slider__input");i[Math.min(this.activeThumbIndex,i.length-1)]?.focus()};this.handlePointerDown=s=>{if(s.button!==0||this.isDisabled||this.readOnly)return;s.preventDefault();const i=this.valueFromPointer(s);const e=this.closestThumbIndex(i,s.target);this.activeThumbIndex=e;this.pointerId=s.pointerId;this.pointerStartValue=this.cloneValue(this.publicValue);this.dragging=true;this.setValueAt(e,i);this.controlEl?.setPointerCapture(s.pointerId);requestAnimationFrame((()=>{const s=this.el.querySelectorAll(".slider__input")[e];s?.focus({preventScroll:true})}))};this.handlePointerMove=s=>{if(this.pointerId!==s.pointerId||!this.dragging)return;s.preventDefault();this.setValueAt(this.activeThumbIndex,this.valueFromPointer(s))}}componentWillLoad(){this.initialValue=this.cloneValue(this.publicValue);this.lastCommittedValue=this.cloneValue(this.publicValue);this.syncFormValue()}componentDidLoad(){this.syncNativeLabels()}syncFormValue(){const s=this.resolvedValues;if(this.isRange){o(this.internals,this.name,s,{inactive:this.isDisabled})}else{const i=String(s[0]);n(this.internals,this.name?i:null,{inactive:this.isDisabled,state:i})}}formDisabledCallback(s){this.formDisabled=s;this.syncFormValue()}formResetCallback(){this.value=this.cloneValue(this.initialValue);this.lastCommittedValue=this.cloneValue(this.initialValue);this.dragging=false;this.focused=false;this.touched=false}formStateRestoreCallback(s){if(this.isRange){const i=c(s,2);this.value=i.length?i:this.cloneValue(this.initialValue)}else{const i=Number(h(s,"NaN"));if(Number.isFinite(i))this.value=i}this.lastCommittedValue=this.cloneValue(this.publicValue)}async setFocus(s=0){const i=this.el.querySelectorAll(".slider__input");i[Math.max(0,Math.min(s,i.length-1))]?.focus()}get isDisabled(){return this.disabled||this.isInactive||this.formDisabled}get isRange(){return Array.isArray(this.value)}get safeStep(){const s=Number(this.step);return Number.isFinite(s)&&s>0?s:1}get resolvedTicks(){const s=new Map;for(const i of this.ticks){if(Number.isFinite(i.value)&&i.value>=this.safeMin&&i.value<=this.safeMax)s.set(i.value,i)}return[...s.values()].sort(((s,i)=>s.value-i.value))}get safeMin(){return Number.isFinite(this.min)?this.min:0}get safeMax(){const s=this.safeMin;return Number.isFinite(this.max)&&this.max>s?this.max:s+this.safeStep}get minimumGap(){const s=Number.isFinite(this.minStepsBetweenValues)?Math.max(0,Math.floor(this.minStepsBetweenValues)):0;const i=this.resolvedTicks;const e=i.length?i[i.length-1].value-i[0].value:this.safeMax-this.safeMin;return Math.min(e,s*this.safeStep)}get resolvedValues(){const s=this.safeMin;const i=this.safeMax;if(!this.isRange)return[this.snap(Number(this.value))];const e=this.value;let t=this.snap(Number(e[0]??s));let r=this.snap(Number(e[1]??i));if(t>r)[t,r]=[r,t];const d=Math.min(this.minimumGap,i-s);if(r-t<d){r=Math.min(i,this.snap(t+d));t=Math.max(s,this.snap(r-d));const e=this.resolvedTicks;if(e.length&&r-t<d){r=e.find((s=>s.value>=t+d))?.value??e[e.length-1].value;t=[...e].reverse().find((s=>s.value<=r-d))?.value??e[0].value}}return[t,r]}get publicValue(){const s=this.resolvedValues;return this.isRange?[...s]:s[0]}cloneValue(s){return Array.isArray(s)?[...s]:s}valuesEqual(s,i){if(Array.isArray(s)&&Array.isArray(i)){return s.length===i.length&&s.every(((s,e)=>s===i[e]))}return!Array.isArray(s)&&!Array.isArray(i)&&s===i}decimalPlaces(s){const i=String(s).toLowerCase();if(i.includes("e-"))return Number(i.split("e-")[1])||0;return i.includes(".")?i.split(".")[1].length:0}snap(s,i=this.safeMin,e=this.safeMax){const t=this.resolvedTicks.filter((s=>s.value>=i&&s.value<=e));if(t.length)return t.reduce(((i,e)=>Math.abs(e.value-s)<Math.abs(i.value-s)?e:i)).value;if(this.step==="any")return Math.min(e,Math.max(i,Number.isFinite(s)?s:i));const r=Number.isFinite(s)?s:i;const d=i+Math.round((r-i)/this.safeStep)*this.safeStep;const a=Math.min(10,Math.max(this.decimalPlaces(i),this.decimalPlaces(e),this.decimalPlaces(this.safeStep)));return Number(Math.min(e,Math.max(i,d)).toFixed(a))}percent(s){return(s-this.safeMin)/(this.safeMax-this.safeMin)*100}allowedMin(s,i=this.resolvedValues){return this.isRange&&s===1?Math.min(this.safeMax,i[0]+this.minimumGap):this.safeMin}allowedMax(s,i=this.resolvedValues){return this.isRange&&s===0?Math.max(this.safeMin,i[1]-this.minimumGap):this.safeMax}setValueAt(s,i){const e=this.publicValue;const t=this.resolvedValues;const r=Math.min(this.allowedMax(s,t),Math.max(this.allowedMin(s,t),this.snap(i,this.allowedMin(s,t),this.allowedMax(s,t))));t[s]=r;const d=this.isRange?[...t]:t[0];if(this.valuesEqual(e,d))return false;this.value=d;this.dsChange.emit(this.cloneValue(d));return true}commitIfChanged(){const s=this.publicValue;if(this.valuesEqual(s,this.lastCommittedValue))return;this.lastCommittedValue=this.cloneValue(s);this.dsCommit.emit(this.cloneValue(s))}syncNativeLabels(){if(this.label||this.ariaLabel||this.ariaLabelledby||this.isRange)return;const s=Array.from(this.internals.labels).map((s=>{if(!s.id)s.id=`ds-slider-label-${++f}`;return s.id}));if(s.length)this.externalLabelledby=s.join(" ")}formattedValue(s,i){const e=this.valueTexts[i]??this.valueText??this.resolvedTicks.find((i=>i.value===s))?.label;if(e)return e;let t;try{t=a(this.locale,this.formatOptions).format(s)}catch{t=String(s)}return`${this.valuePrefix}${t}${this.valueSuffix}`}ariaValueText(s,i){if(this.resolvedTicks.some((i=>i.value===s&&i.label))||this.valueTexts[i]||this.valueText||this.valuePrefix||this.valueSuffix||this.formatOptions){return this.formattedValue(s,i)}return undefined}pointerPercent(s){const i=this.controlEl;if(!i)return 0;const e=i.getBoundingClientRect();const t=this.el.querySelector(this.thumbAlignment==="edge"?".slider__thumb-orb":".slider__thumb");const r=t?this.orientation==="horizontal"?t.offsetWidth:t.offsetHeight:0;const d=r/2;if(this.orientation==="vertical"){const i=Math.max(1,e.height-d*2);return Math.min(1,Math.max(0,(e.bottom-d-s.clientY)/i))}const a=Math.max(1,e.width-d*2);const l=(s.clientX-e.left-d)/a;return Math.min(1,Math.max(0,l))}valueFromPointer(s){return this.snap(this.safeMin+this.pointerPercent(s)*(this.safeMax-this.safeMin))}closestThumbIndex(s,e){const t=e instanceof i?e.closest(".slider__thumb"):null;if(t?.dataset["index"])return Number(t.dataset["index"]);if(!this.isRange)return 0;const r=this.resolvedValues;const d=Math.abs(s-r[0]);const a=Math.abs(s-r[1]);if(d===a)return s>=r[0]?1:0;return d<a?0:1}endPointerInteraction(s,i){if(this.pointerId!==s.pointerId)return;if(this.controlEl?.hasPointerCapture(s.pointerId))this.controlEl.releasePointerCapture(s.pointerId);this.pointerId=null;this.dragging=false;this.touched=true;if(!i&&!this.valuesEqual(this.pointerStartValue,this.publicValue))this.commitIfChanged()}renderThumb(s,i){const e=i===0?this.inputId??`${this.generatedId}-input`:`${this.inputId??`${this.generatedId}-input`}-end`;const r=i===0?this.startLabel:this.endLabel;const d=this.isRange?undefined:this.ariaLabelledby??(this.label?this.labelId:this.externalLabelledby);const a=this.isRange?r:d?undefined:this.ariaLabel;return t("div",{class:{slider__thumb:true,"slider__thumb--active":i===this.activeThumbIndex},"data-index":String(i),style:{"--ds-slider-thumb-pct":String(this.percent(s))}},t("input",{class:"slider__input",type:"range",id:e,min:this.allowedMin(i),max:this.allowedMax(i),step:this.resolvedTicks.length||this.step==="any"?"any":this.safeStep,value:s,disabled:this.isDisabled,"aria-label":a,"aria-labelledby":d,"aria-describedby":this.ariaDescribedby,"aria-valuetext":this.ariaValueText(s,i),"aria-orientation":this.orientation==="vertical"?"vertical":undefined,"aria-readonly":this.readOnly?"true":undefined,onInput:s=>this.handleNativeInput(s,i),onChange:this.handleNativeChange,onKeyDown:s=>this.handleKeyDown(s,i),onFocus:()=>this.handleFocus(i),onBlur:this.handleBlur}),t("span",{class:"slider__thumb-visual","aria-hidden":"true"},t("span",{class:"slider__thumb-wash"}),t("span",{class:"slider__thumb-orb"})))}render(){const s=this.resolvedValues;const i=s[0];const e=s[s.length-1];const d=this.inputId??`${this.generatedId}-input`;const a=!this.valuesEqual(this.publicValue,this.initialValue);const l=s.map(((s,i)=>this.formattedValue(s,i))).join(` ${this.rangeSeparator} `);return t(r,{key:"43cee34f666b295eec452d97befa54062bee6d3a","aria-disabled":this.isDisabled?"true":undefined,class:{slider:true,"ds-field-stack":true,[`slider--${this.size}`]:true,[`slider--${this.orientation}`]:true,[`slider--thumb-${this.thumbAlignment}`]:true,"slider--range":this.isRange,"slider--ticks":this.resolvedTicks.length>0,"slider--tick-labels":this.resolvedTicks.some((s=>Boolean(s.label))),"slider--readonly":this.readOnly,"ds-control-inactive":this.isDisabled},"data-orientation":this.orientation,"data-disabled":this.isDisabled?"":undefined,"data-readonly":this.readOnly?"":undefined,"data-dragging":this.dragging?"":undefined,"data-focused":this.focused?"":undefined,"data-filled":"","data-dirty":a?"":undefined,"data-touched":this.touched?"":undefined,"data-valid":!this.isDisabled?"":undefined,onClick:this.handleHostClick},(this.label||this.showValue)&&t("div",{key:"fdde5b89254f6654eb15b057875bfbe301e26206",class:"slider__label-row"},this.label&&t("ds-text",{key:"8fbee31ff732f24252b01970df7fdabb00f82392",class:"slider__label",as:"label",variant:"text-body-small",color:"primary",emphasis:true,for:d,textId:this.labelId},this.label),this.showValue&&t("ds-text",{key:"cdeb50f93c6bd86d4c67317724201605258aab07",class:"slider__value",as:"span",variant:"text-body-small",color:"primary",fontFeature:"tabular-nums"},l)),t("div",{key:"9df13e3f45f3ff7c23d0394fdfd0bdf21714699e",class:"slider__control",ref:s=>{this.controlEl=s??null},style:{"--ds-slider-start-pct":String(this.isRange?this.percent(i):0),"--ds-slider-end-pct":String(this.percent(e))},onPointerDown:this.handlePointerDown,onPointerMove:this.handlePointerMove,onPointerUp:s=>this.endPointerInteraction(s,false),onPointerCancel:s=>this.endPointerInteraction(s,true)},t("div",{key:"a61ac8562e436ae6635a76ce91a400342680444a",class:"slider__rail","aria-hidden":"true"},t("div",{key:"bee7b7c2a63c54d244da4d22c5d38dbcc1df2d20",class:"slider__indicator"})),this.resolvedTicks.map((s=>t("span",{class:"slider__tick","data-edge":s.value===this.safeMin?"start":s.value===this.safeMax?"end":undefined,"aria-hidden":"true",style:{"--ds-slider-tick-pct":String(this.percent(s.value))}},t("span",{class:"slider__tick-mark"}),s.label&&t("ds-text",{class:"slider__tick-label",as:"span",variant:"text-caption",color:"secondary"},s.label)))),s.map(((s,i)=>this.renderThumb(s,i)))))}static get formAssociated(){return true}get el(){return this}static get watchers(){return{value:[{syncFormValue:0}],min:[{syncFormValue:0}],max:[{syncFormValue:0}],step:[{syncFormValue:0}],ticks:[{syncFormValue:0}],minStepsBetweenValues:[{syncFormValue:0}],name:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}]}}static get style(){return u()}},[66,"ds-slider",{value:[1026],min:[2],max:[2],step:[8],ticks:[16],minStepsBetweenValues:[2,"min-steps-between-values"],label:[1],showValue:[4,"show-value"],size:[1],orientation:[1],thumbAlignment:[1,"thumb-alignment"],name:[513],form:[513],disabled:[516],readOnly:[516,"read-only"],isInactive:[4,"is-inactive"],ariaLabel:[1,"aria-label"],ariaLabelledby:[1,"aria-labelledby"],ariaDescribedby:[1,"aria-describedby"],startLabel:[1,"start-label"],endLabel:[1,"end-label"],valueText:[1,"value-text"],valueTexts:[16],locale:[1],formatOptions:[16],valuePrefix:[1,"value-prefix"],valueSuffix:[1,"value-suffix"],rangeSeparator:[1,"range-separator"],inputId:[1,"input-id"],formDisabled:[32],dragging:[32],focused:[32],touched:[32],activeThumbIndex:[32],externalLabelledby:[32],setFocus:[64]},undefined,{value:[{syncFormValue:0}],min:[{syncFormValue:0}],max:[{syncFormValue:0}],step:[{syncFormValue:0}],ticks:[{syncFormValue:0}],minStepsBetweenValues:[{syncFormValue:0}],name:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}]}]);function v(){if(typeof customElements==="undefined"){return}const s=["ds-slider","ds-text"];s.forEach((s=>{switch(s){case"ds-slider":if(!customElements.get(d(s))){customElements.define(d(s),m)}break;case"ds-text":if(!customElements.get(d(s))){l()}break}}))}v();const p=m;const _=v;export{p as DsSlider,_ as defineCustomElement};
2
2
  //# sourceMappingURL=ds-slider.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["sliderCss","sliderId","sliderExternalLabelId","Slider","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","value","min","max","step","ticks","minStepsBetweenValues","showValue","size","orientation","thumbAlignment","disabled","readOnly","isInactive","ariaLabel","startLabel","endLabel","valueTexts","valuePrefix","valueSuffix","rangeSeparator","formDisabled","dragging","focused","touched","activeThumbIndex","generatedId","labelId","initialValue","lastCommittedValue","pointerId","pointerStartValue","controlEl","handleNativeInput","event","index","input","target","isDisabled","String","resolvedValues","setValueAt","Number","handleNativeChange","commitIfChanged","handleKeyDown","keys","resolvedTicks","length","includes","key","preventDefault","filter","tick","allowedMin","allowedMax","current","forward","next","find","reverse","handleFocus","handleBlur","relatedTarget","Node","el","contains","handleHostClick","inputs","querySelectorAll","Math","focus","handlePointerDown","button","valueFromPointer","closestThumbIndex","cloneValue","publicValue","setPointerCapture","requestAnimationFrame","preventScroll","handlePointerMove","componentWillLoad","syncFormValue","componentDidLoad","syncNativeLabels","values","isRange","setRepeatedFormControlValue","internals","name","inactive","setFormControlValue","state","formDisabledCallback","formResetCallback","formStateRestoreCallback","restored","restoreNumberArrayFormState","restoreStringFormState","isFinite","setFocus","Array","isArray","safeStep","unique","Map","safeMin","safeMax","set","sort","a","b","minimum","minimumGap","steps","floor","span","maximum","snap","raw","lower","upper","gap","valuesEqual","every","decimalPlaces","text","toLowerCase","split","reduce","nearest","abs","candidate","stepped","round","precision","toFixed","percent","previous","constrained","nextValue","dsChange","emit","dsCommit","label","ariaLabelledby","ids","from","labels","map","id","externalLabelledby","join","formattedValue","authored","valueText","number","numberFormatter","locale","formatOptions","format","ariaValueText","some","undefined","pointerPercent","control","rect","getBoundingClientRect","thumb","querySelector","thumbSize","offsetWidth","offsetHeight","inset","travel","height","bottom","clientY","width","clientX","left","targetElement","closest","dataset","lowerDistance","upperDistance","endPointerInteraction","canceled","hasPointerCapture","releasePointerCapture","renderThumb","inputId","rangeLabel","labelledby","directLabel","h","class","slider__thumb","style","type","ariaDescribedby","onInput","onChange","onKeyDown","onFocus","onBlur","render","first","last","firstInputId","dirty","valueDisplay","Host","slider","Boolean","onClick","as","variant","color","emphasis","for","textId","fontFeature","ref","element","onPointerDown","onPointerMove","onPointerUp","onPointerCancel"],"sources":["src/wc/components/Slider/Slider.css?tag=ds-slider&encapsulation=scoped","src/wc/components/Slider/Slider.tsx"],"sourcesContent":["@import '../../utils/control-inactive.css';\n@import '../../utils/field-stack.css';\n@import '../../utils/forced-colors.css';\n\n:host {\n --ds-slider-control-size: var(--dimension-size-400);\n --ds-slider-thumb-size: var(--dimension-size-200);\n --ds-slider-track-size: var(--dimension-size-100);\n --ds-slider-track-stroke: var(--dimension-stroke-width-012);\n --ds-slider-vertical-length: calc(var(--dimension-size-800) * 3);\n box-sizing: border-box;\n width: 100%;\n color: var(--color-foreground-primary);\n}\n\n:host(.slider--sm) {\n --ds-slider-control-size: var(--dimension-size-300);\n --ds-slider-thumb-size: var(--dimension-size-150);\n --ds-slider-track-size: var(--dimension-size-075);\n}\n\n:host(.slider--xs) {\n --ds-slider-control-size: var(--dimension-size-200);\n --ds-slider-thumb-size: var(--dimension-size-100);\n --ds-slider-track-size: var(--dimension-size-050);\n}\n\n:host(.slider--vertical) {\n width: fit-content;\n min-width: var(--dimension-form-width-xs);\n}\n\n.slider__label-row {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: var(--dimension-space-100);\n min-width: 0;\n}\n\n.slider__label {\n min-width: 0;\n}\n\n.slider__value {\n flex-shrink: 0;\n}\n\n.slider__control {\n position: relative;\n width: 100%;\n height: var(--ds-slider-control-size);\n border-radius: var(--dimension-radius-half);\n cursor: default;\n touch-action: none;\n user-select: none;\n}\n\n:host(.slider--vertical) .slider__control {\n align-self: center;\n width: var(--ds-slider-control-size);\n height: var(--ds-slider-vertical-length);\n}\n\n:host(.slider--readonly) .slider__control {\n cursor: default;\n}\n\n/* Inactive: `.ds-control-inactive` (50% opacity) on the host. */\n:host(.ds-control-inactive) .slider__control {\n cursor: not-allowed;\n}\n\n.slider__rail {\n position: absolute;\n top: 50%;\n right: 0;\n left: 0;\n height: var(--ds-slider-track-size);\n overflow: hidden;\n border-radius: var(--dimension-radius-025);\n background-color: transparent;\n box-shadow: inset 0 0 0 var(--ds-slider-track-stroke) var(--color-border-secondary);\n transform: translateY(-50%);\n pointer-events: none;\n}\n\n:host(.slider--thumb-center) .slider__rail {\n right: calc(var(--ds-slider-thumb-size) / 2);\n left: calc(var(--ds-slider-thumb-size) / 2);\n}\n\n.slider__indicator {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n border-radius: inherit;\n background-color: var(--color-background-bold-brand);\n}\n\n:host(.slider--range) .slider__indicator {\n left: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n width: calc(\n ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n}\n\n:host(.slider--thumb-center) .slider__indicator {\n left: calc(var(--ds-slider-start-pct, 0) * 1%);\n width: calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%);\n}\n\n.slider__thumb {\n position: absolute;\n top: 50%;\n left: calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));\n width: var(--ds-slider-thumb-size);\n height: var(--ds-slider-thumb-size);\n transform: translateY(-50%);\n z-index: 1;\n}\n\n.slider__thumb--active {\n z-index: 2;\n}\n\n.slider__input {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n border: 0;\n opacity: 0;\n appearance: none;\n pointer-events: none;\n z-index: 2;\n}\n\n.slider__thumb-visual {\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n overflow: visible;\n border-radius: var(--dimension-radius-025);\n background-color: var(--color-background-primary);\n box-shadow: var(--effect-elevation-elevated-sm);\n pointer-events: none;\n transition:\n background-color var(--effect-motion-short-2),\n box-shadow var(--effect-motion-short-2);\n}\n\n.slider__thumb-wash {\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background-color: transparent;\n transition: background-color var(--effect-motion-short-2);\n}\n\n@media (hover: hover) and (pointer: fine) {\n :host(:not(.slider--readonly):not(.ds-control-inactive))\n .slider__thumb:hover\n .slider__thumb-wash {\n background-color: var(--color-interaction-hover);\n }\n}\n\n:host([data-dragging]:not(.slider--readonly):not(.ds-control-inactive))\n .slider__thumb--active\n .slider__thumb-wash {\n background-color: var(--color-interaction-pressed);\n}\n\n.slider__input:focus-visible + .slider__thumb-visual,\n:host([data-review-focus]) .slider__thumb[data-index='0'] .slider__thumb-visual {\n outline: var(--dimension-stroke-width-025) solid var(--color-interaction-focus);\n outline-offset: var(--dimension-space-025);\n}\n\n:host(.slider--vertical) .slider__rail {\n top: 0;\n right: auto;\n bottom: 0;\n left: 50%;\n width: var(--ds-slider-track-size);\n height: auto;\n transform: translateX(-50%);\n}\n\n:host(.slider--vertical.slider--thumb-center) .slider__rail {\n top: calc(var(--ds-slider-thumb-size) / 2);\n bottom: calc(var(--ds-slider-thumb-size) / 2);\n}\n\n:host(.slider--vertical) .slider__indicator {\n top: auto;\n right: 0;\n bottom: 0;\n left: 0;\n width: auto;\n height: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n}\n\n:host(.slider--vertical.slider--range) .slider__indicator {\n bottom: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n height: calc(\n ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n}\n\n:host(.slider--vertical.slider--thumb-center) .slider__indicator {\n bottom: calc(var(--ds-slider-start-pct, 0) * 1%);\n height: calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%);\n}\n\n:host(.slider--vertical) .slider__thumb {\n top: auto;\n bottom: calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));\n left: 50%;\n transform: translateX(-50%);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .slider__thumb-visual,\n .slider__thumb-wash {\n transition: none;\n }\n}\n\n@media (forced-colors: active) {\n .slider__rail {\n border: var(--ds-slider-track-stroke) solid var(--ds-forced-color-content);\n box-shadow: none;\n }\n\n .slider__indicator {\n background-color: var(--ds-forced-color-selected);\n }\n\n .slider__thumb-visual {\n border: var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);\n background-color: var(--ds-forced-color-surface);\n box-shadow: none;\n }\n\n .slider__input:focus-visible + .slider__thumb-visual,\n :host([data-review-focus]) .slider__thumb[data-index='0'] .slider__thumb-visual {\n outline-color: var(--ds-forced-color-selected);\n }\n}\n\n.slider__tick {\n position: absolute;\n top: calc(\n 50% + var(--ds-slider-track-size) / 2 + var(--dimension-space-050) + var(--dimension-space-012)\n );\n left: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-tick-pct) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n transform: translateX(-50%);\n pointer-events: none;\n}\n.slider__tick-mark {\n display: block;\n width: var(--dimension-stroke-width-025);\n height: var(--dimension-stroke-width-025);\n border-radius: var(--dimension-radius-half);\n background: var(--color-foreground-tertiary);\n}\n.slider__tick-label {\n width: max-content;\n max-width: none;\n position: absolute;\n top: calc(100% + var(--dimension-space-050));\n left: 50%;\n transform: translateX(-50%);\n white-space: nowrap;\n}\n:host(:not(.slider--vertical)) .slider__control {\n container-type: inline-size;\n}\n:host(:not(.slider--vertical)) .slider__tick-label {\n /* Center on the tick, clamping only when the text reaches the control edges. */\n --ds-slider-label-anchor: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-tick-pct) / 100) *\n (100cqw - var(--ds-slider-thumb-size))\n );\n transform: translateX(\n clamp(\n calc(-1 * var(--ds-slider-label-anchor)),\n -50%,\n calc(100cqw - var(--ds-slider-label-anchor) - 100%)\n )\n );\n}\n:host(.slider--tick-labels:not(.slider--vertical)) .slider__control {\n margin-bottom: var(--dimension-space-200);\n}\n:host(.slider--vertical) .slider__tick {\n top: auto;\n bottom: calc(\n var(--ds-slider-thumb-size) / 2 + (var(--ds-slider-tick-pct) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n left: calc(50% + var(--ds-slider-track-size) / 2 + var(--dimension-space-050));\n transform: translateY(50%);\n}\n:host(.slider--vertical) .slider__tick-label {\n top: 50%;\n left: calc(100% + var(--dimension-space-050));\n transform: translateY(-50%);\n}\n","import { numberFormatter } from '../../utils/intl-formatters';\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport {\n restoreNumberArrayFormState,\n restoreStringFormState,\n setFormControlValue,\n setRepeatedFormControlValue,\n} from '../../utils';\n\nexport interface SliderTick {\n value: number;\n label?: string;\n}\n\nexport type SliderValue = number | number[];\nexport type SliderSize = 'md' | 'sm' | 'xs';\nexport type SliderOrientation = 'horizontal' | 'vertical';\nexport type SliderThumbAlignment = 'edge' | 'center';\n\nlet sliderId = 0;\nlet sliderExternalLabelId = 0;\n\n@Component({\n tag: 'ds-slider',\n styleUrl: 'Slider.css',\n scoped: true,\n formAssociated: true,\n})\nexport class Slider {\n @Element() el!: HTMLElement;\n @AttachInternals() internals!: ElementInternals;\n\n /** Current value. Assign a two-number array through the JavaScript property for a range slider. */\n @Prop({ mutable: true }) value: SliderValue = 0;\n @Prop() min: number = 0;\n @Prop() max: number = 100;\n @Prop() step: number | 'any' = 1;\n /** Explicit ticks are the selectable snap points. Empty ticks with step='any' allow smooth adjustment. */\n @Prop() ticks: SliderTick[] = [];\n /** Minimum number of steps kept between two range thumbs. */\n @Prop() minStepsBetweenValues: number = 0;\n /** Visible field label. Supply aria-label when the label is intentionally hidden. */\n @Prop() label: string | undefined;\n /** Show the formatted current value beside the visible label. */\n @Prop() showValue: boolean = true;\n @Prop() size: SliderSize = 'md';\n @Prop() orientation: SliderOrientation = 'horizontal';\n /** Align the thumb edge with full-width rail endpoints, or its center with inset rail endpoints. */\n @Prop() thumbAlignment: SliderThumbAlignment = 'edge';\n @Prop({ reflect: true }) name: string | undefined;\n @Prop({ reflect: true }) form: string | undefined;\n @Prop({ reflect: true }) disabled: boolean = false;\n /** Keep the value focusable and submittable while preventing changes. */\n @Prop({ reflect: true }) readOnly: boolean = false;\n @Prop() isInactive: boolean = false;\n /** Direct accessible name for a single-thumb slider without a visible label. */\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n /** Id references for a visible single-thumb slider label. */\n @Prop({ attribute: 'aria-labelledby' }) ariaLabelledby: string | undefined;\n /** Id references for supporting guidance or error text. */\n @Prop({ attribute: 'aria-describedby' }) ariaDescribedby: string | undefined;\n /** Accessible label for the lower thumb in a range slider. */\n @Prop() startLabel: string = 'Minimum value';\n /** Accessible label for the upper thumb in a range slider. */\n @Prop() endLabel: string = 'Maximum value';\n /** Human-readable value text for a single slider or both range thumbs. */\n @Prop() valueText: string | undefined;\n /** Per-thumb human-readable value text for a range slider. Assign through the JavaScript property. */\n @Prop() valueTexts: string[] = [];\n /** Locale used for the visible value. Defaults to English (en-US). */\n @Prop() locale: string | undefined;\n /** Intl.NumberFormat options. Assign objects through the JavaScript property. */\n @Prop() formatOptions: Intl.NumberFormatOptions | undefined;\n @Prop() valuePrefix: string = '';\n @Prop() valueSuffix: string = '';\n @Prop() rangeSeparator: string = '–';\n /** Id applied to the first native range input. */\n @Prop() inputId: string | undefined;\n\n /** Emitted continuously while the value changes. */\n @Event() dsChange!: EventEmitter<SliderValue>;\n /** Emitted when a pointer or keyboard value change is committed. */\n @Event() dsCommit!: EventEmitter<SliderValue>;\n\n @State() private formDisabled = false;\n @State() private dragging = false;\n @State() private focused = false;\n @State() private touched = false;\n @State() private activeThumbIndex = 0;\n @State() private externalLabelledby: string | undefined;\n\n private readonly generatedId = `ds-slider-${++sliderId}`;\n private readonly labelId = `${this.generatedId}-label`;\n private initialValue: SliderValue = 0;\n private lastCommittedValue: SliderValue = 0;\n private pointerId: number | null = null;\n private pointerStartValue: SliderValue = 0;\n private controlEl: HTMLDivElement | null = null;\n\n componentWillLoad() {\n this.initialValue = this.cloneValue(this.publicValue);\n this.lastCommittedValue = this.cloneValue(this.publicValue);\n this.syncFormValue();\n }\n\n componentDidLoad() {\n this.syncNativeLabels();\n }\n\n @Watch('value')\n @Watch('min')\n @Watch('max')\n @Watch('step')\n @Watch('ticks')\n @Watch('minStepsBetweenValues')\n @Watch('name')\n @Watch('disabled')\n @Watch('isInactive')\n syncFormValue() {\n const values = this.resolvedValues;\n if (this.isRange) {\n setRepeatedFormControlValue(this.internals, this.name, values, {\n inactive: this.isDisabled,\n });\n } else {\n const value = String(values[0]);\n setFormControlValue(this.internals, this.name ? value : null, {\n inactive: this.isDisabled,\n state: value,\n });\n }\n }\n\n formDisabledCallback(disabled: boolean) {\n this.formDisabled = disabled;\n this.syncFormValue();\n }\n\n formResetCallback() {\n this.value = this.cloneValue(this.initialValue);\n this.lastCommittedValue = this.cloneValue(this.initialValue);\n this.dragging = false;\n this.focused = false;\n this.touched = false;\n }\n\n formStateRestoreCallback(state: string | File | FormData | null) {\n if (this.isRange) {\n const restored = restoreNumberArrayFormState(state, 2);\n this.value = restored.length ? restored : this.cloneValue(this.initialValue);\n } else {\n const restored = Number(restoreStringFormState(state, 'NaN'));\n if (Number.isFinite(restored)) this.value = restored;\n }\n this.lastCommittedValue = this.cloneValue(this.publicValue);\n }\n\n @Method()\n async setFocus(index: number = 0) {\n const inputs = this.el.querySelectorAll<HTMLInputElement>('.slider__input');\n inputs[Math.max(0, Math.min(index, inputs.length - 1))]?.focus();\n }\n\n private get isDisabled(): boolean {\n return this.disabled || this.isInactive || this.formDisabled;\n }\n\n private get isRange(): boolean {\n return Array.isArray(this.value);\n }\n\n private get safeStep(): number {\n const step = Number(this.step);\n return Number.isFinite(step) && step > 0 ? step : 1;\n }\n\n private get resolvedTicks(): SliderTick[] {\n const unique = new Map<number, SliderTick>();\n for (const tick of this.ticks) {\n if (Number.isFinite(tick.value) && tick.value >= this.safeMin && tick.value <= this.safeMax)\n unique.set(tick.value, tick);\n }\n return [...unique.values()].sort((a, b) => a.value - b.value);\n }\n\n private get safeMin(): number {\n return Number.isFinite(this.min) ? this.min : 0;\n }\n\n private get safeMax(): number {\n const minimum = this.safeMin;\n return Number.isFinite(this.max) && this.max > minimum ? this.max : minimum + this.safeStep;\n }\n\n private get minimumGap(): number {\n const steps = Number.isFinite(this.minStepsBetweenValues)\n ? Math.max(0, Math.floor(this.minStepsBetweenValues))\n : 0;\n const ticks = this.resolvedTicks;\n const span = ticks.length\n ? ticks[ticks.length - 1].value - ticks[0].value\n : this.safeMax - this.safeMin;\n return Math.min(span, steps * this.safeStep);\n }\n\n private get resolvedValues(): number[] {\n const minimum = this.safeMin;\n const maximum = this.safeMax;\n if (!this.isRange) return [this.snap(Number(this.value))];\n\n const raw = this.value as number[];\n let lower = this.snap(Number(raw[0] ?? minimum));\n let upper = this.snap(Number(raw[1] ?? maximum));\n if (lower > upper) [lower, upper] = [upper, lower];\n\n const gap = Math.min(this.minimumGap, maximum - minimum);\n if (upper - lower < gap) {\n upper = Math.min(maximum, this.snap(lower + gap));\n lower = Math.max(minimum, this.snap(upper - gap));\n const ticks = this.resolvedTicks;\n if (ticks.length && upper - lower < gap) {\n upper =\n ticks.find(tick => tick.value >= lower + gap)?.value ?? ticks[ticks.length - 1].value;\n lower =\n [...ticks].reverse().find(tick => tick.value <= upper - gap)?.value ?? ticks[0].value;\n }\n }\n return [lower, upper];\n }\n\n private get publicValue(): SliderValue {\n const values = this.resolvedValues;\n return this.isRange ? [...values] : values[0];\n }\n\n private cloneValue(value: SliderValue): SliderValue {\n return Array.isArray(value) ? [...value] : value;\n }\n\n private valuesEqual(a: SliderValue, b: SliderValue): boolean {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((value, index) => value === b[index]);\n }\n return !Array.isArray(a) && !Array.isArray(b) && a === b;\n }\n\n private decimalPlaces(value: number): number {\n const text = String(value).toLowerCase();\n if (text.includes('e-')) return Number(text.split('e-')[1]) || 0;\n return text.includes('.') ? text.split('.')[1].length : 0;\n }\n\n private snap(value: number, minimum = this.safeMin, maximum = this.safeMax): number {\n const ticks = this.resolvedTicks.filter(tick => tick.value >= minimum && tick.value <= maximum);\n if (ticks.length)\n return ticks.reduce((nearest, tick) =>\n Math.abs(tick.value - value) < Math.abs(nearest.value - value) ? tick : nearest\n ).value;\n if (this.step === 'any')\n return Math.min(maximum, Math.max(minimum, Number.isFinite(value) ? value : minimum));\n const candidate = Number.isFinite(value) ? value : minimum;\n const stepped = minimum + Math.round((candidate - minimum) / this.safeStep) * this.safeStep;\n const precision = Math.min(\n 10,\n Math.max(\n this.decimalPlaces(minimum),\n this.decimalPlaces(maximum),\n this.decimalPlaces(this.safeStep)\n )\n );\n return Number(Math.min(maximum, Math.max(minimum, stepped)).toFixed(precision));\n }\n\n private percent(value: number): number {\n return ((value - this.safeMin) / (this.safeMax - this.safeMin)) * 100;\n }\n\n private allowedMin(index: number, values = this.resolvedValues): number {\n return this.isRange && index === 1\n ? Math.min(this.safeMax, values[0] + this.minimumGap)\n : this.safeMin;\n }\n\n private allowedMax(index: number, values = this.resolvedValues): number {\n return this.isRange && index === 0\n ? Math.max(this.safeMin, values[1] - this.minimumGap)\n : this.safeMax;\n }\n\n private setValueAt(index: number, next: number): boolean {\n const previous = this.publicValue;\n const values = this.resolvedValues;\n const constrained = Math.min(\n this.allowedMax(index, values),\n Math.max(\n this.allowedMin(index, values),\n this.snap(next, this.allowedMin(index, values), this.allowedMax(index, values))\n )\n );\n values[index] = constrained;\n const nextValue: SliderValue = this.isRange ? [...values] : values[0];\n if (this.valuesEqual(previous, nextValue)) return false;\n\n this.value = nextValue;\n this.dsChange.emit(this.cloneValue(nextValue));\n return true;\n }\n\n private commitIfChanged() {\n const current = this.publicValue;\n if (this.valuesEqual(current, this.lastCommittedValue)) return;\n this.lastCommittedValue = this.cloneValue(current);\n this.dsCommit.emit(this.cloneValue(current));\n }\n\n private syncNativeLabels() {\n if (this.label || this.ariaLabel || this.ariaLabelledby || this.isRange) return;\n const ids = (Array.from(this.internals.labels) as HTMLLabelElement[]).map(label => {\n if (!label.id) label.id = `ds-slider-label-${++sliderExternalLabelId}`;\n return label.id;\n });\n if (ids.length) this.externalLabelledby = ids.join(' ');\n }\n\n private formattedValue(value: number, index: number): string {\n const authored =\n this.valueTexts[index] ??\n this.valueText ??\n this.resolvedTicks.find(tick => tick.value === value)?.label;\n if (authored) return authored;\n let number: string;\n try {\n number = numberFormatter(this.locale, this.formatOptions).format(value);\n } catch {\n number = String(value);\n }\n return `${this.valuePrefix}${number}${this.valueSuffix}`;\n }\n\n private ariaValueText(value: number, index: number): string | undefined {\n if (\n this.resolvedTicks.some(tick => tick.value === value && tick.label) ||\n this.valueTexts[index] ||\n this.valueText ||\n this.valuePrefix ||\n this.valueSuffix ||\n this.formatOptions\n ) {\n return this.formattedValue(value, index);\n }\n return undefined;\n }\n\n private handleNativeInput = (event: Event, index: number) => {\n const input = event.target as HTMLInputElement;\n this.activeThumbIndex = index;\n if (this.readOnly || this.isDisabled) {\n input.value = String(this.resolvedValues[index]);\n return;\n }\n this.setValueAt(index, Number(input.value));\n };\n\n private handleNativeChange = () => {\n if (!this.readOnly && !this.isDisabled) this.commitIfChanged();\n };\n\n private handleKeyDown = (event: KeyboardEvent, index: number) => {\n const keys = [\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n ];\n if (!this.readOnly && this.resolvedTicks.length && keys.includes(event.key)) {\n event.preventDefault();\n if (this.isDisabled) return;\n const ticks = this.resolvedTicks.filter(\n tick => tick.value >= this.allowedMin(index) && tick.value <= this.allowedMax(index)\n );\n const current = this.resolvedValues[index];\n const forward = ['ArrowRight', 'ArrowUp', 'PageUp'].includes(event.key);\n const next =\n event.key === 'Home'\n ? ticks[0]\n : event.key === 'End'\n ? ticks[ticks.length - 1]\n : forward\n ? ticks.find(tick => tick.value > current)\n : [...ticks].reverse().find(tick => tick.value < current);\n if (next && this.setValueAt(index, next.value)) this.commitIfChanged();\n return;\n }\n if (!this.readOnly) return;\n if (\n [\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n ].includes(event.key)\n ) {\n event.preventDefault();\n }\n };\n\n private handleFocus = (index: number) => {\n this.activeThumbIndex = index;\n this.focused = true;\n };\n\n private handleBlur = (event: FocusEvent) => {\n const next = event.relatedTarget;\n if (next instanceof Node && this.el.contains(next)) return;\n this.focused = false;\n this.touched = true;\n };\n\n private handleHostClick = (event: MouseEvent) => {\n if (event.target !== this.el || this.isDisabled) return;\n const inputs = this.el.querySelectorAll<HTMLInputElement>('.slider__input');\n inputs[Math.min(this.activeThumbIndex, inputs.length - 1)]?.focus();\n };\n\n private pointerPercent(event: PointerEvent): number {\n const control = this.controlEl;\n if (!control) return 0;\n const rect = control.getBoundingClientRect();\n const thumb = this.el.querySelector<HTMLElement>('.slider__thumb');\n const thumbSize = thumb\n ? this.orientation === 'horizontal'\n ? thumb.offsetWidth\n : thumb.offsetHeight\n : 0;\n // Both alignment modes keep the complete thumb inside the control. Edge\n // alignment lets the rail span the control while center alignment insets\n // the rail to the same thumb-center travel.\n const inset = thumbSize / 2;\n\n if (this.orientation === 'vertical') {\n const travel = Math.max(1, rect.height - inset * 2);\n return Math.min(1, Math.max(0, (rect.bottom - inset - event.clientY) / travel));\n }\n\n const travel = Math.max(1, rect.width - inset * 2);\n const percent = (event.clientX - rect.left - inset) / travel;\n return Math.min(1, Math.max(0, percent));\n }\n\n private valueFromPointer(event: PointerEvent): number {\n return this.snap(this.safeMin + this.pointerPercent(event) * (this.safeMax - this.safeMin));\n }\n\n private closestThumbIndex(value: number, target: EventTarget | null): number {\n const targetElement =\n target instanceof HTMLElement ? target.closest<HTMLElement>('.slider__thumb') : null;\n if (targetElement?.dataset['index']) return Number(targetElement.dataset['index']);\n if (!this.isRange) return 0;\n\n const values = this.resolvedValues;\n const lowerDistance = Math.abs(value - values[0]);\n const upperDistance = Math.abs(value - values[1]);\n if (lowerDistance === upperDistance) return value >= values[0] ? 1 : 0;\n return lowerDistance < upperDistance ? 0 : 1;\n }\n\n private handlePointerDown = (event: PointerEvent) => {\n if (event.button !== 0 || this.isDisabled || this.readOnly) return;\n event.preventDefault();\n const value = this.valueFromPointer(event);\n const index = this.closestThumbIndex(value, event.target);\n this.activeThumbIndex = index;\n this.pointerId = event.pointerId;\n this.pointerStartValue = this.cloneValue(this.publicValue);\n this.dragging = true;\n this.setValueAt(index, value);\n this.controlEl?.setPointerCapture(event.pointerId);\n requestAnimationFrame(() => {\n const input = this.el.querySelectorAll<HTMLInputElement>('.slider__input')[index];\n input?.focus({ preventScroll: true });\n });\n };\n\n private handlePointerMove = (event: PointerEvent) => {\n if (this.pointerId !== event.pointerId || !this.dragging) return;\n event.preventDefault();\n this.setValueAt(this.activeThumbIndex, this.valueFromPointer(event));\n };\n\n private endPointerInteraction(event: PointerEvent, canceled: boolean) {\n if (this.pointerId !== event.pointerId) return;\n if (this.controlEl?.hasPointerCapture(event.pointerId))\n this.controlEl.releasePointerCapture(event.pointerId);\n this.pointerId = null;\n this.dragging = false;\n this.touched = true;\n if (!canceled && !this.valuesEqual(this.pointerStartValue, this.publicValue))\n this.commitIfChanged();\n }\n\n private renderThumb(value: number, index: number) {\n const inputId =\n index === 0\n ? (this.inputId ?? `${this.generatedId}-input`)\n : `${this.inputId ?? `${this.generatedId}-input`}-end`;\n const rangeLabel = index === 0 ? this.startLabel : this.endLabel;\n const labelledby = this.isRange\n ? undefined\n : (this.ariaLabelledby ?? (this.label ? this.labelId : this.externalLabelledby));\n const directLabel = this.isRange ? rangeLabel : labelledby ? undefined : this.ariaLabel;\n\n return (\n <div\n class={{\n slider__thumb: true,\n 'slider__thumb--active': index === this.activeThumbIndex,\n }}\n data-index={String(index)}\n style={{ '--ds-slider-thumb-pct': String(this.percent(value)) } as Record<string, string>}\n >\n <input\n class=\"slider__input\"\n type=\"range\"\n id={inputId}\n min={this.allowedMin(index)}\n max={this.allowedMax(index)}\n step={this.resolvedTicks.length || this.step === 'any' ? 'any' : this.safeStep}\n value={value}\n disabled={this.isDisabled}\n aria-label={directLabel}\n aria-labelledby={labelledby}\n aria-describedby={this.ariaDescribedby}\n aria-valuetext={this.ariaValueText(value, index)}\n aria-orientation={this.orientation === 'vertical' ? 'vertical' : undefined}\n aria-readonly={this.readOnly ? 'true' : undefined}\n onInput={(event: Event) => this.handleNativeInput(event, index)}\n onChange={this.handleNativeChange}\n onKeyDown={event => this.handleKeyDown(event, index)}\n onFocus={() => this.handleFocus(index)}\n onBlur={this.handleBlur}\n />\n <span class=\"slider__thumb-visual\" aria-hidden=\"true\">\n <span class=\"slider__thumb-wash\" />\n </span>\n </div>\n );\n }\n\n render() {\n const values = this.resolvedValues;\n const first = values[0];\n const last = values[values.length - 1];\n const firstInputId = this.inputId ?? `${this.generatedId}-input`;\n const dirty = !this.valuesEqual(this.publicValue, this.initialValue);\n const valueDisplay = values\n .map((value, index) => this.formattedValue(value, index))\n .join(` ${this.rangeSeparator} `);\n\n return (\n <Host\n aria-disabled={this.isDisabled ? 'true' : undefined}\n class={{\n slider: true,\n 'ds-field-stack': true,\n [`slider--${this.size}`]: true,\n [`slider--${this.orientation}`]: true,\n [`slider--thumb-${this.thumbAlignment}`]: true,\n 'slider--range': this.isRange,\n 'slider--ticks': this.resolvedTicks.length > 0,\n 'slider--tick-labels': this.resolvedTicks.some(tick => Boolean(tick.label)),\n 'slider--readonly': this.readOnly,\n 'ds-control-inactive': this.isDisabled,\n }}\n data-orientation={this.orientation}\n data-disabled={this.isDisabled ? '' : undefined}\n data-readonly={this.readOnly ? '' : undefined}\n data-dragging={this.dragging ? '' : undefined}\n data-focused={this.focused ? '' : undefined}\n data-filled=\"\"\n data-dirty={dirty ? '' : undefined}\n data-touched={this.touched ? '' : undefined}\n data-valid={!this.isDisabled ? '' : undefined}\n onClick={this.handleHostClick}\n >\n {(this.label || this.showValue) && (\n <div class=\"slider__label-row\">\n {this.label && (\n <ds-text\n class=\"slider__label\"\n as=\"label\"\n variant=\"text-body-small\"\n color=\"primary\"\n emphasis\n for={firstInputId}\n textId={this.labelId}\n >\n {this.label}\n </ds-text>\n )}\n {this.showValue && (\n <ds-text\n class=\"slider__value\"\n as=\"span\"\n variant=\"text-body-small\"\n color=\"primary\"\n fontFeature=\"tabular-nums\"\n >\n {valueDisplay}\n </ds-text>\n )}\n </div>\n )}\n <div\n class=\"slider__control\"\n ref={element => {\n this.controlEl = element ?? null;\n }}\n style={\n {\n '--ds-slider-start-pct': String(this.isRange ? this.percent(first) : 0),\n '--ds-slider-end-pct': String(this.percent(last)),\n } as Record<string, string>\n }\n onPointerDown={this.handlePointerDown}\n onPointerMove={this.handlePointerMove}\n onPointerUp={(event: PointerEvent) => this.endPointerInteraction(event, false)}\n onPointerCancel={(event: PointerEvent) => this.endPointerInteraction(event, true)}\n >\n <div class=\"slider__rail\" aria-hidden=\"true\">\n <div class=\"slider__indicator\" />\n </div>\n {this.resolvedTicks.map(tick => (\n <span\n class=\"slider__tick\"\n data-edge={\n tick.value === this.safeMin\n ? 'start'\n : tick.value === this.safeMax\n ? 'end'\n : undefined\n }\n aria-hidden=\"true\"\n style={{ '--ds-slider-tick-pct': String(this.percent(tick.value)) }}\n >\n <span class=\"slider__tick-mark\" />\n {tick.label && (\n <ds-text\n class=\"slider__tick-label\"\n as=\"span\"\n variant=\"text-caption\"\n color=\"secondary\"\n >\n {tick.label}\n </ds-text>\n )}\n </span>\n ))}\n {values.map((value, index) => this.renderThumb(value, index))}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["sliderCss","sliderId","sliderExternalLabelId","Slider","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","value","min","max","step","ticks","minStepsBetweenValues","showValue","size","orientation","thumbAlignment","disabled","readOnly","isInactive","ariaLabel","startLabel","endLabel","valueTexts","valuePrefix","valueSuffix","rangeSeparator","formDisabled","dragging","focused","touched","activeThumbIndex","generatedId","labelId","initialValue","lastCommittedValue","pointerId","pointerStartValue","controlEl","handleNativeInput","event","index","input","target","isDisabled","String","resolvedValues","setValueAt","Number","handleNativeChange","commitIfChanged","handleKeyDown","keys","resolvedTicks","length","includes","key","preventDefault","filter","tick","allowedMin","allowedMax","current","forward","next","find","reverse","handleFocus","handleBlur","relatedTarget","Node","el","contains","handleHostClick","inputs","querySelectorAll","Math","focus","handlePointerDown","button","valueFromPointer","closestThumbIndex","cloneValue","publicValue","setPointerCapture","requestAnimationFrame","preventScroll","handlePointerMove","componentWillLoad","syncFormValue","componentDidLoad","syncNativeLabels","values","isRange","setRepeatedFormControlValue","internals","name","inactive","setFormControlValue","state","formDisabledCallback","formResetCallback","formStateRestoreCallback","restored","restoreNumberArrayFormState","restoreStringFormState","isFinite","setFocus","Array","isArray","safeStep","unique","Map","safeMin","safeMax","set","sort","a","b","minimum","minimumGap","steps","floor","span","maximum","snap","raw","lower","upper","gap","valuesEqual","every","decimalPlaces","text","toLowerCase","split","reduce","nearest","abs","candidate","stepped","round","precision","toFixed","percent","previous","constrained","nextValue","dsChange","emit","dsCommit","label","ariaLabelledby","ids","from","labels","map","id","externalLabelledby","join","formattedValue","authored","valueText","number","numberFormatter","locale","formatOptions","format","ariaValueText","some","undefined","pointerPercent","control","rect","getBoundingClientRect","endpoint","querySelector","endpointSize","offsetWidth","offsetHeight","inset","travel","height","bottom","clientY","width","clientX","left","targetElement","closest","dataset","lowerDistance","upperDistance","endPointerInteraction","canceled","hasPointerCapture","releasePointerCapture","renderThumb","inputId","rangeLabel","labelledby","directLabel","h","class","slider__thumb","style","type","ariaDescribedby","onInput","onChange","onKeyDown","onFocus","onBlur","render","first","last","firstInputId","dirty","valueDisplay","Host","slider","Boolean","onClick","as","variant","color","emphasis","for","textId","fontFeature","ref","element","onPointerDown","onPointerMove","onPointerUp","onPointerCancel"],"sources":["src/wc/components/Slider/Slider.css?tag=ds-slider&encapsulation=scoped","src/wc/components/Slider/Slider.tsx"],"sourcesContent":["@import '../../utils/control-inactive.css';\n@import '../../utils/field-stack.css';\n@import '../../utils/forced-colors.css';\n\n:host {\n --ds-slider-control-size: var(--dimension-size-400);\n --ds-slider-track-size: var(--dimension-size-100);\n --ds-slider-thumb-size: calc(\n var(--ds-slider-track-size) + var(--dimension-space-050) + var(--dimension-space-050)\n );\n --ds-slider-endpoint-size: var(--ds-slider-track-size);\n --ds-slider-thumb-overhang: calc(\n (var(--ds-slider-thumb-size) - var(--ds-slider-endpoint-size)) / 2\n );\n --ds-slider-track-stroke: var(--dimension-stroke-width-012);\n --ds-slider-vertical-length: calc(var(--dimension-size-800) * 3);\n box-sizing: border-box;\n width: 100%;\n color: var(--color-foreground-primary);\n}\n\n:host(.slider--sm) {\n --ds-slider-control-size: var(--dimension-size-300);\n --ds-slider-track-size: var(--dimension-size-075);\n}\n\n:host(.slider--xs) {\n --ds-slider-control-size: var(--dimension-size-200);\n --ds-slider-track-size: var(--dimension-size-050);\n}\n\n:host(.slider--thumb-center) {\n --ds-slider-endpoint-size: var(--ds-slider-thumb-size);\n}\n\n:host(.slider--vertical) {\n width: fit-content;\n min-width: var(--dimension-form-width-xs);\n}\n\n.slider__label-row {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: var(--dimension-space-100);\n min-width: 0;\n}\n\n.slider__label {\n min-width: 0;\n}\n\n.slider__value {\n flex-shrink: 0;\n}\n\n.slider__control {\n position: relative;\n width: 100%;\n height: var(--ds-slider-control-size);\n border-radius: var(--dimension-radius-half);\n cursor: default;\n touch-action: none;\n user-select: none;\n}\n\n:host(.slider--vertical) .slider__control {\n align-self: center;\n width: var(--ds-slider-control-size);\n height: var(--ds-slider-vertical-length);\n}\n\n:host(.slider--readonly) .slider__control {\n cursor: default;\n}\n\n/* Inactive: `.ds-control-inactive` (50% opacity) on the host. */\n:host(.ds-control-inactive) .slider__control {\n cursor: not-allowed;\n}\n\n.slider__rail {\n position: absolute;\n top: 50%;\n right: 0;\n left: 0;\n height: var(--ds-slider-track-size);\n overflow: hidden;\n border-radius: var(--dimension-radius-half);\n background-color: var(--color-background-faint-neutral);\n box-shadow: inset 0 0 0 var(--ds-slider-track-stroke) var(--color-border-tertiary);\n transform: translateY(-50%);\n pointer-events: none;\n}\n\n:host(.slider--thumb-center) .slider__rail {\n right: calc(var(--ds-slider-thumb-size) / 2);\n left: calc(var(--ds-slider-thumb-size) / 2);\n}\n\n.slider__indicator {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: calc(\n var(--ds-slider-endpoint-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) *\n (100% - var(--ds-slider-endpoint-size))\n );\n border-radius: inherit;\n background-color: var(--color-background-bold-brand);\n}\n\n:host(.slider--range) .slider__indicator {\n left: calc(\n var(--ds-slider-endpoint-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) *\n (100% - var(--ds-slider-endpoint-size))\n );\n width: calc(\n ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) *\n (100% - var(--ds-slider-endpoint-size))\n );\n}\n\n:host(.slider--thumb-center) .slider__indicator {\n left: calc(var(--ds-slider-start-pct, 0) * 1%);\n width: calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%);\n}\n\n.slider__thumb {\n position: absolute;\n top: 50%;\n left: calc(\n (var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-endpoint-size)) -\n var(--ds-slider-thumb-overhang)\n );\n width: var(--ds-slider-thumb-size);\n height: var(--ds-slider-thumb-size);\n transform: translateY(-50%);\n z-index: 1;\n}\n\n.slider__thumb--active {\n z-index: 2;\n}\n\n.slider__input {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n border: 0;\n opacity: 0;\n appearance: none;\n pointer-events: none;\n z-index: 2;\n}\n\n.slider__thumb-visual {\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n overflow: visible;\n border-radius: var(--dimension-radius-half);\n background-color: var(--color-background-transparent);\n -webkit-backdrop-filter: blur(var(--effect-blur-sm));\n backdrop-filter: blur(var(--effect-blur-sm));\n box-shadow: var(--effect-elevation-elevated-md);\n pointer-events: none;\n transition:\n background-color var(--effect-motion-short-2),\n box-shadow var(--effect-motion-short-2);\n}\n\n.slider__thumb-wash {\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background-color: transparent;\n transition: background-color var(--effect-motion-short-2);\n}\n\n.slider__thumb-orb {\n position: absolute;\n top: 50%;\n left: 50%;\n box-sizing: border-box;\n width: var(--ds-slider-track-size);\n height: var(--ds-slider-track-size);\n border-radius: var(--dimension-radius-half);\n background-color: var(--color-background-bold-brand);\n box-shadow: inset 0 0 0 var(--ds-slider-track-stroke) var(--color-border-tertiary);\n transform: translate(-50%, -50%);\n}\n\n@media (hover: hover) and (pointer: fine) {\n :host(:not(.slider--readonly):not(.ds-control-inactive))\n .slider__thumb:hover\n .slider__thumb-wash {\n background-color: var(--color-interaction-hover);\n }\n}\n\n:host([data-dragging]:not(.slider--readonly):not(.ds-control-inactive))\n .slider__thumb--active\n .slider__thumb-wash {\n background-color: var(--color-interaction-pressed);\n}\n\n.slider__input:focus-visible + .slider__thumb-visual,\n:host([data-review-focus]) .slider__thumb[data-index='0'] .slider__thumb-visual {\n outline: var(--dimension-stroke-width-025) solid var(--color-interaction-focus);\n outline-offset: var(--dimension-space-025);\n}\n\n:host(.slider--vertical) .slider__rail {\n top: 0;\n right: auto;\n bottom: 0;\n left: 50%;\n width: var(--ds-slider-track-size);\n height: auto;\n transform: translateX(-50%);\n}\n\n:host(.slider--vertical.slider--thumb-center) .slider__rail {\n top: calc(var(--ds-slider-thumb-size) / 2);\n bottom: calc(var(--ds-slider-thumb-size) / 2);\n}\n\n:host(.slider--vertical) .slider__indicator {\n top: auto;\n right: 0;\n bottom: 0;\n left: 0;\n width: auto;\n height: calc(\n var(--ds-slider-endpoint-size) / 2 + (var(--ds-slider-end-pct, 0) / 100) *\n (100% - var(--ds-slider-endpoint-size))\n );\n}\n\n:host(.slider--vertical.slider--range) .slider__indicator {\n bottom: calc(\n var(--ds-slider-endpoint-size) / 2 + (var(--ds-slider-start-pct, 0) / 100) *\n (100% - var(--ds-slider-endpoint-size))\n );\n height: calc(\n ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) *\n (100% - var(--ds-slider-endpoint-size))\n );\n}\n\n:host(.slider--vertical.slider--thumb-center) .slider__indicator {\n bottom: calc(var(--ds-slider-start-pct, 0) * 1%);\n height: calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%);\n}\n\n:host(.slider--vertical) .slider__thumb {\n top: auto;\n bottom: calc(\n (var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-endpoint-size)) -\n var(--ds-slider-thumb-overhang)\n );\n left: 50%;\n transform: translateX(-50%);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .slider__thumb-visual,\n .slider__thumb-wash {\n transition: none;\n }\n}\n\n@media (forced-colors: active) {\n .slider__rail {\n border: var(--ds-slider-track-stroke) solid var(--ds-forced-color-content);\n box-shadow: none;\n }\n\n .slider__indicator {\n background-color: var(--ds-forced-color-selected);\n }\n\n .slider__thumb-visual {\n border: var(--dimension-stroke-width-012) solid var(--ds-forced-color-control-boundary);\n background-color: var(--ds-forced-color-surface);\n -webkit-backdrop-filter: none;\n backdrop-filter: none;\n box-shadow: none;\n }\n\n .slider__thumb-orb {\n border: var(--ds-slider-track-stroke) solid var(--ds-forced-color-on-selected);\n background-color: var(--ds-forced-color-selected);\n box-shadow: none;\n }\n\n .slider__input:focus-visible + .slider__thumb-visual,\n :host([data-review-focus]) .slider__thumb[data-index='0'] .slider__thumb-visual {\n outline-color: var(--ds-forced-color-selected);\n }\n}\n\n.slider__tick {\n position: absolute;\n top: calc(\n 50% + var(--ds-slider-track-size) / 2 + var(--dimension-space-050) + var(--dimension-space-012)\n );\n left: calc(\n var(--ds-slider-endpoint-size) / 2 + (var(--ds-slider-tick-pct) / 100) *\n (100% - var(--ds-slider-endpoint-size))\n );\n transform: translateX(-50%);\n pointer-events: none;\n}\n.slider__tick-mark {\n display: block;\n width: var(--dimension-stroke-width-025);\n height: var(--dimension-stroke-width-025);\n border-radius: var(--dimension-radius-half);\n background: var(--color-foreground-tertiary);\n}\n.slider__tick-label {\n width: max-content;\n max-width: none;\n position: absolute;\n top: calc(100% + var(--dimension-space-050));\n left: 50%;\n transform: translateX(-50%);\n white-space: nowrap;\n}\n:host(:not(.slider--vertical)) .slider__control {\n container-type: inline-size;\n}\n:host(:not(.slider--vertical)) .slider__tick-label {\n /* Center on the tick, clamping only when the text reaches the control edges. */\n --ds-slider-label-anchor: calc(\n var(--ds-slider-endpoint-size) / 2 + (var(--ds-slider-tick-pct) / 100) *\n (100cqw - var(--ds-slider-endpoint-size))\n );\n transform: translateX(\n clamp(\n calc(-1 * var(--ds-slider-label-anchor)),\n -50%,\n calc(100cqw - var(--ds-slider-label-anchor) - 100%)\n )\n );\n}\n:host(.slider--tick-labels:not(.slider--vertical)) .slider__control {\n margin-bottom: var(--dimension-space-200);\n}\n:host(.slider--vertical) .slider__tick {\n top: auto;\n bottom: calc(\n var(--ds-slider-endpoint-size) / 2 + (var(--ds-slider-tick-pct) / 100) *\n (100% - var(--ds-slider-endpoint-size))\n );\n left: calc(50% + var(--ds-slider-track-size) / 2 + var(--dimension-space-050));\n transform: translateY(50%);\n}\n:host(.slider--vertical) .slider__tick-label {\n top: 50%;\n left: calc(100% + var(--dimension-space-050));\n transform: translateY(-50%);\n}\n","import { numberFormatter } from '../../utils/intl-formatters';\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport {\n restoreNumberArrayFormState,\n restoreStringFormState,\n setFormControlValue,\n setRepeatedFormControlValue,\n} from '../../utils';\n\nexport interface SliderTick {\n value: number;\n label?: string;\n}\n\nexport type SliderValue = number | number[];\nexport type SliderSize = 'md' | 'sm' | 'xs';\nexport type SliderOrientation = 'horizontal' | 'vertical';\nexport type SliderThumbAlignment = 'edge' | 'center';\n\nlet sliderId = 0;\nlet sliderExternalLabelId = 0;\n\n@Component({\n tag: 'ds-slider',\n styleUrl: 'Slider.css',\n scoped: true,\n formAssociated: true,\n})\nexport class Slider {\n @Element() el!: HTMLElement;\n @AttachInternals() internals!: ElementInternals;\n\n /** Current value. Assign a two-number array through the JavaScript property for a range slider. */\n @Prop({ mutable: true }) value: SliderValue = 0;\n @Prop() min: number = 0;\n @Prop() max: number = 100;\n @Prop() step: number | 'any' = 1;\n /** Explicit ticks are the selectable snap points. Empty ticks with step='any' allow smooth adjustment. */\n @Prop() ticks: SliderTick[] = [];\n /** Minimum number of steps kept between two range thumbs. */\n @Prop() minStepsBetweenValues: number = 0;\n /** Visible field label. Supply aria-label when the label is intentionally hidden. */\n @Prop() label: string | undefined;\n /** Show the formatted current value beside the visible label. */\n @Prop() showValue: boolean = true;\n @Prop() size: SliderSize = 'md';\n @Prop() orientation: SliderOrientation = 'horizontal';\n /** Align the inner orb edge with full-width rail endpoints, or its center with inset rail endpoints. */\n @Prop() thumbAlignment: SliderThumbAlignment = 'edge';\n @Prop({ reflect: true }) name: string | undefined;\n @Prop({ reflect: true }) form: string | undefined;\n @Prop({ reflect: true }) disabled: boolean = false;\n /** Keep the value focusable and submittable while preventing changes. */\n @Prop({ reflect: true }) readOnly: boolean = false;\n @Prop() isInactive: boolean = false;\n /** Direct accessible name for a single-thumb slider without a visible label. */\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n /** Id references for a visible single-thumb slider label. */\n @Prop({ attribute: 'aria-labelledby' }) ariaLabelledby: string | undefined;\n /** Id references for supporting guidance or error text. */\n @Prop({ attribute: 'aria-describedby' }) ariaDescribedby: string | undefined;\n /** Accessible label for the lower thumb in a range slider. */\n @Prop() startLabel: string = 'Minimum value';\n /** Accessible label for the upper thumb in a range slider. */\n @Prop() endLabel: string = 'Maximum value';\n /** Human-readable value text for a single slider or both range thumbs. */\n @Prop() valueText: string | undefined;\n /** Per-thumb human-readable value text for a range slider. Assign through the JavaScript property. */\n @Prop() valueTexts: string[] = [];\n /** Locale used for the visible value. Defaults to English (en-US). */\n @Prop() locale: string | undefined;\n /** Intl.NumberFormat options. Assign objects through the JavaScript property. */\n @Prop() formatOptions: Intl.NumberFormatOptions | undefined;\n @Prop() valuePrefix: string = '';\n @Prop() valueSuffix: string = '';\n @Prop() rangeSeparator: string = '–';\n /** Id applied to the first native range input. */\n @Prop() inputId: string | undefined;\n\n /** Emitted continuously while the value changes. */\n @Event() dsChange!: EventEmitter<SliderValue>;\n /** Emitted when a pointer or keyboard value change is committed. */\n @Event() dsCommit!: EventEmitter<SliderValue>;\n\n @State() private formDisabled = false;\n @State() private dragging = false;\n @State() private focused = false;\n @State() private touched = false;\n @State() private activeThumbIndex = 0;\n @State() private externalLabelledby: string | undefined;\n\n private readonly generatedId = `ds-slider-${++sliderId}`;\n private readonly labelId = `${this.generatedId}-label`;\n private initialValue: SliderValue = 0;\n private lastCommittedValue: SliderValue = 0;\n private pointerId: number | null = null;\n private pointerStartValue: SliderValue = 0;\n private controlEl: HTMLDivElement | null = null;\n\n componentWillLoad() {\n this.initialValue = this.cloneValue(this.publicValue);\n this.lastCommittedValue = this.cloneValue(this.publicValue);\n this.syncFormValue();\n }\n\n componentDidLoad() {\n this.syncNativeLabels();\n }\n\n @Watch('value')\n @Watch('min')\n @Watch('max')\n @Watch('step')\n @Watch('ticks')\n @Watch('minStepsBetweenValues')\n @Watch('name')\n @Watch('disabled')\n @Watch('isInactive')\n syncFormValue() {\n const values = this.resolvedValues;\n if (this.isRange) {\n setRepeatedFormControlValue(this.internals, this.name, values, {\n inactive: this.isDisabled,\n });\n } else {\n const value = String(values[0]);\n setFormControlValue(this.internals, this.name ? value : null, {\n inactive: this.isDisabled,\n state: value,\n });\n }\n }\n\n formDisabledCallback(disabled: boolean) {\n this.formDisabled = disabled;\n this.syncFormValue();\n }\n\n formResetCallback() {\n this.value = this.cloneValue(this.initialValue);\n this.lastCommittedValue = this.cloneValue(this.initialValue);\n this.dragging = false;\n this.focused = false;\n this.touched = false;\n }\n\n formStateRestoreCallback(state: string | File | FormData | null) {\n if (this.isRange) {\n const restored = restoreNumberArrayFormState(state, 2);\n this.value = restored.length ? restored : this.cloneValue(this.initialValue);\n } else {\n const restored = Number(restoreStringFormState(state, 'NaN'));\n if (Number.isFinite(restored)) this.value = restored;\n }\n this.lastCommittedValue = this.cloneValue(this.publicValue);\n }\n\n @Method()\n async setFocus(index: number = 0) {\n const inputs = this.el.querySelectorAll<HTMLInputElement>('.slider__input');\n inputs[Math.max(0, Math.min(index, inputs.length - 1))]?.focus();\n }\n\n private get isDisabled(): boolean {\n return this.disabled || this.isInactive || this.formDisabled;\n }\n\n private get isRange(): boolean {\n return Array.isArray(this.value);\n }\n\n private get safeStep(): number {\n const step = Number(this.step);\n return Number.isFinite(step) && step > 0 ? step : 1;\n }\n\n private get resolvedTicks(): SliderTick[] {\n const unique = new Map<number, SliderTick>();\n for (const tick of this.ticks) {\n if (Number.isFinite(tick.value) && tick.value >= this.safeMin && tick.value <= this.safeMax)\n unique.set(tick.value, tick);\n }\n return [...unique.values()].sort((a, b) => a.value - b.value);\n }\n\n private get safeMin(): number {\n return Number.isFinite(this.min) ? this.min : 0;\n }\n\n private get safeMax(): number {\n const minimum = this.safeMin;\n return Number.isFinite(this.max) && this.max > minimum ? this.max : minimum + this.safeStep;\n }\n\n private get minimumGap(): number {\n const steps = Number.isFinite(this.minStepsBetweenValues)\n ? Math.max(0, Math.floor(this.minStepsBetweenValues))\n : 0;\n const ticks = this.resolvedTicks;\n const span = ticks.length\n ? ticks[ticks.length - 1].value - ticks[0].value\n : this.safeMax - this.safeMin;\n return Math.min(span, steps * this.safeStep);\n }\n\n private get resolvedValues(): number[] {\n const minimum = this.safeMin;\n const maximum = this.safeMax;\n if (!this.isRange) return [this.snap(Number(this.value))];\n\n const raw = this.value as number[];\n let lower = this.snap(Number(raw[0] ?? minimum));\n let upper = this.snap(Number(raw[1] ?? maximum));\n if (lower > upper) [lower, upper] = [upper, lower];\n\n const gap = Math.min(this.minimumGap, maximum - minimum);\n if (upper - lower < gap) {\n upper = Math.min(maximum, this.snap(lower + gap));\n lower = Math.max(minimum, this.snap(upper - gap));\n const ticks = this.resolvedTicks;\n if (ticks.length && upper - lower < gap) {\n upper =\n ticks.find(tick => tick.value >= lower + gap)?.value ?? ticks[ticks.length - 1].value;\n lower =\n [...ticks].reverse().find(tick => tick.value <= upper - gap)?.value ?? ticks[0].value;\n }\n }\n return [lower, upper];\n }\n\n private get publicValue(): SliderValue {\n const values = this.resolvedValues;\n return this.isRange ? [...values] : values[0];\n }\n\n private cloneValue(value: SliderValue): SliderValue {\n return Array.isArray(value) ? [...value] : value;\n }\n\n private valuesEqual(a: SliderValue, b: SliderValue): boolean {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((value, index) => value === b[index]);\n }\n return !Array.isArray(a) && !Array.isArray(b) && a === b;\n }\n\n private decimalPlaces(value: number): number {\n const text = String(value).toLowerCase();\n if (text.includes('e-')) return Number(text.split('e-')[1]) || 0;\n return text.includes('.') ? text.split('.')[1].length : 0;\n }\n\n private snap(value: number, minimum = this.safeMin, maximum = this.safeMax): number {\n const ticks = this.resolvedTicks.filter(tick => tick.value >= minimum && tick.value <= maximum);\n if (ticks.length)\n return ticks.reduce((nearest, tick) =>\n Math.abs(tick.value - value) < Math.abs(nearest.value - value) ? tick : nearest\n ).value;\n if (this.step === 'any')\n return Math.min(maximum, Math.max(minimum, Number.isFinite(value) ? value : minimum));\n const candidate = Number.isFinite(value) ? value : minimum;\n const stepped = minimum + Math.round((candidate - minimum) / this.safeStep) * this.safeStep;\n const precision = Math.min(\n 10,\n Math.max(\n this.decimalPlaces(minimum),\n this.decimalPlaces(maximum),\n this.decimalPlaces(this.safeStep)\n )\n );\n return Number(Math.min(maximum, Math.max(minimum, stepped)).toFixed(precision));\n }\n\n private percent(value: number): number {\n return ((value - this.safeMin) / (this.safeMax - this.safeMin)) * 100;\n }\n\n private allowedMin(index: number, values = this.resolvedValues): number {\n return this.isRange && index === 1\n ? Math.min(this.safeMax, values[0] + this.minimumGap)\n : this.safeMin;\n }\n\n private allowedMax(index: number, values = this.resolvedValues): number {\n return this.isRange && index === 0\n ? Math.max(this.safeMin, values[1] - this.minimumGap)\n : this.safeMax;\n }\n\n private setValueAt(index: number, next: number): boolean {\n const previous = this.publicValue;\n const values = this.resolvedValues;\n const constrained = Math.min(\n this.allowedMax(index, values),\n Math.max(\n this.allowedMin(index, values),\n this.snap(next, this.allowedMin(index, values), this.allowedMax(index, values))\n )\n );\n values[index] = constrained;\n const nextValue: SliderValue = this.isRange ? [...values] : values[0];\n if (this.valuesEqual(previous, nextValue)) return false;\n\n this.value = nextValue;\n this.dsChange.emit(this.cloneValue(nextValue));\n return true;\n }\n\n private commitIfChanged() {\n const current = this.publicValue;\n if (this.valuesEqual(current, this.lastCommittedValue)) return;\n this.lastCommittedValue = this.cloneValue(current);\n this.dsCommit.emit(this.cloneValue(current));\n }\n\n private syncNativeLabels() {\n if (this.label || this.ariaLabel || this.ariaLabelledby || this.isRange) return;\n const ids = (Array.from(this.internals.labels) as HTMLLabelElement[]).map(label => {\n if (!label.id) label.id = `ds-slider-label-${++sliderExternalLabelId}`;\n return label.id;\n });\n if (ids.length) this.externalLabelledby = ids.join(' ');\n }\n\n private formattedValue(value: number, index: number): string {\n const authored =\n this.valueTexts[index] ??\n this.valueText ??\n this.resolvedTicks.find(tick => tick.value === value)?.label;\n if (authored) return authored;\n let number: string;\n try {\n number = numberFormatter(this.locale, this.formatOptions).format(value);\n } catch {\n number = String(value);\n }\n return `${this.valuePrefix}${number}${this.valueSuffix}`;\n }\n\n private ariaValueText(value: number, index: number): string | undefined {\n if (\n this.resolvedTicks.some(tick => tick.value === value && tick.label) ||\n this.valueTexts[index] ||\n this.valueText ||\n this.valuePrefix ||\n this.valueSuffix ||\n this.formatOptions\n ) {\n return this.formattedValue(value, index);\n }\n return undefined;\n }\n\n private handleNativeInput = (event: Event, index: number) => {\n const input = event.target as HTMLInputElement;\n this.activeThumbIndex = index;\n if (this.readOnly || this.isDisabled) {\n input.value = String(this.resolvedValues[index]);\n return;\n }\n this.setValueAt(index, Number(input.value));\n };\n\n private handleNativeChange = () => {\n if (!this.readOnly && !this.isDisabled) this.commitIfChanged();\n };\n\n private handleKeyDown = (event: KeyboardEvent, index: number) => {\n const keys = [\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n ];\n if (!this.readOnly && this.resolvedTicks.length && keys.includes(event.key)) {\n event.preventDefault();\n if (this.isDisabled) return;\n const ticks = this.resolvedTicks.filter(\n tick => tick.value >= this.allowedMin(index) && tick.value <= this.allowedMax(index)\n );\n const current = this.resolvedValues[index];\n const forward = ['ArrowRight', 'ArrowUp', 'PageUp'].includes(event.key);\n const next =\n event.key === 'Home'\n ? ticks[0]\n : event.key === 'End'\n ? ticks[ticks.length - 1]\n : forward\n ? ticks.find(tick => tick.value > current)\n : [...ticks].reverse().find(tick => tick.value < current);\n if (next && this.setValueAt(index, next.value)) this.commitIfChanged();\n return;\n }\n if (!this.readOnly) return;\n if (\n [\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n ].includes(event.key)\n ) {\n event.preventDefault();\n }\n };\n\n private handleFocus = (index: number) => {\n this.activeThumbIndex = index;\n this.focused = true;\n };\n\n private handleBlur = (event: FocusEvent) => {\n const next = event.relatedTarget;\n if (next instanceof Node && this.el.contains(next)) return;\n this.focused = false;\n this.touched = true;\n };\n\n private handleHostClick = (event: MouseEvent) => {\n if (event.target !== this.el || this.isDisabled) return;\n const inputs = this.el.querySelectorAll<HTMLInputElement>('.slider__input');\n inputs[Math.min(this.activeThumbIndex, inputs.length - 1)]?.focus();\n };\n\n private pointerPercent(event: PointerEvent): number {\n const control = this.controlEl;\n if (!control) return 0;\n const rect = control.getBoundingClientRect();\n const endpoint = this.el.querySelector<HTMLElement>(\n this.thumbAlignment === 'edge' ? '.slider__thumb-orb' : '.slider__thumb'\n );\n const endpointSize = endpoint\n ? this.orientation === 'horizontal'\n ? endpoint.offsetWidth\n : endpoint.offsetHeight\n : 0;\n // Edge alignment positions the inner orb at the rail ends; the outer halo\n // may overhang. Center alignment uses the complete thumb at inset rail ends.\n const inset = endpointSize / 2;\n\n if (this.orientation === 'vertical') {\n const travel = Math.max(1, rect.height - inset * 2);\n return Math.min(1, Math.max(0, (rect.bottom - inset - event.clientY) / travel));\n }\n\n const travel = Math.max(1, rect.width - inset * 2);\n const percent = (event.clientX - rect.left - inset) / travel;\n return Math.min(1, Math.max(0, percent));\n }\n\n private valueFromPointer(event: PointerEvent): number {\n return this.snap(this.safeMin + this.pointerPercent(event) * (this.safeMax - this.safeMin));\n }\n\n private closestThumbIndex(value: number, target: EventTarget | null): number {\n const targetElement =\n target instanceof HTMLElement ? target.closest<HTMLElement>('.slider__thumb') : null;\n if (targetElement?.dataset['index']) return Number(targetElement.dataset['index']);\n if (!this.isRange) return 0;\n\n const values = this.resolvedValues;\n const lowerDistance = Math.abs(value - values[0]);\n const upperDistance = Math.abs(value - values[1]);\n if (lowerDistance === upperDistance) return value >= values[0] ? 1 : 0;\n return lowerDistance < upperDistance ? 0 : 1;\n }\n\n private handlePointerDown = (event: PointerEvent) => {\n if (event.button !== 0 || this.isDisabled || this.readOnly) return;\n event.preventDefault();\n const value = this.valueFromPointer(event);\n const index = this.closestThumbIndex(value, event.target);\n this.activeThumbIndex = index;\n this.pointerId = event.pointerId;\n this.pointerStartValue = this.cloneValue(this.publicValue);\n this.dragging = true;\n this.setValueAt(index, value);\n this.controlEl?.setPointerCapture(event.pointerId);\n requestAnimationFrame(() => {\n const input = this.el.querySelectorAll<HTMLInputElement>('.slider__input')[index];\n input?.focus({ preventScroll: true });\n });\n };\n\n private handlePointerMove = (event: PointerEvent) => {\n if (this.pointerId !== event.pointerId || !this.dragging) return;\n event.preventDefault();\n this.setValueAt(this.activeThumbIndex, this.valueFromPointer(event));\n };\n\n private endPointerInteraction(event: PointerEvent, canceled: boolean) {\n if (this.pointerId !== event.pointerId) return;\n if (this.controlEl?.hasPointerCapture(event.pointerId))\n this.controlEl.releasePointerCapture(event.pointerId);\n this.pointerId = null;\n this.dragging = false;\n this.touched = true;\n if (!canceled && !this.valuesEqual(this.pointerStartValue, this.publicValue))\n this.commitIfChanged();\n }\n\n private renderThumb(value: number, index: number) {\n const inputId =\n index === 0\n ? (this.inputId ?? `${this.generatedId}-input`)\n : `${this.inputId ?? `${this.generatedId}-input`}-end`;\n const rangeLabel = index === 0 ? this.startLabel : this.endLabel;\n const labelledby = this.isRange\n ? undefined\n : (this.ariaLabelledby ?? (this.label ? this.labelId : this.externalLabelledby));\n const directLabel = this.isRange ? rangeLabel : labelledby ? undefined : this.ariaLabel;\n\n return (\n <div\n class={{\n slider__thumb: true,\n 'slider__thumb--active': index === this.activeThumbIndex,\n }}\n data-index={String(index)}\n style={{ '--ds-slider-thumb-pct': String(this.percent(value)) } as Record<string, string>}\n >\n <input\n class=\"slider__input\"\n type=\"range\"\n id={inputId}\n min={this.allowedMin(index)}\n max={this.allowedMax(index)}\n step={this.resolvedTicks.length || this.step === 'any' ? 'any' : this.safeStep}\n value={value}\n disabled={this.isDisabled}\n aria-label={directLabel}\n aria-labelledby={labelledby}\n aria-describedby={this.ariaDescribedby}\n aria-valuetext={this.ariaValueText(value, index)}\n aria-orientation={this.orientation === 'vertical' ? 'vertical' : undefined}\n aria-readonly={this.readOnly ? 'true' : undefined}\n onInput={(event: Event) => this.handleNativeInput(event, index)}\n onChange={this.handleNativeChange}\n onKeyDown={event => this.handleKeyDown(event, index)}\n onFocus={() => this.handleFocus(index)}\n onBlur={this.handleBlur}\n />\n <span class=\"slider__thumb-visual\" aria-hidden=\"true\">\n <span class=\"slider__thumb-wash\" />\n <span class=\"slider__thumb-orb\" />\n </span>\n </div>\n );\n }\n\n render() {\n const values = this.resolvedValues;\n const first = values[0];\n const last = values[values.length - 1];\n const firstInputId = this.inputId ?? `${this.generatedId}-input`;\n const dirty = !this.valuesEqual(this.publicValue, this.initialValue);\n const valueDisplay = values\n .map((value, index) => this.formattedValue(value, index))\n .join(` ${this.rangeSeparator} `);\n\n return (\n <Host\n aria-disabled={this.isDisabled ? 'true' : undefined}\n class={{\n slider: true,\n 'ds-field-stack': true,\n [`slider--${this.size}`]: true,\n [`slider--${this.orientation}`]: true,\n [`slider--thumb-${this.thumbAlignment}`]: true,\n 'slider--range': this.isRange,\n 'slider--ticks': this.resolvedTicks.length > 0,\n 'slider--tick-labels': this.resolvedTicks.some(tick => Boolean(tick.label)),\n 'slider--readonly': this.readOnly,\n 'ds-control-inactive': this.isDisabled,\n }}\n data-orientation={this.orientation}\n data-disabled={this.isDisabled ? '' : undefined}\n data-readonly={this.readOnly ? '' : undefined}\n data-dragging={this.dragging ? '' : undefined}\n data-focused={this.focused ? '' : undefined}\n data-filled=\"\"\n data-dirty={dirty ? '' : undefined}\n data-touched={this.touched ? '' : undefined}\n data-valid={!this.isDisabled ? '' : undefined}\n onClick={this.handleHostClick}\n >\n {(this.label || this.showValue) && (\n <div class=\"slider__label-row\">\n {this.label && (\n <ds-text\n class=\"slider__label\"\n as=\"label\"\n variant=\"text-body-small\"\n color=\"primary\"\n emphasis\n for={firstInputId}\n textId={this.labelId}\n >\n {this.label}\n </ds-text>\n )}\n {this.showValue && (\n <ds-text\n class=\"slider__value\"\n as=\"span\"\n variant=\"text-body-small\"\n color=\"primary\"\n fontFeature=\"tabular-nums\"\n >\n {valueDisplay}\n </ds-text>\n )}\n </div>\n )}\n <div\n class=\"slider__control\"\n ref={element => {\n this.controlEl = element ?? null;\n }}\n style={\n {\n '--ds-slider-start-pct': String(this.isRange ? this.percent(first) : 0),\n '--ds-slider-end-pct': String(this.percent(last)),\n } as Record<string, string>\n }\n onPointerDown={this.handlePointerDown}\n onPointerMove={this.handlePointerMove}\n onPointerUp={(event: PointerEvent) => this.endPointerInteraction(event, false)}\n onPointerCancel={(event: PointerEvent) => this.endPointerInteraction(event, true)}\n >\n <div class=\"slider__rail\" aria-hidden=\"true\">\n <div class=\"slider__indicator\" />\n </div>\n {this.resolvedTicks.map(tick => (\n <span\n class=\"slider__tick\"\n data-edge={\n tick.value === this.safeMin\n ? 'start'\n : tick.value === this.safeMax\n ? 'end'\n : undefined\n }\n aria-hidden=\"true\"\n style={{ '--ds-slider-tick-pct': String(this.percent(tick.value)) }}\n >\n <span class=\"slider__tick-mark\" />\n {tick.label && (\n <ds-text\n class=\"slider__tick-label\"\n as=\"span\"\n variant=\"text-caption\"\n color=\"secondary\"\n >\n {tick.label}\n </ds-text>\n )}\n </span>\n ))}\n {values.map((value, index) => this.renderThumb(value, index))}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{S as o,d as s}from"./p-B9y6azEw.js";const t=o;const a=s;export{t as DsSwatchPicker,a as defineCustomElement};
1
+ import{S as o,d as s}from"./p-eKnJNQtL.js";const t=o;const n=s;export{t as DsSwatchPicker,n as defineCustomElement};
2
2
  //# sourceMappingURL=ds-swatch-picker.js.map
@@ -1,2 +1,2 @@
1
- import{S as o,d as s}from"./p-Bf-BphXP.js";const p=o;const t=s;export{p as DsSwitch,t as defineCustomElement};
1
+ import{S as o,d as s}from"./p-C2e7BkNn.js";const t=o;const n=s;export{t as DsSwitch,n as defineCustomElement};
2
2
  //# sourceMappingURL=ds-switch.js.map
@@ -1,2 +1,2 @@
1
- import{T as o,d as s}from"./p-7MwoWtTJ.js";const t=o;const p=s;export{t as DsTabGroup,p as defineCustomElement};
1
+ import{T as s,d as o}from"./p-4sBUSsqs.js";const t=s;const p=o;export{t as DsTabGroup,p as defineCustomElement};
2
2
  //# sourceMappingURL=ds-tab-group.js.map