@ds-mo/ui 14.35.0 → 15.0.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 (577) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +5733 -4656
  4. package/dist/angular/ds-button-inverted.d.ts +17 -0
  5. package/dist/angular/ds-button-inverted.js +46 -0
  6. package/dist/angular/ds-calendar.d.ts +15 -0
  7. package/dist/angular/ds-calendar.js +43 -0
  8. package/dist/angular/ds-conversation-list.d.ts +1 -1
  9. package/dist/angular/ds-conversation-list.js +3 -4
  10. package/dist/angular/ds-data-customize.d.ts +18 -0
  11. package/dist/angular/ds-data-customize.js +46 -0
  12. package/dist/angular/ds-data-filter.d.ts +50 -0
  13. package/dist/angular/{ds-table-filter.js → ds-data-filter.js} +10 -10
  14. package/dist/angular/ds-data-group.d.ts +29 -0
  15. package/dist/angular/{ds-table-group.js → ds-data-group.js} +10 -10
  16. package/dist/angular/ds-data-preferences.d.ts +39 -0
  17. package/dist/angular/{ds-table-preferences.js → ds-data-preferences.js} +15 -15
  18. package/dist/angular/ds-data-saved-views.d.ts +49 -0
  19. package/dist/angular/{ds-table-saved-views.js → ds-data-saved-views.js} +10 -10
  20. package/dist/angular/ds-data-search.d.ts +20 -0
  21. package/dist/angular/{ds-table-search.js → ds-data-search.js} +12 -12
  22. package/dist/angular/ds-data-sort.d.ts +16 -0
  23. package/dist/angular/{ds-table-sort.js → ds-data-sort.js} +12 -12
  24. package/dist/angular/ds-data-toolbar.d.ts +12 -0
  25. package/dist/angular/{ds-table-toolbar.js → ds-data-toolbar.js} +10 -10
  26. package/dist/angular/ds-field.d.ts +1 -1
  27. package/dist/angular/ds-field.js +1 -1
  28. package/dist/angular/ds-input-date.d.ts +15 -0
  29. package/dist/angular/ds-input-date.js +43 -0
  30. package/dist/angular/ds-input-time.d.ts +15 -0
  31. package/dist/angular/ds-input-time.js +43 -0
  32. package/dist/angular/ds-input.d.ts +1 -1
  33. package/dist/angular/ds-input.js +3 -3
  34. package/dist/angular/ds-select.d.ts +1 -1
  35. package/dist/angular/ds-select.js +3 -3
  36. package/dist/angular/ds-table.d.ts +7 -7
  37. package/dist/angular/ds-table.js +6 -6
  38. package/dist/angular/ds-time-picker.d.ts +15 -0
  39. package/dist/angular/ds-time-picker.js +43 -0
  40. package/dist/angular/index.d.ts +1 -1
  41. package/dist/angular/index.js +13 -7
  42. package/dist/angular/proxies.d.ts +13 -7
  43. package/dist/angular/proxies.js +13 -7
  44. package/dist/angular/text-value-accessor.d.ts +1 -1
  45. package/dist/angular/text-value-accessor.js +2 -2
  46. package/dist/components/ds-agent-activity.js +1 -1
  47. package/dist/components/ds-agent-questionnaire.js +1 -1
  48. package/dist/components/ds-agent-response.js +1 -1
  49. package/dist/components/ds-agent-source-list.js +1 -1
  50. package/dist/components/ds-agent-tool-call.js +1 -1
  51. package/dist/components/ds-attachment-list.js +1 -1
  52. package/dist/components/ds-avatar.js +1 -1
  53. package/dist/components/ds-badge.js +1 -1
  54. package/dist/components/ds-banner.js +1 -1
  55. package/dist/components/ds-bar-action.js +1 -1
  56. package/dist/components/ds-bar-nav.js +1 -1
  57. package/dist/components/ds-bar-page-title.js +1 -1
  58. package/dist/components/ds-bar-title.js +1 -1
  59. package/dist/components/ds-bar-workflow.js +1 -1
  60. package/dist/components/ds-breadcrumb.js +1 -1
  61. package/dist/components/ds-button-filled.js +1 -1
  62. package/dist/components/ds-button-inverted.d.ts +11 -0
  63. package/dist/components/ds-button-inverted.js +2 -0
  64. package/dist/components/ds-button-inverted.js.map +1 -0
  65. package/dist/components/ds-button-unfilled.js +1 -1
  66. package/dist/components/{ds-table-search.d.ts → ds-calendar.d.ts} +4 -4
  67. package/dist/components/ds-calendar.js +2 -0
  68. package/dist/components/ds-card-action-center.js +1 -1
  69. package/dist/components/ds-card-chart.js +1 -1
  70. package/dist/components/ds-card-navigation.js +1 -1
  71. package/dist/components/ds-card-navigation.js.map +1 -1
  72. package/dist/components/ds-card-overview.js +1 -1
  73. package/dist/components/ds-card-setting.js +1 -1
  74. package/dist/components/ds-card-settings-scope.js +1 -1
  75. package/dist/components/ds-card-settings-scope.js.map +1 -1
  76. package/dist/components/ds-chart-legend.js +1 -1
  77. package/dist/components/ds-chart.js +1 -1
  78. package/dist/components/ds-checkbox.js +1 -1
  79. package/dist/components/ds-chip.js +1 -1
  80. package/dist/components/ds-code-block.js +1 -1
  81. package/dist/components/ds-conversation-list-item.js +1 -1
  82. package/dist/components/ds-conversation-list-item.js.map +1 -1
  83. package/dist/components/ds-conversation-list-section.js +1 -1
  84. package/dist/components/ds-conversation-list.js +1 -1
  85. package/dist/components/ds-conversation-list.js.map +1 -1
  86. package/dist/components/ds-data-customize.d.ts +11 -0
  87. package/dist/components/ds-data-customize.js +2 -0
  88. package/dist/components/ds-data-customize.js.map +1 -0
  89. package/dist/components/{ds-table-group.d.ts → ds-data-filter.d.ts} +4 -4
  90. package/dist/components/ds-data-filter.js +2 -0
  91. package/dist/components/ds-data-filter.js.map +1 -0
  92. package/dist/components/{ds-table-sort.d.ts → ds-data-group.d.ts} +4 -4
  93. package/dist/components/ds-data-group.js +2 -0
  94. package/dist/components/ds-data-group.js.map +1 -0
  95. package/dist/components/{ds-table-saved-views.d.ts → ds-data-preferences.d.ts} +4 -4
  96. package/dist/components/ds-data-preferences.js +2 -0
  97. package/dist/components/ds-data-preferences.js.map +1 -0
  98. package/dist/components/ds-data-saved-views.d.ts +11 -0
  99. package/dist/components/ds-data-saved-views.js +2 -0
  100. package/dist/components/ds-data-saved-views.js.map +1 -0
  101. package/dist/components/ds-data-search.d.ts +11 -0
  102. package/dist/components/ds-data-search.js +2 -0
  103. package/dist/components/ds-data-search.js.map +1 -0
  104. package/dist/components/ds-data-sort.d.ts +11 -0
  105. package/dist/components/ds-data-sort.js +2 -0
  106. package/dist/components/ds-data-sort.js.map +1 -0
  107. package/dist/components/{ds-table-filter.d.ts → ds-data-toolbar.d.ts} +4 -4
  108. package/dist/components/ds-data-toolbar.js +2 -0
  109. package/dist/components/ds-data-toolbar.js.map +1 -0
  110. package/dist/components/ds-divider.js +1 -1
  111. package/dist/components/ds-empty-state.js +1 -1
  112. package/dist/components/ds-field.js +1 -1
  113. package/dist/components/ds-filter-menu.js +1 -1
  114. package/dist/components/ds-icon.js +1 -1
  115. package/dist/components/ds-input-date.d.ts +11 -0
  116. package/dist/components/ds-input-date.js +2 -0
  117. package/dist/components/ds-input-date.js.map +1 -0
  118. package/dist/components/ds-input-time.d.ts +11 -0
  119. package/dist/components/ds-input-time.js +2 -0
  120. package/dist/components/ds-input-time.js.map +1 -0
  121. package/dist/components/ds-input.js +1 -1
  122. package/dist/components/ds-markdown.js +1 -1
  123. package/dist/components/ds-menu.js +1 -1
  124. package/dist/components/ds-message-actions.js +1 -1
  125. package/dist/components/ds-message-bubble.js +1 -1
  126. package/dist/components/ds-message-bubble.js.map +1 -1
  127. package/dist/components/ds-message-composer.js +1 -1
  128. package/dist/components/ds-message-composer.js.map +1 -1
  129. package/dist/components/ds-message-scroller.js +1 -1
  130. package/dist/components/ds-message.js +1 -1
  131. package/dist/components/ds-mobile-bar-nav.js +1 -1
  132. package/dist/components/ds-mobile-header.js +1 -1
  133. package/dist/components/ds-mobile-section-switcher.js +1 -1
  134. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  135. package/dist/components/ds-modal.js +1 -1
  136. package/dist/components/ds-pagination.js +1 -1
  137. package/dist/components/ds-panel-nav.js +1 -1
  138. package/dist/components/ds-panel-sub-nav.js +1 -1
  139. package/dist/components/ds-panel-tool-header.js +1 -1
  140. package/dist/components/ds-panel-tool-search.js +1 -1
  141. package/dist/components/ds-panel-tools.js +1 -1
  142. package/dist/components/ds-paper-texture.js +1 -1
  143. package/dist/components/ds-radio.js +1 -1
  144. package/dist/components/ds-score.js +1 -1
  145. package/dist/components/ds-scroll-overlay.js +1 -1
  146. package/dist/components/ds-select.js +1 -1
  147. package/dist/components/ds-shell-app.js +1 -1
  148. package/dist/components/ds-shell-page.js +1 -1
  149. package/dist/components/ds-shell-tools.js +1 -1
  150. package/dist/components/ds-skeleton.js +1 -1
  151. package/dist/components/ds-slider.js +1 -1
  152. package/dist/components/ds-slider.js.map +1 -1
  153. package/dist/components/ds-swatch-picker.js +1 -1
  154. package/dist/components/ds-switch.js +1 -1
  155. package/dist/components/ds-tab-group.js +1 -1
  156. package/dist/components/ds-table.js +1 -1
  157. package/dist/components/ds-table.js.map +1 -1
  158. package/dist/components/ds-tag.js +1 -1
  159. package/dist/components/ds-text.js +1 -1
  160. package/dist/components/ds-textarea.js +1 -1
  161. package/dist/components/ds-textarea.js.map +1 -1
  162. package/dist/components/ds-time-picker.d.ts +11 -0
  163. package/dist/components/ds-time-picker.js +2 -0
  164. package/dist/components/ds-time-picker.js.map +1 -0
  165. package/dist/components/ds-toast.js +1 -1
  166. package/dist/components/ds-tooltip-chart.js +1 -1
  167. package/dist/components/ds-tooltip.js +1 -1
  168. package/dist/components/ds-typing-indicator.js +1 -1
  169. package/dist/components/index.d.ts +5 -5
  170. package/dist/components/p-0FYD2bev.js +2 -0
  171. package/dist/components/p-0FYD2bev.js.map +1 -0
  172. package/dist/components/p-0qY_HDId.js +2 -0
  173. package/dist/components/{p-D_u8WhlU.js.map → p-0qY_HDId.js.map} +1 -1
  174. package/dist/components/{p-BQsVI_vO.js → p-5URekSny.js} +2 -2
  175. package/dist/components/{p-eo_pmPqp.js → p-7V1AhetH.js} +2 -2
  176. package/dist/components/{p-yZRXPHDe.js → p-8yBdCXCn.js} +2 -2
  177. package/dist/components/p-BKZdqJQB.js +2 -0
  178. package/dist/components/p-BKZdqJQB.js.map +1 -0
  179. package/dist/components/p-BYrBU_U9.js +2 -0
  180. package/dist/components/p-BYrBU_U9.js.map +1 -0
  181. package/dist/components/{p-D44g2Kw1.js → p-BciTtTwx.js} +2 -2
  182. package/dist/components/p-BciTtTwx.js.map +1 -0
  183. package/dist/components/{p-CZOiTaNa.js → p-BeNa6tw5.js} +2 -2
  184. package/dist/components/{p-CZOiTaNa.js.map → p-BeNa6tw5.js.map} +1 -1
  185. package/dist/components/p-BgQMEHRa.js +2 -0
  186. package/dist/components/{p-CwqFJMvP.js.map → p-BgQMEHRa.js.map} +1 -1
  187. package/dist/components/{p-BQaO7cg_.js → p-BhJXmuRA.js} +2 -2
  188. package/dist/components/{p-n68x-ZKp.js → p-Bm7rqs3C.js} +2 -2
  189. package/dist/components/{p-DdspY23v.js → p-Bn8I7iw6.js} +2 -2
  190. package/dist/components/{p-BnWxbhFP.js → p-Bpd6YCo4.js} +2 -2
  191. package/dist/components/{p-B-9fdIWv.js → p-C-3YqeTb.js} +2 -2
  192. package/dist/components/{p-umAf0fBn.js → p-CD4DZPy_.js} +2 -2
  193. package/dist/components/p-CElUM-xU.js +2 -0
  194. package/dist/components/p-CElUM-xU.js.map +1 -0
  195. package/dist/components/{p-CuwopElg.js → p-CGidq1iC.js} +2 -2
  196. package/dist/components/p-CNxvnQ6A.js +2 -0
  197. package/dist/components/p-CNxvnQ6A.js.map +1 -0
  198. package/dist/components/{p-CI7VfYC3.js → p-CUcUHwI3.js} +2 -2
  199. package/dist/components/p-CYzFfFcH.js +2 -0
  200. package/dist/components/{p-BINSI_KF.js.map → p-CYzFfFcH.js.map} +1 -1
  201. package/dist/components/{p-Dhw_W8nk.js → p-Cc3ZUQlJ.js} +2 -2
  202. package/dist/components/p-Cc3ZUQlJ.js.map +1 -0
  203. package/dist/components/p-CdgOLWX9.js +2 -0
  204. package/dist/components/p-CdgOLWX9.js.map +1 -0
  205. package/dist/components/{p-BcdHgPi5.js → p-CeXf9-X3.js} +2 -2
  206. package/dist/components/{p-CSnsz3Eb.js → p-CiH4GG6r.js} +2 -2
  207. package/dist/components/{p-y06IxxoN.js → p-CiJ1WR11.js} +2 -2
  208. package/dist/components/p-CmexIVnE.js +2 -0
  209. package/dist/components/{p-N5SHSVo2.js.map → p-CmexIVnE.js.map} +1 -1
  210. package/dist/components/{p-BmFeeR4q.js → p-CqW2eyiF.js} +2 -2
  211. package/dist/components/{p-CzbsTZt7.js → p-Cxr0IQjC.js} +2 -2
  212. package/dist/components/{p-CqlBlv55.js → p-CzIpquvw.js} +2 -2
  213. package/dist/components/{p-DC69DgAR.js → p-D0y7Sja6.js} +2 -2
  214. package/dist/components/{p-Cwz9TPVS.js → p-D1vQGJzc.js} +2 -2
  215. package/dist/components/{p-Cwz9TPVS.js.map → p-D1vQGJzc.js.map} +1 -1
  216. package/dist/components/{p-C7CZ9pnP.js → p-D6Wl3dRO.js} +2 -2
  217. package/dist/components/{p-BPhbwXOv.js → p-D922f6Tb.js} +2 -2
  218. package/dist/components/{p-beRFLHbB.js → p-DHICPS4n.js} +2 -2
  219. package/dist/components/{p-omPm8_vx.js → p-DOAybCp0.js} +2 -2
  220. package/dist/components/{p-DEGNrPLe.js → p-DVINzOoK.js} +2 -2
  221. package/dist/components/{p-DEGNrPLe.js.map → p-DVINzOoK.js.map} +1 -1
  222. package/dist/components/p-DVOjjuXc.js +2 -0
  223. package/dist/components/p-DVOjjuXc.js.map +1 -0
  224. package/dist/components/p-Di5FH7eh.js +2 -0
  225. package/dist/components/p-Di5FH7eh.js.map +1 -0
  226. package/dist/components/p-DjkUFlDW.js +2 -0
  227. package/dist/components/p-DjkUFlDW.js.map +1 -0
  228. package/dist/components/{p-BnzsBNUY.js → p-Dn9QHL4O.js} +2 -2
  229. package/dist/components/{p-DGzn4k4h.js → p-Do2FJd1y.js} +2 -2
  230. package/dist/components/{p-DTDLlinw.js → p-DpoTwJAR.js} +2 -2
  231. package/dist/components/{p-Dk-8Ju0Q.js → p-Dpr2y6_S.js} +2 -2
  232. package/dist/components/{p-Dk-8Ju0Q.js.map → p-Dpr2y6_S.js.map} +1 -1
  233. package/dist/components/p-Dw9sE6Iw.js +2 -0
  234. package/dist/components/p-Dw9sE6Iw.js.map +1 -0
  235. package/dist/components/{p-CLGtPE0K.js → p-DwbcNDJF.js} +2 -2
  236. package/dist/components/p-Dzndkdx5.js +2 -0
  237. package/dist/components/{p-xHGqrz_p.js.map → p-Dzndkdx5.js.map} +1 -1
  238. package/dist/components/{p-C8ek-1SP.js → p-E5W27Fu_.js} +2 -2
  239. package/dist/components/{p-mpk_Mm8_.js → p-FIBCluwV.js} +2 -2
  240. package/dist/components/{p-DQQFN2sw.js → p-IEq_06J0.js} +2 -2
  241. package/dist/components/{p-DQQFN2sw.js.map → p-IEq_06J0.js.map} +1 -1
  242. package/dist/components/{p-CE540WZ7.js → p-MG4lcN0D.js} +2 -2
  243. package/dist/components/p-Nc76seSq.js +2 -0
  244. package/dist/components/p-Nc76seSq.js.map +1 -0
  245. package/dist/components/{p-DtLQIMsa.js → p-ZhP2tVmM.js} +2 -2
  246. package/dist/components/p-aD5cw_m2.js +2 -0
  247. package/dist/components/p-aD5cw_m2.js.map +1 -0
  248. package/dist/components/p-etifxiDc.js +2 -0
  249. package/dist/components/{p-beCz9OnD.js.map → p-etifxiDc.js.map} +1 -1
  250. package/dist/components/p-kDZ0sEII.js +2 -0
  251. package/dist/components/p-kDZ0sEII.js.map +1 -0
  252. package/dist/components/{p-BPlWEidl.js → p-ljbw3UMZ.js} +2 -2
  253. package/dist/components/{p-DZ58Sg5a.js → p-vfCu7XSc.js} +2 -2
  254. package/dist/components/p-vfCu7XSc.js.map +1 -0
  255. package/dist/components/{p-DFjIBS5B.js → p-xdmJCPCg.js} +2 -2
  256. package/dist/components/{p-CAxDdYjh.js → p-xtGGIZmU.js} +2 -2
  257. package/dist/docs/components.json +18102 -14568
  258. package/dist/lib/components/Icon/flag-icon-catalog.d.ts +2 -0
  259. package/dist/lib/components/Icon/icon-cache.d.ts +36 -4
  260. package/dist/lib/components/Icon/map-icon-catalog.d.ts +2 -0
  261. package/dist/lib/shell/index.js +2 -2
  262. package/dist/lib/shell/index.js.map +1 -1
  263. package/dist/lib/utils/button-render.d.ts +1 -1
  264. package/dist/lib/utils/clock-time.d.ts +22 -0
  265. package/dist/lib/utils/date-filter-value.d.ts +4 -0
  266. package/dist/lib/utils/index.d.ts +3 -1
  267. package/dist/lib/utils/index.js +201 -5
  268. package/dist/lib/utils/index.js.map +4 -4
  269. package/dist/mcp-data/registry/agent-activity.json +2 -2
  270. package/dist/mcp-data/registry/agent-questionnaire.json +2 -2
  271. package/dist/mcp-data/registry/agent-response.json +1 -1
  272. package/dist/mcp-data/registry/agent-source-list.json +1 -1
  273. package/dist/mcp-data/registry/agent-tool-call.json +2 -2
  274. package/dist/mcp-data/registry/attachment-list.json +1 -1
  275. package/dist/mcp-data/registry/avatar.json +1 -1
  276. package/dist/mcp-data/registry/badge.json +1 -1
  277. package/dist/mcp-data/registry/banner.json +1 -1
  278. package/dist/mcp-data/registry/bar-action.json +1 -1
  279. package/dist/mcp-data/registry/bar-nav.json +1 -1
  280. package/dist/mcp-data/registry/bar-page-title.json +1 -1
  281. package/dist/mcp-data/registry/bar-title.json +3 -3
  282. package/dist/mcp-data/registry/bar-workflow.json +1 -1
  283. package/dist/mcp-data/registry/breadcrumb.json +1 -1
  284. package/dist/mcp-data/registry/button-filled.json +1 -1
  285. package/dist/mcp-data/registry/button-inverted.json +580 -0
  286. package/dist/mcp-data/registry/button-unfilled.json +1 -1
  287. package/dist/mcp-data/registry/calendar.json +273 -0
  288. package/dist/mcp-data/registry/card-action-center.json +1 -1
  289. package/dist/mcp-data/registry/card-chart.json +1 -1
  290. package/dist/mcp-data/registry/card-navigation.json +5 -3
  291. package/dist/mcp-data/registry/card-overview.json +1 -1
  292. package/dist/mcp-data/registry/card-setting.json +1 -1
  293. package/dist/mcp-data/registry/card-settings-scope.json +1 -1
  294. package/dist/mcp-data/registry/chart-legend.json +1 -1
  295. package/dist/mcp-data/registry/chart.json +1 -1
  296. package/dist/mcp-data/registry/checkbox.json +1 -1
  297. package/dist/mcp-data/registry/chip.json +1 -1
  298. package/dist/mcp-data/registry/code-block.json +1 -1
  299. package/dist/mcp-data/registry/conversation-list-item.json +1 -1
  300. package/dist/mcp-data/registry/conversation-list-section.json +1 -1
  301. package/dist/mcp-data/registry/conversation-list.json +10 -32
  302. package/dist/mcp-data/registry/data-customize.json +374 -0
  303. package/dist/mcp-data/registry/{table-filter.json → data-filter.json} +33 -33
  304. package/dist/mcp-data/registry/data-group.json +358 -0
  305. package/dist/mcp-data/registry/data-preferences.json +566 -0
  306. package/dist/mcp-data/registry/data-saved-views.json +433 -0
  307. package/dist/mcp-data/registry/data-search.json +367 -0
  308. package/dist/mcp-data/registry/data-sort.json +254 -0
  309. package/dist/mcp-data/registry/data-toolbar.json +181 -0
  310. package/dist/mcp-data/registry/divider.json +1 -1
  311. package/dist/mcp-data/registry/empty-state.json +1 -1
  312. package/dist/mcp-data/registry/field.json +20 -15
  313. package/dist/mcp-data/registry/filter-menu.json +7 -11
  314. package/dist/mcp-data/registry/icon.json +13 -7
  315. package/dist/mcp-data/registry/input-date.json +516 -0
  316. package/dist/mcp-data/registry/input-time.json +535 -0
  317. package/dist/mcp-data/registry/input.json +57 -9
  318. package/dist/mcp-data/registry/loader.json +1 -1
  319. package/dist/mcp-data/registry/markdown.json +1 -1
  320. package/dist/mcp-data/registry/menu.json +3 -3
  321. package/dist/mcp-data/registry/message-actions.json +1 -1
  322. package/dist/mcp-data/registry/message-bubble.json +1 -1
  323. package/dist/mcp-data/registry/message-composer.json +2 -2
  324. package/dist/mcp-data/registry/message-scroller.json +1 -1
  325. package/dist/mcp-data/registry/message.json +1 -1
  326. package/dist/mcp-data/registry/mobile-bar-nav.json +2 -2
  327. package/dist/mcp-data/registry/mobile-header.json +1 -1
  328. package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
  329. package/dist/mcp-data/registry/mobile-sheet-nav.json +2 -2
  330. package/dist/mcp-data/registry/modal.json +1 -1
  331. package/dist/mcp-data/registry/pagination.json +1 -1
  332. package/dist/mcp-data/registry/panel-nav.json +1 -1
  333. package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
  334. package/dist/mcp-data/registry/panel-tool-header.json +1 -1
  335. package/dist/mcp-data/registry/panel-tool-search.json +1 -1
  336. package/dist/mcp-data/registry/panel-tools.json +3 -3
  337. package/dist/mcp-data/registry/paper-texture.json +1 -1
  338. package/dist/mcp-data/registry/radio.json +1 -1
  339. package/dist/mcp-data/registry/registry.json +5911 -4816
  340. package/dist/mcp-data/registry/score.json +1 -1
  341. package/dist/mcp-data/registry/scroll-overlay.json +1 -1
  342. package/dist/mcp-data/registry/select.json +64 -8
  343. package/dist/mcp-data/registry/shell-app.json +1 -1
  344. package/dist/mcp-data/registry/shell-page.json +1 -1
  345. package/dist/mcp-data/registry/shell-tools.json +1 -1
  346. package/dist/mcp-data/registry/skeleton.json +1 -1
  347. package/dist/mcp-data/registry/slider.json +1 -1
  348. package/dist/mcp-data/registry/swatch-picker.json +1 -1
  349. package/dist/mcp-data/registry/switch.json +1 -1
  350. package/dist/mcp-data/registry/tab-group.json +1 -1
  351. package/dist/mcp-data/registry/table.json +71 -71
  352. package/dist/mcp-data/registry/tag.json +1 -1
  353. package/dist/mcp-data/registry/text.json +1 -1
  354. package/dist/mcp-data/registry/textarea.json +3 -3
  355. package/dist/mcp-data/registry/time-picker.json +259 -0
  356. package/dist/mcp-data/registry/toast.json +1 -1
  357. package/dist/mcp-data/registry/tooltip-chart.json +1 -1
  358. package/dist/mcp-data/registry/tooltip.json +1 -1
  359. package/dist/mcp-data/registry/typing-indicator.json +1 -1
  360. package/dist/react/components.d.ts +13 -7
  361. package/dist/react/components.js +13 -7
  362. package/dist/react/ds-button-inverted.d.ts +13 -0
  363. package/dist/react/ds-button-inverted.js +15 -0
  364. package/dist/react/ds-calendar.d.ts +12 -0
  365. package/dist/react/ds-calendar.js +12 -0
  366. package/dist/react/ds-data-customize.d.ts +13 -0
  367. package/dist/react/ds-data-customize.js +15 -0
  368. package/dist/react/ds-data-filter.d.ts +18 -0
  369. package/dist/react/{ds-table-filter.js → ds-data-filter.js} +5 -5
  370. package/dist/react/ds-data-group.d.ts +14 -0
  371. package/dist/react/{ds-table-group.js → ds-data-group.js} +5 -5
  372. package/dist/react/ds-data-preferences.d.ts +21 -0
  373. package/dist/react/{ds-table-preferences.js → ds-data-preferences.js} +6 -6
  374. package/dist/react/ds-data-saved-views.d.ts +17 -0
  375. package/dist/react/{ds-table-saved-views.js → ds-data-saved-views.js} +5 -5
  376. package/dist/react/ds-data-search.d.ts +14 -0
  377. package/dist/react/{ds-table-search.js → ds-data-search.js} +5 -5
  378. package/dist/react/ds-data-sort.d.ts +12 -0
  379. package/dist/react/ds-data-sort.js +12 -0
  380. package/dist/react/{ds-table-toolbar.d.ts → ds-data-toolbar.d.ts} +3 -3
  381. package/dist/react/ds-data-toolbar.js +12 -0
  382. package/dist/react/ds-field.d.ts +1 -1
  383. package/dist/react/ds-input-date.d.ts +12 -0
  384. package/dist/react/ds-input-date.js +12 -0
  385. package/dist/react/ds-input-time.d.ts +12 -0
  386. package/dist/react/ds-input-time.js +12 -0
  387. package/dist/react/ds-table.d.ts +3 -3
  388. package/dist/react/ds-table.js +1 -1
  389. package/dist/react/ds-time-picker.d.ts +12 -0
  390. package/dist/react/ds-time-picker.js +12 -0
  391. package/dist/styles/table.css +11 -11
  392. package/dist/types/components/BarTitle/BarTitle.d.ts +1 -0
  393. package/dist/types/components/BarTitle/bar-title-action-chrome.d.ts +2 -0
  394. package/dist/types/components/ButtonInverted/ButtonInverted.d.ts +83 -0
  395. package/dist/types/components/ButtonInverted/index.d.ts +2 -0
  396. package/dist/types/components/Calendar/Calendar.d.ts +32 -0
  397. package/dist/types/components/Calendar/calendar-grid.d.ts +19 -0
  398. package/dist/types/components/ConversationList/ConversationList.d.ts +0 -7
  399. package/dist/types/components/DataCustomize/DataCustomize.d.ts +67 -0
  400. package/dist/types/components/{TableFilter/TableFilter.d.ts → DataFilter/DataFilter.d.ts} +2 -2
  401. package/dist/types/components/{TableGroup/TableGroup.d.ts → DataGroup/DataGroup.d.ts} +8 -8
  402. package/dist/types/components/{TablePreferences/TablePreferences.d.ts → DataPreferences/DataPreferences.d.ts} +29 -13
  403. package/dist/types/components/{TableSavedViews/TableSavedViews.d.ts → DataSavedViews/DataSavedViews.d.ts} +10 -10
  404. package/dist/types/components/DataSavedViews/data-saved-views-types.d.ts +24 -0
  405. package/dist/types/components/DataSavedViews/index.d.ts +2 -0
  406. package/dist/types/components/{TableSearch/TableSearch.d.ts → DataSearch/DataSearch.d.ts} +6 -6
  407. package/dist/types/components/{TableSearch/table-search-model.d.ts → DataSearch/data-search-model.d.ts} +6 -6
  408. package/dist/types/components/{TableSearch/table-search-types.d.ts → DataSearch/data-search-types.d.ts} +3 -3
  409. package/dist/types/components/{TableSort/TableSort.d.ts → DataSort/DataSort.d.ts} +7 -6
  410. package/dist/types/components/DataSort/data-sort-menu.d.ts +15 -0
  411. package/dist/types/components/{TableToolbar/TableToolbar.d.ts → DataToolbar/DataToolbar.d.ts} +3 -3
  412. package/dist/types/components/Field/Field.d.ts +7 -2
  413. package/dist/types/components/FilterMenu/FilterMenu.d.ts +0 -10
  414. package/dist/types/components/Icon/icon-cache.d.ts +36 -4
  415. package/dist/types/components/Icon/map-icon-catalog.d.ts +3 -0
  416. package/dist/types/components/Input/Input.d.ts +10 -0
  417. package/dist/types/components/InputDate/InputDate.d.ts +78 -0
  418. package/dist/types/components/InputTime/InputTime.d.ts +80 -0
  419. package/dist/types/components/PanelTools/PanelTools.d.ts +1 -1
  420. package/dist/types/components/Select/Select.d.ts +8 -1
  421. package/dist/types/components/Table/Table.d.ts +9 -9
  422. package/dist/types/components/Table/index.d.ts +1 -1
  423. package/dist/types/components/Table/table-action-menu.d.ts +1 -1
  424. package/dist/types/components/Table/table-body-renderer.d.ts +2 -2
  425. package/dist/types/components/Table/table-column-customizer.d.ts +9 -9
  426. package/dist/types/components/Table/table-group-load-controller.d.ts +2 -2
  427. package/dist/types/components/Table/table-model.d.ts +7 -7
  428. package/dist/types/components/Table/table-render-model.d.ts +3 -3
  429. package/dist/types/components/Table/table-types.d.ts +17 -36
  430. package/dist/types/components/Table/table-virtual-model.d.ts +2 -2
  431. package/dist/types/components/TimePicker/TimePicker.d.ts +33 -0
  432. package/dist/types/components.d.ts +5461 -4433
  433. package/dist/types/utils/button-render.d.ts +1 -1
  434. package/dist/types/utils/clock-time.d.ts +23 -0
  435. package/dist/types/utils/data-field.d.ts +38 -0
  436. package/dist/types/utils/date-filter-value.d.ts +4 -0
  437. package/dist/types/utils/index.d.ts +3 -1
  438. package/dist/types/utils/list-customizer.d.ts +38 -0
  439. package/dist/types/utils/table-caption-compact.d.ts +1 -1
  440. package/dist/vue/components.d.ts +13 -7
  441. package/dist/vue/components.js +13 -7
  442. package/dist/vue/ds-button-inverted.d.ts +3 -0
  443. package/dist/vue/ds-button-inverted.js +33 -0
  444. package/dist/vue/{ds-table-sort.d.ts → ds-calendar.d.ts} +1 -1
  445. package/dist/vue/ds-calendar.js +16 -0
  446. package/dist/vue/ds-conversation-list.js +1 -3
  447. package/dist/vue/ds-data-customize.d.ts +3 -0
  448. package/dist/vue/ds-data-customize.js +23 -0
  449. package/dist/vue/{ds-table-group.d.ts → ds-data-filter.d.ts} +1 -1
  450. package/dist/vue/{ds-table-filter.js → ds-data-filter.js} +2 -2
  451. package/dist/vue/{ds-table-filter.d.ts → ds-data-group.d.ts} +1 -1
  452. package/dist/vue/{ds-table-group.js → ds-data-group.js} +2 -2
  453. package/dist/vue/{ds-table-saved-views.d.ts → ds-data-preferences.d.ts} +1 -1
  454. package/dist/vue/{ds-table-preferences.js → ds-data-preferences.js} +10 -7
  455. package/dist/vue/ds-data-saved-views.d.ts +3 -0
  456. package/dist/vue/{ds-table-saved-views.js → ds-data-saved-views.js} +2 -2
  457. package/dist/vue/{ds-table-search.d.ts → ds-data-search.d.ts} +1 -1
  458. package/dist/vue/{ds-table-search.js → ds-data-search.js} +3 -3
  459. package/dist/vue/ds-data-sort.d.ts +3 -0
  460. package/dist/vue/{ds-table-sort.js → ds-data-sort.js} +3 -3
  461. package/dist/vue/ds-data-toolbar.d.ts +3 -0
  462. package/dist/vue/ds-data-toolbar.js +9 -0
  463. package/dist/vue/{ds-table-preferences.d.ts → ds-input-date.d.ts} +1 -1
  464. package/dist/vue/ds-input-date.js +31 -0
  465. package/dist/vue/ds-input-time.d.ts +3 -0
  466. package/dist/vue/ds-input-time.js +32 -0
  467. package/dist/vue/ds-input.js +2 -0
  468. package/dist/vue/ds-select.js +3 -0
  469. package/dist/vue/ds-table.js +4 -4
  470. package/dist/vue/ds-time-picker.d.ts +3 -0
  471. package/dist/vue/ds-time-picker.js +16 -0
  472. package/package.json +3 -3
  473. package/dist/angular/ds-table-filter.d.ts +0 -50
  474. package/dist/angular/ds-table-group.d.ts +0 -29
  475. package/dist/angular/ds-table-preferences.d.ts +0 -39
  476. package/dist/angular/ds-table-saved-views.d.ts +0 -49
  477. package/dist/angular/ds-table-search.d.ts +0 -20
  478. package/dist/angular/ds-table-sort.d.ts +0 -16
  479. package/dist/angular/ds-table-toolbar.d.ts +0 -12
  480. package/dist/components/ds-table-filter.js +0 -2
  481. package/dist/components/ds-table-filter.js.map +0 -1
  482. package/dist/components/ds-table-group.js +0 -2
  483. package/dist/components/ds-table-preferences.d.ts +0 -11
  484. package/dist/components/ds-table-preferences.js +0 -2
  485. package/dist/components/ds-table-preferences.js.map +0 -1
  486. package/dist/components/ds-table-saved-views.js +0 -2
  487. package/dist/components/ds-table-saved-views.js.map +0 -1
  488. package/dist/components/ds-table-search.js +0 -2
  489. package/dist/components/ds-table-search.js.map +0 -1
  490. package/dist/components/ds-table-sort.js +0 -2
  491. package/dist/components/ds-table-sort.js.map +0 -1
  492. package/dist/components/ds-table-toolbar.d.ts +0 -11
  493. package/dist/components/ds-table-toolbar.js +0 -2
  494. package/dist/components/ds-table-toolbar.js.map +0 -1
  495. package/dist/components/p-BINSI_KF.js +0 -2
  496. package/dist/components/p-BbfBvMRR.js +0 -2
  497. package/dist/components/p-BbfBvMRR.js.map +0 -1
  498. package/dist/components/p-C1_3CVma.js +0 -2
  499. package/dist/components/p-C1_3CVma.js.map +0 -1
  500. package/dist/components/p-CKarsuR2.js +0 -2
  501. package/dist/components/p-CKarsuR2.js.map +0 -1
  502. package/dist/components/p-Cea7rROU.js +0 -2
  503. package/dist/components/p-Cea7rROU.js.map +0 -1
  504. package/dist/components/p-Cmj04E5Q.js +0 -2
  505. package/dist/components/p-Cmj04E5Q.js.map +0 -1
  506. package/dist/components/p-Cq_Qpe_C.js +0 -2
  507. package/dist/components/p-Cq_Qpe_C.js.map +0 -1
  508. package/dist/components/p-CwqFJMvP.js +0 -2
  509. package/dist/components/p-D44g2Kw1.js.map +0 -1
  510. package/dist/components/p-DZ58Sg5a.js.map +0 -1
  511. package/dist/components/p-D_u8WhlU.js +0 -2
  512. package/dist/components/p-Dhw_W8nk.js.map +0 -1
  513. package/dist/components/p-FPZbS19l.js +0 -2
  514. package/dist/components/p-FPZbS19l.js.map +0 -1
  515. package/dist/components/p-KBrC9IG4.js +0 -2
  516. package/dist/components/p-KBrC9IG4.js.map +0 -1
  517. package/dist/components/p-N5SHSVo2.js +0 -2
  518. package/dist/components/p-QjkufCcn.js +0 -2
  519. package/dist/components/p-QjkufCcn.js.map +0 -1
  520. package/dist/components/p-UAIxh67Q.js +0 -2
  521. package/dist/components/p-UAIxh67Q.js.map +0 -1
  522. package/dist/components/p-beCz9OnD.js +0 -2
  523. package/dist/components/p-xHGqrz_p.js +0 -2
  524. package/dist/mcp-data/registry/table-group.json +0 -358
  525. package/dist/mcp-data/registry/table-preferences.json +0 -511
  526. package/dist/mcp-data/registry/table-saved-views.json +0 -431
  527. package/dist/mcp-data/registry/table-search.json +0 -366
  528. package/dist/mcp-data/registry/table-sort.json +0 -253
  529. package/dist/mcp-data/registry/table-toolbar.json +0 -180
  530. package/dist/react/ds-table-filter.d.ts +0 -18
  531. package/dist/react/ds-table-group.d.ts +0 -14
  532. package/dist/react/ds-table-preferences.d.ts +0 -21
  533. package/dist/react/ds-table-saved-views.d.ts +0 -17
  534. package/dist/react/ds-table-search.d.ts +0 -14
  535. package/dist/react/ds-table-sort.d.ts +0 -12
  536. package/dist/react/ds-table-sort.js +0 -12
  537. package/dist/react/ds-table-toolbar.js +0 -12
  538. package/dist/types/components/FilterMenu/filter-menu-calendar.d.ts +0 -13
  539. package/dist/types/components/TableSavedViews/index.d.ts +0 -2
  540. package/dist/types/components/TableSavedViews/table-saved-views-types.d.ts +0 -24
  541. package/dist/types/components/TableSort/table-sort-menu.d.ts +0 -15
  542. package/dist/vue/ds-table-toolbar.d.ts +0 -3
  543. package/dist/vue/ds-table-toolbar.js +0 -9
  544. /package/dist/components/{ds-table-group.js.map → ds-calendar.js.map} +0 -0
  545. /package/dist/components/{p-BQsVI_vO.js.map → p-5URekSny.js.map} +0 -0
  546. /package/dist/components/{p-eo_pmPqp.js.map → p-7V1AhetH.js.map} +0 -0
  547. /package/dist/components/{p-yZRXPHDe.js.map → p-8yBdCXCn.js.map} +0 -0
  548. /package/dist/components/{p-BQaO7cg_.js.map → p-BhJXmuRA.js.map} +0 -0
  549. /package/dist/components/{p-n68x-ZKp.js.map → p-Bm7rqs3C.js.map} +0 -0
  550. /package/dist/components/{p-DdspY23v.js.map → p-Bn8I7iw6.js.map} +0 -0
  551. /package/dist/components/{p-BnWxbhFP.js.map → p-Bpd6YCo4.js.map} +0 -0
  552. /package/dist/components/{p-B-9fdIWv.js.map → p-C-3YqeTb.js.map} +0 -0
  553. /package/dist/components/{p-umAf0fBn.js.map → p-CD4DZPy_.js.map} +0 -0
  554. /package/dist/components/{p-CuwopElg.js.map → p-CGidq1iC.js.map} +0 -0
  555. /package/dist/components/{p-CI7VfYC3.js.map → p-CUcUHwI3.js.map} +0 -0
  556. /package/dist/components/{p-BcdHgPi5.js.map → p-CeXf9-X3.js.map} +0 -0
  557. /package/dist/components/{p-CSnsz3Eb.js.map → p-CiH4GG6r.js.map} +0 -0
  558. /package/dist/components/{p-y06IxxoN.js.map → p-CiJ1WR11.js.map} +0 -0
  559. /package/dist/components/{p-BmFeeR4q.js.map → p-CqW2eyiF.js.map} +0 -0
  560. /package/dist/components/{p-CzbsTZt7.js.map → p-Cxr0IQjC.js.map} +0 -0
  561. /package/dist/components/{p-CqlBlv55.js.map → p-CzIpquvw.js.map} +0 -0
  562. /package/dist/components/{p-DC69DgAR.js.map → p-D0y7Sja6.js.map} +0 -0
  563. /package/dist/components/{p-C7CZ9pnP.js.map → p-D6Wl3dRO.js.map} +0 -0
  564. /package/dist/components/{p-BPhbwXOv.js.map → p-D922f6Tb.js.map} +0 -0
  565. /package/dist/components/{p-beRFLHbB.js.map → p-DHICPS4n.js.map} +0 -0
  566. /package/dist/components/{p-omPm8_vx.js.map → p-DOAybCp0.js.map} +0 -0
  567. /package/dist/components/{p-BnzsBNUY.js.map → p-Dn9QHL4O.js.map} +0 -0
  568. /package/dist/components/{p-DGzn4k4h.js.map → p-Do2FJd1y.js.map} +0 -0
  569. /package/dist/components/{p-DTDLlinw.js.map → p-DpoTwJAR.js.map} +0 -0
  570. /package/dist/components/{p-CLGtPE0K.js.map → p-DwbcNDJF.js.map} +0 -0
  571. /package/dist/components/{p-C8ek-1SP.js.map → p-E5W27Fu_.js.map} +0 -0
  572. /package/dist/components/{p-mpk_Mm8_.js.map → p-FIBCluwV.js.map} +0 -0
  573. /package/dist/components/{p-CE540WZ7.js.map → p-MG4lcN0D.js.map} +0 -0
  574. /package/dist/components/{p-DtLQIMsa.js.map → p-ZhP2tVmM.js.map} +0 -0
  575. /package/dist/components/{p-BPlWEidl.js.map → p-ljbw3UMZ.js.map} +0 -0
  576. /package/dist/components/{p-DFjIBS5B.js.map → p-xdmJCPCg.js.map} +0 -0
  577. /package/dist/components/{p-CAxDdYjh.js.map → p-xtGGIZmU.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SelectController","constructor","state","this","triggerEl","popupEl","searchEl","typeahead","typeaheadTimer","outsideHandler","setTriggerElement","element","setPopupElement","setSearchElement","handleTriggerKeyDown","event","open","includes","key","preventDefault","openPopup","isTypeaheadKey","searchable","searchTerm","handleTypeahead","handleListKeyDown","focusRingVisible","activeIndex","moveChoiceIndex","options","enabledChoiceIndexes","enabled","length","target","Node","contains","option","selectOption","closePopup","position","AnchoredPositionController","getAnchor","getPopup","measure","trigger","popup","isConnected","host","sectionPadding","resolveCssLengthPx","TOKEN_DEFAULTS","space050","style","minWidth","menuWidthXs","choicePopupMinWidth","offsetWidth","align","popupAlign","anchorRect","getBoundingClientRect","popupWidth","popupHeight","offsetHeight","side","sideOffsetPx","alignOffsetPx","resolveChoicePopupAlignOffset","sectionInsetPx","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","collisionRect","resolveAnchoredOverlayBoundaryRect","boundary","apply","x","y","positionReady","topLayer","activeOptionId","isLoading","generatedId","undefined","connect","openChanged","disconnect","cancelPositionRetry","unbindPopupListeners","clearTimeout","setFocus","focus","optionsChanged","requestAnimationFrame","updatePosition","loadingChanged","positionChanged","bindPopupListeners","schedulePositionUpdate","scrollActiveOptionIntoView","searchChanged","activeIndexChanged","focusVisible","edge","isDisabled","preferredIndex","restoreFocus","focusSearchOrTrigger","metaKey","ctrlKey","altKey","normalized","toLocaleLowerCase","repeatedCharacter","every","character","match","findChoiceTypeaheadMatch","resetMs","resolveCssTimeMs","animationDurationMedium1","setTimeout","querySelector","scrollIntoView","block","inline","eventIntersectsComposedBoundary","document","addEventListener","observe","removeEventListener","unobserve","cancel","onReady","schedule","update","selectCss","ICON_SIZE","lg","md","sm","xs","OPTION_ACTION_SIZE","selectId","Select","__stencil_proxyCustomElement","HTMLElement","registerHost","sections","multiple","value","disabled","required","requiredMessage","DEFAULT_REQUIRED_MESSAGE","placeholder","triggerLabelPlaceholder","dot","size","isInset","insetDepth","width","isInactive","neutralTrigger","activeFill","collapseLabel","iconOnly","hasBorder","rounded","indicator","allowClear","clearLabel","selectedLabel","searchPlaceholder","noResultsText","loadingLabel","error","ariaLabel","formDisabled","compactFooterSummary","captionCompact","listboxId","errorId","initialValue","controller","createController","hasLoaded","clearSelection","stopPropagation","dsChange","emit","dsClear","visibleOptions","activateFooterAction","dsFooterAction","owner","el","findIndex","scalarValue","componentWillLoad","normalizeValueForMode","Array","isArray","syncFormValue","componentDidLoad","observeFooterContent","syncCaptionCompactObserver","connectedCallback","componentDidRender","scheduleFooterSummaryMeasurement","disconnectedCallback","footerResizeObserver","observedFooterContentElement","footerMeasurementFrame","cancelAnimationFrame","disconnectCaptionCompactObserver","onCollapseLabelChange","inactive","values","resolvedValues","setRepeatedFormControlValue","internals","name","hasSelection","setFormControlValue","missing","setRequiredValidity","onLoadingChange","onPopupAlignChange","onOpenChange","dsOpenChange","onSearchTermChange","onActiveIndexChange","formDisabledCallback","formResetCallback","formStateRestoreCallback","restoreStringFormState","restoreStringArrayFormState","allSections","resolveChoiceSections","allOptions","flattenChoiceSections","visibleSections","filterChoiceSections","valid","Set","map","filter","has","selectedOption","find","Boolean","popupRole","some","action","content","footerContentElement","ResizeObserver","measureFooterSummary","summary","footerSummaryMeasureElement","clear","footerClearElement","styles","getComputedStyle","clientWidth","Number","parseFloat","paddingInlineStart","paddingInlineEnd","requiredWidth","columnGap","nextCompact","current","next","renderOption","index","usesIcons","usesSubtext","selected","active","actionId","h","ChoiceOptionRow","id","actionOpen","surfaceOpen","expanded","leading","class","label","checked","presentation","icon","color","supporting","subtextActions","actionIndex","as","variant","CONTROL_SUPPORTING_TEXT_VARIANT","type","tone","onKeyDown","onClick","dsOptionSubtextAction","actionValue","originalEvent","haspopup","controls","onDsClick","dsOptionAction","anchorId","detail","onHover","onSelect","captionIconOnly","doubleInset","captionCompactDisconnect","observeTableCaptionCompact","compact","renderCaptionTooltip","render","showPlaceholder","count","triggerLabel","textVariant","CONTROL_TEXT_VARIANT","iconSize","usesOptionIcons","choiceListUsesIcons","usesOptionSubtext","choiceListUsesSubtext","showError","errorMessage","describedBy","ariaDescribedby","join","popupStyle","left","top","transform","Math","round","zIndex","visibility","flatIndex","Host","controlWidthClass","background","ref","inputId","choiceBackgroundClassMap","role","String","ariaLabelledby","shiftKey","getElementById","lineTruncation","hasRing","trim","popover","ChoiceSearch","activeDescendant","inputRef","onValueChange","body","section","sectionIndex","divider","header","emphasis","footerActionLabel","ChoiceActionFooter","onAction","ChoiceFooter","compactSummary","useCompactSummary","contentRef","summaryMeasureRef","clearRef","onClear","textId"],"sources":["src/wc/utils/select-controller.ts","src/wc/components/Select/Select.css?tag=ds-select&encapsulation=scoped","src/wc/components/Select/Select.tsx"],"sourcesContent":["import { AnchoredPositionController } from './anchored-position-controller';\nimport {\n enabledChoiceIndexes,\n findChoiceTypeaheadMatch,\n moveChoiceIndex,\n type ChoiceOption,\n} from './choice-list';\nimport { choicePopupMinWidth, resolveChoicePopupAlignOffset } from './choice-popup-alignment';\nimport { resolveCssLengthPx } from './resolve-css-length-px';\nimport { resolveCssTimeMs } from './resolve-css-time-ms';\nimport { TOKEN_DEFAULTS } from './token-defaults';\nimport { eventIntersectsComposedBoundary } from './anchored-overlay-interaction-controller';\nimport { resolveAnchoredOverlayBoundaryRect } from './anchored-overlay-boundary';\n\ntype PopupPosition = { x: number; y: number };\n\nexport interface SelectControllerState<T extends ChoiceOption> {\n readonly host: HTMLElement;\n readonly generatedId: string;\n readonly options: T[];\n readonly searchable: boolean;\n readonly isLoading: boolean;\n readonly isDisabled: boolean;\n readonly preferredIndex: number;\n readonly popupAlign: 'start' | 'end';\n readonly boundary: HTMLElement | undefined;\n open: boolean;\n activeIndex: number;\n searchTerm: string;\n focusRingVisible: boolean;\n position: PopupPosition;\n positionReady: boolean;\n selectOption(option: T): void;\n}\n\n/**\n * Shared single/multiple Select interaction controller.\n *\n * Decorated Stencil state and scalar/array selection remain in each component;\n * this controller owns only popup lifecycle, focus, positioning, typeahead,\n * and listbox keyboard traversal. Anchored placement is delegated to\n * `AnchoredPositionController`; only the choice-cell measurement stays here.\n */\nexport class SelectController<T extends ChoiceOption> {\n private triggerEl: HTMLButtonElement | null = null;\n private popupEl: HTMLDivElement | null = null;\n private searchEl: HTMLDsInputElement | null = null;\n private typeahead = '';\n private typeaheadTimer: ReturnType<typeof setTimeout> | null = null;\n private outsideHandler: ((event: MouseEvent) => void) | null = null;\n private readonly position: AnchoredPositionController;\n\n constructor(private readonly state: SelectControllerState<T>) {\n this.position = new AnchoredPositionController({\n getAnchor: () => this.triggerEl,\n getPopup: () => this.popupEl,\n measure: (trigger, popup) => {\n if (!this.state.open || !popup.isConnected || !this.state.host.contains(popup)) return null;\n\n const sectionPadding = resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n popup.style.minWidth = `max(var(--ds-choice-popup-min-inline-size, ${TOKEN_DEFAULTS.menuWidthXs}), ${choicePopupMinWidth(trigger.offsetWidth, sectionPadding)}px)`;\n\n const align = this.state.popupAlign;\n return {\n anchorRect: trigger.getBoundingClientRect(),\n popupWidth: popup.offsetWidth,\n popupHeight: popup.offsetHeight,\n side: 'bottom',\n align,\n sideOffsetPx: sectionPadding,\n alignOffsetPx: resolveChoicePopupAlignOffset({\n align,\n alignOffsetPx: 0,\n sectionInsetPx: sectionPadding,\n }),\n viewportPadPx: sectionPadding,\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(trigger, this.state.boundary),\n };\n },\n apply: ({ x, y }) => {\n this.state.position = { x, y };\n this.state.positionReady = true;\n },\n topLayer: true,\n });\n }\n\n get activeOptionId(): string | undefined {\n return !this.state.isLoading && this.state.activeIndex >= 0\n ? `${this.state.generatedId}-option-${this.state.activeIndex}`\n : undefined;\n }\n\n setTriggerElement = (element: HTMLButtonElement | null) => {\n this.triggerEl = element;\n };\n\n setPopupElement = (element: HTMLDivElement | null) => {\n this.popupEl = element;\n };\n\n setSearchElement = (element: HTMLDsInputElement | null) => {\n this.searchEl = element;\n };\n\n connect() {\n if (this.state.open) this.openChanged(true);\n }\n\n disconnect() {\n this.cancelPositionRetry();\n this.unbindPopupListeners();\n if (this.typeaheadTimer) clearTimeout(this.typeaheadTimer);\n }\n\n setFocus() {\n this.triggerEl?.focus();\n }\n\n optionsChanged() {\n if (!this.state.open) return;\n const enabled = enabledChoiceIndexes(this.state.options);\n if (!enabled.includes(this.state.activeIndex)) this.state.activeIndex = enabled[0] ?? -1;\n requestAnimationFrame(() => this.updatePosition());\n }\n\n loadingChanged() {\n if (this.state.open) requestAnimationFrame(() => this.updatePosition());\n }\n\n positionChanged() {\n if (this.state.open) requestAnimationFrame(() => this.updatePosition());\n }\n\n openChanged(open: boolean) {\n if (open) {\n this.bindPopupListeners();\n this.schedulePositionUpdate(() => {\n this.scrollActiveOptionIntoView();\n if (this.state.searchable) void this.searchEl?.setFocus();\n });\n return;\n }\n this.cancelPositionRetry();\n this.unbindPopupListeners();\n this.state.searchTerm = '';\n this.state.positionReady = false;\n }\n\n searchChanged() {\n this.state.activeIndex = enabledChoiceIndexes(this.state.options)[0] ?? -1;\n requestAnimationFrame(() => {\n this.updatePosition();\n this.scrollActiveOptionIntoView();\n });\n }\n\n activeIndexChanged() {\n requestAnimationFrame(() => this.scrollActiveOptionIntoView());\n }\n\n openPopup(focusVisible: boolean, edge?: 'first' | 'last') {\n if (this.state.isDisabled || (!this.state.options.length && !this.state.isLoading)) return;\n const enabled = enabledChoiceIndexes(this.state.options);\n this.state.activeIndex =\n edge === 'last'\n ? (enabled[enabled.length - 1] ?? -1)\n : this.state.preferredIndex >= 0\n ? this.state.preferredIndex\n : (enabled[0] ?? -1);\n this.state.focusRingVisible = focusVisible;\n this.state.open = true;\n }\n\n closePopup(restoreFocus = false) {\n if (!this.state.open) return;\n this.state.open = false;\n if (restoreFocus) requestAnimationFrame(() => this.triggerEl?.focus());\n }\n\n focusSearchOrTrigger() {\n requestAnimationFrame(() => {\n if (this.state.searchable) void this.searchEl?.setFocus();\n else this.triggerEl?.focus();\n });\n }\n\n handleTriggerKeyDown = (event: KeyboardEvent) => {\n if (!this.state.open) {\n if (['ArrowDown', 'ArrowUp', 'Enter', ' '].includes(event.key)) {\n event.preventDefault();\n this.openPopup(true, event.key === 'ArrowUp' ? 'last' : 'first');\n } else if (this.isTypeaheadKey(event)) {\n event.preventDefault();\n this.openPopup(true);\n if (this.state.searchable) this.state.searchTerm = event.key;\n else this.handleTypeahead(event.key);\n }\n return;\n }\n this.handleListKeyDown(event);\n };\n\n handleListKeyDown = (event: KeyboardEvent) => {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.state.focusRingVisible = true;\n this.state.activeIndex = moveChoiceIndex(this.state.options, this.state.activeIndex, 1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.state.focusRingVisible = true;\n this.state.activeIndex = moveChoiceIndex(this.state.options, this.state.activeIndex, -1);\n break;\n case 'Home':\n event.preventDefault();\n this.state.focusRingVisible = true;\n this.state.activeIndex = enabledChoiceIndexes(this.state.options)[0] ?? -1;\n break;\n case 'End': {\n event.preventDefault();\n this.state.focusRingVisible = true;\n const enabled = enabledChoiceIndexes(this.state.options);\n this.state.activeIndex = enabled[enabled.length - 1] ?? -1;\n break;\n }\n case 'Enter':\n case ' ': {\n if (\n event.key === ' ' &&\n this.state.searchable &&\n event.target instanceof Node &&\n this.searchEl?.contains(event.target)\n )\n break;\n event.preventDefault();\n const option = this.state.options[this.state.activeIndex];\n if (option) this.state.selectOption(option);\n break;\n }\n case 'Escape':\n event.preventDefault();\n this.closePopup(true);\n break;\n case 'Tab':\n this.closePopup();\n break;\n default:\n if (!this.state.searchable && this.isTypeaheadKey(event)) {\n this.handleTypeahead(event.key);\n }\n }\n };\n\n private isTypeaheadKey(event: KeyboardEvent) {\n return event.key.length === 1 && !event.metaKey && !event.ctrlKey && !event.altKey;\n }\n\n private handleTypeahead(key: string) {\n if (this.typeaheadTimer) clearTimeout(this.typeaheadTimer);\n this.state.focusRingVisible = true;\n const normalized = key.toLocaleLowerCase();\n const repeatedCharacter =\n this.typeahead.length > 0 && [...this.typeahead].every(character => character === normalized);\n this.typeahead = repeatedCharacter ? normalized : `${this.typeahead}${normalized}`;\n const match = findChoiceTypeaheadMatch(\n this.state.options,\n this.typeahead,\n this.state.activeIndex\n );\n if (match >= 0) this.state.activeIndex = match;\n const resetMs = resolveCssTimeMs(\n TOKEN_DEFAULTS.animationDurationMedium1,\n TOKEN_DEFAULTS.animationDurationMedium1\n );\n this.typeaheadTimer = setTimeout(() => {\n this.typeahead = '';\n this.typeaheadTimer = null;\n }, resetMs);\n }\n\n private scrollActiveOptionIntoView() {\n if (!this.state.open || !this.activeOptionId) return;\n this.state.host\n .querySelector<HTMLElement>(`#${this.activeOptionId}`)\n ?.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n\n private bindPopupListeners() {\n this.unbindPopupListeners();\n this.outsideHandler = event => {\n if (eventIntersectsComposedBoundary(event, this.state.host)) return;\n this.closePopup();\n };\n document.addEventListener('mousedown', this.outsideHandler, true);\n this.position.observe();\n }\n\n private unbindPopupListeners() {\n if (this.outsideHandler) {\n document.removeEventListener('mousedown', this.outsideHandler, true);\n this.outsideHandler = null;\n }\n this.position.unobserve();\n }\n\n private cancelPositionRetry() {\n this.position.cancel();\n }\n\n private schedulePositionUpdate(onReady?: () => void) {\n if (!this.state.open) return;\n this.state.positionReady = false;\n this.position.schedule(onReady);\n }\n\n private updatePosition(): boolean {\n return this.position.update();\n }\n}\n","@import '../../utils/radius.css';\n@import '../../utils/choice-list.css';\n@import '../../utils/control-density-inset.css';\n@import '../../utils/control-parts.css';\n@import '../../utils/control-width.css';\n@import '../../utils/field-stack.css';\n@import '../../utils/search-control.css';\n@import '../../utils/select-trigger.css';\n@import '../../utils/table-caption-control.css';\n@import '../../utils/typography.css';\n@import '../../styles/control-elevation.css';\n\n.wrapper--error {\n --ds-interaction-border-width: var(--dimension-stroke-width-018);\n --ds-interaction-border-color: var(--color-border-bold-negative);\n}\n\n.select-popup {\n color: var(--color-foreground-secondary);\n}\n\n.select-option[aria-selected='true'] .ds-choice-item__icon {\n color: var(--color-foreground-primary);\n}\n\n.select-option-row {\n position: relative;\n isolation: isolate;\n}\n\n.select-option-row__action {\n position: absolute;\n top: 50%;\n right: var(--dimension-space-050);\n z-index: var(--dimension-z-index-floating);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--dimension-radius-half);\n background: var(--color-background-transparent);\n -webkit-backdrop-filter: blur(var(--effect-blur-sm));\n backdrop-filter: blur(var(--effect-blur-sm));\n opacity: 0;\n pointer-events: none;\n transform: translateY(-50%);\n}\n\n.select-option-row:has(:focus-visible) .select-option-row__action,\n.select-option-row--action-open .select-option-row__action,\n.select-option-row--keyboard-active .select-option-row__action {\n opacity: 1;\n pointer-events: auto;\n}\n\n.select-option-row--action-open .select-option::after {\n background: var(--ds-interaction-hover);\n}\n\n.select-option__subtext-actions {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-050);\n min-inline-size: 0;\n color: var(--color-foreground-secondary);\n}\n\n.select-option__subtext-action {\n appearance: none;\n display: inline-flex;\n align-items: center;\n padding: 0;\n border: 0;\n border-radius: var(--dimension-radius-025);\n background: transparent;\n cursor: pointer;\n}\n\n.select-option__subtext-action--negative {\n --ds-text-action-foreground: var(--color-foreground-bold-negative);\n}\n\n.select-option__subtext-action-separator {\n color: var(--color-foreground-tertiary);\n pointer-events: none;\n}\n\n@media (hover: hover) and (pointer: fine) {\n .select-option-row:hover .select-option-row__action {\n opacity: 1;\n pointer-events: auto;\n }\n\n .select-option-row:hover .select-option::after {\n background: var(--ds-interaction-hover);\n }\n}\n\n@media (hover: none) {\n .select-option-row__action {\n opacity: 1;\n pointer-events: auto;\n }\n\n .select-option-row--has-action .ds-choice-item__content {\n padding-inline-end: var(--dimension-size-400);\n }\n}\n\n.error-text {\n width: 100%;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n type VNode,\n Watch,\n} from '@stencil/core';\nimport {\n controlWidthClass,\n CONTROL_SUPPORTING_TEXT_VARIANT,\n CONTROL_TEXT_VARIANT,\n DEFAULT_REQUIRED_MESSAGE,\n restoreStringArrayFormState,\n restoreStringFormState,\n setFormControlValue,\n setRepeatedFormControlValue,\n setRequiredValidity,\n type ControlInsetDepth,\n type ControlWidth,\n} from '../../utils';\nimport {\n ChoiceActionFooter,\n ChoiceFooter,\n ChoiceOptionRow,\n ChoiceSearch,\n} from '../../utils/choice-list-parts';\nimport {\n choiceBackgroundClassMap,\n choiceListUsesIcons,\n choiceListUsesSubtext,\n enabledChoiceIndexes,\n filterChoiceSections,\n flattenChoiceSections,\n resolveChoiceSections,\n type ChoiceBackground,\n type ChoiceOption,\n type ChoiceSection,\n} from '../../utils/choice-list';\nimport { SelectController } from '../../utils/select-controller';\nimport { observeTableCaptionCompact } from '../../utils/table-caption-compact';\n\nexport type SelectOption = ChoiceOption;\nexport type SelectSection = ChoiceSection;\nexport type SelectBackground = ChoiceBackground;\nexport type SelectSize = 'lg' | 'md' | 'sm' | 'xs';\nexport type SelectWidth = ControlWidth;\nexport type SelectPopupAlign = 'start' | 'end';\nexport type SelectValue = string | string[];\nexport type SelectIndicator = 'down' | 'up-down' | 'none';\n\nexport interface SelectOptionActionDetail {\n value: string;\n anchorId: string;\n originalEvent: MouseEvent;\n}\n\nexport interface SelectOptionSubtextActionDetail {\n value: string;\n actionValue: string;\n originalEvent: MouseEvent;\n}\n\nconst ICON_SIZE: Record<SelectSize, 'lg' | 'md' | 'sm' | 'xs'> = {\n lg: 'lg',\n md: 'md',\n sm: 'sm',\n xs: 'xs',\n};\n\nconst OPTION_ACTION_SIZE: Record<SelectSize, 'md' | 'sm' | 'xs'> = {\n lg: 'md',\n md: 'sm',\n sm: 'xs',\n xs: 'xs',\n};\n\nlet selectId = 0;\n\n@Component({\n tag: 'ds-select',\n styleUrl: 'Select.css',\n scoped: true,\n formAssociated: true,\n})\nexport class Select {\n @Element() el!: HTMLElement;\n @AttachInternals() internals!: ElementInternals;\n\n /** Flat choices. Assign arrays through the JavaScript property. */\n @Prop() options: SelectOption[] = [];\n /** Grouped choices; takes precedence over options. Assign through JavaScript. */\n @Prop() sections: SelectSection[] = [];\n /** Enable independent multi-value selection while keeping the popup open. */\n @Prop({ reflect: true }) multiple: boolean = false;\n /** Selected scalar or array value according to `multiple`. */\n @Prop({ mutable: true }) value: SelectValue = '';\n /** Controlled popup visibility. */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n /** Native form field name. */\n @Prop({ reflect: true }) name: string | undefined;\n /** Native disabled state. */\n @Prop({ reflect: true }) disabled: boolean = false;\n /** Require one valid selected value. */\n @Prop({ reflect: true }) required: boolean = false;\n /** Validation message used when required is missing. */\n @Prop() requiredMessage: string = DEFAULT_REQUIRED_MESSAGE;\n /** Trigger text shown when no valid value is selected. */\n @Prop() placeholder: string = 'Select';\n /** Optional scalar-mode trigger text that does not change the selected option label. */\n @Prop() triggerLabel: string | undefined;\n /** Present triggerLabel with placeholder emphasis while preserving the selected value. */\n @Prop() triggerLabelPlaceholder: boolean = false;\n /** Show a supplemental notification dot beside the trigger label. */\n @Prop() dot: boolean = false;\n /** Control density. */\n @Prop() size: SelectSize = 'md';\n /** Use reduced outer geometry when nested inside a control of the same size. */\n @Prop() isInset: boolean = false;\n /** Single removes 4px overall; double removes 8px overall (xs stays single). */\n @Prop() insetDepth: ControlInsetDepth = 'single';\n /** Width fit — hug content (default) or fill the parent. */\n @Prop() width: SelectWidth = 'hug';\n /** Align the popup's choice edge to the trigger start or end edge. */\n @Prop() popupAlign: SelectPopupAlign = 'start';\n /** Explicit collision owner; otherwise the nearest data-ds-overlay-boundary ancestor is used. */\n @Prop() boundary: HTMLElement | undefined;\n /** Shared inactive treatment; removes interaction and form submission. */\n @Prop() isInactive: boolean = false;\n /** Replace the prefix with a loader and disable option interaction. */\n @Prop() isLoading: boolean = false;\n /** Show the selected interaction fill when a valid value exists. */\n /** Keep trigger colors neutral when a value is selected. */\n @Prop() neutralTrigger: boolean = false;\n @Prop() activeFill: boolean = false;\n /**\n * Opt into table-caption icon-only chrome below 900px. The trigger omits its\n * visible label and chevron; keep an accessible name via aria-label.\n */\n @Prop({ reflect: true }) collapseLabel: boolean = false;\n /** Always show only the prefix icon; retain an accessible name via aria-label. */\n @Prop() iconOnly: boolean = false;\n /** Show the surface-aware inset border, including focused and invalid strokes. */\n @Prop() hasBorder: boolean = true;\n /** Use a pill radius on the trigger. Popup chrome stays on the menu radius. */\n @Prop() rounded: boolean = false;\n /** Optional trigger prefix icon name. */\n @Prop() icon: string | undefined;\n /** Trailing choice indicator. Use up-down for compact value steppers such as page size. */\n @Prop() indicator: SelectIndicator = 'down';\n /** Show the clear footer action when a value exists. */\n @Prop() allowClear: boolean = true;\n /** Localized clear action label. */\n @Prop() clearLabel: string = 'Clear';\n /** Localized noun displayed after the selected count in multiple mode. */\n @Prop() selectedLabel: string = 'selected';\n /** Optional text action shown in the popup footer instead of the clear action. */\n @Prop() footerActionLabel: string | undefined;\n /** Show immediate local filtering over option labels, subtext, and section headings. */\n @Prop() searchable: boolean = false;\n /** Localized search-field placeholder and accessible name. */\n @Prop() searchPlaceholder: string = 'Search';\n /** Localized empty-filter result text. */\n @Prop() noResultsText: string = 'No results found';\n /** Accessible loading status label. */\n @Prop() loadingLabel: string = 'Loading';\n /** Actual parent surface context; omit on primary and secondary surfaces. */\n @Prop() background: SelectBackground | undefined;\n /** Show invalid visual state. */\n @Prop() error: boolean = false;\n /** Error text rendered below the trigger when error is true. */\n @Prop() errorMessage: string | undefined;\n /** ID applied to the internal combobox trigger for external labels. */\n @Prop() inputId: string | undefined;\n /** Direct accessible name when no external label is available. */\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | null = null;\n /** IDs of elements that label the combobox. */\n @Prop({ attribute: 'aria-labelledby' }) ariaLabelledby: string | undefined;\n /** Additional IDs that describe the combobox. */\n @Prop({ attribute: 'aria-describedby' }) ariaDescribedby: string | undefined;\n\n /** Emitted after selection or clearing with the next scalar or array value. */\n @Event() dsChange!: EventEmitter<SelectValue>;\n /** Emitted after the footer clear action. */\n @Event() dsClear!: EventEmitter<void>;\n /** Emitted whenever popup visibility changes. */\n @Event() dsOpenChange!: EventEmitter<boolean>;\n /** Emitted when the optional popup footer action is activated. */\n @Event() dsFooterAction!: EventEmitter<void>;\n /** Emitted when an option's contextual ellipsis action is activated. */\n @Event() dsOptionAction!: EventEmitter<SelectOptionActionDetail>;\n /** Emitted when an option's supporting text action is activated. */\n @Event() dsOptionSubtextAction!: EventEmitter<SelectOptionSubtextActionDetail>;\n\n @State() private activeIndex = -1;\n @State() private searchTerm = '';\n @State() private formDisabled = false;\n @State() private position = { x: 0, y: 0 };\n @State() private positionReady = false;\n @State() private focusRingVisible = false;\n @State() private compactFooterSummary = false;\n @State() private captionCompact = false;\n\n private readonly generatedId = `ds-select-${++selectId}`;\n private readonly listboxId = `${this.generatedId}-listbox`;\n private readonly errorId = `${this.generatedId}-error`;\n private initialValue: SelectValue = '';\n private readonly controller = this.createController();\n private footerContentElement?: HTMLDivElement;\n private footerSummaryMeasureElement?: HTMLElement;\n private footerClearElement?: HTMLButtonElement;\n private footerResizeObserver?: ResizeObserver;\n private observedFooterContentElement?: HTMLDivElement;\n private footerMeasurementFrame?: number;\n private captionCompactDisconnect: (() => void) | undefined;\n private hasLoaded = false;\n\n private createController() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias -- adapter getters preserve reactive component ownership without inheritance.\n const owner = this;\n return new SelectController<SelectOption>({\n get host() {\n return owner.el;\n },\n generatedId: owner.generatedId,\n get options() {\n return owner.visibleOptions;\n },\n get searchable() {\n return owner.searchable;\n },\n get isLoading() {\n return owner.isLoading;\n },\n get isDisabled() {\n return owner.isDisabled;\n },\n get preferredIndex() {\n if (owner.multiple) return -1;\n return owner.visibleOptions.findIndex(\n option => option.value === owner.scalarValue && !option.isInactive\n );\n },\n get popupAlign() {\n return owner.popupAlign;\n },\n get boundary() {\n return owner.boundary;\n },\n get open() {\n return owner.open;\n },\n set open(value) {\n owner.open = value;\n },\n get activeIndex() {\n return owner.activeIndex;\n },\n set activeIndex(value) {\n owner.activeIndex = value;\n },\n get searchTerm() {\n return owner.searchTerm;\n },\n set searchTerm(value) {\n owner.searchTerm = value;\n },\n get focusRingVisible() {\n return owner.focusRingVisible;\n },\n set focusRingVisible(value) {\n owner.focusRingVisible = value;\n },\n get position() {\n return owner.position;\n },\n set position(value) {\n owner.position = value;\n },\n get positionReady() {\n return owner.positionReady;\n },\n set positionReady(value) {\n owner.positionReady = value;\n },\n selectOption: option => owner.selectOption(option),\n });\n }\n\n componentWillLoad() {\n this.value = this.normalizeValueForMode(this.value);\n this.initialValue = Array.isArray(this.value) ? [...this.value] : this.value;\n this.syncFormValue();\n }\n\n componentDidLoad() {\n this.hasLoaded = true;\n this.controller.connect();\n this.observeFooterContent();\n this.syncCaptionCompactObserver();\n }\n\n connectedCallback() {\n if (!this.hasLoaded) return;\n this.controller.connect();\n this.observeFooterContent();\n this.syncCaptionCompactObserver();\n }\n\n componentDidRender() {\n this.observeFooterContent();\n this.scheduleFooterSummaryMeasurement();\n }\n\n disconnectedCallback() {\n this.controller.disconnect();\n this.footerResizeObserver?.disconnect();\n this.observedFooterContentElement = undefined;\n if (this.footerMeasurementFrame !== undefined) {\n cancelAnimationFrame(this.footerMeasurementFrame);\n this.footerMeasurementFrame = undefined;\n }\n this.disconnectCaptionCompactObserver();\n }\n\n @Watch('collapseLabel')\n onCollapseLabelChange() {\n this.syncCaptionCompactObserver();\n }\n\n @Watch('value')\n @Watch('multiple')\n @Watch('disabled')\n @Watch('isInactive')\n @Watch('required')\n @Watch('name')\n @Watch('options')\n @Watch('sections')\n syncFormValue() {\n if (\n (this.multiple && !Array.isArray(this.value)) ||\n (!this.multiple && Array.isArray(this.value))\n ) {\n this.value = this.normalizeValueForMode(this.value);\n }\n const inactive = this.isDisabled;\n if (this.multiple) {\n const values = this.resolvedValues;\n setRepeatedFormControlValue(this.internals, this.name, values, { inactive });\n } else {\n const value = this.hasSelection ? this.scalarValue : '';\n setFormControlValue(this.internals, value, { inactive });\n }\n const missing = this.required && !inactive && !this.hasSelection;\n setRequiredValidity(this.internals, missing, this.requiredMessage);\n this.controller.optionsChanged();\n }\n\n @Watch('isLoading')\n onLoadingChange() {\n this.controller.loadingChanged();\n }\n\n @Watch('popupAlign')\n @Watch('boundary')\n onPopupAlignChange() {\n this.controller.positionChanged();\n }\n\n @Watch('open')\n onOpenChange(open: boolean) {\n this.dsOpenChange.emit(open);\n this.controller.openChanged(open);\n }\n\n @Watch('searchTerm')\n onSearchTermChange() {\n this.controller.searchChanged();\n }\n\n @Watch('activeIndex')\n onActiveIndexChange() {\n this.controller.activeIndexChanged();\n }\n\n formDisabledCallback(disabled: boolean) {\n this.formDisabled = disabled;\n this.syncFormValue();\n }\n\n formResetCallback() {\n this.value = this.normalizeValueForMode(this.initialValue);\n this.closePopup();\n }\n\n formStateRestoreCallback(state: string | File | FormData | null) {\n if (!this.multiple) {\n this.value = restoreStringFormState(state);\n return;\n }\n this.value = restoreStringArrayFormState(state);\n }\n\n @Method()\n async setFocus() {\n this.controller.setFocus();\n }\n\n private get isDisabled(): boolean {\n return this.disabled || this.isInactive || this.formDisabled;\n }\n\n private normalizeValueForMode(value: SelectValue): SelectValue {\n if (this.multiple) {\n return Array.isArray(value) ? [...value] : value ? [value] : [];\n }\n return Array.isArray(value) ? (value[0] ?? '') : value;\n }\n\n private get allSections(): SelectSection[] {\n return resolveChoiceSections(this.options, this.sections);\n }\n\n private get allOptions(): SelectOption[] {\n return flattenChoiceSections(this.allSections);\n }\n\n private get visibleSections(): SelectSection[] {\n return this.searchable\n ? filterChoiceSections(this.allSections, this.searchTerm)\n : this.allSections;\n }\n\n private get visibleOptions(): SelectOption[] {\n return flattenChoiceSections(this.visibleSections);\n }\n\n private get scalarValue(): string {\n return typeof this.value === 'string' ? this.value : '';\n }\n\n private get resolvedValues(): string[] {\n if (!this.multiple || !Array.isArray(this.value)) return [];\n const valid = new Set(this.allOptions.map(option => option.value));\n return [...new Set(this.value.filter(value => valid.has(value)))];\n }\n\n private get selectedOption(): SelectOption | undefined {\n if (this.multiple) return undefined;\n return this.allOptions.find(option => option.value === this.scalarValue);\n }\n\n private get hasSelection(): boolean {\n return this.multiple ? this.resolvedValues.length > 0 : Boolean(this.selectedOption);\n }\n\n private get activeOptionId(): string | undefined {\n return this.controller.activeOptionId;\n }\n\n private get popupRole(): 'listbox' | 'grid' {\n return this.allOptions.some(option => Boolean(option.action)) ? 'grid' : 'listbox';\n }\n\n private observeFooterContent() {\n const content =\n this.open && this.multiple && this.hasSelection ? this.footerContentElement : undefined;\n if (!content?.isConnected) {\n this.footerResizeObserver?.disconnect();\n this.observedFooterContentElement = undefined;\n return;\n }\n if (this.observedFooterContentElement === content) return;\n\n this.footerResizeObserver?.disconnect();\n if (typeof ResizeObserver !== 'undefined') {\n this.footerResizeObserver = new ResizeObserver(() => this.scheduleFooterSummaryMeasurement());\n this.footerResizeObserver.observe(content);\n }\n this.observedFooterContentElement = content;\n }\n\n private scheduleFooterSummaryMeasurement() {\n if (\n !this.open ||\n !this.multiple ||\n !this.hasSelection ||\n this.footerMeasurementFrame !== undefined\n ) {\n return;\n }\n this.footerMeasurementFrame = requestAnimationFrame(() => {\n this.footerMeasurementFrame = undefined;\n this.measureFooterSummary();\n });\n }\n\n private measureFooterSummary() {\n const content = this.footerContentElement;\n const summary = this.footerSummaryMeasureElement;\n const clear = this.footerClearElement;\n if (!content?.isConnected || !summary?.isConnected || !clear?.isConnected) return;\n\n const styles = getComputedStyle(content);\n const innerWidth =\n content.clientWidth -\n Number.parseFloat(styles.paddingInlineStart || '0') -\n Number.parseFloat(styles.paddingInlineEnd || '0');\n const requiredWidth =\n summary.getBoundingClientRect().width +\n clear.getBoundingClientRect().width +\n Number.parseFloat(styles.columnGap || '0');\n const nextCompact = requiredWidth > innerWidth + 0.5;\n if (nextCompact !== this.compactFooterSummary) {\n this.compactFooterSummary = nextCompact;\n }\n }\n\n private closePopup(restoreFocus = false) {\n this.controller.closePopup(restoreFocus);\n }\n\n private openPopup(focusVisible: boolean, edge?: 'first' | 'last') {\n this.controller.openPopup(focusVisible, edge);\n }\n\n private selectOption(option: SelectOption) {\n if (option.isInactive || this.isLoading) return;\n if (this.multiple) {\n const current = this.resolvedValues;\n const next = current.includes(option.value)\n ? current.filter(value => value !== option.value)\n : [...current, option.value];\n this.value = next;\n this.dsChange.emit([...next]);\n return;\n }\n this.value = option.value;\n this.dsChange.emit(option.value);\n this.controller.closePopup(true);\n }\n\n private clearSelection = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n this.value = this.multiple ? [] : '';\n this.dsChange.emit(this.multiple ? [] : '');\n this.dsClear.emit();\n if (!this.multiple) {\n const enabled = enabledChoiceIndexes(this.visibleOptions);\n this.activeIndex = enabled[0] ?? -1;\n }\n this.controller.focusSearchOrTrigger();\n };\n\n private activateFooterAction = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n this.dsFooterAction.emit();\n this.closePopup();\n };\n\n private readonly handleListKeyDown = this.controller.handleListKeyDown;\n private readonly handleTriggerKeyDown = this.controller.handleTriggerKeyDown;\n\n private renderOption(\n option: SelectOption,\n index: number,\n usesIcons: boolean,\n usesSubtext: boolean\n ) {\n const selected = this.multiple\n ? this.resolvedValues.includes(option.value)\n : option.value === this.scalarValue;\n const active = index === this.activeIndex;\n const actionId = `${this.generatedId}-option-action-${index}`;\n return (\n <ChoiceOptionRow\n size={this.size}\n id={`${this.generatedId}-option-${index}`}\n option={option}\n selected={selected}\n active={active}\n focusRingVisible={this.focusRingVisible}\n usesSubtext={usesSubtext}\n actionOpen={option.action?.surfaceOpen ?? option.action?.expanded}\n popupRole={this.popupRole}\n leading={\n this.multiple ? (\n <span\n class=\"ds-choice-item__icon ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-checkbox\n class=\"select-option__checkbox\"\n label=\"\"\n size={this.size}\n checked={selected}\n presentation\n />\n </span>\n ) : usesIcons && option.icon ? (\n <span\n class=\"ds-choice-item__icon ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-icon name={option.icon} size={this.size} color=\"inherit\" />\n </span>\n ) : undefined\n }\n supporting={\n option.subtextActions?.length ? (\n <span class=\"ds-choice-item__subtext ds-control-label-box select-option__subtext-actions\">\n {option.subtextActions.map((action, actionIndex) => [\n actionIndex > 0 ? (\n <ds-text\n class=\"select-option__subtext-action-separator\"\n as=\"span\"\n variant={CONTROL_SUPPORTING_TEXT_VARIANT[this.size]}\n color=\"inherit\"\n aria-hidden=\"true\"\n >\n ·\n </ds-text>\n ) : null,\n <button\n type=\"button\"\n class={{\n 'select-option__subtext-action': true,\n 'select-option__subtext-action--negative': action.tone === 'negative',\n 'ds-text-action': true,\n 'ds-focus-ring': true,\n }}\n onKeyDown={(event: KeyboardEvent) => event.stopPropagation()}\n onClick={(event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n this.dsOptionSubtextAction.emit({\n value: option.value,\n actionValue: action.value,\n originalEvent: event,\n });\n }}\n >\n <ds-text\n as=\"span\"\n variant={CONTROL_SUPPORTING_TEXT_VARIANT[this.size]}\n color=\"inherit\"\n >\n {action.label}\n </ds-text>\n </button>,\n ])}\n </span>\n ) : undefined\n }\n action={\n option.action ? (\n <ds-tooltip label={option.action.label} side=\"left\" size=\"sm\">\n <ds-button-unfilled\n id={actionId}\n variant=\"icon\"\n size={OPTION_ACTION_SIZE[this.size]}\n icon=\"Ellipses\"\n rounded\n hasBorder={false}\n activeFill={false}\n ariaLabel={option.action.label}\n haspopup=\"menu\"\n controls={option.action.controls}\n expanded={option.action.expanded}\n surfaceOpen={option.action.surfaceOpen}\n onKeyDown={event => {\n event.stopPropagation();\n if (event.key === 'Escape' || event.key === 'ArrowLeft') {\n event.preventDefault();\n this.controller.focusSearchOrTrigger();\n }\n }}\n onDsClick={(event: CustomEvent<MouseEvent>) => {\n event.stopPropagation();\n this.dsOptionAction.emit({\n value: option.value,\n anchorId: actionId,\n originalEvent: event.detail,\n });\n }}\n />\n </ds-tooltip>\n ) : undefined\n }\n onHover={() => {\n this.focusRingVisible = false;\n this.activeIndex = index;\n }}\n onSelect={() => this.selectOption(option)}\n />\n );\n }\n\n private get captionIconOnly(): boolean {\n return (\n (this.iconOnly || (this.collapseLabel && this.captionCompact)) &&\n Boolean(this.icon || this.isLoading)\n );\n }\n\n private get doubleInset(): boolean {\n return this.isInset && this.insetDepth === 'double' && this.size !== 'xs';\n }\n\n private syncCaptionCompactObserver(): void {\n this.disconnectCaptionCompactObserver();\n if (!this.collapseLabel) {\n if (this.captionCompact) this.captionCompact = false;\n return;\n }\n this.captionCompactDisconnect = observeTableCaptionCompact(this.el, compact => {\n if (this.captionCompact !== compact) this.captionCompact = compact;\n });\n }\n\n private disconnectCaptionCompactObserver(): void {\n this.captionCompactDisconnect?.();\n this.captionCompactDisconnect = undefined;\n }\n\n private renderCaptionTooltip(trigger: VNode, label: string): VNode {\n if (!this.collapseLabel) return trigger;\n return (\n <ds-tooltip label={label} side=\"top\" size=\"sm\">\n {trigger}\n </ds-tooltip>\n );\n }\n\n render() {\n const inactive = this.isDisabled;\n const showPlaceholder = !this.hasSelection;\n const count = this.resolvedValues.length;\n const label = this.multiple\n ? `${this.placeholder}${count > 0 ? ` · ${count}` : ''}`\n : showPlaceholder\n ? this.placeholder\n : (this.triggerLabel ?? this.selectedOption?.label);\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const iconSize = ICON_SIZE[this.size];\n const usesOptionIcons = !this.multiple && choiceListUsesIcons(this.allOptions);\n const usesOptionSubtext = choiceListUsesSubtext(this.allOptions);\n const showError = this.error && Boolean(this.errorMessage);\n const describedBy =\n [this.ariaDescribedby, showError ? this.errorId : undefined].filter(Boolean).join(' ') ||\n undefined;\n const popupStyle = {\n position: 'fixed',\n left: '0',\n top: '0',\n transform: `translate(${Math.round(this.position.x)}px, ${Math.round(this.position.y)}px)`,\n zIndex: 'var(--dimension-z-index-floating)',\n visibility: this.positionReady ? 'visible' : 'hidden',\n };\n let flatIndex = 0;\n\n return (\n <Host\n class={{\n 'select-host': true,\n 'ds-select-trigger-host': true,\n 'select-host--multiple': this.multiple,\n 'ds-field-stack': true,\n 'ds-field-stack--supporting-inset': !this.hasBorder,\n 'ds-control-inactive': inactive,\n [`ds-control--${this.size}`]: true,\n 'ds-table-caption-control': this.collapseLabel,\n 'ds-table-caption-control--compact': this.captionIconOnly,\n ...controlWidthClass(this.width),\n [`select-host--background-${this.background}`]: !!this.background,\n [`ds-select-trigger-host--background-${this.background}`]: !!this.background,\n }}\n >\n {this.renderCaptionTooltip(\n <button\n ref={element => {\n this.controller.setTriggerElement((element as HTMLButtonElement) ?? null);\n }}\n id={this.inputId ?? this.generatedId}\n type=\"button\"\n class={{\n trigger: true,\n 'ds-control-frame': true,\n 'ds-focus-ring-inset': true,\n 'ds-interaction-fill': true,\n 'ds-interaction-fill--selected': !inactive && this.activeFill && this.hasSelection,\n 'trigger--expanded': !inactive && this.open,\n 'ds-interaction-fill--surface-open': !inactive && this.open,\n 'trigger--bordered': this.hasBorder,\n 'trigger--rounded': this.rounded,\n 'trigger--placeholder': showPlaceholder && !this.multiple,\n 'trigger--has-value': this.hasSelection && !this.neutralTrigger,\n 'trigger--label-placeholder':\n !this.multiple && Boolean(this.triggerLabel) && this.triggerLabelPlaceholder,\n 'wrapper--error': this.hasBorder && this.error,\n [`ds-control--${this.size}`]: true,\n 'ds-control--inset': this.isInset && !this.doubleInset,\n 'ds-control--inset-double': this.doubleInset,\n ...choiceBackgroundClassMap(this.background),\n }}\n disabled={inactive}\n role=\"combobox\"\n aria-haspopup={this.popupRole}\n aria-expanded={String(this.open)}\n aria-controls={this.open ? this.listboxId : undefined}\n aria-activedescendant={this.open && !this.searchable ? this.activeOptionId : undefined}\n aria-label={this.ariaLabel ?? (this.captionIconOnly ? label : undefined)}\n aria-labelledby={this.ariaLabelledby}\n aria-describedby={describedBy}\n aria-invalid={this.error ? 'true' : undefined}\n aria-required={this.required || undefined}\n aria-busy={this.isLoading ? 'true' : undefined}\n onClick={() => (this.open ? this.closePopup() : this.openPopup(false))}\n onKeyDown={event => {\n const action = this.visibleOptions[this.activeIndex]?.action;\n if (\n this.open &&\n action &&\n (event.key === 'ArrowRight' || (event.key === 'F10' && event.shiftKey))\n ) {\n event.preventDefault();\n document\n .getElementById(`${this.generatedId}-option-action-${this.activeIndex}`)\n ?.querySelector<HTMLElement>('button')\n ?.focus();\n return;\n }\n this.handleTriggerKeyDown(event);\n }}\n >\n {(this.icon || this.isLoading) && (\n <span\n class=\"trigger__prefix ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n {this.isLoading ? (\n <ds-loader size={iconSize} color=\"inherit\" />\n ) : (\n <ds-icon name={this.icon} size={iconSize} color=\"inherit\" />\n )}\n </span>\n )}\n {this.captionIconOnly ? null : (\n <span\n class={{\n 'trigger__label-box': true,\n 'ds-interaction-fill__content': true,\n }}\n >\n <span\n class={{\n 'trigger__label-content': true,\n 'ds-control-label-box': true,\n 'ds-control-label-dot': this.dot,\n 'trigger__label-content--dot': this.dot,\n }}\n >\n <ds-text\n class=\"trigger__label\"\n as=\"span\"\n variant={textVariant}\n color=\"inherit\"\n lineTruncation={1}\n >\n {label}\n </ds-text>\n {this.dot && (\n <ds-badge\n class=\"trigger__dot ds-control-label-dot__badge\"\n variant=\"dot\"\n hasRing={false}\n label=\"\"\n aria-hidden=\"true\"\n />\n )}\n </span>\n </span>\n )}\n {this.captionIconOnly || this.indicator === 'none' ? null : (\n <span\n class=\"trigger__chevron ds-control-icon-box ds-interaction-fill__content\"\n aria-hidden=\"true\"\n >\n <ds-icon\n name={this.indicator === 'up-down' ? 'ChevronUpDown' : 'ChevronDown'}\n size={iconSize}\n color=\"inherit\"\n />\n </span>\n )}\n </button>,\n this.captionIconOnly ? this.ariaLabel?.trim() || this.placeholder : ''\n )}\n\n {this.open && (\n <div\n popover=\"manual\"\n ref={element => {\n this.controller.setPopupElement((element as HTMLDivElement) ?? null);\n }}\n class=\"select-popup ds-choice-popup\"\n style={popupStyle}\n >\n {this.searchable && (\n <ChoiceSearch\n size={this.size}\n value={this.searchTerm}\n placeholder={this.searchPlaceholder}\n controls={this.listboxId}\n activeDescendant={this.activeOptionId}\n inputRef={this.controller.setSearchElement}\n clearLabel={this.clearLabel}\n onValueChange={value => {\n this.searchTerm = value;\n }}\n onKeyDown={event => this.handleListKeyDown(event)}\n />\n )}\n <div\n id={this.listboxId}\n class=\"ds-choice-list\"\n role={this.popupRole}\n aria-multiselectable={this.multiple ? 'true' : undefined}\n aria-label={this.ariaLabel ?? this.placeholder}\n aria-busy={this.isLoading ? 'true' : undefined}\n >\n {this.isLoading ? (\n <div\n class=\"ds-choice-loading ds-empty-region\"\n role={this.popupRole === 'grid' ? 'row' : 'option'}\n aria-selected=\"false\"\n aria-disabled=\"true\"\n aria-label={this.loadingLabel}\n aria-live=\"polite\"\n >\n {this.popupRole === 'grid' ? (\n <span role=\"gridcell\">\n <ds-loader size={this.size} color=\"inherit\" />\n </span>\n ) : (\n <ds-loader size={this.size} color=\"inherit\" />\n )}\n </div>\n ) : this.visibleOptions.length === 0 ? (\n <div\n class=\"ds-choice-empty ds-empty-region\"\n role={this.popupRole === 'grid' ? 'row' : 'option'}\n aria-selected=\"false\"\n aria-disabled=\"true\"\n aria-label={this.noResultsText}\n aria-live=\"polite\"\n >\n {this.popupRole === 'grid' ? (\n <span role=\"gridcell\">\n <ds-empty-state body={this.noResultsText} />\n </span>\n ) : (\n <ds-empty-state body={this.noResultsText} />\n )}\n </div>\n ) : (\n this.visibleSections.map((section, sectionIndex) => (\n <div\n class={{\n 'ds-choice-section': true,\n 'ds-chrome-column': true,\n 'ds-chrome-space--sm': true,\n 'ds-choice-section--divided': !!section.divider,\n 'ds-choice-section--headed-after-first':\n sectionIndex > 0 && Boolean(section.header),\n }}\n role={\n this.popupRole === 'grid' ? 'rowgroup' : section.header ? 'group' : undefined\n }\n aria-label={section.header}\n >\n {section.header && this.popupRole === 'grid' ? (\n <ds-text\n class={`ds-choice-section__header ds-control-section-heading ds-control--${this.size}`}\n as=\"span\"\n variant={CONTROL_SUPPORTING_TEXT_VARIANT[this.size]}\n emphasis\n color=\"primary\"\n role=\"row\"\n >\n <span class=\"ds-choice-section__header-label\" role=\"gridcell\">\n {section.header}\n </span>\n </ds-text>\n ) : section.header ? (\n <ds-text\n class={`ds-choice-section__header ds-control-section-heading ds-control--${this.size}`}\n as=\"span\"\n variant={CONTROL_SUPPORTING_TEXT_VARIANT[this.size]}\n emphasis\n color=\"primary\"\n aria-hidden=\"true\"\n >\n <span class=\"ds-choice-section__header-label\">{section.header}</span>\n </ds-text>\n ) : null}\n {section.options.map(option =>\n this.renderOption(option, flatIndex++, usesOptionIcons, usesOptionSubtext)\n )}\n </div>\n ))\n )}\n </div>\n {this.footerActionLabel && !this.isLoading ? (\n <ChoiceActionFooter\n size={this.size}\n label={this.footerActionLabel}\n onAction={this.activateFooterAction}\n />\n ) : this.allowClear && this.hasSelection && !this.isLoading ? (\n <ChoiceFooter\n size={this.size}\n summary={this.multiple ? `${count} ${this.selectedLabel}` : undefined}\n compactSummary={this.multiple ? String(count) : undefined}\n useCompactSummary={this.compactFooterSummary}\n contentRef={element => {\n this.footerContentElement = element ?? undefined;\n }}\n summaryMeasureRef={element => {\n this.footerSummaryMeasureElement = element ?? undefined;\n }}\n clearRef={element => {\n this.footerClearElement = element ?? undefined;\n }}\n clearLabel={this.clearLabel}\n onClear={this.clearSelection}\n />\n ) : null}\n </div>\n )}\n\n {showError && (\n <ds-text\n class=\"error-text\"\n as=\"div\"\n variant=\"text-body-small\"\n color=\"negative\"\n textId={this.errorId}\n role=\"alert\"\n >\n {this.errorMessage}\n </ds-text>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- const t={lg:"text-body-large",md:"text-body-medium",sm:"text-body-small",xs:"text-caption"};const e={lg:"text-body-medium",md:"text-body-small",sm:"text-caption",xs:"text-caption"};export{t as C,e as a};
2
- //# sourceMappingURL=p-CuwopElg.js.map
1
+ const t={lg:"text-body-large",md:"text-body-medium",sm:"text-body-small",xs:"text-caption"};const e={lg:"text-body-medium",md:"text-body-small",sm:"text-caption",xs:"text-caption"};export{e as C,t as a};
2
+ //# sourceMappingURL=p-CGidq1iC.js.map
@@ -0,0 +1,2 @@
1
+ import{p as i,H as e,c as t,h as r,a as o,t as s}from"./index.js";import{d as n}from"./p-DwbcNDJF.js";const c=[1,2,3,4,5,6,7,8,9,10,11,12];const d=["AM","PM"];const a=/^\d{2}:\d{2}$/;function l(i){if(!a.test(i))return false;const[e,t]=i.split(":").map(Number);return e>=0&&e<=23&&t>=0&&t<=59}function u(i=60){const e=typeof i==="number"?i:Number(i);if(!Number.isFinite(e)||e<=0)return 1;if(e<60)return 1;return Math.max(1,Math.round(e/60))}function f(i=1,e=0){const t=Number.isFinite(i)&&i>0?Math.floor(i):1;const r=(Math.floor(e)%60+60)%60;const o=new Set;for(let i=0;i<1440;i+=t){o.add((r+i)%60)}return[...o].sort(((i,e)=>i-e))}function p(i){if(!l(i))return null;const[e,t]=i.split(":").map(Number);const r=e>=12?"PM":"AM";const o=e%12===0?12:e%12;return{hour12:o,minute:t,period:r}}function m(i){const e=i.period==="AM"?i.hour12===12?0:i.hour12:i.hour12===12?12:i.hour12+12;return`${String(e).padStart(2,"0")}:${String(i.minute).padStart(2,"0")}`}function v(i){const e=p(i);if(!e)return"";return`${e.hour12}:${String(e.minute).padStart(2,"0")} ${e.period}`}function h(i){const e=i.trim();if(!e)return"";if(l(e))return e;const t=e.match(/^(\d{1,2}):(\d{2})$/);if(t){const i=Number(t[1]);const e=Number(t[2]);if(i>23||e>59)return"";return`${String(i).padStart(2,"0")}:${t[2]}`}const r=e.match(/^(\d{1,2})(?::(\d{2}))?\s*([AaPp])\.?[Mm]\.?$/);if(!r)return"";const o=Number(r[1]);const s=r[2]?Number(r[2]):0;if(o<1||o>12||s>59)return"";const n=r[3].toUpperCase()==="P"?"PM":"AM";return m({hour12:o,minute:s,period:n})}function k(i,e,t){if(!l(i))return true;if(e&&l(e)&&i<e)return true;if(t&&l(t)&&i>t)return true;return false}function g(i,e=60,t){if(!l(i))return false;const r=i.split(":").map(Number);const o=t&&l(t)?t.split(":").map(Number):[0,0];const s=u(e);const n=r[0]*60+r[1];const c=o[0]*60+o[1];return(n-c)%s===0}function b(i,e,t){if(t<=0)return 0;return Math.min(t-1,Math.max(0,i+e))}const w=()=>`.sc-ds-time-picker-h,.sc-ds-time-picker:where(.ds-table),.sc-ds-time-picker:where(.tooltip-popup),.sc-ds-time-picker:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}.ds-control--lg.sc-ds-time-picker,.ds-control--lg.sc-ds-time-picker-h,.ds-control--md.sc-ds-time-picker-h,.ds-control--md.sc-ds-time-picker,.ds-control--sm.sc-ds-time-picker-h,.ds-control--sm.sc-ds-time-picker,.ds-control--xs.sc-ds-time-picker-h,.ds-control--xs.sc-ds-time-picker{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-time-picker-h,.ds-control--lg.sc-ds-time-picker{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-time-picker-h,.ds-control--md.sc-ds-time-picker{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-time-picker-h,.ds-control--sm.sc-ds-time-picker{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-time-picker-h,.ds-control--xs.sc-ds-time-picker{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}@media (forced-colors: active){.sc-ds-time-picker:root,.sc-ds-time-picker-h,.ds-forced-colors-scope.sc-ds-time-picker{--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-time-picker-h{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}.ds-focus-ring.sc-ds-time-picker-h,.ds-focus-ring.sc-ds-time-picker,.ds-focus-ring-inset.sc-ds-time-picker-h,.ds-focus-ring-inset.sc-ds-time-picker{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-time-picker-h:focus-visible,.ds-focus-ring.sc-ds-time-picker:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring.ds-focus-ring--visible.sc-ds-time-picker-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-time-picker{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring-inset.sc-ds-time-picker-h:focus-visible,.ds-focus-ring-inset.sc-ds-time-picker:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-time-picker-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-time-picker:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-time-picker-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-time-picker{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-time-picker-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-time-picker::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}@media (forced-colors: active){.sc-ds-time-picker-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-time-picker:root,.sc-ds-time-picker-h,.ds-forced-colors-scope.sc-ds-time-picker{--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-interaction-fill.sc-ds-time-picker-h,.ds-interaction-fill.sc-ds-time-picker{position:var(--ds-interaction-position, relative);z-index:var(--ds-interaction-z-index, 0);cursor:default;--ds-interaction-hover:var(--color-interaction-hover);--ds-interaction-pressed:var(--color-interaction-pressed);--ds-interaction-active:var(--color-interaction-active-brand);--ds-interaction-border-width:0px;--ds-interaction-border-color:transparent;--ds-interaction-divider-width:0px;--ds-interaction-divider-color:transparent;--ds-interaction-divider-inline-start-width:0px;--ds-interaction-divider-inline-start-color:transparent;--ds-interaction-divider-inline-end-width:0px;--ds-interaction-divider-inline-end-color:transparent}.ds-interaction-fill.sc-ds-time-picker-h::before,.ds-interaction-fill.sc-ds-time-picker::before,.ds-interaction-fill.sc-ds-time-picker-h::after,.ds-interaction-fill.sc-ds-time-picker::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-time-picker-h::before,.ds-interaction-fill.sc-ds-time-picker::before{z-index:1}.ds-interaction-fill.sc-ds-time-picker-h::after,.ds-interaction-fill.sc-ds-time-picker::after{z-index:3;box-shadow:inset 0 calc(-1 * var(--ds-interaction-divider-width)) 0 var(--ds-interaction-divider-color), inset var(--ds-interaction-divider-inline-start-width) 0 0 var(--ds-interaction-divider-inline-start-color), inset calc(-1 * var(--ds-interaction-divider-inline-end-width)) 0 0 var(--ds-interaction-divider-inline-end-color), inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-interaction-fill--bordered.sc-ds-time-picker-h,.ds-interaction-fill--bordered.sc-ds-time-picker{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-time-picker-h::before,.ds-interaction-fill--selected.sc-ds-time-picker::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-time-picker-h,.ds-interaction-fill--selected.sc-ds-time-picker{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-time-picker-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-time-picker:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-time-picker-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-time-picker:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-time-picker-h::after,.ds-interaction-fill--grouped.sc-ds-time-picker::after,.ds-interaction-fill--grouped.sc-ds-time-picker-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-time-picker:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-time-picker-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-time-picker:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-time-picker-h,.ds-interaction-fill--grouped.sc-ds-time-picker{--ds-interaction-divider-width:var(--ds-interaction-group-divider-width, 0px);--ds-interaction-divider-color:var(--ds-interaction-group-divider-color, transparent);--ds-interaction-divider-inline-start-width:var( --ds-interaction-group-divider-inline-start-width, 0px );--ds-interaction-divider-inline-start-color:var( --ds-interaction-group-divider-inline-start-color, transparent );--ds-interaction-divider-inline-end-width:var( --ds-interaction-group-divider-inline-end-width, 0px );--ds-interaction-divider-inline-end-color:var( --ds-interaction-group-divider-inline-end-color, transparent )}.ds-interaction-fill.sc-ds-time-picker-h>.ds-interaction-fill__content.sc-ds-time-picker,.ds-interaction-fill.sc-ds-time-picker>.ds-interaction-fill__content.sc-ds-time-picker,.ds-interaction-fill__content.sc-ds-time-picker{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-time-picker-h,.ds-interaction-fill--on-faint.sc-ds-time-picker{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-time-picker-h,.ds-interaction-fill--on-medium.sc-ds-time-picker{--ds-interaction-hover:var(--color-interaction-on-medium-background-hover);--ds-interaction-pressed:var(--color-interaction-on-medium-background-pressed);--ds-interaction-active:var(--color-interaction-on-medium-background-active);--ds-focus-ring-color:var(--color-interaction-on-medium-background-focus)}.ds-interaction-fill--on-bold.sc-ds-time-picker-h,.ds-interaction-fill--on-bold.sc-ds-time-picker{--ds-interaction-hover:var(--color-interaction-on-bold-background-hover);--ds-interaction-pressed:var(--color-interaction-on-bold-background-pressed);--ds-interaction-active:var(--color-interaction-on-bold-background-active);--ds-focus-ring-color:var(--color-interaction-on-bold-background-focus)}.ds-interaction-fill--on-strong.sc-ds-time-picker-h,.ds-interaction-fill--on-strong.sc-ds-time-picker{--ds-interaction-hover:var(--color-interaction-on-strong-background-hover);--ds-interaction-pressed:var(--color-interaction-on-strong-background-pressed);--ds-interaction-active:var(--color-interaction-on-strong-background-active);--ds-focus-ring-color:var(--color-interaction-on-strong-background-focus)}.ds-interaction-fill--on-translucent.sc-ds-time-picker-h,.ds-interaction-fill--on-translucent.sc-ds-time-picker{--ds-interaction-hover:var(--color-translucent-interaction-hover);--ds-interaction-pressed:var(--color-translucent-interaction-pressed);--ds-interaction-active:var(--color-translucent-interaction-active-brand);--ds-focus-ring-color:var(--color-translucent-interaction-focus)}.ds-interaction-fill--on-inverted.sc-ds-time-picker-h,.ds-interaction-fill--on-inverted.sc-ds-time-picker{--ds-interaction-hover:var(--color-inverted-interaction-hover);--ds-interaction-pressed:var(--color-inverted-interaction-pressed);--ds-interaction-active:var(--color-inverted-interaction-active-brand);--ds-focus-ring-color:var(--color-inverted-interaction-focus)}.ds-interaction-fill--on-media.sc-ds-time-picker-h,.ds-interaction-fill--on-media.sc-ds-time-picker{--ds-interaction-hover:var(--color-media-interaction-hover);--ds-interaction-pressed:var(--color-media-interaction-pressed);--ds-interaction-active:var(--color-media-interaction-active);--ds-focus-ring-color:var(--color-media-interaction-focus)}.ds-interaction-fill--on-always-dark.sc-ds-time-picker-h,.ds-interaction-fill--on-always-dark.sc-ds-time-picker{--ds-interaction-hover:var(--color-always-dark-interaction-hover);--ds-interaction-pressed:var(--color-always-dark-interaction-pressed);--ds-interaction-active:var(--color-always-dark-interaction-active-brand);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-time-picker-h,.ds-interaction-fill--on-navigation.sc-ds-time-picker{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-time-picker-h:not(:disabled)::after,.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-time-picker:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-time-picker-h::after,.ds-interaction-fill.sc-ds-time-picker::after{box-shadow:none;outline:var(--ds-interaction-border-width) solid var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--ds-interaction-border-width))}.ds-interaction-fill--surface-open.sc-ds-time-picker-h:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill--surface-open.sc-ds-time-picker:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}.ds-interaction-fill--selected.sc-ds-time-picker-h::before,.ds-interaction-fill--selected.sc-ds-time-picker::before{background:transparent;outline:var(--dimension-stroke-width-025) solid var(--ds-forced-color-selected);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}}@media (forced-colors: active) and (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-time-picker-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-time-picker:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline-color:var(--ds-forced-color-selected);outline-width:var(--dimension-stroke-width-012)}}@media (forced-colors: active){.sc-ds-time-picker:root,.sc-ds-time-picker-h,.ds-forced-colors-scope.sc-ds-time-picker{--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-time-picker-h{display:flex;min-height:0;flex-direction:column}.time-picker.sc-ds-time-picker{display:grid;grid-template-columns:repeat(3, minmax(var(--dimension-size-400), 1fr));column-gap:var(--dimension-space-050);min-width:calc( (var(--dimension-size-400) * 3) + (var(--dimension-space-050) * 2) + (var(--ds-time-picker-padding, var(--dimension-space-100)) * 2) );padding:var(--ds-time-picker-padding, var(--dimension-space-100))}.time-picker__column.sc-ds-time-picker{display:flex;min-width:0;flex-direction:column}.time-picker__list.sc-ds-time-picker{display:flex;flex-direction:column;gap:var(--dimension-space-050);max-height:calc((var(--dimension-size-400) * 7) + (var(--dimension-space-050) * 6));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.time-picker-tile.sc-ds-time-picker{appearance:none;position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;min-width:0;width:100%;height:var(--dimension-size-400);padding:0;border:0;border-radius:var(--dimension-radius-025);background:transparent;color:var(--color-foreground-primary);cursor:default}.time-picker-tile.sc-ds-time-picker:disabled{cursor:not-allowed}`;const x=i(class i extends e{constructor(i){super();if(i!==false){this.__registerHost()}this.dsChange=t(this,"dsChange",7);this.value="";this.step=60;this.isInactive=false;this.autoFocus=false;this.handleColumnKeyDown=(i,e,t,r)=>{const o=["hour","minute","period"];const s=o.indexOf(e);if(i.key==="ArrowLeft"||i.key==="ArrowRight"){const t=o[b(s,i.key==="ArrowLeft"?-1:1,o.length)];if(!t||t===e){i.preventDefault();return}i.preventDefault();const r=t==="hour"?c:t==="minute"?this.minutes():d;const n=this.focusValue(t,r);if(n!==undefined)this.focusOption(t,n);return}let n=null;if(i.key==="ArrowUp")n=-1;else if(i.key==="ArrowDown")n=1;else if(i.key==="Home"||i.key==="End")n=0;if(n===null)return;i.preventDefault();let a;if(i.key==="Home"){a=t.find((i=>!this.isDisabledPart(e,this.optionParts(e,i))))}else if(i.key==="End"){for(let i=t.length-1;i>=0;i-=1){const r=t[i];if(r!==undefined&&!this.isDisabledPart(e,this.optionParts(e,r))){a=r;break}}}else{const i=n;let o=t.indexOf(r);if(o<0)o=i>0?-1:t.length;for(let r=o+i;r>=0&&r<t.length;r+=i){const i=t[r];if(i!==undefined&&!this.isDisabledPart(e,this.optionParts(e,i))){a=i;break}}}if(a===undefined)return;this.focusOption(e,a)}}componentDidLoad(){this.scrollSelectedIntoView();if(this.autoFocus)void this.setFocus()}onValueChange(){this.scrollSelectedIntoView()}async setFocus(){this.focusColumn("hour",c)}parts(){return p(this.value)??{hour12:12,minute:0,period:"AM"}}minutes(){const i=this.min?p(this.min):null;return f(u(this.step),i?.minute??0)}isDisabledTime(i){if(this.isInactive)return true;return k(i,this.min,this.max)||!g(i,this.step,this.min)}optionParts(i,e){return i==="hour"?{hour12:e}:i==="minute"?{minute:e}:{period:e}}isDisabledPart(i,e){if(this.isInactive)return true;const t={...this.parts(),...e};const r=i==="hour"?[t.hour12]:c;const o=i==="minute"?[t.minute]:this.minutes();const s=i==="period"?[t.period]:d;return!r.some((i=>o.some((e=>s.some((t=>!this.isDisabledTime(m({hour12:i,minute:e,period:t}))))))))}orderedValues(i,e){return[i,...e.filter((e=>e!==i))]}commit(i,e){const t={...this.parts(),...e};const r=i==="hour"?[t.hour12]:this.orderedValues(t.hour12,c);const o=i==="minute"?[t.minute]:this.orderedValues(t.minute,this.minutes());const s=i==="period"?[t.period]:this.orderedValues(t.period,d);for(const i of r){for(const e of o){for(const t of s){const r=m({hour12:i,minute:e,period:t});if(!this.isDisabledTime(r)){this.dsChange.emit(r);return}}}}}optionEl(i,e){return this.el.querySelector(`[data-${i}-option="${e}"]`)}scrollSelectedIntoView(){const i=this.parts();this.optionEl("hour",i.hour12)?.scrollIntoView({block:"nearest"});this.optionEl("minute",i.minute)?.scrollIntoView({block:"nearest"});this.optionEl("period",i.period)?.scrollIntoView({block:"nearest"})}focusOption(i,e){requestAnimationFrame((()=>{this.optionEl(i,e)?.focus()}))}focusValue(i,e){const t=this.parts();const r=i==="hour"?t.hour12:i==="minute"?t.minute:t.period;if(!this.isDisabledPart(i,this.optionParts(i,r)))return r;return e.find((e=>!this.isDisabledPart(i,this.optionParts(i,e))))}focusColumn(i,e){const t=this.focusValue(i,e);if(t!==undefined)this.optionEl(i,t)?.focus()}renderTile(i,e,t,o,s,n){const c=this.optionParts(i,e);const d=this.isDisabledPart(i,c);return r("button",{type:"button",role:"option","data-hour-option":i==="hour"?String(e):undefined,"data-minute-option":i==="minute"?String(e):undefined,"data-period-option":i==="period"?String(e):undefined,class:{"time-picker-tile":true,"time-picker-tile--selected":t,"ds-focus-ring-inset":true,"ds-interaction-fill":!d,"ds-interaction-fill--selected":t&&!d},disabled:d,"aria-selected":t?"true":"false",tabIndex:o?0:-1,onClick:()=>this.commit(i,c),onKeyDown:t=>this.handleColumnKeyDown(t,i,n,e)},r("ds-text",{class:"ds-interaction-fill__content",as:"span",variant:"text-body-medium",color:t?"primary":"secondary"},s))}render(){const i=this.parts();const e=this.minutes();const t=e.includes(i.minute)?e:[...e,i.minute].sort(((i,e)=>i-e));const s=this.focusValue("hour",c);const n=this.focusValue("minute",t);const a=this.focusValue("period",d);return r(o,{key:"bb4139dd2970551e41a6cb67d5a6cecbd8d284d0"},r("div",{key:"f78bb81b0b00ca6a5e93cd62f565b71fbf384aed",class:"time-picker",role:"group","aria-label":"Choose time"},r("div",{key:"2200a6b5d4b70ac02add34d66012572c551ee040",class:"time-picker__column"},r("div",{key:"d5cb1c1048ca5478387e0ca89b6607b35aa10334",class:"time-picker__list",role:"listbox","aria-label":"Hour"},c.map((e=>this.renderTile("hour",e,e===i.hour12,e===s,String(e),c))))),r("div",{key:"adcd81119cb0464ad1d79e10b9395b2789c2523b",class:"time-picker__column"},r("div",{key:"4234ef56e38d3f0b9cb3d1177ae526cff956c97c",class:"time-picker__list",role:"listbox","aria-label":"Minute"},t.map((e=>this.renderTile("minute",e,e===i.minute,e===n,String(e).padStart(2,"0"),t))))),r("div",{key:"27bf8e0c3827ed842f4496b838d9ede843a11f54",class:"time-picker__column"},r("div",{key:"98f8d2f3854d7aad51cb5448ab22d9a7dad277e7",class:"time-picker__list",role:"listbox","aria-label":"AM/PM"},d.map((e=>this.renderTile("period",e,e===i.period,e===a,e,d)))))))}get el(){return this}static get watchers(){return{value:[{onValueChange:0}]}}static get style(){return w()}},[2,"ds-time-picker",{value:[1],min:[1],max:[1],step:[8],isInactive:[4,"is-inactive"],autoFocus:[4,"auto-focus"],setFocus:[64]},undefined,{value:[{onValueChange:0}]}]);function y(){if(typeof customElements==="undefined"){return}const i=["ds-time-picker","ds-text"];i.forEach((i=>{switch(i){case"ds-time-picker":if(!customElements.get(s(i))){customElements.define(s(i),x)}break;case"ds-text":if(!customElements.get(s(i))){n()}break}}))}y();export{x as T,g as a,y as d,v as f,l as i,h as p};
2
+ //# sourceMappingURL=p-CNxvnQ6A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CLOCK_HOURS","CLOCK_PERIODS","CLOCK_TIME_PATTERN","isClockTime","value","test","hour","minute","split","map","Number","clockMinuteStep","step","seconds","isFinite","Math","max","round","clockMinutes","baseMinute","stride","floor","normalizedBase","values","Set","offset","add","sort","a","b","splitClockTime","hour24","period","hour12","joinClockTime","parts","String","padStart","formatClockTimeLabel","parseLooseClockTime","trimmed","trim","twentyFour","match","meridiem","toUpperCase","isClockTimeOutOfRange","min","isClockTimeStepAligned","valueParts","baseParts","valueMinutes","baseMinutes","stepBoundedIndex","index","length","timePickerCss","TimePicker","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","isInactive","autoFocus","handleColumnKeyDown","event","column","current","columns","columnIndex","indexOf","key","nextColumn","preventDefault","nextValues","minutes","nextValue","focusValue","undefined","focusOption","next","find","isDisabledPart","optionParts","direction","candidate","componentDidLoad","scrollSelectedIntoView","setFocus","onValueChange","focusColumn","minimum","isDisabledTime","iso","hours","periods","some","orderedValues","filter","commit","dsChange","emit","optionEl","el","querySelector","scrollIntoView","block","requestAnimationFrame","focus","currentValue","renderTile","selected","focused","label","disabled","h","type","role","class","tabIndex","onClick","onKeyDown","as","variant","color","render","minuteValues","includes","hourFocus","minuteFocus","periodFocus","Host"],"sources":["src/wc/utils/clock-time.ts","src/wc/components/TimePicker/TimePicker.css?tag=ds-time-picker&encapsulation=scoped","src/wc/components/TimePicker/TimePicker.tsx"],"sourcesContent":["export type ClockPeriod = 'AM' | 'PM';\n\nexport interface ClockTimeParts {\n hour12: number;\n minute: number;\n period: ClockPeriod;\n}\n\nexport const CLOCK_HOURS = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] as const;\nexport const CLOCK_PERIODS: readonly ClockPeriod[] = ['AM', 'PM'];\n\nconst CLOCK_TIME_PATTERN = /^\\d{2}:\\d{2}$/;\n\nexport function isClockTime(value: string): boolean {\n if (!CLOCK_TIME_PATTERN.test(value)) return false;\n const [hour, minute] = value.split(':').map(Number);\n return hour >= 0 && hour <= 23 && minute >= 0 && minute <= 59;\n}\n\nexport function clockMinuteStep(step: string | number = 60): number {\n const seconds = typeof step === 'number' ? step : Number(step);\n if (!Number.isFinite(seconds) || seconds <= 0) return 1;\n if (seconds < 60) return 1;\n return Math.max(1, Math.round(seconds / 60));\n}\n\nexport function clockMinutes(step: number = 1, baseMinute: number = 0): number[] {\n const stride = Number.isFinite(step) && step > 0 ? Math.floor(step) : 1;\n const normalizedBase = ((Math.floor(baseMinute) % 60) + 60) % 60;\n const values = new Set<number>();\n for (let offset = 0; offset < 1440; offset += stride) {\n values.add((normalizedBase + offset) % 60);\n }\n return [...values].sort((a, b) => a - b);\n}\n\nexport function splitClockTime(value: string): ClockTimeParts | null {\n if (!isClockTime(value)) return null;\n const [hour24, minute] = value.split(':').map(Number);\n const period: ClockPeriod = hour24 >= 12 ? 'PM' : 'AM';\n const hour12 = hour24 % 12 === 0 ? 12 : hour24 % 12;\n return { hour12, minute, period };\n}\n\nexport function joinClockTime(parts: ClockTimeParts): string {\n const hour24 =\n parts.period === 'AM'\n ? parts.hour12 === 12\n ? 0\n : parts.hour12\n : parts.hour12 === 12\n ? 12\n : parts.hour12 + 12;\n return `${String(hour24).padStart(2, '0')}:${String(parts.minute).padStart(2, '0')}`;\n}\n\n/** Readable 12-hour label for filled clock values such as `09:00` → `9:00 AM`. */\nexport function formatClockTimeLabel(value: string): string {\n const parts = splitClockTime(value);\n if (!parts) return '';\n return `${parts.hour12}:${String(parts.minute).padStart(2, '0')} ${parts.period}`;\n}\n\n/** Parse a typed clock time: `HH:MM`, `H:MM`, or a 12-hour label such as `9:00 AM`. */\nexport function parseLooseClockTime(value: string): string {\n const trimmed = value.trim();\n if (!trimmed) return '';\n if (isClockTime(trimmed)) return trimmed;\n\n const twentyFour = trimmed.match(/^(\\d{1,2}):(\\d{2})$/);\n if (twentyFour) {\n const hour = Number(twentyFour[1]);\n const minute = Number(twentyFour[2]);\n if (hour > 23 || minute > 59) return '';\n return `${String(hour).padStart(2, '0')}:${twentyFour[2]}`;\n }\n\n const meridiem = trimmed.match(/^(\\d{1,2})(?::(\\d{2}))?\\s*([AaPp])\\.?[Mm]\\.?$/);\n if (!meridiem) return '';\n const hour12 = Number(meridiem[1]);\n const minute = meridiem[2] ? Number(meridiem[2]) : 0;\n if (hour12 < 1 || hour12 > 12 || minute > 59) return '';\n const period: ClockPeriod = meridiem[3].toUpperCase() === 'P' ? 'PM' : 'AM';\n return joinClockTime({ hour12, minute, period });\n}\n\nexport function isClockTimeOutOfRange(value: string, min?: string, max?: string): boolean {\n if (!isClockTime(value)) return true;\n if (min && isClockTime(min) && value < min) return true;\n if (max && isClockTime(max) && value > max) return true;\n return false;\n}\n\n/** Whether a minute-precision clock value aligns to the configured native step. */\nexport function isClockTimeStepAligned(\n value: string,\n step: string | number = 60,\n min?: string\n): boolean {\n if (!isClockTime(value)) return false;\n const valueParts = value.split(':').map(Number);\n const baseParts = min && isClockTime(min) ? min.split(':').map(Number) : [0, 0];\n const stride = clockMinuteStep(step);\n const valueMinutes = valueParts[0] * 60 + valueParts[1];\n const baseMinutes = baseParts[0] * 60 + baseParts[1];\n return (valueMinutes - baseMinutes) % stride === 0;\n}\n\n/** Move within a finite list without wrapping past the first or last item. */\nexport function stepBoundedIndex(index: number, offset: number, length: number): number {\n if (length <= 0) return 0;\n return Math.min(length - 1, Math.max(0, index + offset));\n}\n","@import '../../utils/radius.css';\n@import '../../utils/control-density.css';\n@import '../../utils/focus-ring.css';\n@import '../../utils/interaction-fill.css';\n@import '../../utils/forced-colors.css';\n\n:host {\n display: flex;\n min-height: 0;\n flex-direction: column;\n}\n\n.time-picker {\n display: grid;\n grid-template-columns: repeat(3, minmax(var(--dimension-size-400), 1fr));\n column-gap: var(--dimension-space-050);\n min-width: calc(\n (var(--dimension-size-400) * 3) + (var(--dimension-space-050) * 2) +\n (var(--ds-time-picker-padding, var(--dimension-space-100)) * 2)\n );\n padding: var(--ds-time-picker-padding, var(--dimension-space-100));\n}\n\n.time-picker__column {\n display: flex;\n min-width: 0;\n flex-direction: column;\n}\n\n.time-picker__list {\n display: flex;\n flex-direction: column;\n gap: var(--dimension-space-050);\n max-height: calc((var(--dimension-size-400) * 7) + (var(--dimension-space-050) * 6));\n overflow-x: hidden;\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n\n.time-picker-tile {\n appearance: none;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n min-width: 0;\n width: 100%;\n height: var(--dimension-size-400);\n padding: 0;\n border: 0;\n border-radius: var(--dimension-radius-025);\n background: transparent;\n color: var(--color-foreground-primary);\n cursor: default;\n}\n\n.time-picker-tile:disabled {\n cursor: not-allowed;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Method,\n Prop,\n Watch,\n h,\n Host,\n} from '@stencil/core';\nimport {\n CLOCK_HOURS,\n CLOCK_PERIODS,\n clockMinuteStep,\n clockMinutes,\n isClockTimeStepAligned,\n isClockTimeOutOfRange,\n joinClockTime,\n splitClockTime,\n stepBoundedIndex,\n type ClockPeriod,\n type ClockTimeParts,\n} from '../../utils';\n\ntype TimePickerColumn = 'hour' | 'minute' | 'period';\n\n@Component({\n tag: 'ds-time-picker',\n styleUrl: 'TimePicker.css',\n scoped: true,\n})\nexport class TimePicker {\n @Element() el!: HTMLElement;\n\n /** Clock value as `HH:MM`. */\n @Prop() value: string = '';\n @Prop() min: string | undefined;\n @Prop() max: string | undefined;\n /** Native time step in seconds. Defaults to minutes (`60`). */\n @Prop() step: string | number = 60;\n @Prop() isInactive: boolean = false;\n /** Move keyboard focus into the hour list after the picker is rendered. */\n @Prop() autoFocus: boolean = false;\n\n @Event() dsChange!: EventEmitter<string>;\n\n componentDidLoad() {\n this.scrollSelectedIntoView();\n if (this.autoFocus) void this.setFocus();\n }\n\n @Watch('value')\n onValueChange() {\n this.scrollSelectedIntoView();\n }\n\n @Method()\n async setFocus() {\n this.focusColumn('hour', CLOCK_HOURS);\n }\n\n private parts(): ClockTimeParts {\n return splitClockTime(this.value) ?? { hour12: 12, minute: 0, period: 'AM' };\n }\n\n private minutes(): number[] {\n const minimum = this.min ? splitClockTime(this.min) : null;\n return clockMinutes(clockMinuteStep(this.step), minimum?.minute ?? 0);\n }\n\n private isDisabledTime(iso: string): boolean {\n if (this.isInactive) return true;\n return (\n isClockTimeOutOfRange(iso, this.min, this.max) ||\n !isClockTimeStepAligned(iso, this.step, this.min)\n );\n }\n\n private optionParts(\n column: TimePickerColumn,\n value: number | ClockPeriod\n ): Partial<ClockTimeParts> {\n return column === 'hour'\n ? { hour12: value as number }\n : column === 'minute'\n ? { minute: value as number }\n : { period: value as ClockPeriod };\n }\n\n private isDisabledPart(column: TimePickerColumn, next: Partial<ClockTimeParts>): boolean {\n if (this.isInactive) return true;\n\n const current = { ...this.parts(), ...next };\n const hours: ReadonlyArray<number> = column === 'hour' ? [current.hour12] : CLOCK_HOURS;\n const minutes: ReadonlyArray<number> = column === 'minute' ? [current.minute] : this.minutes();\n const periods: ReadonlyArray<ClockPeriod> =\n column === 'period' ? [current.period] : CLOCK_PERIODS;\n\n return !hours.some(hour =>\n minutes.some(minute =>\n periods.some(\n period => !this.isDisabledTime(joinClockTime({ hour12: hour, minute, period }))\n )\n )\n );\n }\n\n private orderedValues<T>(current: T, values: ReadonlyArray<T>): T[] {\n return [current, ...values.filter(value => value !== current)];\n }\n\n private commit(column: TimePickerColumn, next: Partial<ClockTimeParts>) {\n const current = { ...this.parts(), ...next };\n const hours =\n column === 'hour' ? [current.hour12] : this.orderedValues(current.hour12, CLOCK_HOURS);\n const minutes =\n column === 'minute' ? [current.minute] : this.orderedValues(current.minute, this.minutes());\n const periods =\n column === 'period' ? [current.period] : this.orderedValues(current.period, CLOCK_PERIODS);\n\n for (const hour of hours) {\n for (const minute of minutes) {\n for (const period of periods) {\n const iso = joinClockTime({ hour12: hour, minute, period });\n if (!this.isDisabledTime(iso)) {\n this.dsChange.emit(iso);\n return;\n }\n }\n }\n }\n }\n\n private optionEl(column: TimePickerColumn, value: number | ClockPeriod): HTMLElement | null {\n return this.el.querySelector<HTMLElement>(`[data-${column}-option=\"${value}\"]`);\n }\n\n private scrollSelectedIntoView() {\n const parts = this.parts();\n this.optionEl('hour', parts.hour12)?.scrollIntoView({ block: 'nearest' });\n this.optionEl('minute', parts.minute)?.scrollIntoView({ block: 'nearest' });\n this.optionEl('period', parts.period)?.scrollIntoView({ block: 'nearest' });\n }\n\n private focusOption(column: TimePickerColumn, value: number | ClockPeriod) {\n requestAnimationFrame(() => {\n this.optionEl(column, value)?.focus();\n });\n }\n\n private focusValue(\n column: TimePickerColumn,\n values: ReadonlyArray<number | ClockPeriod>\n ): number | ClockPeriod | undefined {\n const current = this.parts();\n const currentValue =\n column === 'hour' ? current.hour12 : column === 'minute' ? current.minute : current.period;\n if (!this.isDisabledPart(column, this.optionParts(column, currentValue))) return currentValue;\n return values.find(value => !this.isDisabledPart(column, this.optionParts(column, value)));\n }\n\n private focusColumn(column: TimePickerColumn, values: ReadonlyArray<number | ClockPeriod>): void {\n const value = this.focusValue(column, values);\n if (value !== undefined) this.optionEl(column, value)?.focus();\n }\n\n private handleColumnKeyDown = (\n event: KeyboardEvent,\n column: TimePickerColumn,\n values: ReadonlyArray<number | ClockPeriod>,\n current: number | ClockPeriod\n ) => {\n const columns: TimePickerColumn[] = ['hour', 'minute', 'period'];\n const columnIndex = columns.indexOf(column);\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\n const nextColumn =\n columns[stepBoundedIndex(columnIndex, event.key === 'ArrowLeft' ? -1 : 1, columns.length)];\n if (!nextColumn || nextColumn === column) {\n event.preventDefault();\n return;\n }\n event.preventDefault();\n const nextValues =\n nextColumn === 'hour'\n ? CLOCK_HOURS\n : nextColumn === 'minute'\n ? this.minutes()\n : CLOCK_PERIODS;\n const nextValue = this.focusValue(nextColumn, nextValues);\n if (nextValue !== undefined) this.focusOption(nextColumn, nextValue);\n return;\n }\n\n let offset: number | null = null;\n if (event.key === 'ArrowUp') offset = -1;\n else if (event.key === 'ArrowDown') offset = 1;\n else if (event.key === 'Home' || event.key === 'End') offset = 0;\n if (offset === null) return;\n event.preventDefault();\n let next: number | ClockPeriod | undefined;\n if (event.key === 'Home') {\n next = values.find(value => !this.isDisabledPart(column, this.optionParts(column, value)));\n } else if (event.key === 'End') {\n for (let index = values.length - 1; index >= 0; index -= 1) {\n const value = values[index];\n if (value !== undefined && !this.isDisabledPart(column, this.optionParts(column, value))) {\n next = value;\n break;\n }\n }\n } else {\n const direction = offset;\n let index = values.indexOf(current);\n if (index < 0) index = direction > 0 ? -1 : values.length;\n for (\n let candidate = index + direction;\n candidate >= 0 && candidate < values.length;\n candidate += direction\n ) {\n const value = values[candidate];\n if (value !== undefined && !this.isDisabledPart(column, this.optionParts(column, value))) {\n next = value;\n break;\n }\n }\n }\n if (next === undefined) return;\n this.focusOption(column, next);\n };\n\n private renderTile(\n column: TimePickerColumn,\n value: number | ClockPeriod,\n selected: boolean,\n focused: boolean,\n label: string,\n values: ReadonlyArray<number | ClockPeriod>\n ) {\n const next = this.optionParts(column, value);\n const disabled = this.isDisabledPart(column, next);\n return (\n <button\n type=\"button\"\n role=\"option\"\n data-hour-option={column === 'hour' ? String(value) : undefined}\n data-minute-option={column === 'minute' ? String(value) : undefined}\n data-period-option={column === 'period' ? String(value) : undefined}\n class={{\n 'time-picker-tile': true,\n 'time-picker-tile--selected': selected,\n 'ds-focus-ring-inset': true,\n 'ds-interaction-fill': !disabled,\n 'ds-interaction-fill--selected': selected && !disabled,\n }}\n disabled={disabled}\n aria-selected={selected ? 'true' : 'false'}\n tabIndex={focused ? 0 : -1}\n onClick={() => this.commit(column, next)}\n onKeyDown={event => this.handleColumnKeyDown(event, column, values, value)}\n >\n <ds-text\n class=\"ds-interaction-fill__content\"\n as=\"span\"\n variant=\"text-body-medium\"\n color={selected ? 'primary' : 'secondary'}\n >\n {label}\n </ds-text>\n </button>\n );\n }\n\n render() {\n const parts = this.parts();\n const minutes = this.minutes();\n const minuteValues = minutes.includes(parts.minute)\n ? minutes\n : [...minutes, parts.minute].sort((a, b) => a - b);\n const hourFocus = this.focusValue('hour', CLOCK_HOURS);\n const minuteFocus = this.focusValue('minute', minuteValues);\n const periodFocus = this.focusValue('period', CLOCK_PERIODS);\n\n return (\n <Host>\n <div class=\"time-picker\" role=\"group\" aria-label=\"Choose time\">\n <div class=\"time-picker__column\">\n <div class=\"time-picker__list\" role=\"listbox\" aria-label=\"Hour\">\n {CLOCK_HOURS.map(hour =>\n this.renderTile(\n 'hour',\n hour,\n hour === parts.hour12,\n hour === hourFocus,\n String(hour),\n CLOCK_HOURS\n )\n )}\n </div>\n </div>\n <div class=\"time-picker__column\">\n <div class=\"time-picker__list\" role=\"listbox\" aria-label=\"Minute\">\n {minuteValues.map(minute =>\n this.renderTile(\n 'minute',\n minute,\n minute === parts.minute,\n minute === minuteFocus,\n String(minute).padStart(2, '0'),\n minuteValues\n )\n )}\n </div>\n </div>\n <div class=\"time-picker__column\">\n <div class=\"time-picker__list\" role=\"listbox\" aria-label=\"AM/PM\">\n {CLOCK_PERIODS.map(period =>\n this.renderTile(\n 'period',\n period,\n period === parts.period,\n period === periodFocus,\n period,\n CLOCK_PERIODS\n )\n )}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{p as e,H as s,h as a,a as t,t as i}from"./index.js";import{d}from"./p-CLGtPE0K.js";const m=()=>`.sc-ds-message-h{display:block;box-sizing:border-box;content-visibility:auto;contain-intrinsic-size:auto var(--dimension-size-800);-webkit-user-select:none;user-select:none}.message-host--group-middle.sc-ds-message-h,.message-host--group-last.sc-ds-message-h{margin-block-start:calc(var(--dimension-space-050) - var(--dimension-space-300))}.message.sc-ds-message{display:grid;grid-template-columns:minmax(0, 1fr) auto;align-items:end;gap:0;width:100%;box-sizing:border-box}.message--outgoing.sc-ds-message{grid-template-columns:minmax(0, 1fr) auto}.message__header.sc-ds-message:empty,.message__footer.sc-ds-message:empty,.message__metadata-actions.sc-ds-message:empty,.message__actions.sc-ds-message:empty{display:none}.message__actions.sc-ds-message:not(:empty){margin-inline-start:var(--dimension-space-075)}.message__body.sc-ds-message{display:flex;flex-direction:column;min-width:0;gap:var(--dimension-space-050)}.message--incoming.sc-ds-message .message__body.sc-ds-message{width:100%}.message--outgoing.sc-ds-message .message__body.sc-ds-message{align-items:flex-end}.message--outgoing.sc-ds-message .message__header.sc-ds-message{display:none}.message--system.sc-ds-message .message__body.sc-ds-message{align-items:center}.message__header.sc-ds-message,.message__footer.sc-ds-message,.message__metadata-actions.sc-ds-message,.message__actions.sc-ds-message{display:flex;align-items:center;gap:var(--dimension-space-050)}@media (hover: hover) and (pointer: fine){.message--metadata-hover.sc-ds-message .message__footer.sc-ds-message{opacity:0;pointer-events:none;transition:opacity var(--effect-motion-short-2)}.message--metadata-hover.sc-ds-message:hover .message__footer.sc-ds-message,.message--metadata-hover.sc-ds-message:focus-within .message__footer.sc-ds-message{opacity:1;pointer-events:auto}}@media (prefers-reduced-motion: reduce){.message--metadata-hover.sc-ds-message .message__footer.sc-ds-message{transition:none}}.message__content.sc-ds-message{width:100%;min-width:0;-webkit-user-select:text;user-select:text}.message--outgoing.sc-ds-message .message__content.sc-ds-message{display:flex;justify-content:flex-end}.message__footer.sc-ds-message time.sc-ds-message{display:inline-flex}.message--group-middle.sc-ds-message .message__header.sc-ds-message,.message--group-last.sc-ds-message .message__header.sc-ds-message{display:none}.message--group-first.sc-ds-message .message__footer.sc-ds-message,.message--group-middle.sc-ds-message .message__footer.sc-ds-message{display:none}`;const n={sending:"Sending",sent:"Sent",delivered:"Delivered",read:"Read",failed:"Failed to send"};const o=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.messageId="";this.direction="incoming";this.groupPosition="single";this.author="";this.showAuthor=true;this.timestamp="";this.streaming=false;this.metadataVisibility="always";this.scrollAnchor=false}formattedTimestamp(){if(!this.timestamp)return"";const e=Date.parse(this.timestamp);if(Number.isNaN(e))return this.timestamp;return new Intl.DateTimeFormat(undefined,{hour:"numeric",minute:"2-digit"}).format(new Date(e))}renderMetadataActions(){return a("div",{class:"message__metadata-actions"},a("slot",{name:"metadata-actions"}))}render(){const e=this.deliveryState?n[this.deliveryState]:"";const s=this.formattedTimestamp();return a(t,{key:"a9b6e8152142b1adb34c3148214393bb96f60722",class:`message-host--group-${this.groupPosition}`,"data-message-id":this.messageId||undefined,"data-scroll-anchor":this.scrollAnchor?"true":undefined,"aria-busy":this.streaming?"true":undefined},a("article",{key:"e6a216acd80e12cf08006b4c529f99d60e0488c7",class:{message:true,[`message--${this.direction}`]:true,[`message--group-${this.groupPosition}`]:true,[`message--metadata-${this.metadataVisibility}`]:true},"aria-label":this.author?`Message from ${this.author}`:"Message"},a("div",{key:"4672387259b635f88b7669a2eccaf149b27896eb",class:"message__body"},a("div",{key:"a35a3d8df809250e8199c9712e9fe850e64984ef",class:"message__header"},a("slot",{key:"310b51ffef0e1d91b76e861c54849bb5240ed91d",name:"header"}),this.author&&this.showAuthor?a("ds-text",{as:"span",variant:"text-body-small",emphasis:true,color:"primary"},this.author):null),a("div",{key:"9e375078893d1ff6521bbecd3898ff9dab0376d5",class:"message__content"},a("slot",{key:"bc13b6caf0e99321da6a3c802c43060000066e8e"})),a("div",{key:"474777eb857cc9c964b6b17a4aa6c39b91603d19",class:"message__footer"},this.direction==="incoming"?this.renderMetadataActions():null,a("slot",{key:"ba6fe838814d1c11d936c536b9daa0f238775583",name:"footer"}),e?a("ds-text",{as:"span",variant:"text-caption",color:this.deliveryState==="failed"?"negative":"secondary"},e):null,this.deliveryState==="failed"&&s?a("ds-text",{as:"span",variant:"text-caption",color:"tertiary","aria-hidden":"true"},"·"):null,s?a("time",{dateTime:this.timestamp},a("ds-text",{as:"span",variant:"text-caption",color:"secondary"},s)):null,this.direction!=="incoming"?this.renderMetadataActions():null)),a("div",{key:"c3522c3d72c82a89dcacf2751cf24555aeadf5be",class:"message__actions"},a("slot",{key:"f486051d50afa9e30231d393d09d474e16287d79",name:"actions"}))))}static get style(){return m()}},[262,"ds-message",{messageId:[513,"message-id"],direction:[513],groupPosition:[1,"group-position"],author:[1],showAuthor:[4,"show-author"],timestamp:[1],deliveryState:[1,"delivery-state"],streaming:[4],metadataVisibility:[1,"metadata-visibility"],scrollAnchor:[516,"scroll-anchor"]}]);function c(){if(typeof customElements==="undefined"){return}const e=["ds-message","ds-text"];e.forEach((e=>{switch(e){case"ds-message":if(!customElements.get(i(e))){customElements.define(i(e),o)}break;case"ds-text":if(!customElements.get(i(e))){d()}break}}))}c();export{o as M,c as d};
2
- //# sourceMappingURL=p-CI7VfYC3.js.map
1
+ import{p as e,H as s,h as a,a as t,t as i}from"./index.js";import{d}from"./p-DwbcNDJF.js";const m=()=>`.sc-ds-message-h{display:block;box-sizing:border-box;content-visibility:auto;contain-intrinsic-size:auto var(--dimension-size-800);-webkit-user-select:none;user-select:none}.message-host--group-middle.sc-ds-message-h,.message-host--group-last.sc-ds-message-h{margin-block-start:calc(var(--dimension-space-050) - var(--dimension-space-300))}.message.sc-ds-message{display:grid;grid-template-columns:minmax(0, 1fr) auto;align-items:end;gap:0;width:100%;box-sizing:border-box}.message--outgoing.sc-ds-message{grid-template-columns:minmax(0, 1fr) auto}.message__header.sc-ds-message:empty,.message__footer.sc-ds-message:empty,.message__metadata-actions.sc-ds-message:empty,.message__actions.sc-ds-message:empty{display:none}.message__actions.sc-ds-message:not(:empty){margin-inline-start:var(--dimension-space-075)}.message__body.sc-ds-message{display:flex;flex-direction:column;min-width:0;gap:var(--dimension-space-050)}.message--incoming.sc-ds-message .message__body.sc-ds-message{width:100%}.message--outgoing.sc-ds-message .message__body.sc-ds-message{align-items:flex-end}.message--outgoing.sc-ds-message .message__header.sc-ds-message{display:none}.message--system.sc-ds-message .message__body.sc-ds-message{align-items:center}.message__header.sc-ds-message,.message__footer.sc-ds-message,.message__metadata-actions.sc-ds-message,.message__actions.sc-ds-message{display:flex;align-items:center;gap:var(--dimension-space-050)}@media (hover: hover) and (pointer: fine){.message--metadata-hover.sc-ds-message .message__footer.sc-ds-message{opacity:0;pointer-events:none;transition:opacity var(--effect-motion-short-2)}.message--metadata-hover.sc-ds-message:hover .message__footer.sc-ds-message,.message--metadata-hover.sc-ds-message:focus-within .message__footer.sc-ds-message{opacity:1;pointer-events:auto}}@media (prefers-reduced-motion: reduce){.message--metadata-hover.sc-ds-message .message__footer.sc-ds-message{transition:none}}.message__content.sc-ds-message{width:100%;min-width:0;-webkit-user-select:text;user-select:text}.message--outgoing.sc-ds-message .message__content.sc-ds-message{display:flex;justify-content:flex-end}.message__footer.sc-ds-message time.sc-ds-message{display:inline-flex}.message--group-middle.sc-ds-message .message__header.sc-ds-message,.message--group-last.sc-ds-message .message__header.sc-ds-message{display:none}.message--group-first.sc-ds-message .message__footer.sc-ds-message,.message--group-middle.sc-ds-message .message__footer.sc-ds-message{display:none}`;const n={sending:"Sending",sent:"Sent",delivered:"Delivered",read:"Read",failed:"Failed to send"};const o=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.messageId="";this.direction="incoming";this.groupPosition="single";this.author="";this.showAuthor=true;this.timestamp="";this.streaming=false;this.metadataVisibility="always";this.scrollAnchor=false}formattedTimestamp(){if(!this.timestamp)return"";const e=Date.parse(this.timestamp);if(Number.isNaN(e))return this.timestamp;return new Intl.DateTimeFormat(undefined,{hour:"numeric",minute:"2-digit"}).format(new Date(e))}renderMetadataActions(){return a("div",{class:"message__metadata-actions"},a("slot",{name:"metadata-actions"}))}render(){const e=this.deliveryState?n[this.deliveryState]:"";const s=this.formattedTimestamp();return a(t,{key:"3ee4243a0f015a410430339529eb9588aef3eeb4",class:`message-host--group-${this.groupPosition}`,"data-message-id":this.messageId||undefined,"data-scroll-anchor":this.scrollAnchor?"true":undefined,"aria-busy":this.streaming?"true":undefined},a("article",{key:"78ab218a870decbfff247abe402301c385708768",class:{message:true,[`message--${this.direction}`]:true,[`message--group-${this.groupPosition}`]:true,[`message--metadata-${this.metadataVisibility}`]:true},"aria-label":this.author?`Message from ${this.author}`:"Message"},a("div",{key:"8a3d30e79500a3632c3d7261f6037dc0d24b1f8b",class:"message__body"},a("div",{key:"a6b72d2524d3eb2d97359d19f15d8ecc2b34be82",class:"message__header"},a("slot",{key:"3716249e8aef78274ea82aa7614bc7f838b49a92",name:"header"}),this.author&&this.showAuthor?a("ds-text",{as:"span",variant:"text-body-small",emphasis:true,color:"primary"},this.author):null),a("div",{key:"9b1b3ba6c92a12b0a607d4f78b0dc0161eb09036",class:"message__content"},a("slot",{key:"63431adf3089e3ee945894d5915f73cf7df6d3df"})),a("div",{key:"195c648a62abfb03cb999db066ccb8d18dea3edb",class:"message__footer"},this.direction==="incoming"?this.renderMetadataActions():null,a("slot",{key:"a59f0a19f44c776bc51c02e5f86d64261b41ad57",name:"footer"}),e?a("ds-text",{as:"span",variant:"text-caption",color:this.deliveryState==="failed"?"negative":"secondary"},e):null,this.deliveryState==="failed"&&s?a("ds-text",{as:"span",variant:"text-caption",color:"tertiary","aria-hidden":"true"},"·"):null,s?a("time",{dateTime:this.timestamp},a("ds-text",{as:"span",variant:"text-caption",color:"secondary"},s)):null,this.direction!=="incoming"?this.renderMetadataActions():null)),a("div",{key:"466843bf9e6160e3aeffc8ff2c26c76ad64a6543",class:"message__actions"},a("slot",{key:"833f55f1c33c84c8fcc84a8cb36636343fa0a17c",name:"actions"}))))}static get style(){return m()}},[262,"ds-message",{messageId:[513,"message-id"],direction:[513],groupPosition:[1,"group-position"],author:[1],showAuthor:[4,"show-author"],timestamp:[1],deliveryState:[1,"delivery-state"],streaming:[4],metadataVisibility:[1,"metadata-visibility"],scrollAnchor:[516,"scroll-anchor"]}]);function c(){if(typeof customElements==="undefined"){return}const e=["ds-message","ds-text"];e.forEach((e=>{switch(e){case"ds-message":if(!customElements.get(i(e))){customElements.define(i(e),o)}break;case"ds-text":if(!customElements.get(i(e))){d()}break}}))}c();export{o as M,c as d};
2
+ //# sourceMappingURL=p-CUcUHwI3.js.map
@@ -0,0 +1,2 @@
1
+ import{p as t,H as i,h as o,a as s,t as n}from"./index.js";import{A as e,r}from"./p-B8ZonS3S.js";import{d}from"./p-DwbcNDJF.js";import{a,T as l,r as c,b as h}from"./p-CeXf9-X3.js";import{r as p}from"./p-CochmPyg.js";import{a as u}from"./p-CGidq1iC.js";const m=new Set(["⌘","⇧","⌥","⌃"]);const f={alt:"⌥",cmd:"⌘",command:"⌘",control:"⌃",ctrl:"⌃",option:"⌥",shift:"⇧"};function g(t){return f[t.toLowerCase()]??t}function v(t){const i=t.trim();if(!i)return[];if(i.includes("+")){return i.split("+").map((t=>t.trim())).filter(Boolean).map(g)}if(/\s/.test(i)){return i.split(/\s+/).filter(Boolean).map(g)}const o=Array.from(i);const s=[];while(o.length>1&&m.has(o[0])){s.push(o.shift())}s.push(o.join(""));return s}const y=()=>`.sc-ds-tooltip-h,.sc-ds-tooltip:where(.ds-table),.sc-ds-tooltip:where(.tooltip-popup),.sc-ds-tooltip:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}.ds-control--lg.sc-ds-tooltip,.ds-control--lg.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip,.ds-control--sm.sc-ds-tooltip-h,.ds-control--sm.sc-ds-tooltip,.ds-control--xs.sc-ds-tooltip-h,.ds-control--xs.sc-ds-tooltip{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-tooltip-h,.ds-control--lg.sc-ds-tooltip{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-tooltip-h,.ds-control--sm.sc-ds-tooltip{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-tooltip-h,.ds-control--xs.sc-ds-tooltip{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-control--lg.sc-ds-tooltip,.ds-control--lg.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip,.ds-control--sm.sc-ds-tooltip-h,.ds-control--sm.sc-ds-tooltip,.ds-control--xs.sc-ds-tooltip-h,.ds-control--xs.sc-ds-tooltip{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-tooltip-h,.ds-control--lg.sc-ds-tooltip{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-tooltip-h,.ds-control--sm.sc-ds-tooltip{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-tooltip-h,.ds-control--xs.sc-ds-tooltip{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.key-hint-group.sc-ds-tooltip{display:inline-flex;align-items:center;gap:var(--dimension-stroke-width-012);width:max-content;flex-shrink:0}.key-hint.sc-ds-tooltip{box-sizing:border-box;min-width:var(--ds-control-icon, var(--dimension-iconography-md));width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md));padding-inline:0;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background-color:var(--color-background-secondary);border:var(--dimension-stroke-width-015) solid var(--color-border-tertiary);border-bottom-width:var(--dimension-stroke-width-025);border-radius:var(--dimension-radius-025);color:var(--color-foreground-secondary)}.key-hint--wide.sc-ds-tooltip{width:calc(var(--ds-control-icon, var(--dimension-iconography-md)) * 1.5)}.key-hint__label.sc-ds-tooltip{display:inline-flex;width:max-content;min-width:max-content;font-family:var(--typography-font-family-ui);font-size:var(--typography-fontsize-xs);line-height:1;font-weight:var(--typography-weight-regular);letter-spacing:0;text-transform:uppercase;color:inherit}.ds-control--xs.sc-ds-tooltip .key-hint__label.sc-ds-tooltip{font-size:calc(var(--typography-fontsize-xs) * 0.78)}@media (forced-colors: active){.sc-ds-tooltip:root,.sc-ds-tooltip-h,.ds-forced-colors-scope.sc-ds-tooltip{--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}}.tooltip-popup.sc-ds-tooltip{box-sizing:border-box;background-color:var(--color-background-primary);border-radius:var(--ds-radius-tooltip-control, var(--dimension-radius-025));box-shadow:var(--effect-elevation-elevated-floating);white-space:nowrap;pointer-events:none;animation:tooltipFadeIn var(--effect-motion-short-2) forwards;will-change:transform;backface-visibility:hidden}.tooltip-popup--instant.sc-ds-tooltip{animation:none;opacity:1}.tooltip-popup--closing.sc-ds-tooltip{animation:tooltipFadeOut var(--effect-motion-short-3) forwards}.tooltip-inner.sc-ds-tooltip{box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));display:flex;align-items:center;gap:var(--ds-control-gap, var(--dimension-space-050));padding:0 var(--ds-control-padding-inline, var(--dimension-space-075))}.tooltip-inner.sc-ds-tooltip>ds-text.sc-ds-tooltip{flex-shrink:0;min-width:max-content;max-width:none;padding:0 var(--ds-control-label-inset, var(--dimension-space-025));color:var(--color-foreground-primary)}.tooltip-popup--wrap.sc-ds-tooltip{white-space:normal;max-inline-size:var(--dimension-panel-width-xs)}.tooltip-popup--wrap.sc-ds-tooltip .tooltip-inner.sc-ds-tooltip{height:auto;min-height:var(--ds-control-height, var(--dimension-size-400));padding-block:var(--dimension-space-050);align-items:flex-start}.tooltip-popup--wrap.sc-ds-tooltip .tooltip-inner.sc-ds-tooltip>ds-text.sc-ds-tooltip{flex:1 1 auto;min-width:0;max-width:100%;white-space:pre-line}@keyframes tooltipFadeIn{from{opacity:0}to{opacity:1}}@keyframes tooltipFadeOut{from{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.tooltip-popup.sc-ds-tooltip,.tooltip-popup--instant.sc-ds-tooltip{animation:none;opacity:1}.tooltip-popup--closing.sc-ds-tooltip{animation:none;opacity:0}}@media (forced-colors: active){.tooltip-popup.sc-ds-tooltip{box-shadow:none;outline:var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);outline-offset:calc(-1 * var(--dimension-stroke-width-012))}}`;const b={md:l.size400,sm:l.size300,xs:l.size200};let w=0;let x=0;let C=null;function k(t){const i=document.createElement("ds-text");i.as="span";i.variant=t.variant;i.emphasis=t.emphasis??false;i.color=t.color??"inherit";if(t.wrap)i.wrap=t.wrap;i.textContent=t.text;return i}function O(t,i=false){t.style.flexShrink=i?"1":"0";t.style.minWidth=i?"0":"max-content";t.style.maxWidth=i?"100%":"none";t.style.whiteSpace=i?"pre-line":"";t.style.padding="0 var(--ds-control-label-inset, var(--dimension-space-025))";t.style.color="var(--color-foreground-primary)"}const P=t(class t extends i{constructor(t){super();if(t!==false){this.__registerHost()}this.size="md";this.side="top";this.align="center";this.sideOffset=a.space050;this.alignOffset=0;this.delay=l.animationDelayMedium3;this.shortcutKeyPosition="end";this.describedBy=true;this.wrapLabel=false;this.tooltipId=`ds-tooltip-${++x}`;this.delayTimer=null;this.closeTimer=null;this.anchor=null;this.popupEl=null;this.anchorObserver=null;this.didLoad=false;this.position=new e({getAnchor:()=>this.anchor,getPopup:()=>this.popupEl,getOwnerDocument:()=>this.el.ownerDocument,measure:(t,i)=>({anchorRect:t.getBoundingClientRect(),popupWidth:i.offsetWidth||this.tooltipFallbackWidthPx,popupHeight:i.offsetHeight||this.tooltipFallbackHeightPx,side:this.side,align:this.align,sideOffsetPx:this.sideOffsetPx,alignOffsetPx:this.alignOffsetPx,viewportPadPx:this.viewportPadPx,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,collisionRect:r(t,this.boundary)}),apply:({x:t,y:i,resolvedSide:o})=>{if(!this.popupEl)return;this.popupEl.dataset.side=o;this.popupEl.style.transform=`translate(${Math.round(t)}px, ${Math.round(i)}px)`},liveUpdate:"frame",observeResize:true});this.skipEnterAnimation=false;this.isOpen=false;this.programmaticAnchor=false;this.lastInteractionWasKeyboard=false;this.pointerEnterHandler=t=>{if(t.pointerType==="touch")return;this.show()};this.pointerLeaveHandler=t=>{if(t.pointerType==="touch")return;this.hide()};this.pointerDownHandler=t=>{this.lastInteractionWasKeyboard=false;if(t.pointerType==="touch"&&(this.isOpen||this.popupEl))this.hideInstant()};this.keyDownHandler=()=>{this.lastInteractionWasKeyboard=true};this.focusHandler=()=>{if(this.lastInteractionWasKeyboard||this.anchor?.matches(":focus-visible"))this.show()};this.blurHandler=t=>{const i=t.relatedTarget;if(i&&this.anchor?.contains(i))return;this.hide()};this.escapeHandler=t=>{if(t.key!=="Escape"||!this.isOpen)return;t.preventDefault();this.hide()};this.handleSlotChange=()=>{if(this.programmaticAnchor)return;const t=this.el.querySelector("slot");const i=t?.assignedElements?.()[0]??this.el.firstElementChild;if(i===this.anchor||i?.tagName==="SLOT")return;if(this.isOpen||this.popupEl)this.hideInstant();this.unbindAnchor();this.bindAnchor()}}connectedCallback(){if(!this.didLoad)return;this.connectAnchor()}componentDidLoad(){this.didLoad=true;this.connectAnchor()}connectAnchor(){this.bindAnchor();if(this.anchorObserver)return;this.anchorObserver=new MutationObserver((()=>this.handleSlotChange()));this.anchorObserver.observe(this.el,{childList:true})}disconnectedCallback(){if(C===this)C=null;this.anchorObserver?.disconnect();this.anchorObserver=null;this.unbindAnchor();this.clearTimers();this.destroyPopup()}onContentOrPositionChange(){if(!this.label?.trim()){if(this.isOpen||this.popupEl)this.hideInstant();return}if(!this.popupEl||!this.isOpen)return;this.renderPopupContent();this.schedulePosition()}get viewportPadPx(){return p(l.space050,l.space050)}get sideOffsetPx(){return p(this.sideOffset,l.space050)}get alignOffsetPx(){return p(this.alignOffset,0)}get hoverDelayMs(){return c(this.delay,l.animationDelayMedium3)}get instantReopenMs(){return c(l.animationDurationMedium1,l.animationDurationMedium1)}get fadeOutMs(){return h(l.motionShort3,l.animationDurationShort3)}get tooltipFallbackWidthPx(){return p(l.tooltipFallbackWidth,l.tooltipFallbackWidth)}get tooltipFallbackHeightPx(){const t=b[this.size];return p(t,t)}async presentFrom(t,i){if(i!=null)this.label=i;if(!this.label?.trim()){this.hide();return}const o=this.anchor===t;if(!o){this.unbindAnchor();this.anchor=t;this.programmaticAnchor=true;if(this.popupEl&&this.describedBy)this.linkDescribedBy()}if(this.popupEl){this.renderPopupContent();this.schedulePosition();return}if(this.delayTimer&&o)return;this.show()}async dismiss(){this.hide()}bindAnchor(){if(this.programmaticAnchor)return;const t=this.el.querySelector("slot");const i=t?.assignedElements?.()??[];const o=i[0]??this.el.firstElementChild;if(!o||o.tagName==="SLOT"||o===this.anchor)return;this.anchor=o;o.addEventListener("pointerenter",this.pointerEnterHandler);o.addEventListener("pointerleave",this.pointerLeaveHandler);o.addEventListener("pointerdown",this.pointerDownHandler);o.addEventListener("keydown",this.keyDownHandler);o.addEventListener("focusin",this.focusHandler);o.addEventListener("focusout",this.blurHandler)}unbindAnchor(){if(!this.anchor)return;this.unlinkDescribedBy();if(!this.programmaticAnchor){this.anchor.removeEventListener("pointerenter",this.pointerEnterHandler);this.anchor.removeEventListener("pointerleave",this.pointerLeaveHandler);this.anchor.removeEventListener("pointerdown",this.pointerDownHandler);this.anchor.removeEventListener("keydown",this.keyDownHandler);this.anchor.removeEventListener("focusin",this.focusHandler);this.anchor.removeEventListener("focusout",this.blurHandler)}this.anchor=null;this.programmaticAnchor=false}linkDescribedBy(){if(!this.describedBy||!this.anchor||!this.popupEl)return;const t=new Set((this.anchor.getAttribute("aria-describedby")??"").split(/\s+/).filter(Boolean));t.add(this.tooltipId);this.anchor.setAttribute("aria-describedby",Array.from(t).join(" "))}unlinkDescribedBy(){if(!this.anchor)return;const t=(this.anchor.getAttribute("aria-describedby")??"").split(/\s+/).filter((t=>t&&t!==this.tooltipId));if(t.length)this.anchor.setAttribute("aria-describedby",t.join(" "));else this.anchor.removeAttribute("aria-describedby")}clearTimers(){if(this.delayTimer){clearTimeout(this.delayTimer);this.delayTimer=null}if(this.closeTimer){clearTimeout(this.closeTimer);this.closeTimer=null}}setupOpenListeners(){this.position.observe();document.addEventListener("keydown",this.escapeHandler)}teardownOpenListeners(){this.position.unobserve();document.removeEventListener("keydown",this.escapeHandler)}destroyPopup(){this.teardownOpenListeners();this.unlinkDescribedBy();if(!this.popupEl)return;this.popupEl.remove();this.popupEl=null}schedulePosition(){if(!this.popupEl)return;const t=()=>{const t=this.popupEl?.querySelector(":scope > .tooltip-inner > ds-text");if(t instanceof i)O(t,this.wrapLabel)};requestAnimationFrame((()=>{t();this.position.update();requestAnimationFrame((()=>{t();this.position.update()}))}));this.position.observeResizeTargets()}hideInstant(){this.clearTimers();w=Date.now();if(C===this)C=null;this.destroyPopup();this.isOpen=false;this.skipEnterAnimation=false}show(){if(!this.label?.trim())return;this.clearTimers();let t=Date.now()-w<this.instantReopenMs;if(C&&C!==this){C.hideInstant();t=true}C=this;this.skipEnterAnimation=t;if(t){this.mountPopup();return}this.delayTimer=setTimeout((()=>{this.delayTimer=null;if(!this.label?.trim())return;this.mountPopup()}),this.hoverDelayMs)}hide(){this.clearTimers();if(!this.popupEl&&!this.isOpen)return;w=Date.now();if(!this.popupEl){this.isOpen=false;return}this.popupEl.classList.remove("tooltip-popup--instant");this.popupEl.classList.add("tooltip-popup--closing");if(this.fadeOutMs===0){if(C===this)C=null;this.destroyPopup();this.isOpen=false;this.skipEnterAnimation=false;return}this.closeTimer=setTimeout((()=>{this.closeTimer=null;if(C===this)C=null;this.destroyPopup();this.isOpen=false;this.skipEnterAnimation=false}),this.fadeOutMs)}mountPopup(){if(!this.popupEl){const t=document.createElement("div");t.id=this.tooltipId;t.setAttribute("role","tooltip");t.className="tooltip-popup ds-forced-colors-scope sc-ds-tooltip";Object.assign(t.style,{position:"fixed",left:"0",top:"0",zIndex:"var(--dimension-z-index-tooltip)",pointerEvents:"none"});document.body.appendChild(t);this.popupEl=t}this.setupOpenListeners();this.linkDescribedBy();this.popupEl.classList.toggle("tooltip-popup--instant",this.skipEnterAnimation);this.popupEl.classList.toggle("tooltip-popup--wrap",this.wrapLabel);this.popupEl.classList.remove("tooltip-popup--closing");this.renderPopupContent();this.schedulePosition();this.isOpen=true}renderPopupContent(){if(!this.popupEl)return;this.popupEl.classList.toggle("tooltip-popup--wrap",this.wrapLabel);const t=u[this.size];const i=this.size==="md"?"ds-control--md":this.size==="sm"?"ds-control--sm":"ds-control--xs";const o="sc-ds-tooltip";const s=document.createElement("div");s.className=`tooltip-inner ${i} ${o}`;const n=t=>{if(!this.shortcutKey||this.shortcutKeyPosition!==t)return;const i=document.createElement("span");i.className=`key-hint-group ${o}`;i.setAttribute("aria-hidden","true");for(const t of v(this.shortcutKey)){const s=document.createElement("span");const n=Array.from(t).length>1?" key-hint--wide":"";s.className=`key-hint${n} ${o}`;const e=document.createElement("span");e.className=`key-hint__label ${o}`;e.textContent=t;s.appendChild(e);i.appendChild(s)}s.appendChild(i)};n("start");const e=k({variant:t,wrap:this.wrapLabel?"wrap":"nowrap",text:this.label});O(e,this.wrapLabel);s.appendChild(e);n("end");this.popupEl.replaceChildren(s)}render(){return o(s,{key:"d8afd223dbfe613002dd56e27ce1a2943fd7403a",style:{display:"contents"}},o("slot",{key:"dee19d73d5bbf4e561e27ab28fa19bc26b0dee60",onSlotchange:this.handleSlotChange}))}get el(){return this}static get watchers(){return{label:[{onContentOrPositionChange:0}],size:[{onContentOrPositionChange:0}],side:[{onContentOrPositionChange:0}],align:[{onContentOrPositionChange:0}],sideOffset:[{onContentOrPositionChange:0}],alignOffset:[{onContentOrPositionChange:0}],boundary:[{onContentOrPositionChange:0}],shortcutKey:[{onContentOrPositionChange:0}],shortcutKeyPosition:[{onContentOrPositionChange:0}],wrapLabel:[{onContentOrPositionChange:0}]}}static get style(){return y()}},[262,"ds-tooltip",{label:[1],size:[1],side:[1],align:[1],sideOffset:[8,"side-offset"],alignOffset:[8,"align-offset"],boundary:[1],delay:[8],shortcutKey:[1,"shortcut-key"],shortcutKeyPosition:[1,"shortcut-key-position"],describedBy:[4,"described-by"],wrapLabel:[4,"wrap-label"],presentFrom:[64],dismiss:[64]},undefined,{label:[{onContentOrPositionChange:0}],size:[{onContentOrPositionChange:0}],side:[{onContentOrPositionChange:0}],align:[{onContentOrPositionChange:0}],sideOffset:[{onContentOrPositionChange:0}],alignOffset:[{onContentOrPositionChange:0}],boundary:[{onContentOrPositionChange:0}],shortcutKey:[{onContentOrPositionChange:0}],shortcutKeyPosition:[{onContentOrPositionChange:0}],wrapLabel:[{onContentOrPositionChange:0}]}]);function z(){if(typeof customElements==="undefined"){return}const t=["ds-tooltip","ds-text"];t.forEach((t=>{switch(t){case"ds-tooltip":if(!customElements.get(n(t))){customElements.define(n(t),P)}break;case"ds-text":if(!customElements.get(n(t))){d()}break}}))}z();export{P as T,z as d};
2
+ //# sourceMappingURL=p-CYzFfFcH.js.map