@ds-mo/ui 14.17.1 → 14.18.1

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 (316) hide show
  1. package/README.md +7 -0
  2. package/dist/.package-ready.json +1 -1
  3. package/dist/agent-patterns.json +9 -8
  4. package/dist/agent.json +103 -45
  5. package/dist/angular/ds-button-filled.d.ts +1 -1
  6. package/dist/angular/ds-button-filled.js +3 -3
  7. package/dist/angular/ds-button-unfilled.d.ts +1 -1
  8. package/dist/angular/ds-button-unfilled.js +3 -3
  9. package/dist/angular/ds-filter-menu.d.ts +1 -1
  10. package/dist/angular/ds-filter-menu.js +3 -3
  11. package/dist/angular/ds-input.d.ts +1 -1
  12. package/dist/angular/ds-input.js +3 -3
  13. package/dist/angular/ds-menu.d.ts +1 -1
  14. package/dist/angular/ds-menu.js +3 -3
  15. package/dist/angular/ds-mobile-bar-nav.d.ts +1 -1
  16. package/dist/angular/ds-mobile-bar-nav.js +3 -3
  17. package/dist/angular/ds-panel-tool-header.d.ts +3 -8
  18. package/dist/angular/ds-panel-tools.d.ts +3 -8
  19. package/dist/angular/ds-select.d.ts +1 -1
  20. package/dist/angular/ds-select.js +3 -3
  21. package/dist/angular/ds-tooltip.d.ts +1 -1
  22. package/dist/angular/ds-tooltip.js +3 -3
  23. package/dist/components/ds-agent-activity.js +1 -1
  24. package/dist/components/ds-agent-questionnaire.js +1 -1
  25. package/dist/components/ds-agent-response.js +1 -1
  26. package/dist/components/ds-agent-source-list.js +1 -1
  27. package/dist/components/ds-agent-tool-call.js +1 -1
  28. package/dist/components/ds-attachment-list.js +1 -1
  29. package/dist/components/ds-badge.js +1 -1
  30. package/dist/components/ds-banner.js +1 -1
  31. package/dist/components/ds-banner.js.map +1 -1
  32. package/dist/components/ds-bar-action.js +1 -1
  33. package/dist/components/ds-bar-action.js.map +1 -1
  34. package/dist/components/ds-bar-nav.js +1 -1
  35. package/dist/components/ds-bar-title.js +1 -1
  36. package/dist/components/ds-bar-workflow.js +1 -1
  37. package/dist/components/ds-breadcrumb.js +1 -1
  38. package/dist/components/ds-button-filled.js +1 -1
  39. package/dist/components/ds-button-unfilled.js +1 -1
  40. package/dist/components/ds-card-chart.js +1 -1
  41. package/dist/components/ds-card-chart.js.map +1 -1
  42. package/dist/components/ds-card-overview.js +1 -1
  43. package/dist/components/ds-card-setting.js +1 -1
  44. package/dist/components/ds-card-setting.js.map +1 -1
  45. package/dist/components/ds-chart-legend.js +1 -1
  46. package/dist/components/ds-chart.js +1 -1
  47. package/dist/components/ds-checkbox.js +1 -1
  48. package/dist/components/ds-chip.js +1 -1
  49. package/dist/components/ds-code-block.js +1 -1
  50. package/dist/components/ds-conversation-list-item.js +1 -1
  51. package/dist/components/ds-conversation-list-section.js +1 -1
  52. package/dist/components/ds-conversation-list.js +1 -1
  53. package/dist/components/ds-conversation-list.js.map +1 -1
  54. package/dist/components/ds-empty-state.js +1 -1
  55. package/dist/components/ds-field.js +1 -1
  56. package/dist/components/ds-filter-menu.js +1 -1
  57. package/dist/components/ds-input.js +1 -1
  58. package/dist/components/ds-markdown.js +1 -1
  59. package/dist/components/ds-menu.js +1 -1
  60. package/dist/components/ds-message-actions.js +1 -1
  61. package/dist/components/ds-message-actions.js.map +1 -1
  62. package/dist/components/ds-message-composer.js +1 -1
  63. package/dist/components/ds-message-composer.js.map +1 -1
  64. package/dist/components/ds-message-scroller.js +1 -1
  65. package/dist/components/ds-message.js +1 -1
  66. package/dist/components/ds-mobile-bar-nav.js +1 -1
  67. package/dist/components/ds-mobile-header.js +1 -1
  68. package/dist/components/ds-mobile-section-switcher.js +1 -1
  69. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  70. package/dist/components/ds-modal.js +1 -1
  71. package/dist/components/ds-pagination.js +1 -1
  72. package/dist/components/ds-panel-nav.js +1 -1
  73. package/dist/components/ds-panel-sub-nav.js +1 -1
  74. package/dist/components/ds-panel-tool-header.js +1 -1
  75. package/dist/components/ds-panel-tool-search.js +1 -1
  76. package/dist/components/ds-panel-tools.js +1 -1
  77. package/dist/components/ds-paper-texture.js +1 -1
  78. package/dist/components/ds-radio.js +1 -1
  79. package/dist/components/ds-select.js +1 -1
  80. package/dist/components/ds-shell-app.js +1 -1
  81. package/dist/components/ds-shell-app.js.map +1 -1
  82. package/dist/components/ds-shell-page.js +1 -1
  83. package/dist/components/ds-shell-tools.js +1 -1
  84. package/dist/components/ds-skeleton.js +1 -1
  85. package/dist/components/ds-slider.js +1 -1
  86. package/dist/components/ds-swatch-picker.js +1 -1
  87. package/dist/components/ds-switch.js +1 -1
  88. package/dist/components/ds-tab-group.js +1 -1
  89. package/dist/components/ds-table-filter.js +1 -1
  90. package/dist/components/ds-table-filter.js.map +1 -1
  91. package/dist/components/ds-table-saved-views.js +1 -1
  92. package/dist/components/ds-table-sort.js +1 -1
  93. package/dist/components/ds-table-sort.js.map +1 -1
  94. package/dist/components/ds-table-toolbar.js +1 -1
  95. package/dist/components/ds-table-toolbar.js.map +1 -1
  96. package/dist/components/ds-table.js +1 -1
  97. package/dist/components/ds-table.js.map +1 -1
  98. package/dist/components/ds-tag.js +1 -1
  99. package/dist/components/ds-text.js +1 -1
  100. package/dist/components/ds-toast.js +1 -1
  101. package/dist/components/ds-toast.js.map +1 -1
  102. package/dist/components/ds-tooltip-chart.js +1 -1
  103. package/dist/components/ds-tooltip.js +1 -1
  104. package/dist/components/ds-typing-indicator.js +1 -1
  105. package/dist/components/ds-typing-indicator.js.map +1 -1
  106. package/dist/components/{p-C0X2zKbB.js → p-1Hu9jlju.js} +2 -2
  107. package/dist/components/{p-DQqOzDEq.js → p-B00PEE6t.js} +2 -2
  108. package/dist/components/p-B0Byw6OX.js +2 -0
  109. package/dist/components/p-B0Byw6OX.js.map +1 -0
  110. package/dist/components/{p-D1YhYulL.js → p-B1JRCDHS.js} +2 -2
  111. package/dist/components/p-BBG6Sswb.js +2 -0
  112. package/dist/components/{p-23u3lIr1.js.map → p-BBG6Sswb.js.map} +1 -1
  113. package/dist/components/{p-D8Qd6gkf.js → p-BCOl1x0_.js} +2 -2
  114. package/dist/components/{p-Dg9qiMDa.js → p-BHVOiWz5.js} +2 -2
  115. package/dist/components/p-BPG0r_mC.js +2 -0
  116. package/dist/components/p-BPG0r_mC.js.map +1 -0
  117. package/dist/components/p-BUDAwJVV.js +2 -0
  118. package/dist/components/p-BUDAwJVV.js.map +1 -0
  119. package/dist/components/{p-DHuyj-9J.js → p-BXN-e7vF.js} +2 -2
  120. package/dist/components/{p-Bn8NryHK.js → p-B_jZIC9R.js} +2 -2
  121. package/dist/components/{p-7tZx4ukz.js → p-Bbb9A3NV.js} +2 -2
  122. package/dist/components/p-Bece5KH3.js +2 -0
  123. package/dist/components/p-Bece5KH3.js.map +1 -0
  124. package/dist/components/{p-ruPTIV6t.js → p-BhYS_Ump.js} +2 -2
  125. package/dist/components/p-Bkh7scMQ.js +2 -0
  126. package/dist/components/{p-DsJW5W3W.js.map → p-Bkh7scMQ.js.map} +1 -1
  127. package/dist/components/{p-B0PEg5RF.js → p-BknXYAEc.js} +2 -2
  128. package/dist/components/{p-C4TgWJi9.js → p-Bu3dOjpW.js} +2 -2
  129. package/dist/components/{p-BVlfQ8xZ.js → p-C-Y7gYgz.js} +2 -2
  130. package/dist/components/p-C-Y7gYgz.js.map +1 -0
  131. package/dist/components/{p-DAqSoyd4.js → p-C6R5Lft0.js} +2 -2
  132. package/dist/components/{p-PD1Vfg0t.js → p-C9gC4haA.js} +2 -2
  133. package/dist/components/{p-BGXqFq2C.js → p-CAnnQL1F.js} +2 -2
  134. package/dist/components/p-CE2IKOsy.js +2 -0
  135. package/dist/components/p-CE2IKOsy.js.map +1 -0
  136. package/dist/components/p-CKVHrOEp.js +2 -0
  137. package/dist/components/{p-DIEK54fV.js.map → p-CKVHrOEp.js.map} +1 -1
  138. package/dist/components/{p-BHz78C8h.js → p-CLVxgTme.js} +2 -2
  139. package/dist/components/p-CY4YFAT3.js +2 -0
  140. package/dist/components/p-CY4YFAT3.js.map +1 -0
  141. package/dist/components/{p-y4jhIkRc.js → p-Cg0kimXZ.js} +2 -2
  142. package/dist/components/p-CqQFowZd.js +2 -0
  143. package/dist/components/p-CqQFowZd.js.map +1 -0
  144. package/dist/components/{p-BhYWdbEp.js → p-CsBICYmt.js} +2 -2
  145. package/dist/components/p-CwjVgUqy.js +2 -0
  146. package/dist/components/p-CwjVgUqy.js.map +1 -0
  147. package/dist/components/{p-BHDkJmrC.js → p-D123Jvp-.js} +2 -2
  148. package/dist/components/p-D1eEgwcP.js +2 -0
  149. package/dist/components/p-D1eEgwcP.js.map +1 -0
  150. package/dist/components/{p-CzcWZiH-.js → p-D3fMaUJ3.js} +2 -2
  151. package/dist/components/p-D7R4yE2C.js +2 -0
  152. package/dist/components/{p-DEjh3klB.js.map → p-D7R4yE2C.js.map} +1 -1
  153. package/dist/components/{p-DZ55e3j9.js → p-D7haeL5y.js} +2 -2
  154. package/dist/components/p-D7haeL5y.js.map +1 -0
  155. package/dist/components/{p-D2z2DgtX.js → p-DAvh38E4.js} +2 -2
  156. package/dist/components/{p-CMFvaY05.js → p-DBue3ISk.js} +2 -2
  157. package/dist/components/{p-rrFMAZkj.js → p-DDgeXGbB.js} +2 -2
  158. package/dist/components/p-DNpLDbWY.js +2 -0
  159. package/dist/components/p-DNpLDbWY.js.map +1 -0
  160. package/dist/components/{p-U8JIZzI2.js → p-DUdOmSFR.js} +2 -2
  161. package/dist/components/p-DUdOmSFR.js.map +1 -0
  162. package/dist/components/p-DtndC9f1.js +2 -0
  163. package/dist/components/p-DtndC9f1.js.map +1 -0
  164. package/dist/components/{p-Be1sY58w.js → p-H5T258T-.js} +2 -2
  165. package/dist/components/p-H5T258T-.js.map +1 -0
  166. package/dist/components/p-HB_cf_aR.js +2 -0
  167. package/dist/components/{p-DNJTN_s0.js.map → p-HB_cf_aR.js.map} +1 -1
  168. package/dist/components/p-LK-jpxwq.js +2 -0
  169. package/dist/components/p-LK-jpxwq.js.map +1 -0
  170. package/dist/components/p-ag6Io-kL.js +2 -0
  171. package/dist/components/p-ag6Io-kL.js.map +1 -0
  172. package/dist/components/p-iMuFgSoM.js +2 -0
  173. package/dist/components/p-iMuFgSoM.js.map +1 -0
  174. package/dist/components/{p-DSIOINBK.js → p-uI6z53BE.js} +2 -2
  175. package/dist/docs/components.json +456 -55
  176. package/dist/lib/components/ButtonFilled/ButtonFilled.d.ts +2 -0
  177. package/dist/lib/components/PanelTools/panel-tools-types.d.ts +14 -2
  178. package/dist/lib/shell/index.d.ts +1 -1
  179. package/dist/lib/shell/index.js +17 -25
  180. package/dist/lib/shell/index.js.map +2 -2
  181. package/dist/lib/shell/shell-responsive.d.ts +6 -1
  182. package/dist/lib/utils/anchored-position.d.ts +8 -2
  183. package/dist/lib/utils/button-render.d.ts +1 -0
  184. package/dist/mcp-data/registry/badge.json +7 -9
  185. package/dist/mcp-data/registry/banner.json +2 -2
  186. package/dist/mcp-data/registry/bar-action.json +2 -2
  187. package/dist/mcp-data/registry/button-filled.json +20 -1
  188. package/dist/mcp-data/registry/button-unfilled.json +23 -3
  189. package/dist/mcp-data/registry/conversation-list.json +2 -2
  190. package/dist/mcp-data/registry/filter-menu.json +22 -7
  191. package/dist/mcp-data/registry/input.json +24 -4
  192. package/dist/mcp-data/registry/menu.json +23 -4
  193. package/dist/mcp-data/registry/message-composer.json +2 -2
  194. package/dist/mcp-data/registry/mobile-bar-nav.json +57 -6
  195. package/dist/mcp-data/registry/pagination.json +5 -4
  196. package/dist/mcp-data/registry/panel-nav.json +1 -1
  197. package/dist/mcp-data/registry/panel-tool-header.json +3 -3
  198. package/dist/mcp-data/registry/panel-tools.json +8 -7
  199. package/dist/mcp-data/registry/registry.json +102 -44
  200. package/dist/mcp-data/registry/select.json +18 -4
  201. package/dist/mcp-data/registry/shell-app.json +7 -6
  202. package/dist/mcp-data/registry/shell-tools.json +4 -4
  203. package/dist/mcp-data/registry/table-filter.json +3 -3
  204. package/dist/mcp-data/registry/table-sort.json +5 -4
  205. package/dist/mcp-data/registry/table-toolbar.json +10 -9
  206. package/dist/mcp-data/registry/table.json +24 -4
  207. package/dist/mcp-data/registry/toast.json +2 -2
  208. package/dist/mcp-data/registry/tooltip.json +20 -3
  209. package/dist/mcp-data/registry/typing-indicator.json +4 -4
  210. package/dist/react/ds-panel-tool-header.d.ts +2 -5
  211. package/dist/react/ds-panel-tools.d.ts +2 -5
  212. package/dist/styles/table.css +30 -10
  213. package/dist/types/components/Badge/Badge.d.ts +2 -16
  214. package/dist/types/components/Banner/Banner.d.ts +0 -1
  215. package/dist/types/components/BarAction/BarAction.d.ts +0 -7
  216. package/dist/types/components/ButtonFilled/ButtonFilled.d.ts +2 -0
  217. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +2 -0
  218. package/dist/types/components/ConversationList/ConversationList.d.ts +1 -0
  219. package/dist/types/components/FilterMenu/FilterMenu.d.ts +5 -5
  220. package/dist/types/components/Input/Input.d.ts +7 -0
  221. package/dist/types/components/Menu/Menu.d.ts +4 -4
  222. package/dist/types/components/MessageComposer/MessageComposer.d.ts +0 -3
  223. package/dist/types/components/MobileBarNav/MobileBarNav.d.ts +4 -0
  224. package/dist/types/components/Pagination/Pagination.d.ts +8 -0
  225. package/dist/types/components/PanelToolHeader/PanelToolHeader.d.ts +2 -5
  226. package/dist/types/components/PanelTools/PanelTools.d.ts +2 -5
  227. package/dist/types/components/PanelTools/panel-tools-types.d.ts +14 -2
  228. package/dist/types/components/Select/Select.d.ts +3 -0
  229. package/dist/types/components/Table/Table.d.ts +2 -13
  230. package/dist/types/components/Table/table-body-renderer.d.ts +36 -0
  231. package/dist/types/components/Table/table-load-view.d.ts +17 -0
  232. package/dist/types/components/Table/table-row-view.d.ts +26 -0
  233. package/dist/types/components/Table/table-skeleton-view.d.ts +12 -0
  234. package/dist/types/components/TableToolbar/TableToolbar.d.ts +5 -0
  235. package/dist/types/components/Tooltip/Tooltip.d.ts +3 -0
  236. package/dist/types/components.d.ts +112 -23
  237. package/dist/types/shell/index.d.ts +1 -1
  238. package/dist/types/shell/shell-responsive.d.ts +6 -1
  239. package/dist/types/utils/anchored-overlay-boundary.d.ts +14 -0
  240. package/dist/types/utils/anchored-overlay-interaction-controller.d.ts +26 -0
  241. package/dist/types/utils/anchored-position-controller.d.ts +14 -0
  242. package/dist/types/utils/anchored-position.d.ts +8 -2
  243. package/dist/types/utils/button-render.d.ts +1 -0
  244. package/dist/types/utils/select-controller.d.ts +1 -0
  245. package/dist/vue/ds-button-filled.js +1 -0
  246. package/dist/vue/ds-button-unfilled.js +1 -0
  247. package/dist/vue/ds-filter-menu.js +1 -0
  248. package/dist/vue/ds-input.js +1 -0
  249. package/dist/vue/ds-menu.js +1 -0
  250. package/dist/vue/ds-mobile-bar-nav.js +3 -0
  251. package/dist/vue/ds-select.js +1 -0
  252. package/dist/vue/ds-tooltip.js +1 -0
  253. package/package.json +4 -1
  254. package/dist/components/p-23u3lIr1.js +0 -2
  255. package/dist/components/p-Asi9h3pa.js +0 -2
  256. package/dist/components/p-Asi9h3pa.js.map +0 -1
  257. package/dist/components/p-BBxcMVqk.js +0 -2
  258. package/dist/components/p-BBxcMVqk.js.map +0 -1
  259. package/dist/components/p-BEvBJ65v.js +0 -2
  260. package/dist/components/p-BEvBJ65v.js.map +0 -1
  261. package/dist/components/p-BFSLT0yc.js +0 -2
  262. package/dist/components/p-BFSLT0yc.js.map +0 -1
  263. package/dist/components/p-BVlfQ8xZ.js.map +0 -1
  264. package/dist/components/p-BX0BMhgz.js +0 -2
  265. package/dist/components/p-BX0BMhgz.js.map +0 -1
  266. package/dist/components/p-Be1sY58w.js.map +0 -1
  267. package/dist/components/p-Bh67XbfB.js +0 -2
  268. package/dist/components/p-Bh67XbfB.js.map +0 -1
  269. package/dist/components/p-CKmfuK7k.js +0 -2
  270. package/dist/components/p-CKmfuK7k.js.map +0 -1
  271. package/dist/components/p-D4K9CE8a.js +0 -2
  272. package/dist/components/p-D4K9CE8a.js.map +0 -1
  273. package/dist/components/p-DEjh3klB.js +0 -2
  274. package/dist/components/p-DIEK54fV.js +0 -2
  275. package/dist/components/p-DNJTN_s0.js +0 -2
  276. package/dist/components/p-DOqnJVos.js +0 -2
  277. package/dist/components/p-DOqnJVos.js.map +0 -1
  278. package/dist/components/p-DZ55e3j9.js.map +0 -1
  279. package/dist/components/p-DhKvqh5G.js +0 -2
  280. package/dist/components/p-DhKvqh5G.js.map +0 -1
  281. package/dist/components/p-Dr4AgJbV.js +0 -2
  282. package/dist/components/p-Dr4AgJbV.js.map +0 -1
  283. package/dist/components/p-DsJW5W3W.js +0 -2
  284. package/dist/components/p-NzGRAPcF.js +0 -2
  285. package/dist/components/p-NzGRAPcF.js.map +0 -1
  286. package/dist/components/p-U8JIZzI2.js.map +0 -1
  287. package/dist/components/p-ZZzC52Ea.js +0 -2
  288. package/dist/components/p-ZZzC52Ea.js.map +0 -1
  289. package/dist/components/p-__lNIImO.js +0 -2
  290. package/dist/components/p-__lNIImO.js.map +0 -1
  291. package/dist/components/p-a6qP60zb.js +0 -2
  292. package/dist/components/p-a6qP60zb.js.map +0 -1
  293. package/dist/types/shell/badge-gradient-ring.d.ts +0 -28
  294. /package/dist/components/{p-C0X2zKbB.js.map → p-1Hu9jlju.js.map} +0 -0
  295. /package/dist/components/{p-DQqOzDEq.js.map → p-B00PEE6t.js.map} +0 -0
  296. /package/dist/components/{p-D1YhYulL.js.map → p-B1JRCDHS.js.map} +0 -0
  297. /package/dist/components/{p-D8Qd6gkf.js.map → p-BCOl1x0_.js.map} +0 -0
  298. /package/dist/components/{p-Dg9qiMDa.js.map → p-BHVOiWz5.js.map} +0 -0
  299. /package/dist/components/{p-DHuyj-9J.js.map → p-BXN-e7vF.js.map} +0 -0
  300. /package/dist/components/{p-Bn8NryHK.js.map → p-B_jZIC9R.js.map} +0 -0
  301. /package/dist/components/{p-7tZx4ukz.js.map → p-Bbb9A3NV.js.map} +0 -0
  302. /package/dist/components/{p-ruPTIV6t.js.map → p-BhYS_Ump.js.map} +0 -0
  303. /package/dist/components/{p-B0PEg5RF.js.map → p-BknXYAEc.js.map} +0 -0
  304. /package/dist/components/{p-C4TgWJi9.js.map → p-Bu3dOjpW.js.map} +0 -0
  305. /package/dist/components/{p-DAqSoyd4.js.map → p-C6R5Lft0.js.map} +0 -0
  306. /package/dist/components/{p-PD1Vfg0t.js.map → p-C9gC4haA.js.map} +0 -0
  307. /package/dist/components/{p-BGXqFq2C.js.map → p-CAnnQL1F.js.map} +0 -0
  308. /package/dist/components/{p-BHz78C8h.js.map → p-CLVxgTme.js.map} +0 -0
  309. /package/dist/components/{p-y4jhIkRc.js.map → p-Cg0kimXZ.js.map} +0 -0
  310. /package/dist/components/{p-BhYWdbEp.js.map → p-CsBICYmt.js.map} +0 -0
  311. /package/dist/components/{p-BHDkJmrC.js.map → p-D123Jvp-.js.map} +0 -0
  312. /package/dist/components/{p-CzcWZiH-.js.map → p-D3fMaUJ3.js.map} +0 -0
  313. /package/dist/components/{p-D2z2DgtX.js.map → p-DAvh38E4.js.map} +0 -0
  314. /package/dist/components/{p-CMFvaY05.js.map → p-DBue3ISk.js.map} +0 -0
  315. /package/dist/components/{p-rrFMAZkj.js.map → p-DDgeXGbB.js.map} +0 -0
  316. /package/dist/components/{p-DSIOINBK.js.map → p-uI6z53BE.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{p as e,H as s,c as t,h as i,a as o,t as r}from"./index.js";import{C as n,a as c,b as d,c as a}from"./p-C6DNhlES.js";import{e as l,m as h,f as g,r as p,a as u,b as f,d as v,c as m,g as b}from"./p-Cxr0IQjC.js";import{A as x}from"./p-BBxcMVqk.js";import{c as y,r as w}from"./p-DhKvqh5G.js";import{r as _}from"./p-BMc0DE59.js";import{T as k,r as z}from"./p-DFQ9mcbK.js";import{o as C,d as F}from"./p-NzGRAPcF.js";import{d as A}from"./p-a6qP60zb.js";import{d as T}from"./p-B0PEg5RF.js";import{d as L}from"./p-23u3lIr1.js";import{d as j}from"./p-BFfLvMZd.js";import{d as $}from"./p-JPTkZ3Ji.js";import{d as O}from"./p-BGXqFq2C.js";import{d as V}from"./p-D4K9CE8a.js";import{D as I,s as S}from"./p-DOUk4KoT.js";import{a as D,s as P,r as R,b as E}from"./p-B8q-6a03.js";import{a as q,C as B}from"./p-CuwopElg.js";import{c as H}from"./p-DuFm-ieS.js";class M{constructor(e){this.state=e;this.triggerEl=null;this.popupEl=null;this.searchEl=null;this.typeahead="";this.typeaheadTimer=null;this.outsideHandler=null;this.setTriggerElement=e=>{this.triggerEl=e};this.setPopupElement=e=>{this.popupEl=e};this.setSearchElement=e=>{this.searchEl=e};this.handleTriggerKeyDown=e=>{if(!this.state.open){if(["ArrowDown","ArrowUp","Enter"," "].includes(e.key)){e.preventDefault();this.openPopup(true,e.key==="ArrowUp"?"last":"first")}else if(this.isTypeaheadKey(e)){e.preventDefault();this.openPopup(true);if(this.state.searchable)this.state.searchTerm=e.key;else this.handleTypeahead(e.key)}return}this.handleListKeyDown(e)};this.handleListKeyDown=e=>{switch(e.key){case"ArrowDown":e.preventDefault();this.state.focusRingVisible=true;this.state.activeIndex=h(this.state.options,this.state.activeIndex,1);break;case"ArrowUp":e.preventDefault();this.state.focusRingVisible=true;this.state.activeIndex=h(this.state.options,this.state.activeIndex,-1);break;case"Home":e.preventDefault();this.state.focusRingVisible=true;this.state.activeIndex=l(this.state.options)[0]??-1;break;case"End":{e.preventDefault();this.state.focusRingVisible=true;const s=l(this.state.options);this.state.activeIndex=s[s.length-1]??-1;break}case"Enter":case" ":{if(e.key===" "&&this.state.searchable&&e.target===this.searchEl)break;e.preventDefault();const s=this.state.options[this.state.activeIndex];if(s)this.state.selectOption(s);break}case"Escape":e.preventDefault();this.closePopup(true);break;case"Tab":this.closePopup();break;default:if(!this.state.searchable&&this.isTypeaheadKey(e)){this.handleTypeahead(e.key)}}};this.position=new x({getAnchor:()=>this.triggerEl,getPopup:()=>this.popupEl,measure:(e,s)=>{if(!this.state.open||!s.isConnected||!this.state.host.contains(s))return null;const t=_(k.space050,k.space050);s.style.minWidth=`max(var(--ds-choice-popup-min-inline-size, ${k.menuWidthXs}), ${y(e.offsetWidth,t)}px)`;const i=this.state.popupAlign;return{anchorRect:e.getBoundingClientRect(),popupWidth:s.offsetWidth,popupHeight:s.offsetHeight,side:"bottom",align:i,sideOffsetPx:t,alignOffsetPx:w({align:i,alignOffsetPx:0,sectionInsetPx:t}),viewportPadPx:t,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight}},apply:({x:e,y:s})=>{this.state.position={x:e,y:s};this.state.positionReady=true},topLayer:true})}get activeOptionId(){return!this.state.isLoading&&this.state.activeIndex>=0?`${this.state.generatedId}-option-${this.state.activeIndex}`:undefined}connect(){if(this.state.open)this.openChanged(true)}disconnect(){this.cancelPositionRetry();this.unbindPopupListeners();if(this.typeaheadTimer)clearTimeout(this.typeaheadTimer)}setFocus(){this.triggerEl?.focus()}optionsChanged(){if(!this.state.open)return;const e=l(this.state.options);if(!e.includes(this.state.activeIndex))this.state.activeIndex=e[0]??-1;requestAnimationFrame((()=>this.updatePosition()))}loadingChanged(){if(this.state.open)requestAnimationFrame((()=>this.updatePosition()))}positionChanged(){if(this.state.open)requestAnimationFrame((()=>this.updatePosition()))}openChanged(e){if(e){this.bindPopupListeners();this.schedulePositionUpdate((()=>{this.scrollActiveOptionIntoView();if(this.state.searchable)this.searchEl?.focus()}));return}this.cancelPositionRetry();this.unbindPopupListeners();this.state.searchTerm="";this.state.positionReady=false}searchChanged(){this.state.activeIndex=l(this.state.options)[0]??-1;requestAnimationFrame((()=>{this.updatePosition();this.scrollActiveOptionIntoView()}))}activeIndexChanged(){requestAnimationFrame((()=>this.scrollActiveOptionIntoView()))}openPopup(e,s){if(this.state.isDisabled||!this.state.options.length&&!this.state.isLoading)return;const t=l(this.state.options);this.state.activeIndex=s==="last"?t[t.length-1]??-1:this.state.preferredIndex>=0?this.state.preferredIndex:t[0]??-1;this.state.focusRingVisible=e;this.state.open=true}closePopup(e=false){if(!this.state.open)return;this.state.open=false;if(e)requestAnimationFrame((()=>this.triggerEl?.focus()))}focusSearchOrTrigger(){requestAnimationFrame((()=>this.state.searchable?this.searchEl?.focus():this.triggerEl?.focus()))}isTypeaheadKey(e){return e.key.length===1&&!e.metaKey&&!e.ctrlKey&&!e.altKey}handleTypeahead(e){if(this.typeaheadTimer)clearTimeout(this.typeaheadTimer);this.state.focusRingVisible=true;const s=e.toLocaleLowerCase();const t=this.typeahead.length>0&&[...this.typeahead].every((e=>e===s));this.typeahead=t?s:`${this.typeahead}${s}`;const i=g(this.state.options,this.typeahead,this.state.activeIndex);if(i>=0)this.state.activeIndex=i;const o=z(k.animationDurationMedium1,k.animationDurationMedium1);this.typeaheadTimer=setTimeout((()=>{this.typeahead="";this.typeaheadTimer=null}),o)}scrollActiveOptionIntoView(){if(!this.state.open||!this.activeOptionId)return;this.state.host.querySelector(`#${this.activeOptionId}`)?.scrollIntoView({block:"nearest",inline:"nearest"})}bindPopupListeners(){this.unbindPopupListeners();this.outsideHandler=e=>{if(this.state.host.contains(e.target))return;this.closePopup()};document.addEventListener("mousedown",this.outsideHandler,true);this.position.observe()}unbindPopupListeners(){if(this.outsideHandler){document.removeEventListener("mousedown",this.outsideHandler,true);this.outsideHandler=null}this.position.unobserve()}cancelPositionRetry(){this.position.cancel()}schedulePositionUpdate(e){if(!this.state.open)return;this.state.positionReady=false;this.position.schedule(e)}updatePosition(){return this.position.update()}}const K=()=>`@media (forced-colors: active){.sc-ds-select:root,.sc-ds-select-h,.ds-forced-colors-scope.sc-ds-select{--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-select-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-select-h,.ds-focus-ring.sc-ds-select,.ds-focus-ring-inset.sc-ds-select-h,.ds-focus-ring-inset.sc-ds-select{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-select-h:focus-visible,.ds-focus-ring.sc-ds-select: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-select-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-select{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-select-h:focus-visible,.ds-focus-ring-inset.sc-ds-select:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-select-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-select: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-select-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-select{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-select-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-select::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-select-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-select:root,.sc-ds-select-h,.ds-forced-colors-scope.sc-ds-select{--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}}@media (forced-colors: active){.sc-ds-select:root,.sc-ds-select-h,.ds-forced-colors-scope.sc-ds-select{--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-select-h,.ds-interaction-fill.sc-ds-select{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-select-h::before,.ds-interaction-fill.sc-ds-select::before,.ds-interaction-fill.sc-ds-select-h::after,.ds-interaction-fill.sc-ds-select::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-select-h::before,.ds-interaction-fill.sc-ds-select::before{z-index:1}.ds-interaction-fill.sc-ds-select-h::after,.ds-interaction-fill.sc-ds-select::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-select-h,.ds-interaction-fill--bordered.sc-ds-select{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-select-h::before,.ds-interaction-fill--selected.sc-ds-select::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-select-h,.ds-interaction-fill--selected.sc-ds-select{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-select-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-select:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-select-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-select:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-select-h::after,.ds-interaction-fill--grouped.sc-ds-select::after,.ds-interaction-fill--grouped.sc-ds-select-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-select:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-select-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-select:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-select-h,.ds-interaction-fill--grouped.sc-ds-select{--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-select-h>.ds-interaction-fill__content.sc-ds-select,.ds-interaction-fill.sc-ds-select>.ds-interaction-fill__content.sc-ds-select,.ds-interaction-fill__content.sc-ds-select{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-select-h,.ds-interaction-fill--on-faint.sc-ds-select{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-select-h,.ds-interaction-fill--on-medium.sc-ds-select{--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-select-h,.ds-interaction-fill--on-bold.sc-ds-select{--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-select-h,.ds-interaction-fill--on-strong.sc-ds-select{--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-select-h,.ds-interaction-fill--on-translucent.sc-ds-select{--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-select-h,.ds-interaction-fill--on-inverted.sc-ds-select{--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-select-h,.ds-interaction-fill--on-media.sc-ds-select{--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-select-h,.ds-interaction-fill--on-always-dark.sc-ds-select{--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-select-h,.ds-interaction-fill--on-navigation.sc-ds-select{--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)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-select-h::after,.ds-interaction-fill.sc-ds-select::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--selected.sc-ds-select-h::before,.ds-interaction-fill--selected.sc-ds-select::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-select-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-select: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-select:root,.sc-ds-select-h,.ds-forced-colors-scope.sc-ds-select{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control-inactive.sc-ds-select-h,.ds-control-inactive.sc-ds-select{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-select-h,.ds-control-inactive.sc-ds-select{color:var(--ds-forced-color-disabled);opacity:1}}.ds-control--lg.sc-ds-select,.ds-control--lg.sc-ds-select-h,.ds-control--md.sc-ds-select-h,.ds-control--md.sc-ds-select,.ds-control--sm.sc-ds-select-h,.ds-control--sm.sc-ds-select,.ds-control--xs.sc-ds-select-h,.ds-control--xs.sc-ds-select{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-select-h,.ds-control--lg.sc-ds-select{--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-select-h,.ds-control--md.sc-ds-select{--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-select-h,.ds-control--sm.sc-ds-select{--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-select-h,.ds-control--xs.sc-ds-select{--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-chrome-space--sm.sc-ds-select-h,.ds-chrome-space--sm.sc-ds-select{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-select-h,.ds-chrome-space--md.sc-ds-select{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-select-h,.ds-chrome-space--lg.sc-ds-select{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-select-h,.ds-chrome-row.sc-ds-select,.ds-chrome-column.sc-ds-select-h,.ds-chrome-column.sc-ds-select,.ds-chrome-grid.sc-ds-select-h,.ds-chrome-grid.sc-ds-select{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-select-h,.ds-chrome-row.sc-ds-select{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-select-h,.ds-chrome-column.sc-ds-select{flex-direction:column}.ds-chrome-grid.sc-ds-select-h,.ds-chrome-grid.sc-ds-select{display:grid;align-items:center}.ds-control-frame.sc-ds-select{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:var(--ds-control-padding-inline, var(--dimension-space-075));gap:var(--ds-control-gap, var(--dimension-space-050));border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.ds-control-section-heading.sc-ds-select{display:flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-control-icon-box.sc-ds-select{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md))}.ds-control-label-box.sc-ds-select{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-select{position:relative;padding-inline-end:calc( var(--ds-control-label-inset, var(--dimension-space-025)) + var(--ds-control-gap, var(--dimension-space-050)) )}.ds-control-label-dot__badge.sc-ds-select{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-empty-region.sc-ds-select{display:flex;flex:1 1 auto;align-items:center;justify-content:center;box-sizing:border-box;min-width:0;min-height:0}.ds-empty-region--padded.sc-ds-select{padding:var(--dimension-space-200)}.sc-ds-select:where(.ds-text-decoration,.ds-text-action).sc-ds-select{text-decoration-color:var(--ds-text-decoration-color, var(--color-foreground-tertiary));text-decoration-thickness:var(--ds-text-decoration-thickness, var(--dimension-stroke-width-012));text-underline-offset:var(--ds-text-decoration-offset, var(--dimension-space-025))}.ds-text-action.sc-ds-select{--ds-text-action-foreground:var(--color-foreground-bold-brand);--ds-text-decoration-color:var(--ds-text-action-foreground);color:var(--ds-text-action-foreground);text-decoration-line:none}.ds-text-action--on-medium.sc-ds-select{--ds-text-action-foreground:var(--color-foreground-on-medium-background-primary);--ds-text-decoration-color:var(--color-foreground-on-medium-background-secondary);text-decoration-line:underline}.ds-text-action--on-strong.sc-ds-select{--ds-text-action-foreground:var(--color-foreground-on-strong-background-primary);--ds-text-decoration-color:var(--color-foreground-on-strong-background-secondary);text-decoration-line:underline}.ds-text-action--on-bold.sc-ds-select{--ds-text-action-foreground:var(--color-foreground-on-bold-background-primary);--ds-text-decoration-color:var(--color-foreground-on-bold-background-secondary);text-decoration-line:underline}@media (hover: hover) and (pointer: fine){.ds-text-action.sc-ds-select:hover{text-decoration-line:underline}}@media (forced-colors: active){.ds-text-action.sc-ds-select{text-decoration-line:underline;text-decoration-color:currentcolor}}.ds-choice-popup.sc-ds-select{box-sizing:border-box;display:flex;flex-direction:column;min-width:var(--ds-choice-popup-min-inline-size, var(--dimension-menu-width-xs));max-width:min(var(--dimension-panel-width-lg), calc(100vw - var(--dimension-space-200)));max-height:calc(100vh - var(--dimension-space-200));overflow:hidden;inset:auto;margin:0;padding:0;border:0;background-color:var(--color-background-primary);border-radius:var(--dimension-radius-075);box-shadow:var(--effect-shadow-elevated-floating);color:var(--color-foreground-secondary);animation:dsChoiceFadeIn var(--effect-motion-short-2) forwards;backface-visibility:hidden;will-change:transform;text-align:start}.ds-choice-popup.sc-ds-select::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:var(--effect-highlight-elevated-floating)}.ds-choice-popup--closing.sc-ds-select{animation:dsChoiceFadeOut var(--effect-motion-short-2) forwards}@keyframes dsChoiceFadeIn{from{opacity:0;transform:inherit scale(0.97)}to{opacity:1}}@keyframes dsChoiceFadeOut{from{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.ds-choice-popup.sc-ds-select{animation:none;opacity:1}.ds-choice-popup--closing.sc-ds-select{opacity:0}}.ds-choice-list.sc-ds-select{display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain}.ds-choice-section--divided.sc-ds-select{border-bottom:var(--dimension-stroke-width-015) solid var(--color-border-tertiary)}ds-text.ds-choice-section__header.sc-ds-select{text-align:start;-webkit-user-select:none;user-select:none}.ds-choice-section--headed-after-first.sc-ds-select{margin-block-start:var(--dimension-space-050)}.ds-choice-item.sc-ds-select{width:100%;border:none;border-radius:var(--ds-control-radius, var(--dimension-radius-025));background:transparent;cursor:default;-webkit-user-select:none;user-select:none;text-align:left;color:inherit}.ds-choice-item.sc-ds-select:has(.ds-choice-item__subtext){height:auto;min-height:var(--ds-control-height, var(--dimension-size-400));padding-block:var(--ds-control-padding-inline, var(--dimension-space-075));align-items:flex-start}.ds-choice-item__content.sc-ds-select{display:flex;flex:1;flex-direction:column;gap:var(--dimension-space-025);min-width:0}ds-text.ds-choice-item__label.sc-ds-select{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ds-text.ds-choice-item__subtext.sc-ds-select{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.ds-choice-item__icon.sc-ds-select,.ds-choice-item__suffix.sc-ds-select{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md));pointer-events:none}.ds-choice-item.ds-interaction-fill--selected.sc-ds-select .ds-choice-item__icon.sc-ds-select{color:var(--color-foreground-primary)}.ds-choice-item__tag.sc-ds-select{flex-shrink:0;pointer-events:none}.ds-choice-empty.sc-ds-select,.ds-choice-loading.sc-ds-select{min-height:var(--dimension-size-600);padding:var(--dimension-space-100)}.ds-choice-footer.sc-ds-select{position:relative;box-sizing:border-box;padding-block:var(--dimension-space-050)}.ds-choice-footer.sc-ds-select::before{content:'';position:absolute;inset:0 0 auto;height:var(--dimension-stroke-width-012);background-color:var(--color-border-tertiary);pointer-events:none}.ds-choice-footer__content.sc-ds-select{display:flex;align-items:center;justify-content:space-between;column-gap:var(--dimension-space-050);box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400))}.ds-choice-footer__summary.sc-ds-select,.ds-choice-footer__summary-measure.sc-ds-select,.ds-choice-footer__clear.sc-ds-select ds-text.sc-ds-select,.ds-choice-footer__action.sc-ds-select ds-text.sc-ds-select{padding-inline:calc( var(--dimension-space-050) + var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-choice-footer__summary.sc-ds-select,.ds-choice-footer__summary-measure.sc-ds-select,.ds-choice-footer__clear.sc-ds-select,.ds-choice-footer__action.sc-ds-select{white-space:nowrap}.ds-choice-footer__summary-measure.sc-ds-select{position:absolute;visibility:hidden;pointer-events:none}.ds-choice-footer__clear.sc-ds-select,.ds-choice-footer__action.sc-ds-select{appearance:none;display:inline-flex;align-items:center;padding:0;border:0;border-radius:var(--dimension-radius-025);background:transparent;cursor:default}@media (forced-colors: active){.ds-choice-popup.sc-ds-select{outline:var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);outline-offset:calc(-1 * var(--dimension-stroke-width-012))}.ds-choice-popup.sc-ds-select::after{box-shadow:none}.ds-choice-section--divided.sc-ds-select{border-bottom-color:var(--ds-forced-color-content)}.ds-choice-footer.sc-ds-select::before{background-color:var(--ds-forced-color-content)}}.ds-control-frame.sc-ds-select{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:var(--ds-control-padding-inline, var(--dimension-space-075));gap:var(--ds-control-gap, var(--dimension-space-050));border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.ds-control-section-heading.sc-ds-select{display:flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-control-icon-box.sc-ds-select{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md))}.ds-control-label-box.sc-ds-select{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-select{position:relative;padding-inline-end:calc( var(--ds-control-label-inset, var(--dimension-space-025)) + var(--ds-control-gap, var(--dimension-space-050)) )}.ds-control-label-dot__badge.sc-ds-select{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-control-width--hug.sc-ds-select-h,.ds-control-width--hug.sc-ds-select{width:fit-content;max-width:100%;flex:0 0 auto;align-self:flex-start}.ds-control-width--fill.sc-ds-select-h,.ds-control-width--fill.sc-ds-select{width:100%;min-width:0;flex:1 1 auto;align-self:stretch}.ds-field-stack.sc-ds-select-h,.ds-field-stack.sc-ds-select{display:flex;flex-direction:column;gap:var(--dimension-space-050)}.select-search.sc-ds-select{position:relative;box-sizing:border-box;padding:var(--dimension-space-050);background:transparent}.select-search.sc-ds-select::after{content:'';position:absolute;inset:auto 0 0;height:var(--dimension-stroke-width-012);background-color:var(--color-border-tertiary);pointer-events:none}.select-search.sc-ds-select:focus-within::after{height:var(--dimension-stroke-width-018);background-color:var(--color-border-bold-brand)}.select-search__control.sc-ds-select{display:flex;align-items:center;box-sizing:border-box;gap:var(--ds-control-gap, var(--dimension-space-050));height:var(--ds-control-height, var(--dimension-size-400));padding:0 var(--ds-control-padding-inline, var(--dimension-space-075));border:0;border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.select-search__control.sc-ds-select:has(.select-search__clear){padding-right:0}.select-search__control.sc-ds-select>ds-icon.sc-ds-select{flex-shrink:0;color:var(--color-foreground-secondary)}.select-search.sc-ds-select .select-search__control.sc-ds-select .select-search__clear.sc-ds-select{align-self:center;flex-shrink:0;margin-right:var(--dimension-space-050)}.select-search__control.sc-ds-select input.sc-ds-select{flex:1;min-width:0;height:100%;padding:0 var(--ds-control-label-inset, var(--dimension-space-025));border:0;outline:none;background:transparent;color:var(--color-foreground-primary);font-family:inherit}.select-search__control.sc-ds-select input.sc-ds-select::placeholder{color:var(--color-foreground-secondary)}.select-search__control.sc-ds-select input.sc-ds-select:focus::placeholder{color:var(--color-foreground-quaternary)}.select-search__control.sc-ds-select input[type='search'].sc-ds-select::-webkit-search-cancel-button,.select-search__control.sc-ds-select input[type='search'].sc-ds-select::-webkit-search-decoration{display:none}.ds-select-trigger-host.sc-ds-select-h{display:inline-flex;position:relative;min-inline-size:0;outline:none;--ds-select-fg:var(--color-foreground-secondary);--ds-select-fg-active:var(--color-foreground-primary);--ds-select-prefix-fg:var(--ds-select-fg);--ds-select-chevron-fg:var(--ds-select-fg);--ds-select-border:var(--color-border-secondary)}.ds-control-width--fill.sc-ds-select-h .trigger.sc-ds-select{width:100%}.trigger.sc-ds-select{justify-content:flex-start;box-sizing:border-box;inline-size:100%;max-inline-size:100%;min-inline-size:0;background:transparent;border:none;border-radius:var(--ds-control-radius, var(--dimension-radius-025));color:var(--ds-select-fg);cursor:default;font-family:inherit;-webkit-user-select:none;user-select:none;overflow:hidden;transition:color var(--effect-motion-short-2)}.trigger--bordered.sc-ds-select{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--ds-select-border)}.trigger--expanded.sc-ds-select{--ds-interaction-hover:var(--ds-interaction-pressed)}.trigger--expanded.sc-ds-select::after{background:var(--ds-interaction-pressed)}.trigger--has-value.sc-ds-select .trigger__label-box.sc-ds-select{color:var(--ds-select-fg-active)}.trigger--label-placeholder.sc-ds-select .trigger__label-box.sc-ds-select{color:var(--ds-select-fg)}.trigger__prefix.sc-ds-select,.trigger__chevron.sc-ds-select{position:relative;z-index:2}.trigger__prefix.sc-ds-select{color:var(--ds-select-prefix-fg)}.trigger__chevron.sc-ds-select{color:var(--ds-select-chevron-fg)}.trigger__label-box.sc-ds-select{position:relative;z-index:2;display:flex;align-items:center;flex:1 1 auto;overflow:hidden;text-align:left;color:inherit;transition:color var(--effect-motion-short-2)}.trigger__label-content.sc-ds-select{display:inline-flex;align-items:center;flex:1 1 auto;max-width:100%;min-width:0;overflow:hidden}.trigger__label.sc-ds-select{flex:1 1 auto;min-width:0;max-width:100%;overflow:hidden}.ds-select-trigger-host--background-medium.sc-ds-select-h{--ds-select-fg:var(--color-foreground-on-medium-background-secondary);--ds-select-fg-active:var(--color-foreground-on-medium-background-primary);--ds-select-border:var(--color-border-on-medium-background-secondary)}.ds-select-trigger-host--background-bold.sc-ds-select-h{--ds-select-fg:var(--color-foreground-on-bold-background-secondary);--ds-select-fg-active:var(--color-foreground-on-bold-background-primary);--ds-select-border:var(--color-border-on-bold-background-secondary)}.ds-select-trigger-host--background-strong.sc-ds-select-h{--ds-select-fg:var(--color-foreground-on-strong-background-secondary);--ds-select-fg-active:var(--color-foreground-on-strong-background-primary);--ds-select-border:var(--color-border-on-strong-background-secondary)}.ds-select-trigger-host--background-translucent.sc-ds-select-h{--ds-select-fg:var(--color-translucent-foreground-secondary);--ds-select-fg-active:var(--color-translucent-foreground-primary);--ds-select-border:var(--color-translucent-border-secondary)}.ds-select-trigger-host--background-inverted.sc-ds-select-h{--ds-select-fg:var(--color-inverted-foreground-secondary);--ds-select-fg-active:var(--color-inverted-foreground-primary);--ds-select-border:var(--color-inverted-border-secondary)}.ds-select-trigger-host--background-media.sc-ds-select-h{--ds-select-fg:var(--color-media-foreground-secondary);--ds-select-fg-active:var(--color-media-foreground-primary);--ds-select-border:var(--color-media-border-secondary)}.ds-select-trigger-host--background-always-dark.sc-ds-select-h{--ds-select-fg:var(--color-always-dark-foreground-secondary);--ds-select-fg-active:var(--color-always-dark-foreground-primary);--ds-select-border:var(--color-always-dark-border-secondary)}.ds-table-caption-control.sc-ds-select-h{--ds-choice-popup-min-inline-size:var(--dimension-menu-width-xs)}.ds-table-caption-control.ds-table-caption-control--compact.sc-ds-select-h{flex:0 0 auto;width:var(--ds-control-height, var(--dimension-size-400));height:var(--ds-control-height, var(--dimension-size-400));min-width:var(--ds-control-height, var(--dimension-size-400));min-height:var(--ds-control-height, var(--dimension-size-400));max-width:var(--ds-control-height, var(--dimension-size-400));inline-size:var(--ds-control-height, var(--dimension-size-400));min-inline-size:var(--ds-control-height, var(--dimension-size-400));max-inline-size:var(--ds-control-height, var(--dimension-size-400))}.ds-table-caption-control.ds-table-caption-control--compact.sc-ds-select-h .trigger.sc-ds-select{justify-content:center;inline-size:100%;min-inline-size:100%;height:100%;padding-inline:0}.ds-table-caption-control.ds-table-caption-control--compact.sc-ds-select-h .trigger--has-value.sc-ds-select{--ds-select-prefix-fg:var(--ds-select-fg-active)}@container ds-table (max-width: 899px){.sc-ds-select-h.ds-table-caption-control{flex:0 0 auto;inline-size:var(--ds-control-height, var(--dimension-size-400));min-inline-size:var(--ds-control-height, var(--dimension-size-400));max-inline-size:var(--ds-control-height, var(--dimension-size-400))}.sc-ds-select-h.ds-table-caption-control .trigger{justify-content:center;inline-size:100%;min-inline-size:100%;padding-inline:0}.sc-ds-select-h.ds-table-caption-control .trigger--has-value{--ds-select-prefix-fg:var(--ds-select-fg-active)}}.ds-text--display-medium.sc-ds-select-h,.ds-text--display-medium.sc-ds-select{font-size:var(--typography-fontsize-3xl);line-height:var(--typography-lineheight-3xl)}.ds-text--display-small.sc-ds-select-h,.ds-text--display-small.sc-ds-select{font-size:var(--typography-fontsize-2xl);line-height:var(--typography-lineheight-2xl)}.ds-text--title-large.sc-ds-select-h,.ds-text--title-large.sc-ds-select{font-size:var(--typography-fontsize-xl);line-height:var(--typography-lineheight-xl)}.ds-text--title-medium.sc-ds-select-h,.ds-text--title-medium.sc-ds-select{font-size:var(--typography-fontsize-lg);line-height:var(--typography-lineheight-lg)}.ds-text--title-small.sc-ds-select-h,.ds-text--title-small.sc-ds-select{font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md)}.ds-text--body-large.sc-ds-select-h,.ds-text--body-large.sc-ds-select{font-size:var(--typography-fontsize-lg);line-height:var(--typography-lineheight-lg)}.ds-text--body-medium.sc-ds-select-h,.ds-text--body-medium.sc-ds-select{font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md)}.ds-text--body-small.sc-ds-select-h,.ds-text--body-small.sc-ds-select{font-size:var(--typography-fontsize-sm);line-height:var(--typography-lineheight-sm)}.ds-text--caption.sc-ds-select-h,.ds-text--caption.sc-ds-select{font-size:var(--typography-fontsize-xs);line-height:var(--typography-lineheight-xs);text-transform:uppercase}.ds-text--display-medium.ds-text--emphasis.sc-ds-select-h,.ds-text--display-small.ds-text--emphasis.sc-ds-select-h,.ds-text--display-medium.ds-text--emphasis.sc-ds-select,.ds-text--display-small.ds-text--emphasis.sc-ds-select{font-weight:var(--typography-weight-bold);letter-spacing:var(--typography-letterspacing-negative-double)}.ds-text--display-medium.ds-text--regular.sc-ds-select-h,.ds-text--display-small.ds-text--regular.sc-ds-select-h,.ds-text--display-medium.ds-text--regular.sc-ds-select,.ds-text--display-small.ds-text--regular.sc-ds-select{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-large.ds-text--emphasis.sc-ds-select-h,.ds-text--title-large.ds-text--emphasis.sc-ds-select{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative-double)}.ds-text--title-large.ds-text--regular.sc-ds-select-h,.ds-text--title-large.ds-text--regular.sc-ds-select{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-medium.ds-text--emphasis.sc-ds-select-h,.ds-text--title-small.ds-text--emphasis.sc-ds-select-h,.ds-text--title-medium.ds-text--emphasis.sc-ds-select,.ds-text--title-small.ds-text--emphasis.sc-ds-select{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--title-medium.ds-text--regular.sc-ds-select-h,.ds-text--title-small.ds-text--regular.sc-ds-select-h,.ds-text--title-medium.ds-text--regular.sc-ds-select,.ds-text--title-small.ds-text--regular.sc-ds-select{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-large.ds-text--emphasis.sc-ds-select-h,.ds-text--body-medium.ds-text--emphasis.sc-ds-select-h,.ds-text--body-large.ds-text--emphasis.sc-ds-select,.ds-text--body-medium.ds-text--emphasis.sc-ds-select{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative)}.ds-text--body-large.ds-text--regular.sc-ds-select-h,.ds-text--body-medium.ds-text--regular.sc-ds-select-h,.ds-text--body-large.ds-text--regular.sc-ds-select,.ds-text--body-medium.ds-text--regular.sc-ds-select{font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-small.ds-text--emphasis.sc-ds-select-h,.ds-text--body-small.ds-text--emphasis.sc-ds-select{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-negative-half)}.ds-text--body-small.ds-text--regular.sc-ds-select-h,.ds-text--body-small.ds-text--regular.sc-ds-select{font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-none)}.ds-text--caption.ds-text--emphasis.sc-ds-select-h,.ds-text--caption.ds-text--emphasis.sc-ds-select{font-weight:var(--typography-weight-semibold);letter-spacing:var(--typography-letterspacing-positive)}.ds-text--caption.ds-text--regular.sc-ds-select-h,.ds-text--caption.ds-text--regular.sc-ds-select{font-weight:var(--typography-weight-medium);letter-spacing:var(--typography-letterspacing-positive)}.ds-control-elevation.sc-ds-select-h,.ds-control-elevation.sc-ds-select{position:relative;overflow:visible;box-shadow:var(--ds-control-elevation-shadow, none)}.ds-control-elevation.sc-ds-select-h::after,.ds-control-elevation.sc-ds-select::after{content:'';position:absolute;inset:0;z-index:4;border-radius:inherit;box-shadow:var(--ds-control-elevation-highlight, none);pointer-events:none}.ds-control-elevation--sm.sc-ds-select-h,.ds-control-elevation--sm.sc-ds-select{--ds-control-elevation-shadow:var(--effect-shadow-elevated-sm);--ds-control-elevation-highlight:var(--effect-highlight-elevated-sm)}.ds-control-elevation--md.sc-ds-select-h,.ds-control-elevation--md.sc-ds-select{--ds-control-elevation-shadow:var(--effect-shadow-elevated-md);--ds-control-elevation-highlight:var(--effect-highlight-elevated-md)}.ds-control-elevation--floating.sc-ds-select-h,.ds-control-elevation--floating.sc-ds-select{--ds-control-elevation-shadow:var(--effect-shadow-elevated-floating);--ds-control-elevation-highlight:var(--effect-highlight-elevated-floating)}.ds-control-elevation--press-scale.sc-ds-select{--ds-control-press-active-scale:var(--dimension-scale-default);transition:scale var(--effect-motion-short-2)}.ds-control-elevation--press-scale[data-ds-press-active].sc-ds-select{scale:var(--dimension-scale-subtle)}@media (prefers-reduced-motion: reduce){.ds-control-elevation--press-scale.sc-ds-select,.ds-control-elevation--press-scale[data-ds-press-active].sc-ds-select{scale:none;transition:none}}.wrapper--error.sc-ds-select{--ds-interaction-border-width:var(--dimension-stroke-width-018);--ds-interaction-border-color:var(--color-border-bold-negative)}.select-popup.sc-ds-select{color:var(--color-foreground-secondary)}.select-option[aria-selected='true'].sc-ds-select .ds-choice-item__icon.sc-ds-select{color:var(--color-foreground-primary)}.select-option-row.sc-ds-select{position:relative;isolation:isolate}.select-option-row__action.sc-ds-select{position:absolute;top:50%;right:var(--dimension-space-050);z-index:var(--dimension-z-index-floating);display:flex;align-items:center;justify-content:center;border-radius:var(--dimension-radius-half);background:var(--color-background-transparent);-webkit-backdrop-filter:blur(var(--effect-blur-sm));backdrop-filter:blur(var(--effect-blur-sm));opacity:0;pointer-events:none;transform:translateY(-50%)}.select-option-row.sc-ds-select:has(:focus-visible) .select-option-row__action.sc-ds-select,.select-option-row--action-open.sc-ds-select .select-option-row__action.sc-ds-select,.select-option-row--keyboard-active.sc-ds-select .select-option-row__action.sc-ds-select{opacity:1;pointer-events:auto}.select-option-row--action-open.sc-ds-select .select-option.sc-ds-select::after{background:var(--ds-interaction-hover)}.select-option__subtext-actions.sc-ds-select{display:flex;align-items:center;gap:var(--dimension-space-050);min-inline-size:0;color:var(--color-foreground-secondary)}.select-option__subtext-action.sc-ds-select{appearance:none;display:inline-flex;align-items:center;padding:0;border:0;border-radius:var(--dimension-radius-025);background:transparent;cursor:pointer}.select-option__subtext-action--negative.sc-ds-select{--ds-text-action-foreground:var(--color-foreground-bold-negative)}.select-option__subtext-action-separator.sc-ds-select{color:var(--color-foreground-tertiary);pointer-events:none}@media (hover: hover) and (pointer: fine){.select-option-row.sc-ds-select:hover .select-option-row__action.sc-ds-select{opacity:1;pointer-events:auto}.select-option-row.sc-ds-select:hover .select-option.sc-ds-select::after{background:var(--ds-interaction-hover)}}@media (hover: none){.select-option-row__action.sc-ds-select{opacity:1;pointer-events:auto}.select-option-row--has-action.sc-ds-select .ds-choice-item__content.sc-ds-select{padding-inline-end:var(--dimension-size-400)}}.error-text.sc-ds-select{width:100%}`;const G={lg:"lg",md:"md",sm:"sm",xs:"xs"};const N={lg:"md",md:"sm",sm:"xs",xs:"xs"};let U=0;const W=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsChange=t(this,"dsChange",7);this.dsClear=t(this,"dsClear",7);this.dsOpenChange=t(this,"dsOpenChange",7);this.dsFooterAction=t(this,"dsFooterAction",7);this.dsOptionAction=t(this,"dsOptionAction",7);this.dsOptionSubtextAction=t(this,"dsOptionSubtextAction",7);this.internals=this.attachInternals();this.options=[];this.sections=[];this.multiple=false;this.value="";this.open=false;this.disabled=false;this.required=false;this.requiredMessage=I;this.placeholder="Select";this.triggerLabelPlaceholder=false;this.dot=false;this.size="md";this.width="hug";this.popupAlign="start";this.isInactive=false;this.isLoading=false;this.activeFill=true;this.collapseLabel=false;this.hasBorder=true;this.indicator="down";this.allowClear=true;this.clearLabel="Clear";this.selectedLabel="selected";this.searchable=false;this.searchPlaceholder="Search";this.noResultsText="No results found";this.loadingLabel="Loading";this.error=false;this.ariaLabel=null;this.activeIndex=-1;this.searchTerm="";this.formDisabled=false;this.position={x:0,y:0};this.positionReady=false;this.focusRingVisible=false;this.compactFooterSummary=false;this.captionCompact=false;this.generatedId=`ds-select-${++U}`;this.listboxId=`${this.generatedId}-listbox`;this.errorId=`${this.generatedId}-error`;this.initialValue="";this.controller=this.createController();this.hasLoaded=false;this.clearSelection=e=>{e.preventDefault();e.stopPropagation();this.value=this.multiple?[]:"";this.dsChange.emit(this.multiple?[]:"");this.dsClear.emit();if(!this.multiple){const e=l(this.visibleOptions);this.activeIndex=e[0]??-1}this.controller.focusSearchOrTrigger()};this.activateFooterAction=e=>{e.preventDefault();e.stopPropagation();this.dsFooterAction.emit();this.closePopup()};this.handleListKeyDown=this.controller.handleListKeyDown;this.handleTriggerKeyDown=this.controller.handleTriggerKeyDown}createController(){const e=this;return new M({get host(){return e.el},generatedId:e.generatedId,get options(){return e.visibleOptions},get searchable(){return e.searchable},get isLoading(){return e.isLoading},get isDisabled(){return e.isDisabled},get preferredIndex(){if(e.multiple)return-1;return e.visibleOptions.findIndex((s=>s.value===e.scalarValue&&!s.isInactive))},get popupAlign(){return e.popupAlign},get open(){return e.open},set open(s){e.open=s},get activeIndex(){return e.activeIndex},set activeIndex(s){e.activeIndex=s},get searchTerm(){return e.searchTerm},set searchTerm(s){e.searchTerm=s},get focusRingVisible(){return e.focusRingVisible},set focusRingVisible(s){e.focusRingVisible=s},get position(){return e.position},set position(s){e.position=s},get positionReady(){return e.positionReady},set positionReady(s){e.positionReady=s},selectOption:s=>e.selectOption(s)})}componentWillLoad(){this.value=this.normalizeValueForMode(this.value);this.initialValue=Array.isArray(this.value)?[...this.value]:this.value;this.syncFormValue()}componentDidLoad(){this.hasLoaded=true;this.controller.connect();this.observeFooterContent();this.syncCaptionCompactObserver()}connectedCallback(){if(!this.hasLoaded)return;this.controller.connect();this.observeFooterContent();this.syncCaptionCompactObserver()}componentDidRender(){this.observeFooterContent();this.scheduleFooterSummaryMeasurement()}disconnectedCallback(){this.controller.disconnect();this.footerResizeObserver?.disconnect();this.observedFooterContentElement=undefined;if(this.footerMeasurementFrame!==undefined){cancelAnimationFrame(this.footerMeasurementFrame);this.footerMeasurementFrame=undefined}this.disconnectCaptionCompactObserver()}onCollapseLabelChange(){this.syncCaptionCompactObserver()}syncFormValue(){if(this.multiple&&!Array.isArray(this.value)||!this.multiple&&Array.isArray(this.value)){this.value=this.normalizeValueForMode(this.value)}const e=this.isDisabled;if(this.multiple){const s=this.resolvedValues;D(this.internals,this.name,s,{inactive:e})}else{const s=this.hasSelection?this.scalarValue:"";P(this.internals,s,{inactive:e})}const s=this.required&&!e&&!this.hasSelection;S(this.internals,s,this.requiredMessage);this.controller.optionsChanged()}onLoadingChange(){this.controller.loadingChanged()}onPopupAlignChange(){this.controller.positionChanged()}onOpenChange(e){this.dsOpenChange.emit(e);this.controller.openChanged(e)}onSearchTermChange(){this.controller.searchChanged()}onActiveIndexChange(){this.controller.activeIndexChanged()}formDisabledCallback(e){this.formDisabled=e;this.syncFormValue()}formResetCallback(){this.value=this.normalizeValueForMode(this.initialValue);this.closePopup()}formStateRestoreCallback(e){if(!this.multiple){this.value=R(e);return}this.value=E(e)}async setFocus(){this.controller.setFocus()}get isDisabled(){return this.disabled||this.isInactive||this.formDisabled}normalizeValueForMode(e){if(this.multiple){return Array.isArray(e)?[...e]:e?[e]:[]}return Array.isArray(e)?e[0]??"":e}get allSections(){return p(this.options,this.sections)}get allOptions(){return u(this.allSections)}get visibleSections(){return this.searchable?f(this.allSections,this.searchTerm):this.allSections}get visibleOptions(){return u(this.visibleSections)}get scalarValue(){return typeof this.value==="string"?this.value:""}get resolvedValues(){if(!this.multiple||!Array.isArray(this.value))return[];const e=new Set(this.allOptions.map((e=>e.value)));return[...new Set(this.value.filter((s=>e.has(s))))]}get selectedOption(){if(this.multiple)return undefined;return this.allOptions.find((e=>e.value===this.scalarValue))}get hasSelection(){return this.multiple?this.resolvedValues.length>0:Boolean(this.selectedOption)}get activeOptionId(){return this.controller.activeOptionId}get popupRole(){return this.allOptions.some((e=>Boolean(e.action)))?"grid":"listbox"}observeFooterContent(){const e=this.open&&this.multiple&&this.hasSelection?this.footerContentElement:undefined;if(!e?.isConnected){this.footerResizeObserver?.disconnect();this.observedFooterContentElement=undefined;return}if(this.observedFooterContentElement===e)return;this.footerResizeObserver?.disconnect();if(typeof ResizeObserver!=="undefined"){this.footerResizeObserver=new ResizeObserver((()=>this.scheduleFooterSummaryMeasurement()));this.footerResizeObserver.observe(e)}this.observedFooterContentElement=e}scheduleFooterSummaryMeasurement(){if(!this.open||!this.multiple||!this.hasSelection||this.footerMeasurementFrame!==undefined){return}this.footerMeasurementFrame=requestAnimationFrame((()=>{this.footerMeasurementFrame=undefined;this.measureFooterSummary()}))}measureFooterSummary(){const e=this.footerContentElement;const s=this.footerSummaryMeasureElement;const t=this.footerClearElement;if(!e?.isConnected||!s?.isConnected||!t?.isConnected)return;const i=getComputedStyle(e);const o=e.clientWidth-Number.parseFloat(i.paddingInlineStart||"0")-Number.parseFloat(i.paddingInlineEnd||"0");const r=s.getBoundingClientRect().width+t.getBoundingClientRect().width+Number.parseFloat(i.columnGap||"0");const n=r>o+.5;if(n!==this.compactFooterSummary){this.compactFooterSummary=n}}closePopup(e=false){this.controller.closePopup(e)}openPopup(e,s){this.controller.openPopup(e,s)}selectOption(e){if(e.isInactive||this.isLoading)return;if(this.multiple){const s=this.resolvedValues;const t=s.includes(e.value)?s.filter((s=>s!==e.value)):[...s,e.value];this.value=t;this.dsChange.emit([...t]);return}this.value=e.value;this.dsChange.emit(e.value);this.controller.closePopup(true)}renderOption(e,s,t,o){const r=this.multiple?this.resolvedValues.includes(e.value):e.value===this.scalarValue;const c=s===this.activeIndex;const d=`${this.generatedId}-option-action-${s}`;return i(n,{size:this.size,id:`${this.generatedId}-option-${s}`,option:e,selected:r,active:c,focusRingVisible:this.focusRingVisible,usesSubtext:o,actionOpen:e.action?.expanded,popupRole:this.popupRole,leading:this.multiple?i("span",{class:"ds-choice-item__icon ds-control-icon-box ds-interaction-fill__content","aria-hidden":"true"},i("ds-checkbox",{class:"select-option__checkbox",label:"",size:this.size,checked:r,presentation:true})):t&&e.icon?i("span",{class:"ds-choice-item__icon ds-control-icon-box ds-interaction-fill__content","aria-hidden":"true"},i("ds-icon",{name:e.icon,size:this.size,color:"inherit"})):undefined,supporting:e.subtextActions?.length?i("span",{class:"ds-choice-item__subtext ds-control-label-box select-option__subtext-actions"},e.subtextActions.map(((s,t)=>[t>0?i("ds-text",{class:"select-option__subtext-action-separator",as:"span",variant:q[this.size],color:"inherit","aria-hidden":"true"},"·"):null,i("button",{type:"button",class:{"select-option__subtext-action":true,"select-option__subtext-action--negative":s.tone==="negative","ds-text-action":true,"ds-focus-ring":true},onKeyDown:e=>e.stopPropagation(),onClick:t=>{t.preventDefault();t.stopPropagation();this.dsOptionSubtextAction.emit({value:e.value,actionValue:s.value,originalEvent:t})}},i("ds-text",{as:"span",variant:q[this.size],color:"inherit"},s.label))]))):undefined,action:e.action?i("ds-tooltip",{label:e.action.label,side:"left",size:"sm"},i("ds-button-unfilled",{id:d,variant:"icon",size:N[this.size],icon:"Ellipses",rounded:true,hasBorder:false,activeFill:false,ariaLabel:e.action.label,haspopup:"menu",controls:e.action.controls,expanded:e.action.expanded,onKeyDown:e=>{e.stopPropagation();if(e.key==="Escape"||e.key==="ArrowLeft"){e.preventDefault();this.controller.focusSearchOrTrigger()}},onDsClick:s=>{s.stopPropagation();this.dsOptionAction.emit({value:e.value,anchorId:d,originalEvent:s.detail})}})):undefined,onHover:()=>{this.focusRingVisible=false;this.activeIndex=s},onSelect:()=>this.selectOption(e)})}get captionIconOnly(){return this.collapseLabel&&this.captionCompact&&Boolean(this.icon||this.isLoading)}syncCaptionCompactObserver(){this.disconnectCaptionCompactObserver();if(!this.collapseLabel){if(this.captionCompact)this.captionCompact=false;return}this.captionCompactDisconnect=C(this.el,(e=>{if(this.captionCompact!==e)this.captionCompact=e}))}disconnectCaptionCompactObserver(){this.captionCompactDisconnect?.();this.captionCompactDisconnect=undefined}render(){const e=this.isDisabled;const s=!this.hasSelection;const t=this.resolvedValues.length;const r=this.multiple?`${this.placeholder}${t>0?` · ${t}`:""}`:s?this.placeholder:this.triggerLabel??this.selectedOption?.label;const n=B[this.size];const l=G[this.size];const h=!this.multiple&&v(this.allOptions);const g=m(this.allOptions);const p=this.error&&Boolean(this.errorMessage);const u=[this.ariaDescribedby,p?this.errorId:undefined].filter(Boolean).join(" ")||undefined;const f={position:"fixed",left:"0",top:"0",transform:`translate(${Math.round(this.position.x)}px, ${Math.round(this.position.y)}px)`,zIndex:"var(--dimension-z-index-floating)",visibility:this.positionReady?"visible":"hidden"};let x=0;return i(o,{key:"7cc5fd3b2c4f536aa0080abe9c3c54ce5163a5f1",class:{"select-host":true,"ds-select-trigger-host":true,"select-host--multiple":this.multiple,"ds-field-stack":true,"ds-control-inactive":e,[`ds-control--${this.size}`]:true,"ds-table-caption-control":this.collapseLabel,"ds-table-caption-control--compact":this.captionIconOnly,...H(this.width),[`select-host--background-${this.background}`]:!!this.background,[`ds-select-trigger-host--background-${this.background}`]:!!this.background}},i("button",{key:"fe9fab18a25fad442915e4cd4d2210aa6eaca125",ref:e=>{this.controller.setTriggerElement(e??null)},id:this.inputId??this.generatedId,type:"button",class:{trigger:true,"ds-control-frame":true,"ds-focus-ring-inset":true,"ds-interaction-fill":true,"ds-interaction-fill--selected":!e&&this.activeFill&&this.hasSelection,"trigger--expanded":!e&&this.open,"trigger--bordered":this.hasBorder,"trigger--placeholder":s&&!this.multiple,"trigger--has-value":this.hasSelection,"trigger--label-placeholder":!this.multiple&&Boolean(this.triggerLabel)&&this.triggerLabelPlaceholder,"wrapper--error":this.hasBorder&&this.error,[`ds-control--${this.size}`]:true,...b(this.background)},disabled:e,role:"combobox","aria-haspopup":this.popupRole,"aria-expanded":String(this.open),"aria-controls":this.open?this.listboxId:undefined,"aria-activedescendant":this.open&&!this.searchable?this.activeOptionId:undefined,"aria-label":this.ariaLabel??(this.captionIconOnly?r:undefined),"aria-labelledby":this.ariaLabelledby,"aria-describedby":u,"aria-invalid":this.error?"true":undefined,"aria-required":this.required||undefined,"aria-busy":this.isLoading?"true":undefined,onClick:()=>this.open?this.closePopup():this.openPopup(false),onKeyDown:e=>{const s=this.visibleOptions[this.activeIndex]?.action;if(this.open&&s&&(e.key==="ArrowRight"||e.key==="F10"&&e.shiftKey)){e.preventDefault();document.getElementById(`${this.generatedId}-option-action-${this.activeIndex}`)?.querySelector("button")?.focus();return}this.handleTriggerKeyDown(e)}},(this.icon||this.isLoading)&&i("span",{key:"fe62f45b65f9d16ff0fab32c899a0e6549cb6fbc",class:"trigger__prefix ds-control-icon-box ds-interaction-fill__content","aria-hidden":"true"},this.isLoading?i("ds-loader",{size:l,color:"inherit"}):i("ds-icon",{name:this.icon,size:l,color:"inherit"})),this.captionIconOnly?null:i("span",{class:{"trigger__label-box":true,"ds-interaction-fill__content":true}},i("span",{class:{"trigger__label-content":true,"ds-control-label-box":true,"ds-control-label-dot":this.dot,"trigger__label-content--dot":this.dot}},i("ds-text",{class:"trigger__label",as:"span",variant:n,color:"inherit",lineTruncation:1},r),this.dot&&i("ds-badge",{class:"trigger__dot ds-control-label-dot__badge",variant:"dot",hasRing:false,label:"","aria-hidden":"true"}))),this.captionIconOnly?null:i("span",{class:"trigger__chevron ds-control-icon-box ds-interaction-fill__content","aria-hidden":"true"},i("ds-icon",{name:this.indicator==="up-down"?"ChevronUpDown":"ChevronDown",size:l,color:"inherit"}))),this.open&&i("div",{key:"e3aa6784bfe95a9f9571949de4bcaebee46dd457",popover:"manual",ref:e=>{this.controller.setPopupElement(e??null)},class:"select-popup ds-choice-popup",style:f},this.searchable&&i(c,{key:"539c78268e908ec8ee4d625541a1727213e80a36",size:this.size,value:this.searchTerm,placeholder:this.searchPlaceholder,controls:this.listboxId,activeDescendant:this.activeOptionId,inputRef:this.controller.setSearchElement,clearLabel:this.clearLabel,onValueChange:e=>{this.searchTerm=e},onKeyDown:e=>this.handleListKeyDown(e)}),i("div",{key:"b6df65829658a61a25a481abdf55dbde58969703",id:this.listboxId,class:"ds-choice-list",role:this.popupRole,"aria-multiselectable":this.multiple?"true":undefined,"aria-label":this.ariaLabel??this.placeholder,"aria-busy":this.isLoading?"true":undefined},this.isLoading?i("div",{class:"ds-choice-loading ds-empty-region",role:this.popupRole==="grid"?"row":"option","aria-selected":"false","aria-disabled":"true","aria-label":this.loadingLabel,"aria-live":"polite"},this.popupRole==="grid"?i("span",{role:"gridcell"},i("ds-loader",{size:this.size,color:"inherit"})):i("ds-loader",{size:this.size,color:"inherit"})):this.visibleOptions.length===0?i("div",{class:"ds-choice-empty ds-empty-region",role:this.popupRole==="grid"?"row":"option","aria-selected":"false","aria-disabled":"true","aria-label":this.noResultsText,"aria-live":"polite"},this.popupRole==="grid"?i("span",{role:"gridcell"},i("ds-empty-state",{body:this.noResultsText})):i("ds-empty-state",{body:this.noResultsText})):this.visibleSections.map(((e,s)=>i("div",{class:{"ds-choice-section":true,"ds-chrome-column":true,"ds-chrome-space--sm":true,"ds-choice-section--divided":!!e.divider,"ds-choice-section--headed-after-first":s>0&&Boolean(e.header)},role:this.popupRole==="grid"?"rowgroup":e.header?"group":undefined,"aria-label":e.header},e.header&&this.popupRole==="grid"?i("ds-text",{class:`ds-choice-section__header ds-control-section-heading ds-control--${this.size}`,as:"span",variant:q[this.size],emphasis:true,color:"primary",role:"row"},i("span",{class:"ds-choice-section__header-label",role:"gridcell"},e.header)):e.header?i("ds-text",{class:`ds-choice-section__header ds-control-section-heading ds-control--${this.size}`,as:"span",variant:q[this.size],emphasis:true,color:"primary","aria-hidden":"true"},i("span",{class:"ds-choice-section__header-label"},e.header)):null,e.options.map((e=>this.renderOption(e,x++,h,g))))))),this.footerActionLabel&&!this.isLoading?i(d,{size:this.size,label:this.footerActionLabel,onAction:this.activateFooterAction}):this.allowClear&&this.hasSelection&&!this.isLoading?i(a,{size:this.size,summary:this.multiple?`${t} ${this.selectedLabel}`:undefined,compactSummary:this.multiple?String(t):undefined,useCompactSummary:this.compactFooterSummary,contentRef:e=>{this.footerContentElement=e??undefined},summaryMeasureRef:e=>{this.footerSummaryMeasureElement=e??undefined},clearRef:e=>{this.footerClearElement=e??undefined},clearLabel:this.clearLabel,onClear:this.clearSelection}):null),p&&i("ds-text",{key:"dffa38962ab3996fbbecf87eff32e201f58a86a9",class:"error-text",as:"div",variant:"text-body-small",color:"negative",textId:this.errorId,role:"alert"},this.errorMessage))}static get formAssociated(){return true}get el(){return this}static get watchers(){return{collapseLabel:[{onCollapseLabelChange:0}],value:[{syncFormValue:0}],multiple:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],required:[{syncFormValue:0}],name:[{syncFormValue:0}],options:[{syncFormValue:0}],sections:[{syncFormValue:0}],isLoading:[{onLoadingChange:0}],popupAlign:[{onPopupAlignChange:0}],open:[{onOpenChange:0}],searchTerm:[{onSearchTermChange:0}],activeIndex:[{onActiveIndexChange:0}]}}static get style(){return K()}},[66,"ds-select",{options:[16],sections:[16],multiple:[516],value:[1025],open:[1540],name:[513],disabled:[516],required:[516],requiredMessage:[1,"required-message"],placeholder:[1],triggerLabel:[1,"trigger-label"],triggerLabelPlaceholder:[4,"trigger-label-placeholder"],dot:[4],size:[1],width:[1],popupAlign:[1,"popup-align"],isInactive:[4,"is-inactive"],isLoading:[4,"is-loading"],activeFill:[4,"active-fill"],collapseLabel:[516,"collapse-label"],hasBorder:[4,"has-border"],icon:[1],indicator:[1],allowClear:[4,"allow-clear"],clearLabel:[1,"clear-label"],selectedLabel:[1,"selected-label"],footerActionLabel:[1,"footer-action-label"],searchable:[4],searchPlaceholder:[1,"search-placeholder"],noResultsText:[1,"no-results-text"],loadingLabel:[1,"loading-label"],background:[1],error:[4],errorMessage:[1,"error-message"],inputId:[1,"input-id"],ariaLabel:[1,"aria-label"],ariaLabelledby:[1,"aria-labelledby"],ariaDescribedby:[1,"aria-describedby"],activeIndex:[32],searchTerm:[32],formDisabled:[32],position:[32],positionReady:[32],focusRingVisible:[32],compactFooterSummary:[32],captionCompact:[32],setFocus:[64]},undefined,{collapseLabel:[{onCollapseLabelChange:0}],value:[{syncFormValue:0}],multiple:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],required:[{syncFormValue:0}],name:[{syncFormValue:0}],options:[{syncFormValue:0}],sections:[{syncFormValue:0}],isLoading:[{onLoadingChange:0}],popupAlign:[{onPopupAlignChange:0}],open:[{onOpenChange:0}],searchTerm:[{onSearchTermChange:0}],activeIndex:[{onActiveIndexChange:0}]}]);function J(){if(typeof customElements==="undefined"){return}const e=["ds-select","ds-badge","ds-button-unfilled","ds-checkbox","ds-empty-state","ds-icon","ds-loader","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-select":if(!customElements.get(r(e))){customElements.define(r(e),W)}break;case"ds-badge":if(!customElements.get(r(e))){A()}break;case"ds-button-unfilled":if(!customElements.get(r(e))){F()}break;case"ds-checkbox":if(!customElements.get(r(e))){T()}break;case"ds-empty-state":if(!customElements.get(r(e))){L()}break;case"ds-icon":if(!customElements.get(r(e))){j()}break;case"ds-loader":if(!customElements.get(r(e))){$()}break;case"ds-text":if(!customElements.get(r(e))){O()}break;case"ds-tooltip":if(!customElements.get(r(e))){V()}break}}))}J();export{W as S,J as d};
2
- //# sourceMappingURL=p-CKmfuK7k.js.map
@@ -1 +0,0 @@
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","option","selectOption","closePopup","position","AnchoredPositionController","getAnchor","getPopup","measure","trigger","popup","isConnected","host","contains","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","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","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","width","isInactive","activeFill","collapseLabel","hasBorder","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","expanded","leading","class","label","checked","presentation","icon","color","supporting","subtextActions","actionIndex","as","variant","CONTROL_SUPPORTING_TEXT_VARIANT","type","tone","onKeyDown","onClick","dsOptionSubtextAction","actionValue","originalEvent","rounded","haspopup","controls","onDsClick","dsOptionAction","anchorId","detail","onHover","onSelect","captionIconOnly","captionCompactDisconnect","observeTableCaptionCompact","compact","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","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';\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 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: HTMLInputElement | 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 };\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: HTMLInputElement | 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) this.searchEl?.focus();\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 this.state.searchable ? this.searchEl?.focus() : 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 (event.key === ' ' && this.state.searchable && event.target === this.searchEl) 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 (this.state.host.contains(event.target as Node)) 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/choice-list.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 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 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';\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 /** 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 /** 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 @Prop() activeFill: boolean = true;\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 /** Show the surface-aware inset border, including focused and invalid strokes. */\n @Prop() hasBorder: boolean = true;\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 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 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?.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 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 this.collapseLabel && this.captionCompact && Boolean(this.icon || this.isLoading);\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 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-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 <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 'trigger--bordered': this.hasBorder,\n 'trigger--placeholder': showPlaceholder && !this.multiple,\n 'trigger--has-value': this.hasSelection,\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 ...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 ? 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\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 +0,0 @@
1
- import{p as t,H as i,h as o,a as s,t as n}from"./index.js";import{A as e}from"./p-BBxcMVqk.js";import{d as r}from"./p-BGXqFq2C.js";import{a as d,T as a,r as l,b as c}from"./p-DFQ9mcbK.js";import{r as h}from"./p-BMc0DE59.js";import{C as p}from"./p-CuwopElg.js";const u=new Set(["⌘","⇧","⌥","⌃"]);const m={alt:"⌥",cmd:"⌘",command:"⌘",control:"⌃",ctrl:"⌃",option:"⌥",shift:"⇧"};function f(t){return m[t.toLowerCase()]??t}function g(t){const i=t.trim();if(!i)return[];if(i.includes("+")){return i.split("+").map((t=>t.trim())).filter(Boolean).map(f)}if(/\s/.test(i)){return i.split(/\s+/).filter(Boolean).map(f)}const o=Array.from(i);const s=[];while(o.length>1&&u.has(o[0])){s.push(o.shift())}s.push(o.join(""));return s}const v=()=>`.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(--dimension-radius-025)}.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(--dimension-radius-025)}.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-control-radius, 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:normal}@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 y={md:a.size400,sm:a.size300,xs:a.size200};let b=0;let x=0;let w=null;function C(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 k(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?"normal":"";t.style.padding="0 var(--ds-control-label-inset, var(--dimension-space-025))";t.style.color="var(--color-foreground-primary)"}const O=t(class t extends i{constructor(t){super();if(t!==false){this.__registerHost()}this.size="md";this.side="top";this.align="center";this.sideOffset=d.space050;this.alignOffset=0;this.delay=a.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,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}),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(w===this)w=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 h(a.space050,a.space050)}get sideOffsetPx(){return h(this.sideOffset,a.space050)}get alignOffsetPx(){return h(this.alignOffset,0)}get hoverDelayMs(){return l(this.delay,a.animationDelayMedium3)}get instantReopenMs(){return l(a.animationDurationMedium1,a.animationDurationMedium1)}get fadeOutMs(){return c(a.motionShort3,a.animationDurationShort3)}get tooltipFallbackWidthPx(){return h(a.tooltipFallbackWidth,a.tooltipFallbackWidth)}get tooltipFallbackHeightPx(){const t=y[this.size];return h(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)k(t,this.wrapLabel)};requestAnimationFrame((()=>{t();this.position.update();requestAnimationFrame((()=>{t();this.position.update()}))}));this.position.observeResizeTargets()}hideInstant(){this.clearTimers();b=Date.now();if(w===this)w=null;this.destroyPopup();this.isOpen=false;this.skipEnterAnimation=false}show(){if(!this.label?.trim())return;this.clearTimers();let t=Date.now()-b<this.instantReopenMs;if(w&&w!==this){w.hideInstant();t=true}w=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;b=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(w===this)w=null;this.destroyPopup();this.isOpen=false;this.skipEnterAnimation=false;return}this.closeTimer=setTimeout((()=>{this.closeTimer=null;if(w===this)w=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=p[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 g(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=C({variant:t,wrap:this.wrapLabel?"wrap":"nowrap",text:this.label});k(e,this.wrapLabel);s.appendChild(e);n("end");this.popupEl.replaceChildren(s)}render(){return o(s,{key:"bc7809bbc2e91ec76e3a9c92aef41311ff38bd40",style:{display:"contents"}},o("slot",{key:"7e5a323a8f0f6d3b51d46b3802ed0cd86d5333f0",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}],shortcutKey:[{onContentOrPositionChange:0}],shortcutKeyPosition:[{onContentOrPositionChange:0}],wrapLabel:[{onContentOrPositionChange:0}]}}static get style(){return v()}},[262,"ds-tooltip",{label:[1],size:[1],side:[1],align:[1],sideOffset:[8,"side-offset"],alignOffset:[8,"align-offset"],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}],shortcutKey:[{onContentOrPositionChange:0}],shortcutKeyPosition:[{onContentOrPositionChange:0}],wrapLabel:[{onContentOrPositionChange:0}]}]);function P(){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),O)}break;case"ds-text":if(!customElements.get(n(t))){r()}break}}))}P();export{O as T,P as d};
2
- //# sourceMappingURL=p-D4K9CE8a.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["MODIFIER_GLYPHS","Set","MODIFIER_LABELS","alt","cmd","command","control","ctrl","option","shift","canonicalKeyLabel","label","toLowerCase","shortcutKeyLabels","shortcut","normalized","trim","includes","split","map","part","filter","Boolean","test","characters","Array","from","labels","length","has","push","join","tooltipCss","FALLBACK_HEIGHT","md","TOKEN_DEFAULTS","size400","sm","size300","xs","size200","lastDismissedAt","tooltipIdCounter","activeTooltip","createDsText","opts","el","document","createElement","as","variant","emphasis","color","wrap","textContent","text","styleTooltipLabel","wrapLabel","style","flexShrink","minWidth","maxWidth","whiteSpace","padding","Tooltip","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","size","side","align","sideOffset","TOKEN_CSS_LENGTHS","space050","alignOffset","delay","animationDelayMedium3","shortcutKeyPosition","describedBy","tooltipId","delayTimer","closeTimer","anchor","popupEl","anchorObserver","didLoad","position","AnchoredPositionController","getAnchor","getPopup","measure","tip","anchorRect","getBoundingClientRect","popupWidth","offsetWidth","tooltipFallbackWidthPx","popupHeight","offsetHeight","tooltipFallbackHeightPx","sideOffsetPx","alignOffsetPx","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","apply","x","y","resolvedSide","dataset","transform","Math","round","liveUpdate","observeResize","skipEnterAnimation","isOpen","programmaticAnchor","lastInteractionWasKeyboard","pointerEnterHandler","event","pointerType","show","pointerLeaveHandler","hide","pointerDownHandler","hideInstant","keyDownHandler","focusHandler","matches","blurHandler","e","next","relatedTarget","contains","escapeHandler","key","preventDefault","handleSlotChange","slot","querySelector","assignedElements","firstElementChild","tagName","unbindAnchor","bindAnchor","connectedCallback","connectAnchor","componentDidLoad","MutationObserver","observe","childList","disconnectedCallback","disconnect","clearTimers","destroyPopup","onContentOrPositionChange","renderPopupContent","schedulePosition","resolveCssLengthPx","hoverDelayMs","resolveCssTimeMs","instantReopenMs","animationDurationMedium1","fadeOutMs","resolveMotionTimeMs","motionShort3","animationDurationShort3","tooltipFallbackWidth","token","presentFrom","sameAnchor","linkDescribedBy","dismiss","slotted","child","addEventListener","unlinkDescribedBy","removeEventListener","ids","getAttribute","add","setAttribute","id","removeAttribute","clearTimeout","setupOpenListeners","teardownOpenListeners","unobserve","remove","reapplyLabelStyles","requestAnimationFrame","update","observeResizeTargets","Date","now","instant","mountPopup","setTimeout","classList","className","Object","assign","left","top","zIndex","pointerEvents","body","appendChild","toggle","textVariant","CONTROL_TEXT_VARIANT","density","sc","inner","appendShortcut","shortcutKey","group","hint","wide","replaceChildren","render","h","Host","display","onSlotchange"],"sources":["src/wc/utils/shortcut-key.ts","src/wc/components/Tooltip/Tooltip.css?tag=ds-tooltip&encapsulation=scoped","src/wc/components/Tooltip/Tooltip.tsx"],"sourcesContent":["const MODIFIER_GLYPHS = new Set(['⌘', '⇧', '⌥', '⌃']);\nconst MODIFIER_LABELS: Readonly<Record<string, string>> = {\n alt: '⌥',\n cmd: '⌘',\n command: '⌘',\n control: '⌃',\n ctrl: '⌃',\n option: '⌥',\n shift: '⇧',\n};\n\nfunction canonicalKeyLabel(label: string): string {\n return MODIFIER_LABELS[label.toLowerCase()] ?? label;\n}\n\n/** Split a shortcut chord into the labels rendered on individual keycaps. */\nexport function shortcutKeyLabels(shortcut: string): string[] {\n const normalized = shortcut.trim();\n if (!normalized) return [];\n\n if (normalized.includes('+')) {\n return normalized.split('+').map(part => part.trim()).filter(Boolean).map(canonicalKeyLabel);\n }\n\n if (/\\s/.test(normalized)) {\n return normalized.split(/\\s+/).filter(Boolean).map(canonicalKeyLabel);\n }\n\n const characters = Array.from(normalized);\n const labels: string[] = [];\n while (characters.length > 1 && MODIFIER_GLYPHS.has(characters[0])) {\n labels.push(characters.shift()!);\n }\n labels.push(characters.join(''));\n return labels;\n}\n","@import '../../utils/control-density.css';\n@import '../../utils/key-hint.css';\n@import '../../utils/forced-colors.css';\n\n.tooltip-popup {\n box-sizing: border-box;\n background-color: var(--color-background-primary);\n border-radius: var(--ds-control-radius, var(--dimension-radius-025));\n box-shadow: var(--effect-elevation-elevated-floating);\n white-space: nowrap;\n pointer-events: none;\n animation: tooltipFadeIn var(--effect-motion-short-2) forwards;\n will-change: transform;\n backface-visibility: hidden;\n}\n\n/* Warm handoff between nearby triggers — no enter fade (avoids 20–100ms lag). */\n.tooltip-popup--instant {\n animation: none;\n opacity: 1;\n}\n\n.tooltip-popup--closing {\n animation: tooltipFadeOut var(--effect-motion-short-3) forwards;\n}\n\n/* Density: md / sm / xs via `.ds-control--*` on `.tooltip-inner`. */\n.tooltip-inner {\n box-sizing: border-box;\n height: var(--ds-control-height, var(--dimension-size-400));\n display: flex;\n align-items: center;\n gap: var(--ds-control-gap, var(--dimension-space-050));\n padding: 0 var(--ds-control-padding-inline, var(--dimension-space-075));\n}\n\n/*\n * Label layout lives on ds-text (metric-box + control label-inset).\n * NOTE: Stencil scopes this to `ds-text.sc-ds-tooltip`, but portaled\n * createElement ds-text loses that class when Text's <Host class> renders.\n * `renderPopupContent` therefore also sets these as inline styles.\n */\n.tooltip-inner > ds-text {\n flex-shrink: 0;\n min-width: max-content;\n max-width: none;\n padding: 0 var(--ds-control-label-inset, var(--dimension-space-025));\n color: var(--color-foreground-primary);\n}\n\n.tooltip-popup--wrap {\n white-space: normal;\n max-inline-size: var(--dimension-panel-width-xs);\n}\n\n.tooltip-popup--wrap .tooltip-inner {\n height: auto;\n min-height: var(--ds-control-height, var(--dimension-size-400));\n padding-block: var(--dimension-space-050);\n align-items: flex-start;\n}\n\n.tooltip-popup--wrap .tooltip-inner > ds-text {\n flex: 1 1 auto;\n min-width: 0;\n max-width: 100%;\n white-space: normal;\n}\n\n@keyframes tooltipFadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes tooltipFadeOut {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .tooltip-popup,\n .tooltip-popup--instant {\n animation: none;\n opacity: 1;\n }\n\n .tooltip-popup--closing {\n animation: none;\n opacity: 0;\n }\n}\n\n@media (forced-colors: active) {\n .tooltip-popup {\n box-shadow: none;\n outline: var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);\n outline-offset: calc(-1 * var(--dimension-stroke-width-012));\n }\n}\n","import { Component, Prop, Element, Method, Watch, h, Host } from '@stencil/core';\nimport {\n CONTROL_TEXT_VARIANT,\n resolveCssLengthPx,\n resolveCssTimeMs,\n resolveMotionTimeMs,\n TOKEN_CSS_LENGTHS,\n TOKEN_DEFAULTS,\n} from '../../utils';\nimport type { TextVariant } from '../Text/text-types';\nimport { shortcutKeyLabels } from '../../utils/shortcut-key';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\n// Side-effect: register `ds-text` — the portal builds it via createElement, not JSX.\nimport '../Text/Text';\n\nexport type TooltipSide = 'top' | 'right' | 'bottom' | 'left';\nexport type TooltipAlign = 'start' | 'center' | 'end';\nexport type TooltipSize = 'md' | 'sm' | 'xs';\n\nconst FALLBACK_HEIGHT: Record<TooltipSize, string> = {\n md: TOKEN_DEFAULTS.size400,\n sm: TOKEN_DEFAULTS.size300,\n xs: TOKEN_DEFAULTS.size200,\n};\n\nlet lastDismissedAt = 0;\nlet tooltipIdCounter = 0;\n/** Currently open tooltip — force-cleared on warm handoff so tips don't cross-fade. */\nlet activeTooltip: Tooltip | null = null;\n\ntype DsTextEl = HTMLElement & {\n as: string;\n variant: TextVariant;\n emphasis: boolean;\n color: string;\n wrap: string;\n};\n\nfunction createDsText(opts: {\n variant: TextVariant;\n emphasis?: boolean;\n color?: string;\n wrap?: 'wrap' | 'nowrap' | 'balance' | 'pretty';\n text: string;\n}): DsTextEl {\n const el = document.createElement('ds-text') as DsTextEl;\n el.as = 'span';\n el.variant = opts.variant;\n el.emphasis = opts.emphasis ?? false;\n el.color = opts.color ?? 'inherit';\n if (opts.wrap) el.wrap = opts.wrap;\n el.textContent = opts.text;\n return el;\n}\n\n/**\n * Control-density label styles for portaled ds-text.\n * Scoped CSS requires `sc-ds-tooltip` on the host, but Text's `<Host class>`\n * overwrites imperative className — so these must be inline to stick.\n */\nfunction styleTooltipLabel(el: HTMLElement, wrapLabel = false) {\n el.style.flexShrink = wrapLabel ? '1' : '0';\n el.style.minWidth = wrapLabel ? '0' : 'max-content';\n el.style.maxWidth = wrapLabel ? '100%' : 'none';\n el.style.whiteSpace = wrapLabel ? 'normal' : '';\n el.style.padding = '0 var(--ds-control-label-inset, var(--dimension-space-025))';\n el.style.color = 'var(--color-foreground-primary)';\n}\n\n/**\n * Imperative body portal for the popup.\n * Stencil must not own the portaled node — moving a VDOM child to `document.body`\n * causes recreate → re-portal → @State loops that freeze the page.\n */\n@Component({\n tag: 'ds-tooltip',\n styleUrl: 'Tooltip.css',\n scoped: true,\n})\nexport class Tooltip {\n @Element() el!: HTMLElement;\n\n /**\n * Tooltip text. Empty/whitespace skips show — useful when the wrapper must stay\n * mounted for layout/animation stability (e.g. PanelNav expand/collapse).\n */\n @Prop() label!: string;\n\n /** Control density (height, padding, type). */\n @Prop() size: TooltipSize = 'md';\n\n @Prop() side: TooltipSide = 'top';\n @Prop() align: TooltipAlign = 'center';\n /** Gap between anchor and tooltip — number (px) or TokoMo length. */\n @Prop() sideOffset: number | string = TOKEN_CSS_LENGTHS.space050;\n /** Cross-axis offset — number (px) or TokoMo length. */\n @Prop() alignOffset: number | string = 0;\n /**\n * Hover show delay before the tooltip appears.\n * Default: `--effect-animation-delay-medium-3` (1000ms). Accepts a number (ms)\n * or a TokoMo time token / `var(--effect-animation-delay-*)`. Applies to the\n * initial hover/focus show only — after a recent dismiss, reopen is instant.\n * Prefer the default; override only for denser chrome or rare/destructive actions.\n */\n @Prop() delay: number | string = TOKEN_DEFAULTS.animationDelayMedium3;\n @Prop() shortcutKey: string | undefined;\n @Prop() shortcutKeyPosition: 'start' | 'end' = 'end';\n /**\n * Link the trigger with aria-describedby while the popup is open. Disable when\n * the label is already in the DOM, such as a truncated table cell.\n */\n @Prop() describedBy = true;\n /** Allow the label to wrap at a panel-xs max width instead of a single line. */\n @Prop() wrapLabel = false;\n\n private tooltipId = `ds-tooltip-${++tooltipIdCounter}`;\n private delayTimer: ReturnType<typeof setTimeout> | null = null;\n private closeTimer: ReturnType<typeof setTimeout> | null = null;\n private anchor: HTMLElement | null = null;\n private popupEl: HTMLElement | null = null;\n private anchorObserver: MutationObserver | null = null;\n private didLoad = false;\n private readonly position = new AnchoredPositionController({\n getAnchor: () => this.anchor,\n getPopup: () => this.popupEl,\n measure: (anchor, tip) => ({\n anchorRect: anchor.getBoundingClientRect(),\n // Fall back to token metrics until `ds-text` upgrades and reports a width.\n popupWidth: tip.offsetWidth || this.tooltipFallbackWidthPx,\n popupHeight: tip.offsetHeight || this.tooltipFallbackHeightPx,\n side: this.side,\n align: this.align,\n sideOffsetPx: this.sideOffsetPx,\n alignOffsetPx: this.alignOffsetPx,\n viewportPadPx: this.viewportPadPx,\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n }),\n apply: ({ x, y, resolvedSide }) => {\n if (!this.popupEl) return;\n this.popupEl.dataset.side = resolvedSide;\n this.popupEl.style.transform = `translate(${Math.round(x)}px, ${Math.round(y)}px)`;\n },\n liveUpdate: 'frame',\n observeResize: true,\n });\n private skipEnterAnimation = false;\n private isOpen = false;\n private programmaticAnchor = false;\n private lastInteractionWasKeyboard = false;\n private pointerEnterHandler = (event: PointerEvent) => {\n if (event.pointerType === 'touch') return;\n this.show();\n };\n private pointerLeaveHandler = (event: PointerEvent) => {\n if (event.pointerType === 'touch') return;\n this.hide();\n };\n private pointerDownHandler = (event: PointerEvent) => {\n this.lastInteractionWasKeyboard = false;\n if (event.pointerType === 'touch' && (this.isOpen || this.popupEl)) this.hideInstant();\n };\n private keyDownHandler = () => {\n this.lastInteractionWasKeyboard = true;\n };\n /** focusin/focusout so nested focus targets (e.g. ds-button-* inner button) still open the tip. */\n private focusHandler = () => {\n if (this.lastInteractionWasKeyboard || this.anchor?.matches(':focus-visible')) this.show();\n };\n private blurHandler: (e: FocusEvent) => void = (e) => {\n const next = e.relatedTarget as Node | null;\n if (next && this.anchor?.contains(next)) return;\n this.hide();\n };\n private escapeHandler = (event: KeyboardEvent) => {\n if (event.key !== 'Escape' || !this.isOpen) return;\n event.preventDefault();\n this.hide();\n };\n\n connectedCallback() {\n if (!this.didLoad) return;\n this.connectAnchor();\n }\n\n componentDidLoad() {\n this.didLoad = true;\n this.connectAnchor();\n }\n\n private connectAnchor() {\n this.bindAnchor();\n if (this.anchorObserver) return;\n this.anchorObserver = new MutationObserver(() => this.handleSlotChange());\n this.anchorObserver.observe(this.el, { childList: true });\n }\n\n disconnectedCallback() {\n if (activeTooltip === this) activeTooltip = null;\n this.anchorObserver?.disconnect();\n this.anchorObserver = null;\n this.unbindAnchor();\n this.clearTimers();\n this.destroyPopup();\n }\n\n @Watch('label')\n @Watch('size')\n @Watch('side')\n @Watch('align')\n @Watch('sideOffset')\n @Watch('alignOffset')\n @Watch('shortcutKey')\n @Watch('shortcutKeyPosition')\n @Watch('wrapLabel')\n onContentOrPositionChange() {\n if (!this.label?.trim()) {\n if (this.isOpen || this.popupEl) this.hideInstant();\n return;\n }\n if (!this.popupEl || !this.isOpen) return;\n this.renderPopupContent();\n this.schedulePosition();\n }\n\n private get viewportPadPx(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n }\n\n private get sideOffsetPx(): number {\n return resolveCssLengthPx(this.sideOffset, TOKEN_DEFAULTS.space050);\n }\n\n private get alignOffsetPx(): number {\n return resolveCssLengthPx(this.alignOffset, 0);\n }\n\n private get hoverDelayMs(): number {\n return resolveCssTimeMs(this.delay, TOKEN_DEFAULTS.animationDelayMedium3);\n }\n\n private get instantReopenMs(): number {\n return resolveCssTimeMs(\n TOKEN_DEFAULTS.animationDurationMedium1,\n TOKEN_DEFAULTS.animationDurationMedium1,\n );\n }\n\n private get fadeOutMs(): number {\n return resolveMotionTimeMs(TOKEN_DEFAULTS.motionShort3, TOKEN_DEFAULTS.animationDurationShort3);\n }\n\n private get tooltipFallbackWidthPx(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.tooltipFallbackWidth, TOKEN_DEFAULTS.tooltipFallbackWidth);\n }\n\n private get tooltipFallbackHeightPx(): number {\n const token = FALLBACK_HEIGHT[this.size];\n return resolveCssLengthPx(token, token);\n }\n\n /**\n * Present against an external anchor the host already measured.\n * Does not bind hover or focus on that anchor — the owner drives show/hide.\n */\n @Method()\n async presentFrom(anchor: HTMLElement, label?: string) {\n if (label != null) this.label = label;\n if (!this.label?.trim()) {\n this.hide();\n return;\n }\n const sameAnchor = this.anchor === anchor;\n if (!sameAnchor) {\n this.unbindAnchor();\n this.anchor = anchor;\n this.programmaticAnchor = true;\n if (this.popupEl && this.describedBy) this.linkDescribedBy();\n }\n if (this.popupEl) {\n this.renderPopupContent();\n this.schedulePosition();\n return;\n }\n if (this.delayTimer && sameAnchor) return;\n this.show();\n }\n\n /** Dismiss a popup opened through presentFrom or the slotted trigger. */\n @Method()\n async dismiss() {\n this.hide();\n }\n\n private bindAnchor() {\n if (this.programmaticAnchor) return;\n const slot = this.el.querySelector('slot') as HTMLSlotElement | null;\n const slotted = slot?.assignedElements?.() ?? [];\n const child = (slotted[0] ?? this.el.firstElementChild) as HTMLElement | null;\n if (!child || child.tagName === 'SLOT' || child === this.anchor) return;\n this.anchor = child;\n child.addEventListener('pointerenter', this.pointerEnterHandler);\n child.addEventListener('pointerleave', this.pointerLeaveHandler);\n child.addEventListener('pointerdown', this.pointerDownHandler);\n child.addEventListener('keydown', this.keyDownHandler);\n child.addEventListener('focusin', this.focusHandler);\n child.addEventListener('focusout', this.blurHandler);\n }\n\n private unbindAnchor() {\n if (!this.anchor) return;\n this.unlinkDescribedBy();\n if (!this.programmaticAnchor) {\n this.anchor.removeEventListener('pointerenter', this.pointerEnterHandler);\n this.anchor.removeEventListener('pointerleave', this.pointerLeaveHandler);\n this.anchor.removeEventListener('pointerdown', this.pointerDownHandler);\n this.anchor.removeEventListener('keydown', this.keyDownHandler);\n this.anchor.removeEventListener('focusin', this.focusHandler);\n this.anchor.removeEventListener('focusout', this.blurHandler);\n }\n this.anchor = null;\n this.programmaticAnchor = false;\n }\n\n private linkDescribedBy() {\n if (!this.describedBy || !this.anchor || !this.popupEl) return;\n const ids = new Set((this.anchor.getAttribute('aria-describedby') ?? '').split(/\\s+/).filter(Boolean));\n ids.add(this.tooltipId);\n this.anchor.setAttribute('aria-describedby', Array.from(ids).join(' '));\n }\n\n private unlinkDescribedBy() {\n if (!this.anchor) return;\n const ids = (this.anchor.getAttribute('aria-describedby') ?? '')\n .split(/\\s+/)\n .filter(id => id && id !== this.tooltipId);\n if (ids.length) this.anchor.setAttribute('aria-describedby', ids.join(' '));\n else this.anchor.removeAttribute('aria-describedby');\n }\n\n private handleSlotChange = () => {\n if (this.programmaticAnchor) return;\n const slot = this.el.querySelector('slot') as HTMLSlotElement | null;\n const next = (slot?.assignedElements?.()[0] ?? this.el.firstElementChild) as HTMLElement | null;\n if (next === this.anchor || next?.tagName === 'SLOT') return;\n if (this.isOpen || this.popupEl) this.hideInstant();\n this.unbindAnchor();\n this.bindAnchor();\n };\n\n private clearTimers() {\n if (this.delayTimer) { clearTimeout(this.delayTimer); this.delayTimer = null; }\n if (this.closeTimer) { clearTimeout(this.closeTimer); this.closeTimer = null; }\n }\n\n private setupOpenListeners() {\n // Binds scroll/resize + the resize observer; placement itself is scheduled\n // by schedulePosition() so the label restyle stays interleaved.\n this.position.observe();\n document.addEventListener('keydown', this.escapeHandler);\n }\n\n private teardownOpenListeners() {\n this.position.unobserve();\n document.removeEventListener('keydown', this.escapeHandler);\n }\n\n private destroyPopup() {\n this.teardownOpenListeners();\n this.unlinkDescribedBy();\n if (!this.popupEl) return;\n this.popupEl.remove();\n this.popupEl = null;\n }\n\n /**\n * Position after `ds-text` upgrades and lays out. Measuring synchronously in\n * `mountPopup` reads a collapsed/fallback width and places left/right tips wrong.\n */\n private schedulePosition() {\n if (!this.popupEl) return;\n\n const reapplyLabelStyles = () => {\n const label = this.popupEl?.querySelector(':scope > .tooltip-inner > ds-text');\n if (label instanceof HTMLElement) styleTooltipLabel(label, this.wrapLabel);\n };\n\n requestAnimationFrame(() => {\n reapplyLabelStyles();\n this.position.update();\n requestAnimationFrame(() => {\n reapplyLabelStyles();\n this.position.update();\n });\n });\n\n // The popup remounts on every show, so re-target the observer bound in start().\n this.position.observeResizeTargets();\n }\n\n /** Drop the open tip immediately (warm handoff to another tooltip). */\n private hideInstant() {\n this.clearTimers();\n lastDismissedAt = Date.now();\n if (activeTooltip === this) activeTooltip = null;\n this.destroyPopup();\n this.isOpen = false;\n this.skipEnterAnimation = false;\n }\n\n private show() {\n // Empty label = wrapper present for DOM stability (e.g. PanelNav expand/collapse)\n // but no tip should appear.\n if (!this.label?.trim()) return;\n this.clearTimers();\n let instant = Date.now() - lastDismissedAt < this.instantReopenMs;\n if (activeTooltip && activeTooltip !== this) {\n activeTooltip.hideInstant();\n instant = true;\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias -- module singleton tracks the active instance\n activeTooltip = this;\n this.skipEnterAnimation = instant;\n if (instant) {\n this.mountPopup();\n return;\n }\n this.delayTimer = setTimeout(() => {\n this.delayTimer = null;\n if (!this.label?.trim()) return;\n this.mountPopup();\n }, this.hoverDelayMs);\n }\n\n private hide() {\n this.clearTimers();\n if (!this.popupEl && !this.isOpen) return;\n lastDismissedAt = Date.now();\n if (!this.popupEl) {\n this.isOpen = false;\n return;\n }\n this.popupEl.classList.remove('tooltip-popup--instant');\n this.popupEl.classList.add('tooltip-popup--closing');\n if (this.fadeOutMs === 0) {\n if (activeTooltip === this) activeTooltip = null;\n this.destroyPopup();\n this.isOpen = false;\n this.skipEnterAnimation = false;\n return;\n }\n this.closeTimer = setTimeout(() => {\n this.closeTimer = null;\n if (activeTooltip === this) activeTooltip = null;\n this.destroyPopup();\n this.isOpen = false;\n this.skipEnterAnimation = false;\n }, this.fadeOutMs);\n }\n\n private mountPopup() {\n if (!this.popupEl) {\n const tip = document.createElement('div');\n tip.id = this.tooltipId;\n tip.setAttribute('role', 'tooltip');\n // `sc-ds-tooltip` is required for Stencil scoped CSS to match outside the host.\n tip.className = 'tooltip-popup ds-forced-colors-scope sc-ds-tooltip';\n Object.assign(tip.style, {\n position: 'fixed',\n left: '0',\n top: '0',\n zIndex: 'var(--dimension-z-index-tooltip)',\n pointerEvents: 'none',\n });\n document.body.appendChild(tip);\n this.popupEl = tip;\n }\n\n this.setupOpenListeners();\n this.linkDescribedBy();\n this.popupEl.classList.toggle('tooltip-popup--instant', this.skipEnterAnimation);\n this.popupEl.classList.toggle('tooltip-popup--wrap', this.wrapLabel);\n this.popupEl.classList.remove('tooltip-popup--closing');\n this.renderPopupContent();\n this.schedulePosition();\n this.isOpen = true;\n }\n\n private renderPopupContent() {\n if (!this.popupEl) return;\n this.popupEl.classList.toggle('tooltip-popup--wrap', this.wrapLabel);\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const density =\n this.size === 'md' ? 'ds-control--md' : this.size === 'sm' ? 'ds-control--sm' : 'ds-control--xs';\n // Every layout node needs `sc-ds-tooltip` so scoped selectors (`.foo.sc-ds-tooltip`) match.\n const sc = 'sc-ds-tooltip';\n\n const inner = document.createElement('div');\n inner.className = `tooltip-inner ${density} ${sc}`;\n\n const appendShortcut = (position: 'start' | 'end') => {\n if (!this.shortcutKey || this.shortcutKeyPosition !== position) return;\n const group = document.createElement('span');\n group.className = `key-hint-group ${sc}`;\n group.setAttribute('aria-hidden', 'true');\n\n for (const label of shortcutKeyLabels(this.shortcutKey)) {\n const hint = document.createElement('span');\n const wide = Array.from(label).length > 1 ? ' key-hint--wide' : '';\n hint.className = `key-hint${wide} ${sc}`;\n const text = document.createElement('span');\n text.className = `key-hint__label ${sc}`;\n text.textContent = label;\n hint.appendChild(text);\n group.appendChild(hint);\n }\n inner.appendChild(group);\n };\n\n appendShortcut('start');\n\n // ds-text is the layout box (metric-box + 2px control label-inset).\n // Inline styles required — see styleTooltipLabel.\n const label = createDsText({\n variant: textVariant,\n wrap: this.wrapLabel ? 'wrap' : 'nowrap',\n text: this.label,\n });\n styleTooltipLabel(label, this.wrapLabel);\n inner.appendChild(label);\n\n appendShortcut('end');\n\n this.popupEl.replaceChildren(inner);\n }\n\n render() {\n return (\n <Host style={{ display: 'contents' }}>\n <slot onSlotchange={this.handleSlotChange} />\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{p as e,H as o,h as s,a as t,t as a}from"./index.js";import{C as d}from"./p-BnhGV__o.js";import{d as i}from"./p-a6qP60zb.js";import{d as c}from"./p-NzGRAPcF.js";import{d as n}from"./p-BFfLvMZd.js";import{d as r}from"./p-JPTkZ3Ji.js";import{d as l}from"./p-BGXqFq2C.js";import{d as b}from"./p-D4K9CE8a.js";const f=()=>`.sc-ds-code-block-h{display:block;width:100%;min-width:0;box-sizing:border-box;-webkit-user-select:none;user-select:none}.code-block.sc-ds-code-block{width:100%;min-width:0;margin:0;overflow:hidden;border-radius:var(--dimension-radius-050);background:var(--color-background-strong-neutral);color:var(--color-foreground-faint-neutral);box-sizing:border-box}.code-block__header.sc-ds-code-block{display:flex;align-items:center;justify-content:space-between;gap:var(--dimension-space-100);min-height:var(--dimension-size-400);padding:var(--dimension-space-050) var(--dimension-space-100);background:var(--color-background-strong-neutral);box-sizing:border-box}pre.sc-ds-code-block{margin:0;padding:var(--dimension-space-150);overflow:auto;font-family:var( --typography-font-family-code, 'Fira Code', ui-monospace, 'SFMono-Regular', 'Cascadia Code', 'Roboto Mono', Menlo, Monaco, Consolas, 'Liberation Mono', monospace );font-size:var(--typography-fontsize-sm);font-variant-ligatures:var(--ds-code-font-variant-ligatures, normal);font-weight:var(--typography-weight-regular);line-height:var(--typography-lineheight-sm);letter-spacing:var(--typography-letterspacing-none);tab-size:2;-webkit-user-select:text;user-select:text}code.sc-ds-code-block{font:inherit;white-space:pre}`;const p=e(class e extends o{constructor(e){super();if(e!==false){this.__registerHost()}this.code="";this.language="";this.filename="";this.copied=false;this.copyFeedback=new d((e=>{this.copied=e}));this.copy=async()=>{await this.copyFeedback.copy(this.code)}}connectedCallback(){this.copyFeedback.connect()}handleCodeChange(){this.copyFeedback.reset()}disconnectedCallback(){this.copyFeedback.disconnect()}render(){const e=this.filename||this.language||"Code";return s(t,{key:"8cedcb0055a076bf0f017504ca4ee7eb1c2d8829"},s("figure",{key:"605fd2c5efc9020b071184dbca5fcdfe36b67dde",class:"code-block"},s("figcaption",{key:"109a9ae0f981fc9dd06884d0f44c068a72559b04",class:"code-block__header"},s("ds-text",{key:"24beaf00d0725ff0a1ff2a1f84ed3bbdd4abecc3",as:"span",variant:"text-caption",emphasis:true,color:"on-strong"},e),s("ds-tooltip",{key:"8eb68695c002e06deb369468cca8f13bd52b4834",label:this.copied?"Copied":"Copy code",side:"bottom",size:"sm"},s("ds-button-unfilled",{key:"6f3e7fcf655cc91e5eceab51dcd34d99426bf4ec",variant:"icon",icon:this.copied?"Check":"Copy",size:"xs","aria-label":this.copied?"Copied":"Copy code",hasBorder:false,onDsClick:this.copy}))),s("pre",{key:"ddd98df8e82b25e5a3f2463a1d9e80877ce917bb"},s("code",{key:"0eda08e94b47b2f68f70f2969b8b344b5467d976"},this.code))))}static get watchers(){return{code:[{handleCodeChange:0}]}}static get style(){return f()}},[2,"ds-code-block",{code:[1],language:[1],filename:[1],copied:[32]},undefined,{code:[{handleCodeChange:0}]}]);function m(){if(typeof customElements==="undefined"){return}const e=["ds-code-block","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-code-block":if(!customElements.get(a(e))){customElements.define(a(e),p)}break;case"ds-badge":if(!customElements.get(a(e))){i()}break;case"ds-button-unfilled":if(!customElements.get(a(e))){c()}break;case"ds-icon":if(!customElements.get(a(e))){n()}break;case"ds-loader":if(!customElements.get(a(e))){r()}break;case"ds-text":if(!customElements.get(a(e))){l()}break;case"ds-tooltip":if(!customElements.get(a(e))){b()}break}}))}m();export{p as C,m as d};
2
- //# sourceMappingURL=p-DEjh3klB.js.map
@@ -1,2 +0,0 @@
1
- import{p as s,H as e,c as t,h as i,a as n,t as r}from"./index.js";import{g as a,i as o}from"./p-BQq26pt9.js";import{d}from"./p-a6qP60zb.js";import{d as c}from"./p-NzGRAPcF.js";import{d as l}from"./p-BFfLvMZd.js";import{d as h}from"./p-JPTkZ3Ji.js";import{d as b}from"./p-Asi9h3pa.js";import{d as v}from"./p-BHDkJmrC.js";import{d as f}from"./p-BhYWdbEp.js";import{d as u}from"./p-y4jhIkRc.js";import{d as p}from"./p-BGXqFq2C.js";function g(s,e,t){if(!s||!e){return{value:"",hideTabs:false}}if(s!==e&&!s.startsWith(`${e}/`)){return{value:"",hideTabs:false}}const i=s.slice(e.length);const n=i.startsWith("/")?i.slice(1).split("/")[0]:"";const r=a(t);if(!n){return{value:r[0]?.id??"",hideTabs:false}}const o=r.find((s=>s.id===n));if(o){return{value:o.id,hideTabs:false}}return{value:"",hideTabs:true}}function m(s,e){return s.length===0&&(e?.length??0)>0}function _(s,e){const t=[];let i=[];for(const n of s){if(o(n)){if(i.length>0){t.push({items:i});i=[]}continue}i.push({label:n.label,value:n.id,dot:n.dot,isSelected:n.id===e,isInactive:n.isInactive})}if(i.length>0){t.push({items:i})}return t}function y(s,e){return _(T(s),e)}function w(s,e,t,i=2){const n=s-e;if(t){return n>-i}return n>i}function x(s,e,t,i,n){if(s.length===0||e<=0)return 0;const r=C(s,s.length,i,n);if(r<=e)return s.length;const a=Math.max(0,e-t);let o=0;for(let e=1;e<=s.length;e++){const t=C(s,e,i,n);if(t>a)break;o=e}return o}function k(s){let e=s.length;while(e>0&&o(s[e-1])){e-=1}return s.slice(0,e)}function T(s){let e=0;while(e<s.length&&o(s[e])){e+=1}return s.slice(e)}function C(s,e,t,i){if(e<=0)return 0;const n=s.slice(0,e).reduce(((s,e)=>s+e),0);return i+n+t*Math.max(0,e-1)}const F="dsChromeTransitionStart";const S="dsChromeTransitionEnd";class E{constructor(){this.depth=0}enter(){this.depth+=1}exit(){this.depth=Math.max(0,this.depth-1)}get isActive(){return this.depth>0}}class M{constructor(){this.active=false}enter(){this.active=true}exit(){this.active=false}get isActive(){return this.active}}function A(s){let e=0;return{schedule(){if(e!==0)return;e=requestAnimationFrame((()=>{e=0;s()}))},cancel(){if(e!==0){cancelAnimationFrame(e);e=0}}}}function z(s){return s.detail?.source}function P(s){return s.detail?.phase}const D=()=>`.ds-control--lg.sc-ds-bar-nav,.ds-control--lg.sc-ds-bar-nav-h,.ds-control--md.sc-ds-bar-nav-h,.ds-control--md.sc-ds-bar-nav,.ds-control--sm.sc-ds-bar-nav-h,.ds-control--sm.sc-ds-bar-nav,.ds-control--xs.sc-ds-bar-nav-h,.ds-control--xs.sc-ds-bar-nav{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-bar-nav-h,.ds-control--lg.sc-ds-bar-nav{--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-bar-nav-h,.ds-control--md.sc-ds-bar-nav{--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-bar-nav-h,.ds-control--sm.sc-ds-bar-nav{--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-bar-nav-h,.ds-control--xs.sc-ds-bar-nav{--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-frame.sc-ds-bar-nav{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:var(--ds-control-padding-inline, var(--dimension-space-075));gap:var(--ds-control-gap, var(--dimension-space-050));border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.ds-control-section-heading.sc-ds-bar-nav{display:flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-control-icon-box.sc-ds-bar-nav{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md))}.ds-control-label-box.sc-ds-bar-nav{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-bar-nav{position:relative;padding-inline-end:calc( var(--ds-control-label-inset, var(--dimension-space-025)) + var(--ds-control-gap, var(--dimension-space-050)) )}.ds-control-label-dot__badge.sc-ds-bar-nav{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-chrome-space--sm.sc-ds-bar-nav-h,.ds-chrome-space--sm.sc-ds-bar-nav{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-bar-nav-h,.ds-chrome-space--md.sc-ds-bar-nav{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-bar-nav-h,.ds-chrome-space--lg.sc-ds-bar-nav{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-bar-nav-h,.ds-chrome-row.sc-ds-bar-nav,.ds-chrome-column.sc-ds-bar-nav-h,.ds-chrome-column.sc-ds-bar-nav,.ds-chrome-grid.sc-ds-bar-nav-h,.ds-chrome-grid.sc-ds-bar-nav{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-bar-nav-h,.ds-chrome-row.sc-ds-bar-nav{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-bar-nav-h,.ds-chrome-column.sc-ds-bar-nav{flex-direction:column}.ds-chrome-grid.sc-ds-bar-nav-h,.ds-chrome-grid.sc-ds-bar-nav{display:grid;align-items:center}@media (forced-colors: active){.sc-ds-bar-nav:root,.sc-ds-bar-nav-h,.ds-forced-colors-scope.sc-ds-bar-nav{--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-bar-nav-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-bar-nav-h,.ds-focus-ring.sc-ds-bar-nav,.ds-focus-ring-inset.sc-ds-bar-nav-h,.ds-focus-ring-inset.sc-ds-bar-nav{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-bar-nav-h:focus-visible,.ds-focus-ring.sc-ds-bar-nav: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-bar-nav-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-bar-nav{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-bar-nav-h:focus-visible,.ds-focus-ring-inset.sc-ds-bar-nav:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-bar-nav-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-bar-nav: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-bar-nav-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-bar-nav{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-bar-nav-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-bar-nav::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-bar-nav-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-bar-nav:root,.sc-ds-bar-nav-h,.ds-forced-colors-scope.sc-ds-bar-nav{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control-inactive.sc-ds-bar-nav-h,.ds-control-inactive.sc-ds-bar-nav{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-bar-nav-h,.ds-control-inactive.sc-ds-bar-nav{color:var(--ds-forced-color-disabled);opacity:1}}.sc-ds-bar-nav-h{display:block}.bar-nav.sc-ds-bar-nav{position:relative;height:var(--dimension-size-600);border-bottom:var(--dimension-stroke-width-012) solid var(--_bar-nav-border);background-color:var(--_bar-nav-bg);color:var(--_bar-nav-fg-primary);-webkit-user-select:none;user-select:none;overflow:hidden;transition:background-color var(--effect-motion-short-3), border-color var(--effect-motion-short-3), color var(--effect-motion-short-3);isolation:isolate;--_bar-nav-bg:var(--color-background-secondary);--_bar-nav-border:var(--color-border-tertiary);--_bar-nav-fg-primary:var(--color-foreground-primary);--_bar-nav-fg-secondary:var(--color-foreground-secondary);--_bar-nav-hover:var(--color-interaction-hover);--_bar-nav-pressed:var(--color-interaction-pressed);--_bar-nav-focus:var(--color-interaction-focus);--_bar-nav-dot:var(--color-foreground-bold-brand);--ds-focus-ring-color:var(--_bar-nav-focus)}.bar-nav--dashboard.sc-ds-bar-nav,.bar-nav--settings.sc-ds-bar-nav{--_bar-nav-bg:var(--color-background-secondary);--_bar-nav-border:var(--color-border-tertiary);--_bar-nav-fg-primary:var(--color-foreground-primary);--_bar-nav-fg-secondary:var(--color-foreground-secondary);--_bar-nav-hover:var(--color-interaction-hover);--_bar-nav-pressed:var(--color-interaction-pressed);--_bar-nav-focus:var(--color-interaction-focus);--_bar-nav-dot:var(--color-foreground-bold-brand)}ds-shell-app.sc-ds-bar-nav-h:not([gradient-preset='none']) .bar-nav.sc-ds-bar-nav,ds-shell-app:not([gradient-preset='none']) .sc-ds-bar-nav-h .bar-nav.sc-ds-bar-nav,ds-shell-app.shell-app--paper-texture.sc-ds-bar-nav-h .bar-nav.sc-ds-bar-nav,ds-shell-app.shell-app--paper-texture .sc-ds-bar-nav-h .bar-nav.sc-ds-bar-nav{background-color:transparent}.bar-nav.sc-ds-bar-nav>.sc-ds-bar-nav:not(.bar-nav__tabs-probe){position:relative;z-index:3}.bar-nav--tabs-collapsed.sc-ds-bar-nav{display:flex;gap:var(--dimension-space-100);align-items:center}.bar-nav__left.sc-ds-bar-nav{position:relative;flex:1 1 0%;min-width:0;width:0;display:flex;align-items:center}.bar-nav__tabs-visible.sc-ds-bar-nav{flex:1;min-width:0;width:100%}.bar-nav__tabs-probe.sc-ds-bar-nav{position:absolute;left:0;top:0;visibility:hidden;pointer-events:none;overflow:visible;width:max-content;max-width:none;z-index:-1}.bar-nav__tabs-probe.sc-ds-bar-nav>div.sc-ds-bar-nav{width:max-content}.bar-nav__tab-list.sc-ds-bar-nav{display:flex;align-items:center;gap:var(--dimension-space-050);position:relative;width:max-content}.bar-nav__tab.sc-ds-bar-nav{display:flex;align-items:center;justify-content:center;gap:var(--ds-control-gap);height:var(--ds-control-height);min-width:var(--ds-control-height);padding:0 var(--ds-control-padding-inline);box-sizing:border-box;border:none;border-radius:var(--ds-control-radius);background-color:transparent;color:var(--_bar-nav-fg-secondary);cursor:default;position:relative;flex-shrink:0;-webkit-user-select:none;user-select:none;transition:color var(--effect-motion-short-2)}.bar-nav__tab.sc-ds-bar-nav::after{content:'';position:absolute;inset:0;border-radius:var(--ds-control-radius);background:transparent;pointer-events:none;cursor:inherit}@media (hover: hover) and (pointer: fine){.bar-nav__tab.sc-ds-bar-nav:hover::after{background:var(--_bar-nav-hover)}}.bar-nav__tab.sc-ds-bar-nav:active::after{background:var(--_bar-nav-pressed)}.bar-nav__tab--selected.sc-ds-bar-nav{color:var(--_bar-nav-fg-primary)}.bar-nav__tab-label.sc-ds-bar-nav{display:inline-flex;align-items:center;white-space:nowrap}.bar-nav__tab-divider.sc-ds-bar-nav{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--dimension-space-100);height:var(--ds-control-height);padding-block:var(--ds-control-padding-inline);flex-shrink:0;pointer-events:none}.bar-nav__tab-divider-line.sc-ds-bar-nav{width:var(--dimension-stroke-width-012);align-self:stretch;background-color:var(--_bar-nav-border)}.bar-nav__tabs-pending.sc-ds-bar-nav{flex:1;min-width:0;height:var(--ds-control-height);visibility:hidden;pointer-events:none}.bar-nav__overflow-trigger.sc-ds-bar-nav{margin-left:auto;--ds-button-unfilled-fg:var(--_bar-nav-fg-secondary);--ds-button-unfilled-fg-active:var(--_bar-nav-fg-primary);--ds-interaction-hover:var(--_bar-nav-hover);--ds-interaction-pressed:var(--_bar-nav-pressed);--ds-focus-ring-color:var(--_bar-nav-focus)}ds-text.bar-nav__heading.sc-ds-bar-nav{display:inline-flex;align-items:center;height:var(--ds-control-height);padding-inline:calc(var(--ds-control-padding-inline) + var(--ds-control-label-inset));-webkit-user-select:none;user-select:none}`;const H=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.dsTabChange=t(this,"dsTabChange",7);this.navStyle="dashboard";this.tabs=[];this.value="";this.basePath="";this.currentUrl="";this.moreTabsLabel="More tabs";this.resolvedTabs=[];this.urlDerivedValue="";this.hideTabsForDetailRoute=false;this.tabsCollapsed=false;this.menuOpen=false;this.menuTriggerActive=false;this.tabLayoutCommitted=false;this.visibleTabs=[];this.overflowTabs=[];this.menuInitialFocusVisible=false;this.overflowRovingFocused=false;this.focusedTabId="";this.headerEl=null;this.triggerEl=null;this.menuEl=null;this.visibleTabListEl=null;this.probeTabListEl=null;this.resizeObserver=null;this.intrinsicWidthRetryCount=0;this.tabLayoutPendingFrames=0;this.panelNavTransition=new M;this.panelToolsTransition=new M;this.overflowCoalescer=A((()=>{this.updateTabsCollapsed()}));this.chromeTransitionShell=null;this.committedSection="";this.pendingSection="";this.onChromeTransitionStart=s=>{const e=z(s);if(e==="panel-nav"){this.panelNavTransition.enter();return}if(e==="panel-tools"){const e=P(s)??"opening";if(e==="closing"){this.panelToolsTransition.enter()}}};this.onChromeTransitionEnd=s=>{const e=z(s);if(e==="panel-nav"){this.panelNavTransition.exit();if(!this.panelNavTransition.isActive){this.scheduleOverflowCheck()}return}if(e==="panel-tools"){this.panelToolsTransition.exit();this.scheduleOverflowCheck()}};this.handleOverflowFocus=()=>{this.overflowRovingFocused=true};this.handleOverflowBlur=()=>{this.overflowRovingFocused=false}}get effectiveValue(){if(this.currentUrl&&this.basePath){return this.urlDerivedValue}return this.value}get renderedSelectableTabs(){const s=this.hasOverflowTabs?this.visibleTabs:this.resolvedTabs;return a(s)}get hasOverflowTabs(){return this.tabLayoutCommitted&&this.tabsCollapsed&&this.overflowTabs.length>0}syncFocusedTabId(s,e){if(e.some((e=>e.id===s&&!e.isInactive))){this.focusedTabId=s;return}const t=e.find((s=>!s.isInactive));this.focusedTabId=t?.id??""}digestTabsConfig(s){return s.map((s=>o(s)?"|":s.id)).join(",")}resetTabOverflowLayout(){this.tabLayoutCommitted=false;this.tabsCollapsed=false;this.menuOpen=false;this.menuTriggerActive=false;this.menuInitialFocusVisible=false;this.intrinsicWidthRetryCount=0;this.tabLayoutPendingFrames=0;this.visibleTabs=[];this.overflowTabs=[]}onHostPropsChange(){this.applyHostProps()}onSelectionChange(){this.syncFocusedTabId(this.effectiveValue,this.renderedSelectableTabs);this.syncMenuSections();this.scheduleOverflowCheck()}onMenuOpenChange(s){if(this.menuEl){this.menuEl.open=s}}onTabsCollapsedChange(s,e){if(!s){this.menuOpen=false;this.menuTriggerActive=false;this.menuInitialFocusVisible=false;this.menuEl=null}this.scheduleOverflowCheck();if(s){requestAnimationFrame((()=>{this.scheduleOverflowCheck()}))}if(s||e===undefined||e===s)return;requestAnimationFrame((()=>this.scheduleOverflowCheck()));queueMicrotask((()=>this.focusVisibleSelectedTab()))}componentWillLoad(){this.applyHostProps();this.syncFocusedTabId(this.effectiveValue,a(this.resolvedTabs))}componentDidLoad(){this.syncHostPropsIfNeeded();this.scheduleDeferredHostPropSync();this.setupOverflowObserver();this.bindChromeTransitionListeners();this.scheduleOverflowCheck()}componentDidRender(){if(this.chromeOverflowPaused()){this.syncMenuAnchor();return}this.scheduleOverflowCheck();this.syncMenuAnchor()}disconnectedCallback(){this.resizeObserver?.disconnect();this.resizeObserver=null;this.overflowCoalescer.cancel();this.unbindChromeTransitionListeners()}bindChromeTransitionListeners(){const s=this.el.closest("ds-shell-app");if(!s)return;this.chromeTransitionShell=s;s.addEventListener(F,this.onChromeTransitionStart);s.addEventListener(S,this.onChromeTransitionEnd)}unbindChromeTransitionListeners(){if(!this.chromeTransitionShell)return;this.chromeTransitionShell.removeEventListener(F,this.onChromeTransitionStart);this.chromeTransitionShell.removeEventListener(S,this.onChromeTransitionEnd);this.chromeTransitionShell=null}chromeOverflowPaused(){return this.panelNavTransition.isActive||this.panelToolsTransition.isActive}syncHostPropsIfNeeded(){if(m(this.resolvedTabs,this.tabs)){this.applyHostProps()}else if(this.currentUrl&&this.basePath){this.syncValueFromUrl()}}scheduleDeferredHostPropSync(){let e=s.HOST_PROP_SYNC_BUDGET;const t=()=>{this.syncHostPropsIfNeeded();if(--e>0){requestAnimationFrame(t)}};queueMicrotask(t)}setupOverflowObserver(){if(typeof ResizeObserver==="undefined"||!this.headerEl)return;this.resizeObserver?.disconnect();this.resizeObserver=new ResizeObserver((()=>{if(this.chromeOverflowPaused())return;this.scheduleOverflowCheck()}));this.resizeObserver.observe(this.headerEl)}scheduleOverflowCheck(){if(this.chromeOverflowPaused())return;this.overflowCoalescer.schedule()}getLeftZoneAvailableWidth(){if(!this.headerEl)return 0;const s=getComputedStyle(this.headerEl);const e=(parseFloat(s.paddingLeft)||0)+(parseFloat(s.paddingRight)||0);return Math.max(0,this.headerEl.clientWidth-e)}getTabsIntrinsicWidth(){return this.probeTabListEl?.scrollWidth??0}getHeaderGap(){if(!this.headerEl)return 0;const s=getComputedStyle(this.headerEl);return parseFloat(s.columnGap||s.gap)||0}getOverflowTriggerReserveWidth(){if(!this.triggerEl){return 40}return this.triggerEl.getBoundingClientRect().width+this.getHeaderGap()}getProbeTabMetrics(){const s=this.probeTabListEl;if(!s)return null;const e=Array.from(s.children);const t=e.map((s=>s.getBoundingClientRect().width));if(t.length===0||t.some((s=>s===0)))return null;const i=getComputedStyle(s);const n=parseFloat(i.columnGap||i.gap)||0;const r=t.reduce(((s,e)=>s+e),0);const a=n*Math.max(0,t.length-1);const o=Math.max(0,s.scrollWidth-r-a);return{itemWidths:t,itemGap:n,listExtraWidth:o}}setOverflowTabLayout(s,e){const t=e.length>0;const i=this.digestTabsConfig(s)!==this.digestTabsConfig(this.visibleTabs);const n=this.digestTabsConfig(e)!==this.digestTabsConfig(this.overflowTabs);if(i){this.visibleTabs=s}if(n){this.overflowTabs=e}if(t!==this.tabsCollapsed){this.tabsCollapsed=t;if(!t){this.menuOpen=false;this.menuTriggerActive=false}}this.syncFocusedTabId(this.effectiveValue,a(t?s:this.resolvedTabs))}scheduleIntrinsicWidthRetry(){if(this.intrinsicWidthRetryCount>=s.INTRINSIC_WIDTH_RETRY_MAX)return;this.intrinsicWidthRetryCount++;requestAnimationFrame((()=>this.scheduleOverflowCheck()))}forceTabLayoutCommit(s){this.intrinsicWidthRetryCount=0;this.tabLayoutPendingFrames=0;this.setOverflowTabLayout(s?[]:this.resolvedTabs,s?this.resolvedTabs:[]);this.tabLayoutCommitted=true}updateTabsCollapsed(){if(!this.headerEl||this.resolvedTabs.length===0||this.hideTabsForDetailRoute){if(this.tabsCollapsed){this.setOverflowTabLayout([],[])}this.intrinsicWidthRetryCount=0;this.tabLayoutPendingFrames=0;this.tabLayoutCommitted=true;return}const e=this.getProbeTabMetrics();const t=this.getTabsIntrinsicWidth();if(!e||t===0){this.tabLayoutPendingFrames+=1;if(this.intrinsicWidthRetryCount>=s.INTRINSIC_WIDTH_RETRY_MAX){this.forceTabLayoutCommit(false)}else if(this.tabLayoutPendingFrames>=s.TAB_LAYOUT_COMMIT_MAX_FRAMES){this.forceTabLayoutCommit(false)}else{this.scheduleIntrinsicWidthRetry()}return}this.intrinsicWidthRetryCount=0;this.tabLayoutPendingFrames=0;const i=w(t,this.getLeftZoneAvailableWidth(),this.tabsCollapsed,s.OVERFLOW_HYSTERESIS_PX);if(!i){this.setOverflowTabLayout(this.resolvedTabs,[]);this.tabLayoutCommitted=true;return}const n=x(e.itemWidths,this.getLeftZoneAvailableWidth(),this.getOverflowTriggerReserveWidth(),e.itemGap,e.listExtraWidth);const r=k(this.resolvedTabs.slice(0,n));const a=this.resolvedTabs.slice(r.length);this.setOverflowTabLayout(r,a);this.tabLayoutCommitted=true}syncMenuAnchor(){if(!this.menuEl||!this.triggerEl||!this.hasOverflowTabs)return;this.menuEl.anchor=this.triggerEl;this.syncMenuSections()}handleMenuSelect(s){const e=s.detail;if(e?.value!==undefined){this.selectTab(String(e.value))}this.menuOpen=false;this.menuInitialFocusVisible=false}handleMenuClose(){this.menuOpen=false;this.menuInitialFocusVisible=false}handleMenuAfterClose(){if(!this.menuOpen)this.menuTriggerActive=false}incomingTabs(){return this.tabs??[]}applyHostProps(){const s=this.basePath;const e=s!==""&&this.committedSection!==""&&s!==this.committedSection;if(e){this.urlDerivedValue="";this.committedSection="";this.pendingSection=s;this.resolvedTabs=[];this.resetTabOverflowLayout();return}if(this.pendingSection){if(!s||s!==this.pendingSection){return}if(!this.currentUrl.startsWith(this.pendingSection)){return}const e=this.incomingTabs();if(e.length===0){return}this.pendingSection=""}const t=this.incomingTabs();const i=this.digestTabsConfig(t)!==this.digestTabsConfig(this.resolvedTabs);this.resolvedTabs=t;this.syncValueFromUrl();this.committedSection=s;if(i){this.resetTabOverflowLayout()}this.scheduleOverflowCheck()}syncMenuSections(){if(!this.menuEl)return;this.menuEl.sections=y(this.overflowTabs,this.effectiveValue)}syncValueFromUrl(){const s=this.incomingTabs();if(!this.currentUrl||!this.basePath){this.urlDerivedValue="";this.hideTabsForDetailRoute=false;return}if(!this.currentUrl.startsWith(this.basePath)){this.urlDerivedValue="";this.hideTabsForDetailRoute=false;return}const{value:e,hideTabs:t}=g(this.currentUrl,this.basePath,s);this.urlDerivedValue=e;this.hideTabsForDetailRoute=t}selectTab(s){this.value=s;this.dsTabChange.emit(s)}focusVisibleSelectedTab(){const s=this.visibleTabListEl?.querySelector(`[data-tab-id="${this.effectiveValue}"]`);s?.focus({preventScroll:true})}focusVisibleTab(s){this.focusedTabId=s;const e=this.visibleTabListEl?.querySelector(`[data-tab-id="${s}"]`);e?.focus({preventScroll:true})}focusLastVisibleTab(){const s=[...this.renderedSelectableTabs].reverse().find((s=>!s.isInactive));if(s)this.focusVisibleTab(s.id)}findEnabledVisibleTab(s,e){const t=this.renderedSelectableTabs;for(let i=s+e;i>=0&&i<t.length;i+=e){if(!t[i]?.isInactive)return i}return null}handleTabKeyDown(s){const e=this.renderedSelectableTabs;if(!e.length)return;const t=s.target?.getAttribute("data-tab-id");const i=t??this.focusedTabId;if(s.key==="Enter"||s.key===" "){const t=e.find((s=>s.id===i));if(!t||t.isInactive)return;s.preventDefault();this.selectTab(t.id);return}const n=e.findIndex((s=>s.id===i));if(n<0)return;let r;if(s.key==="ArrowRight"){r=this.findEnabledVisibleTab(n,1);if(r===null&&this.hasOverflowTabs){s.preventDefault();this.overflowRovingFocused=true;void this.triggerEl?.setFocus?.();return}}else if(s.key==="ArrowLeft"){r=this.findEnabledVisibleTab(n,-1)}else if(s.key==="Home"){r=e.findIndex((s=>!s.isInactive))}else if(s.key==="End"){const s=[...e].reverse().findIndex((s=>!s.isInactive));r=s<0?null:e.length-1-s}else{return}if(r===null||r<0||r===n)return;s.preventDefault();this.focusVisibleTab(e[r].id)}toggleTabMenu(s){if(this.menuOpen){this.menuOpen=false;this.menuInitialFocusVisible=false;return}if(this.menuEl&&this.triggerEl){this.menuEl.anchor=this.triggerEl;this.menuEl.minWidth="";this.syncMenuSections()}this.menuInitialFocusVisible=s?.focusVisible??false;this.menuTriggerActive=true;this.menuOpen=true}handleTriggerKeyDown(s){if(!this.hasOverflowTabs)return;if(!this.menuOpen){if(s.key==="ArrowLeft"){s.preventDefault();this.overflowRovingFocused=false;this.focusLastVisibleTab();return}if(s.key==="Enter"||s.key===" "){s.preventDefault();this.toggleTabMenu({focusVisible:true})}return}if(s.key==="Escape"){s.preventDefault();this.menuOpen=false;this.menuInitialFocusVisible=false;void this.triggerEl?.setFocus?.()}}renderTabList(s,e){return i("div",{role:"tablist",class:"bar-nav__tab-list","aria-label":this.heading,ref:s=>{if(e){const e=s??null;if(e===this.probeTabListEl)return;this.probeTabListEl=e;if(e){this.intrinsicWidthRetryCount=0;this.tabLayoutPendingFrames=0;this.scheduleOverflowCheck()}}else{this.visibleTabListEl=s??null}},onKeyDown:e?undefined:s=>this.handleTabKeyDown(s),onFocusin:e?undefined:()=>{this.overflowRovingFocused=false}},s.map(((s,t)=>{if(o(s)){return i("div",{class:"bar-nav__tab-divider",key:`divider-${t}`,"aria-hidden":"true"},i("div",{class:"bar-nav__tab-divider-line"}))}const n=s.id===this.effectiveValue;return i("button",{key:s.id,type:"button",role:"tab","data-tab-id":s.id,class:{"bar-nav__tab":true,"bar-nav__tab--selected":n,"ds-control--md":true,"ds-focus-ring-inset":true,"ds-control-inactive":!!s.isInactive},"aria-selected":n?"true":"false","aria-disabled":s.isInactive?"true":undefined,"aria-controls":s.panelId??undefined,disabled:s.isInactive,tabIndex:!e&&!this.overflowRovingFocused&&s.id===this.focusedTabId?0:-1,onClick:()=>!e&&!s.isInactive&&this.selectTab(s.id),onFocus:()=>{if(!e)this.focusedTabId=s.id}},i("span",{class:{"bar-nav__tab-label":true,"ds-control-label-box":true,"ds-control-label-dot":!!s.dot,"bar-nav__tab-label--dot":!!s.dot}},i("ds-text",{as:"span",variant:"text-body-medium",emphasis:n,color:"inherit"},s.label),s.dot&&i("ds-badge",{class:"bar-nav__tab-dot ds-control-label-dot__badge",variant:"dot",hasRing:false,label:"","aria-hidden":"true"})))})))}render(){const s=this.basePath===""||this.committedSection===this.basePath;const e=s&&this.resolvedTabs.length>0&&!this.hideTabsForDetailRoute;const t=this.basePath||"no-section";const r=this.hasOverflowTabs?this.visibleTabs:this.resolvedTabs;return i(n,{key:"81c10d4f14663f76bb8b905ce2d83402da943031"},i("header",{key:"32ea2428d587616498e83f8f236639baa77c63ea",class:{"bar-nav":true,"ds-control--md":true,"ds-chrome-row":true,"ds-chrome-space--md":true,"bar-nav--dashboard":this.navStyle==="dashboard","bar-nav--settings":this.navStyle==="settings","bar-nav--tabs-collapsed":e&&this.hasOverflowTabs},ref:s=>{this.headerEl=s;if(s&&!this.resizeObserver){this.setupOverflowObserver()}}},e&&i("div",{key:"6455592322461dc0d3976b026092c14f2c4be569",class:"bar-nav__tabs-probe","aria-hidden":"true",inert:true},i("div",{key:`probe-${t}`},this.renderTabList(this.resolvedTabs,true))),e&&this.tabLayoutCommitted&&r.length>0&&i("div",{key:"299c298a7fdb3b45d0dd6911b2a21e5500bfcf4b",class:"bar-nav__left"},i("div",{key:`visible-${t}`,class:"bar-nav__tabs-visible"},this.renderTabList(r,false))),e&&!this.tabLayoutCommitted&&i("div",{key:"24707cc9680ffdd10b54b38b0932f961b6d16875",class:"bar-nav__tabs-pending","aria-hidden":"true"}),!e&&this.heading&&i("ds-text",{key:"d836c6ff49dd2a5ef91e85b34d1fb16dbeb7bd1a",class:"bar-nav__heading",lineTruncation:1,as:"span",variant:"text-body-medium",emphasis:true,color:"primary",wrap:"nowrap"},this.heading),e&&this.hasOverflowTabs&&i("ds-button-unfilled",{key:"6346f4e2420270f4e0b1976d9424927cc360fb3a",variant:"icon",class:{"bar-nav__overflow-trigger":true},icon:"ChevronDown",activeFill:false,hasBorder:false,focusTabIndex:this.overflowRovingFocused?0:-1,ref:s=>{this.triggerEl=s??null},haspopup:"menu",expanded:this.menuTriggerActive,"aria-label":this.moreTabsLabel,onDsClick:()=>this.toggleTabMenu({focusVisible:false}),onFocusin:this.handleOverflowFocus,onFocusout:this.handleOverflowBlur,onKeyDown:s=>this.handleTriggerKeyDown(s)})),e&&this.hasOverflowTabs&&i("ds-menu",{key:"a783025008a130ebaf7d927088892e50829c3286",ref:s=>{this.menuEl=s??null},open:this.menuOpen,sections:y(this.overflowTabs,this.effectiveValue),side:"bottom",align:"end",sideOffset:"calc(var(--dimension-space-100) + var(--dimension-space-050))",initialFocusVisible:this.menuInitialFocusVisible,onDsSelect:s=>this.handleMenuSelect(s),onDsClose:()=>this.handleMenuClose(),onDsAfterClose:()=>this.handleMenuAfterClose()}))}get el(){return this}static get watchers(){return{tabs:[{onHostPropsChange:0}],currentUrl:[{onHostPropsChange:0}],basePath:[{onHostPropsChange:0}],value:[{onSelectionChange:0}],urlDerivedValue:[{onSelectionChange:0}],menuOpen:[{onMenuOpenChange:0}],tabsCollapsed:[{onTabsCollapsedChange:0}]}}static get style(){return D()}},[2,"ds-bar-nav",{navStyle:[513,"nav-style"],tabs:[16],value:[1025],heading:[1],basePath:[1,"base-path"],currentUrl:[1,"current-url"],moreTabsLabel:[1,"more-tabs-label"],resolvedTabs:[32],urlDerivedValue:[32],hideTabsForDetailRoute:[32],tabsCollapsed:[32],menuOpen:[32],menuTriggerActive:[32],tabLayoutCommitted:[32],visibleTabs:[32],overflowTabs:[32],menuInitialFocusVisible:[32],overflowRovingFocused:[32],focusedTabId:[32],committedSection:[32],pendingSection:[32]},undefined,{tabs:[{onHostPropsChange:0}],currentUrl:[{onHostPropsChange:0}],basePath:[{onHostPropsChange:0}],value:[{onSelectionChange:0}],urlDerivedValue:[{onSelectionChange:0}],menuOpen:[{onMenuOpenChange:0}],tabsCollapsed:[{onTabsCollapsedChange:0}]}]);H.HOST_PROP_SYNC_BUDGET=8;H.INTRINSIC_WIDTH_RETRY_MAX=3;H.TAB_LAYOUT_COMMIT_MAX_FRAMES=16;H.OVERFLOW_HYSTERESIS_PX=8;function O(){if(typeof customElements==="undefined"){return}const s=["ds-bar-nav","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-menu","ds-swatch-picker","ds-switch","ds-tag","ds-text"];s.forEach((s=>{switch(s){case"ds-bar-nav":if(!customElements.get(r(s))){customElements.define(r(s),H)}break;case"ds-badge":if(!customElements.get(r(s))){d()}break;case"ds-button-unfilled":if(!customElements.get(r(s))){c()}break;case"ds-icon":if(!customElements.get(r(s))){l()}break;case"ds-loader":if(!customElements.get(r(s))){h()}break;case"ds-menu":if(!customElements.get(r(s))){b()}break;case"ds-swatch-picker":if(!customElements.get(r(s))){v()}break;case"ds-switch":if(!customElements.get(r(s))){f()}break;case"ds-tag":if(!customElements.get(r(s))){u()}break;case"ds-text":if(!customElements.get(r(s))){p()}break}}))}O();export{H as B,E as C,F as a,S as b,A as c,O as d,z as r};
2
- //# sourceMappingURL=p-DIEK54fV.js.map