@ds-mo/ui 15.4.0 → 15.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (477) hide show
  1. package/NOTICE +7 -1
  2. package/dist/.package-ready.json +1 -1
  3. package/dist/agent-patterns.json +1 -1
  4. package/dist/agent.json +64 -8
  5. package/dist/angular/boolean-value-accessor.js +3 -3
  6. package/dist/angular/ds-agent-activity.js +3 -3
  7. package/dist/angular/ds-agent-questionnaire.js +3 -3
  8. package/dist/angular/ds-agent-response.js +3 -3
  9. package/dist/angular/ds-agent-source-list.js +3 -3
  10. package/dist/angular/ds-agent-tool-call.js +3 -3
  11. package/dist/angular/ds-attachment-list.js +3 -3
  12. package/dist/angular/ds-avatar.js +3 -3
  13. package/dist/angular/ds-badge.js +3 -3
  14. package/dist/angular/ds-banner.js +3 -3
  15. package/dist/angular/ds-bar-action.js +3 -3
  16. package/dist/angular/ds-bar-nav.js +3 -3
  17. package/dist/angular/ds-bar-page-title.js +3 -3
  18. package/dist/angular/ds-bar-title.js +3 -3
  19. package/dist/angular/ds-bar-workflow.js +3 -3
  20. package/dist/angular/ds-breadcrumb.js +3 -3
  21. package/dist/angular/ds-button-filled.js +3 -3
  22. package/dist/angular/ds-button-inverted.js +3 -3
  23. package/dist/angular/ds-button-unfilled.js +3 -3
  24. package/dist/angular/ds-calendar.js +3 -3
  25. package/dist/angular/ds-card-action-center.js +3 -3
  26. package/dist/angular/ds-card-chart.js +3 -3
  27. package/dist/angular/ds-card-navigation.js +3 -3
  28. package/dist/angular/ds-card-overview.js +3 -3
  29. package/dist/angular/ds-card-setting.js +3 -3
  30. package/dist/angular/ds-card-settings-scope.js +3 -3
  31. package/dist/angular/ds-chart-legend.js +3 -3
  32. package/dist/angular/ds-chart.js +3 -3
  33. package/dist/angular/ds-checkbox-group.js +3 -3
  34. package/dist/angular/ds-checkbox.d.ts +1 -1
  35. package/dist/angular/ds-checkbox.js +5 -5
  36. package/dist/angular/ds-chip.js +3 -3
  37. package/dist/angular/ds-code-block.js +3 -3
  38. package/dist/angular/ds-conversation-list-item.js +3 -3
  39. package/dist/angular/ds-conversation-list-section.js +3 -3
  40. package/dist/angular/ds-conversation-list.js +3 -3
  41. package/dist/angular/ds-data-customize.js +3 -3
  42. package/dist/angular/ds-data-filter.js +3 -3
  43. package/dist/angular/ds-data-group.js +3 -3
  44. package/dist/angular/ds-data-preferences.js +3 -3
  45. package/dist/angular/ds-data-saved-views.js +3 -3
  46. package/dist/angular/ds-data-search.js +3 -3
  47. package/dist/angular/ds-data-sort.js +3 -3
  48. package/dist/angular/ds-data-toolbar.js +3 -3
  49. package/dist/angular/ds-divider.js +3 -3
  50. package/dist/angular/ds-empty-state.js +3 -3
  51. package/dist/angular/ds-field.js +3 -3
  52. package/dist/angular/ds-filter-menu.js +3 -3
  53. package/dist/angular/ds-icon.js +3 -3
  54. package/dist/angular/ds-inline-banner-settings.js +3 -3
  55. package/dist/angular/ds-input-date.js +3 -3
  56. package/dist/angular/ds-input-time.js +3 -3
  57. package/dist/angular/ds-input.js +3 -3
  58. package/dist/angular/ds-loader.js +3 -3
  59. package/dist/angular/ds-map-cluster-marker.js +3 -3
  60. package/dist/angular/ds-map-entity-marker.js +3 -3
  61. package/dist/angular/ds-markdown.js +3 -3
  62. package/dist/angular/ds-menu.js +3 -3
  63. package/dist/angular/ds-message-actions.js +3 -3
  64. package/dist/angular/ds-message-bubble.js +3 -3
  65. package/dist/angular/ds-message-composer.js +3 -3
  66. package/dist/angular/ds-message-scroller.js +3 -3
  67. package/dist/angular/ds-message.js +3 -3
  68. package/dist/angular/ds-mobile-bar-nav.js +3 -3
  69. package/dist/angular/ds-mobile-header.js +3 -3
  70. package/dist/angular/ds-mobile-section-switcher.js +3 -3
  71. package/dist/angular/ds-mobile-sheet-nav.js +3 -3
  72. package/dist/angular/ds-modal.js +3 -3
  73. package/dist/angular/ds-pagination.js +3 -3
  74. package/dist/angular/ds-panel-nav.js +3 -3
  75. package/dist/angular/ds-panel-sub-nav.js +3 -3
  76. package/dist/angular/ds-panel-tool-header.js +3 -3
  77. package/dist/angular/ds-panel-tool-search.js +3 -3
  78. package/dist/angular/ds-panel-tools.js +3 -3
  79. package/dist/angular/ds-paper-texture.js +3 -3
  80. package/dist/angular/ds-radio-tile.js +3 -3
  81. package/dist/angular/ds-radio.js +3 -3
  82. package/dist/angular/ds-score.js +3 -3
  83. package/dist/angular/ds-scroll-overlay.js +3 -3
  84. package/dist/angular/ds-select.d.ts +1 -1
  85. package/dist/angular/ds-select.js +5 -5
  86. package/dist/angular/ds-setting-row-checkbox.js +3 -3
  87. package/dist/angular/ds-setting-row-radio.js +3 -3
  88. package/dist/angular/ds-setting-row-toggle.js +3 -3
  89. package/dist/angular/ds-shell-app.js +3 -3
  90. package/dist/angular/ds-shell-page.js +3 -3
  91. package/dist/angular/ds-shell-tools.js +3 -3
  92. package/dist/angular/ds-skeleton.js +3 -3
  93. package/dist/angular/ds-slider.js +3 -3
  94. package/dist/angular/ds-swatch-picker.js +3 -3
  95. package/dist/angular/ds-switch.js +3 -3
  96. package/dist/angular/ds-tab-group.js +3 -3
  97. package/dist/angular/ds-table.d.ts +7 -1
  98. package/dist/angular/ds-table.js +13 -7
  99. package/dist/angular/ds-tag.js +3 -3
  100. package/dist/angular/ds-text.js +3 -3
  101. package/dist/angular/ds-textarea.js +3 -3
  102. package/dist/angular/ds-time-picker.js +3 -3
  103. package/dist/angular/ds-toast.js +3 -3
  104. package/dist/angular/ds-tooltip-chart.js +3 -3
  105. package/dist/angular/ds-tooltip.js +3 -3
  106. package/dist/angular/ds-typing-indicator.js +3 -3
  107. package/dist/angular/number-value-accessor.js +3 -3
  108. package/dist/angular/radio-value-accessor.js +3 -3
  109. package/dist/angular/select-value-accessor.js +3 -3
  110. package/dist/angular/text-value-accessor.js +3 -3
  111. package/dist/angular/value-accessor.js +3 -3
  112. package/dist/components/THIRD-PARTY-NOTICES +1791 -0
  113. package/dist/components/bundled-dependencies.json +478 -0
  114. package/dist/components/ds-agent-activity.js +1 -1
  115. package/dist/components/ds-agent-questionnaire.js +1 -1
  116. package/dist/components/ds-agent-response.js +1 -1
  117. package/dist/components/ds-agent-source-list.js +1 -1
  118. package/dist/components/ds-agent-tool-call.js +1 -1
  119. package/dist/components/ds-attachment-list.js +1 -1
  120. package/dist/components/ds-avatar.js +1 -1
  121. package/dist/components/ds-banner.js +1 -1
  122. package/dist/components/ds-banner.js.map +1 -1
  123. package/dist/components/ds-bar-nav.js +1 -1
  124. package/dist/components/ds-bar-page-title.js +1 -1
  125. package/dist/components/ds-bar-title.js +1 -1
  126. package/dist/components/ds-bar-workflow.js +1 -1
  127. package/dist/components/ds-breadcrumb.js +1 -1
  128. package/dist/components/ds-button-filled.js +1 -1
  129. package/dist/components/ds-button-inverted.js +1 -1
  130. package/dist/components/ds-button-unfilled.js +1 -1
  131. package/dist/components/ds-calendar.js +1 -1
  132. package/dist/components/ds-card-action-center.js +1 -1
  133. package/dist/components/ds-card-chart.js +1 -1
  134. package/dist/components/ds-card-navigation.js +1 -1
  135. package/dist/components/ds-card-overview.js +1 -1
  136. package/dist/components/ds-card-overview.js.map +1 -1
  137. package/dist/components/ds-card-setting.js +1 -1
  138. package/dist/components/ds-chart-legend.js +1 -1
  139. package/dist/components/ds-chart-legend.js.map +1 -1
  140. package/dist/components/ds-chart.js +1 -1
  141. package/dist/components/ds-chart.js.map +1 -1
  142. package/dist/components/ds-checkbox.js +1 -1
  143. package/dist/components/ds-chip.js +1 -1
  144. package/dist/components/ds-code-block.js +1 -1
  145. package/dist/components/ds-conversation-list.js +1 -1
  146. package/dist/components/ds-conversation-list.js.map +1 -1
  147. package/dist/components/ds-data-customize.js +1 -1
  148. package/dist/components/ds-data-filter.js +1 -1
  149. package/dist/components/ds-data-group.js +1 -1
  150. package/dist/components/ds-data-preferences.js +1 -1
  151. package/dist/components/ds-data-preferences.js.map +1 -1
  152. package/dist/components/ds-data-saved-views.js +1 -1
  153. package/dist/components/ds-data-search.js +1 -1
  154. package/dist/components/ds-data-sort.js +1 -1
  155. package/dist/components/ds-data-toolbar.js +1 -1
  156. package/dist/components/ds-divider.js +1 -1
  157. package/dist/components/ds-empty-state.js +1 -1
  158. package/dist/components/ds-filter-menu.js +1 -1
  159. package/dist/components/ds-icon.js +1 -1
  160. package/dist/components/ds-input-date.js +1 -1
  161. package/dist/components/ds-input-date.js.map +1 -1
  162. package/dist/components/ds-input-time.js +1 -1
  163. package/dist/components/ds-input-time.js.map +1 -1
  164. package/dist/components/ds-input.js +1 -1
  165. package/dist/components/ds-map-entity-marker.js +1 -1
  166. package/dist/components/ds-markdown.js +1 -1
  167. package/dist/components/ds-menu.js +1 -1
  168. package/dist/components/ds-message-actions.js +1 -1
  169. package/dist/components/ds-message-bubble.js +1 -1
  170. package/dist/components/ds-message-composer.js +1 -1
  171. package/dist/components/ds-message-scroller.js +1 -1
  172. package/dist/components/ds-message.js +1 -1
  173. package/dist/components/ds-mobile-bar-nav.js +1 -1
  174. package/dist/components/ds-mobile-header.js +1 -1
  175. package/dist/components/ds-mobile-section-switcher.js +1 -1
  176. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  177. package/dist/components/ds-modal.js +1 -1
  178. package/dist/components/ds-pagination.js +1 -1
  179. package/dist/components/ds-panel-nav.js +1 -1
  180. package/dist/components/ds-panel-sub-nav.js +1 -1
  181. package/dist/components/ds-panel-tool-header.js +1 -1
  182. package/dist/components/ds-panel-tool-search.js +1 -1
  183. package/dist/components/ds-panel-tools.js +1 -1
  184. package/dist/components/ds-radio-tile.js +1 -1
  185. package/dist/components/ds-radio-tile.js.map +1 -1
  186. package/dist/components/ds-radio.js +1 -1
  187. package/dist/components/ds-scroll-overlay.js +1 -1
  188. package/dist/components/ds-scroll-overlay.js.map +1 -1
  189. package/dist/components/ds-select.js +1 -1
  190. package/dist/components/ds-setting-row-toggle.js +1 -1
  191. package/dist/components/ds-shell-app.js +1 -1
  192. package/dist/components/ds-shell-app.js.map +1 -1
  193. package/dist/components/ds-shell-page.js +1 -1
  194. package/dist/components/ds-shell-tools.js +1 -1
  195. package/dist/components/ds-slider.js +1 -1
  196. package/dist/components/ds-slider.js.map +1 -1
  197. package/dist/components/ds-switch.js +1 -1
  198. package/dist/components/ds-tab-group.js +1 -1
  199. package/dist/components/ds-table.js +1 -1
  200. package/dist/components/ds-table.js.map +1 -1
  201. package/dist/components/ds-tag.js +1 -1
  202. package/dist/components/ds-textarea.js +1 -1
  203. package/dist/components/ds-textarea.js.map +1 -1
  204. package/dist/components/ds-time-picker.js +1 -1
  205. package/dist/components/ds-toast.js +1 -1
  206. package/dist/components/ds-tooltip-chart.js +1 -1
  207. package/dist/components/ds-tooltip.js +1 -1
  208. package/dist/components/p--STJbKuN.js +2 -0
  209. package/dist/components/p--STJbKuN.js.map +1 -0
  210. package/dist/components/{p-Co1rUdOR.js → p--pJyciTI.js} +2 -2
  211. package/dist/components/p--pJyciTI.js.map +1 -0
  212. package/dist/components/p-02k7d7BH.js +2 -0
  213. package/dist/components/p-02k7d7BH.js.map +1 -0
  214. package/dist/components/{p-CZNZTcYS.js → p-5-gQbIIz.js} +2 -2
  215. package/dist/components/{p-DRdoGSGX.js → p-7MwoWtTJ.js} +2 -2
  216. package/dist/components/p-B0uO3-Dp.js +2 -0
  217. package/dist/components/p-B0uO3-Dp.js.map +1 -0
  218. package/dist/components/p-B6TX55c5.js +2 -0
  219. package/dist/components/p-B6TX55c5.js.map +1 -0
  220. package/dist/components/p-B95UP66y.js +2 -0
  221. package/dist/components/p-B95UP66y.js.map +1 -0
  222. package/dist/components/p-BGSG6xIS.js +2 -0
  223. package/dist/components/p-BGSG6xIS.js.map +1 -0
  224. package/dist/components/p-BNarCFJZ.js +2 -0
  225. package/dist/components/p-BNarCFJZ.js.map +1 -0
  226. package/dist/components/{p-DJDbskZf.js → p-BO5URdZF.js} +2 -2
  227. package/dist/components/{p-DmSnHVW6.js → p-BVxK8ce0.js} +2 -2
  228. package/dist/components/{p-B0EpvBDs.js → p-BYeG0b5N.js} +2 -2
  229. package/dist/components/p-BcpIK9S6.js +2 -0
  230. package/dist/components/p-BcpIK9S6.js.map +1 -0
  231. package/dist/components/p-Bf-BphXP.js +2 -0
  232. package/dist/components/p-Bf-BphXP.js.map +1 -0
  233. package/dist/components/{p-Bk3poU91.js → p-BmIllmq2.js} +2 -2
  234. package/dist/components/p-BmIllmq2.js.map +1 -0
  235. package/dist/components/p-Bq_ypMSy.js +2 -0
  236. package/dist/components/p-Bq_ypMSy.js.map +1 -0
  237. package/dist/components/p-ByLH5RAD.js +2 -0
  238. package/dist/components/p-ByLH5RAD.js.map +1 -0
  239. package/dist/components/{p-DzvTC27M.js → p-C1ZfBbJ_.js} +2 -2
  240. package/dist/components/p-C1ZfBbJ_.js.map +1 -0
  241. package/dist/components/p-C1oczmAc.js +2 -0
  242. package/dist/components/p-C1oczmAc.js.map +1 -0
  243. package/dist/components/p-C5BBIDVm.js +2 -0
  244. package/dist/components/p-C5BBIDVm.js.map +1 -0
  245. package/dist/components/{p-CJ1NnOEW.js → p-CA3iQ1ME.js} +2 -2
  246. package/dist/components/p-CE6MaXBg.js +2 -0
  247. package/dist/components/p-CE6MaXBg.js.map +1 -0
  248. package/dist/components/p-CXGjCWSh.js +2 -0
  249. package/dist/components/p-CXGjCWSh.js.map +1 -0
  250. package/dist/components/{p-DYQa1DVF.js → p-C_9VGgPf.js} +2 -2
  251. package/dist/components/p-CbrDF2gA.js +2 -0
  252. package/dist/components/p-CbrDF2gA.js.map +1 -0
  253. package/dist/components/{p-7TVdPhGR.js → p-CgQB8Ct5.js} +2 -2
  254. package/dist/components/{p-D6FRqNhN.js → p-D-J7GgjY.js} +2 -2
  255. package/dist/components/{p-DSZPO06T.js → p-D9_iDlkT.js} +2 -2
  256. package/dist/components/{p-BwdnVqAY.js → p-DEYCF-oJ.js} +2 -2
  257. package/dist/components/p-DGVZhrMd.js +2 -0
  258. package/dist/components/p-DGVZhrMd.js.map +1 -0
  259. package/dist/components/{p-C8V4lkVy.js → p-DKGW3gRa.js} +2 -2
  260. package/dist/components/p-DPFg5d4_.js +2 -0
  261. package/dist/components/p-DPFg5d4_.js.map +1 -0
  262. package/dist/components/{p-C4huuwed.js → p-DR_8IPn9.js} +2 -2
  263. package/dist/components/p-DXL5D30P.js +2 -0
  264. package/dist/components/p-DXL5D30P.js.map +1 -0
  265. package/dist/components/{p-B0BQCVkq.js → p-D_iZPukF.js} +2 -2
  266. package/dist/components/{p-JBki_jyY.js → p-DfMTDFcE.js} +2 -2
  267. package/dist/components/{p-MOJmB6vX.js → p-Dg6hnCc2.js} +2 -2
  268. package/dist/components/{p-DXk1eml1.js → p-DjbT9kKm.js} +2 -2
  269. package/dist/components/p-Dka0lUI_.js +2 -0
  270. package/dist/components/p-Dka0lUI_.js.map +1 -0
  271. package/dist/components/p-DlsjHRU3.js +2 -0
  272. package/dist/components/p-DlsjHRU3.js.map +1 -0
  273. package/dist/components/{p-_IqSPt5V.js → p-Dr5rkAhe.js} +2 -2
  274. package/dist/components/p-DuCCuJKI.js +2 -0
  275. package/dist/components/p-DuCCuJKI.js.map +1 -0
  276. package/dist/components/{p-DIQiHX0q.js → p-DvGrsLgt.js} +2 -2
  277. package/dist/components/{p-Doa2blZT.js → p-PtxCwf5S.js} +2 -2
  278. package/dist/components/p-PzYJqN8B.js +2 -0
  279. package/dist/components/p-PzYJqN8B.js.map +1 -0
  280. package/dist/components/p-S1Ct3FJV.js +2 -0
  281. package/dist/components/p-S1Ct3FJV.js.map +1 -0
  282. package/dist/components/p-YC7UM4jH.js +2 -0
  283. package/dist/components/p-YC7UM4jH.js.map +1 -0
  284. package/dist/components/{p-B9TM6FqC.js → p-d76Ry5nh.js} +2 -2
  285. package/dist/components/p-ioGH5SoA.js +2 -0
  286. package/dist/components/p-ioGH5SoA.js.map +1 -0
  287. package/dist/components/p-jp7hwRtC.js +2 -0
  288. package/dist/components/p-jp7hwRtC.js.map +1 -0
  289. package/dist/components/{p-BFHpU-uU.js → p-kwS-vkau.js} +2 -2
  290. package/dist/components/{p-DjkUFlDW.js → p-pPtjNRqC.js} +3 -2
  291. package/dist/components/p-pPtjNRqC.js.map +1 -0
  292. package/dist/components/{p-B39iJO8F.js → p-rmPIcWED.js} +2 -2
  293. package/dist/components/p-t2Ebn8si.js +2 -0
  294. package/dist/components/p-t2Ebn8si.js.map +1 -0
  295. package/dist/components/p-wRhYxngW.js +2 -0
  296. package/dist/components/p-wRhYxngW.js.map +1 -0
  297. package/dist/docs/components.json +477 -82
  298. package/dist/lib/components/Icon/icon-cache.d.ts +6 -0
  299. package/dist/lib/utils/clock-time.d.ts +1 -0
  300. package/dist/lib/utils/date-filter-value.d.ts +2 -0
  301. package/dist/lib/utils/form-association.d.ts +2 -1
  302. package/dist/lib/utils/format-percentage.d.ts +1 -1
  303. package/dist/lib/utils/index.js +113 -93
  304. package/dist/lib/utils/index.js.map +4 -4
  305. package/dist/lib/utils/intl-formatters.d.ts +3 -0
  306. package/dist/lib/utils/resolve-css-length-px.d.ts +4 -3
  307. package/dist/lint/THIRD-PARTY-NOTICES +97 -40
  308. package/dist/lint/bundled-dependencies.json +162 -0
  309. package/dist/lint/index.js +1341 -1333
  310. package/dist/mcp/THIRD-PARTY-NOTICES +470 -0
  311. package/dist/mcp/bundled-dependencies.json +29 -0
  312. package/dist/mcp-data/registry/agent-tool-call.json +1 -1
  313. package/dist/mcp-data/registry/banner.json +1 -1
  314. package/dist/mcp-data/registry/bar-nav.json +1 -1
  315. package/dist/mcp-data/registry/bar-page-title.json +1 -1
  316. package/dist/mcp-data/registry/breadcrumb.json +1 -1
  317. package/dist/mcp-data/registry/calendar.json +4 -4
  318. package/dist/mcp-data/registry/card-overview.json +1 -1
  319. package/dist/mcp-data/registry/chart.json +3 -3
  320. package/dist/mcp-data/registry/checkbox.json +17 -1
  321. package/dist/mcp-data/registry/conversation-list.json +1 -1
  322. package/dist/mcp-data/registry/data-group.json +1 -1
  323. package/dist/mcp-data/registry/data-preferences.json +1 -1
  324. package/dist/mcp-data/registry/filter-menu.json +1 -1
  325. package/dist/mcp-data/registry/icon.json +6 -5
  326. package/dist/mcp-data/registry/input-date.json +1 -1
  327. package/dist/mcp-data/registry/input-time.json +1 -1
  328. package/dist/mcp-data/registry/markdown.json +1 -1
  329. package/dist/mcp-data/registry/menu.json +1 -1
  330. package/dist/mcp-data/registry/message.json +4 -4
  331. package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
  332. package/dist/mcp-data/registry/modal.json +1 -1
  333. package/dist/mcp-data/registry/panel-nav.json +1 -1
  334. package/dist/mcp-data/registry/radio-tile.json +1 -1
  335. package/dist/mcp-data/registry/radio.json +1 -1
  336. package/dist/mcp-data/registry/registry.json +63 -7
  337. package/dist/mcp-data/registry/scroll-overlay.json +1 -1
  338. package/dist/mcp-data/registry/select.json +70 -3
  339. package/dist/mcp-data/registry/shell-app.json +1 -1
  340. package/dist/mcp-data/registry/slider.json +3 -3
  341. package/dist/mcp-data/registry/switch.json +1 -1
  342. package/dist/mcp-data/registry/table.json +140 -14
  343. package/dist/mcp-data/registry/tooltip-chart.json +1 -1
  344. package/dist/react/ds-table.d.ts +3 -1
  345. package/dist/react/ds-table.js +2 -0
  346. package/dist/styles/table.css +405 -8
  347. package/dist/types/components/AgentToolCall/AgentToolCall.d.ts +3 -0
  348. package/dist/types/components/Banner/Banner.d.ts +1 -0
  349. package/dist/types/components/BarNav/BarNav.d.ts +4 -0
  350. package/dist/types/components/BarPageTitle/BarPageTitle.d.ts +4 -0
  351. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts +5 -0
  352. package/dist/types/components/Calendar/Calendar.d.ts +2 -0
  353. package/dist/types/components/CardOverview/CardOverview.d.ts +3 -0
  354. package/dist/types/components/Chart/Chart.d.ts +7 -1
  355. package/dist/types/components/Checkbox/Checkbox.d.ts +3 -0
  356. package/dist/types/components/ConversationList/ConversationList.d.ts +3 -0
  357. package/dist/types/components/DataGroup/DataGroup.d.ts +3 -0
  358. package/dist/types/components/DataPreferences/DataPreferences.d.ts +1 -0
  359. package/dist/types/components/FilterMenu/FilterMenu.d.ts +1 -0
  360. package/dist/types/components/Icon/icon-cache.d.ts +6 -0
  361. package/dist/types/components/Icon/icon-svg.d.ts +10 -24
  362. package/dist/types/components/Markdown/Markdown.d.ts +4 -0
  363. package/dist/types/components/Menu/Menu.d.ts +3 -0
  364. package/dist/types/components/Message/Message.d.ts +1 -1
  365. package/dist/types/components/MobileSectionSwitcher/MobileSectionSwitcher.d.ts +5 -0
  366. package/dist/types/components/Modal/Modal.d.ts +3 -0
  367. package/dist/types/components/PanelNav/PanelNav.d.ts +8 -1
  368. package/dist/types/components/Radio/Radio.d.ts +1 -0
  369. package/dist/types/components/ScrollOverlay/ScrollOverlay.d.ts +1 -0
  370. package/dist/types/components/Select/Select.d.ts +8 -0
  371. package/dist/types/components/ShellApp/ShellApp.d.ts +3 -0
  372. package/dist/types/components/Slider/Slider.d.ts +1 -1
  373. package/dist/types/components/Switch/Switch.d.ts +2 -0
  374. package/dist/types/components/Table/Table.d.ts +35 -0
  375. package/dist/types/components/Table/index.d.ts +1 -1
  376. package/dist/types/components/Table/table-body-renderer.d.ts +1 -0
  377. package/dist/types/components/Table/table-cell-editor.d.ts +4 -0
  378. package/dist/types/components/Table/table-grid-model.d.ts +23 -0
  379. package/dist/types/components/Table/table-layout-controller.d.ts +1 -0
  380. package/dist/types/components/Table/table-model.d.ts +1 -1
  381. package/dist/types/components/Table/table-review-fixtures.d.ts +10 -0
  382. package/dist/types/components/Table/table-row-view.d.ts +11 -2
  383. package/dist/types/components/Table/table-skeleton-view.d.ts +3 -1
  384. package/dist/types/components/Table/table-structure.d.ts +38 -0
  385. package/dist/types/components/Table/table-types.d.ts +71 -1
  386. package/dist/types/components/Table/table-virtual-controller.d.ts +1 -0
  387. package/dist/types/components/TooltipChart/TooltipChart.d.ts +4 -0
  388. package/dist/types/components.d.ts +98 -12
  389. package/dist/types/shell/chrome-transition.d.ts +1 -0
  390. package/dist/types/utils/anchored-position-controller.d.ts +2 -0
  391. package/dist/types/utils/clock-time.d.ts +1 -0
  392. package/dist/types/utils/connection-tasks.d.ts +13 -0
  393. package/dist/types/utils/date-filter-value.d.ts +2 -0
  394. package/dist/types/utils/form-association.d.ts +2 -1
  395. package/dist/types/utils/format-percentage.d.ts +1 -1
  396. package/dist/types/utils/intl-formatters.d.ts +4 -0
  397. package/dist/types/utils/resolve-css-length-px.d.ts +4 -3
  398. package/dist/types/utils/select-controller.d.ts +1 -0
  399. package/dist/vue/THIRD-PARTY-NOTICES +14 -0
  400. package/dist/vue/bundled-dependencies.json +13 -0
  401. package/dist/vue/ds-checkbox.js +1 -0
  402. package/dist/vue/ds-select.js +4 -0
  403. package/dist/vue/ds-table.js +8 -0
  404. package/package.json +16 -11
  405. package/dist/components/p-B8ZonS3S.js +0 -2
  406. package/dist/components/p-B8ZonS3S.js.map +0 -1
  407. package/dist/components/p-BDdlJZyL.js +0 -2
  408. package/dist/components/p-BDdlJZyL.js.map +0 -1
  409. package/dist/components/p-BERXvOCf.js +0 -2
  410. package/dist/components/p-BERXvOCf.js.map +0 -1
  411. package/dist/components/p-BQspV5U7.js +0 -2
  412. package/dist/components/p-BQspV5U7.js.map +0 -1
  413. package/dist/components/p-BhjqYTiY.js +0 -2
  414. package/dist/components/p-BhjqYTiY.js.map +0 -1
  415. package/dist/components/p-BjtXYFhw.js +0 -2
  416. package/dist/components/p-BjtXYFhw.js.map +0 -1
  417. package/dist/components/p-Bk3poU91.js.map +0 -1
  418. package/dist/components/p-BxduVc5g.js +0 -2
  419. package/dist/components/p-BxduVc5g.js.map +0 -1
  420. package/dist/components/p-C0qN3PSb.js +0 -2
  421. package/dist/components/p-C0qN3PSb.js.map +0 -1
  422. package/dist/components/p-CPamUzaj.js +0 -2
  423. package/dist/components/p-CPamUzaj.js.map +0 -1
  424. package/dist/components/p-CUDocY23.js +0 -2
  425. package/dist/components/p-CUDocY23.js.map +0 -1
  426. package/dist/components/p-CX6ZxUQT.js +0 -2
  427. package/dist/components/p-CX6ZxUQT.js.map +0 -1
  428. package/dist/components/p-Cgn-BORA.js +0 -2
  429. package/dist/components/p-Cgn-BORA.js.map +0 -1
  430. package/dist/components/p-Ck1hgD6g.js +0 -2
  431. package/dist/components/p-Ck1hgD6g.js.map +0 -1
  432. package/dist/components/p-Co1rUdOR.js.map +0 -1
  433. package/dist/components/p-CochmPyg.js +0 -2
  434. package/dist/components/p-CochmPyg.js.map +0 -1
  435. package/dist/components/p-DCyJ3_PL.js +0 -2
  436. package/dist/components/p-DCyJ3_PL.js.map +0 -1
  437. package/dist/components/p-DVEx-Xg9.js +0 -2
  438. package/dist/components/p-DVEx-Xg9.js.map +0 -1
  439. package/dist/components/p-DYsE6HLk.js +0 -2
  440. package/dist/components/p-DYsE6HLk.js.map +0 -1
  441. package/dist/components/p-DebLYW7A.js +0 -2
  442. package/dist/components/p-DebLYW7A.js.map +0 -1
  443. package/dist/components/p-DjkUFlDW.js.map +0 -1
  444. package/dist/components/p-Dnt5xUBD.js +0 -2
  445. package/dist/components/p-Dnt5xUBD.js.map +0 -1
  446. package/dist/components/p-Dyqd-cub.js +0 -2
  447. package/dist/components/p-Dyqd-cub.js.map +0 -1
  448. package/dist/components/p-DzvTC27M.js.map +0 -1
  449. package/dist/components/p-g0jsfEXz.js +0 -2
  450. package/dist/components/p-g0jsfEXz.js.map +0 -1
  451. package/dist/components/p-pp1IQN4Z.js +0 -2
  452. package/dist/components/p-pp1IQN4Z.js.map +0 -1
  453. package/dist/components/p-rCeztgVn.js +0 -2
  454. package/dist/components/p-rCeztgVn.js.map +0 -1
  455. /package/dist/components/{p-CZNZTcYS.js.map → p-5-gQbIIz.js.map} +0 -0
  456. /package/dist/components/{p-DRdoGSGX.js.map → p-7MwoWtTJ.js.map} +0 -0
  457. /package/dist/components/{p-DJDbskZf.js.map → p-BO5URdZF.js.map} +0 -0
  458. /package/dist/components/{p-DmSnHVW6.js.map → p-BVxK8ce0.js.map} +0 -0
  459. /package/dist/components/{p-B0EpvBDs.js.map → p-BYeG0b5N.js.map} +0 -0
  460. /package/dist/components/{p-CJ1NnOEW.js.map → p-CA3iQ1ME.js.map} +0 -0
  461. /package/dist/components/{p-DYQa1DVF.js.map → p-C_9VGgPf.js.map} +0 -0
  462. /package/dist/components/{p-7TVdPhGR.js.map → p-CgQB8Ct5.js.map} +0 -0
  463. /package/dist/components/{p-D6FRqNhN.js.map → p-D-J7GgjY.js.map} +0 -0
  464. /package/dist/components/{p-DSZPO06T.js.map → p-D9_iDlkT.js.map} +0 -0
  465. /package/dist/components/{p-BwdnVqAY.js.map → p-DEYCF-oJ.js.map} +0 -0
  466. /package/dist/components/{p-C8V4lkVy.js.map → p-DKGW3gRa.js.map} +0 -0
  467. /package/dist/components/{p-C4huuwed.js.map → p-DR_8IPn9.js.map} +0 -0
  468. /package/dist/components/{p-B0BQCVkq.js.map → p-D_iZPukF.js.map} +0 -0
  469. /package/dist/components/{p-JBki_jyY.js.map → p-DfMTDFcE.js.map} +0 -0
  470. /package/dist/components/{p-MOJmB6vX.js.map → p-Dg6hnCc2.js.map} +0 -0
  471. /package/dist/components/{p-DXk1eml1.js.map → p-DjbT9kKm.js.map} +0 -0
  472. /package/dist/components/{p-_IqSPt5V.js.map → p-Dr5rkAhe.js.map} +0 -0
  473. /package/dist/components/{p-DIQiHX0q.js.map → p-DvGrsLgt.js.map} +0 -0
  474. /package/dist/components/{p-Doa2blZT.js.map → p-PtxCwf5S.js.map} +0 -0
  475. /package/dist/components/{p-B9TM6FqC.js.map → p-d76Ry5nh.js.map} +0 -0
  476. /package/dist/components/{p-BFHpU-uU.js.map → p-kwS-vkau.js.map} +0 -0
  477. /package/dist/components/{p-B39iJO8F.js.map → p-rmPIcWED.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{p as i,H as e,c as s,h as t,a as o,t as n}from"./index.js";import{g as r,i as c}from"./p-BQq26pt9.js";import{C as a}from"./p-DlsjHRU3.js";import{d}from"./p-CwdRaJER.js";import{d as l}from"./p-pPtjNRqC.js";import{d as h}from"./p-t2Ebn8si.js";import{d as m}from"./p-B9y6azEw.js";import{d as b}from"./p-Bf-BphXP.js";import{d as f}from"./p-d76Ry5nh.js";import{d as u}from"./p-D8OWhnID.js";import{b as v,T as g}from"./p-CeXf9-X3.js";function w(i,e){const s=r(i);const t=s.findIndex((i=>i.id===e));const o=t>=0?t:0;return{selectedIndex:o,selected:s[o],hasPrevious:o>0,hasNext:o<s.length-1}}const p=()=>`@media (forced-colors: active){.sc-ds-mobile-section-switcher:root,.sc-ds-mobile-section-switcher-h,.ds-forced-colors-scope.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-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-mobile-section-switcher-h,.ds-focus-ring.sc-ds-mobile-section-switcher,.ds-focus-ring-inset.sc-ds-mobile-section-switcher-h,.ds-focus-ring-inset.sc-ds-mobile-section-switcher{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-mobile-section-switcher-h:focus-visible,.ds-focus-ring.sc-ds-mobile-section-switcher: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-mobile-section-switcher-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-mobile-section-switcher{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-mobile-section-switcher-h:focus-visible,.ds-focus-ring-inset.sc-ds-mobile-section-switcher:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-mobile-section-switcher-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-mobile-section-switcher: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-mobile-section-switcher-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-section-switcher{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-section-switcher-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-section-switcher::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-mobile-section-switcher-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-mobile-section-switcher:root,.sc-ds-mobile-section-switcher-h,.ds-forced-colors-scope.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill.sc-ds-mobile-section-switcher{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-mobile-section-switcher-h::before,.ds-interaction-fill.sc-ds-mobile-section-switcher::before,.ds-interaction-fill.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill.sc-ds-mobile-section-switcher::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-mobile-section-switcher-h::before,.ds-interaction-fill.sc-ds-mobile-section-switcher::before{z-index:1}.ds-interaction-fill.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill.sc-ds-mobile-section-switcher::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-mobile-section-switcher-h,.ds-interaction-fill--bordered.sc-ds-mobile-section-switcher{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-mobile-section-switcher-h::before,.ds-interaction-fill--selected.sc-ds-mobile-section-switcher::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--selected.sc-ds-mobile-section-switcher{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-mobile-section-switcher-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-mobile-section-switcher:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-mobile-section-switcher-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-mobile-section-switcher:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h>.ds-interaction-fill__content.sc-ds-mobile-section-switcher,.ds-interaction-fill.sc-ds-mobile-section-switcher>.ds-interaction-fill__content.sc-ds-mobile-section-switcher,.ds-interaction-fill__content.sc-ds-mobile-section-switcher{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-faint.sc-ds-mobile-section-switcher{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-medium.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-bold.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-strong.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-translucent.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-inverted.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-media.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-interaction-fill--on-always-dark.sc-ds-mobile-section-switcher{--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-chrome.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-chrome.sc-ds-mobile-section-switcher{--ds-interaction-hover:var(--color-chrome-interaction-hover);--ds-interaction-pressed:var(--color-chrome-interaction-pressed);--ds-interaction-active:var(--color-chrome-interaction-active);--ds-focus-ring-color:var(--color-chrome-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-navigation.sc-ds-mobile-section-switcher{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-mobile-section-switcher-h:not(:disabled)::after,.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-mobile-section-switcher:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill.sc-ds-mobile-section-switcher::after{box-shadow:none;outline:var(--ds-interaction-border-width) solid var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--ds-interaction-border-width))}.ds-interaction-fill--surface-open.sc-ds-mobile-section-switcher-h:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill--surface-open.sc-ds-mobile-section-switcher:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}.ds-interaction-fill--selected.sc-ds-mobile-section-switcher-h::before,.ds-interaction-fill--selected.sc-ds-mobile-section-switcher::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-mobile-section-switcher-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-mobile-section-switcher: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)}}.sc-ds-mobile-section-switcher-h,.sc-ds-mobile-section-switcher:where(.ds-table),.sc-ds-mobile-section-switcher:where(.tooltip-popup),.sc-ds-mobile-section-switcher:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}.ds-control--lg.sc-ds-mobile-section-switcher,.ds-control--lg.sc-ds-mobile-section-switcher-h,.ds-control--md.sc-ds-mobile-section-switcher-h,.ds-control--md.sc-ds-mobile-section-switcher,.ds-control--sm.sc-ds-mobile-section-switcher-h,.ds-control--sm.sc-ds-mobile-section-switcher,.ds-control--xs.sc-ds-mobile-section-switcher-h,.ds-control--xs.sc-ds-mobile-section-switcher{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-mobile-section-switcher-h,.ds-control--lg.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-control--md.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-control--sm.sc-ds-mobile-section-switcher{--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-mobile-section-switcher-h,.ds-control--xs.sc-ds-mobile-section-switcher{--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}.sc-ds-mobile-section-switcher-h{display:block;min-width:0;max-width:100%;color:var(--color-foreground-primary)}.mobile-section-switcher.sc-ds-mobile-section-switcher{appearance:none;display:grid;grid-template-columns:var(--dimension-size-100) minmax(0, auto) var(--dimension-size-100);align-items:center;justify-content:center;gap:var(--dimension-space-050);max-width:100%;min-height:var(--dimension-size-400);padding-inline:var(--dimension-space-100);border:0;border-radius:var(--dimension-radius-100);background:var(--color-background-secondary);color:inherit;box-sizing:border-box;cursor:default}.mobile-section-switcher__label.sc-ds-mobile-section-switcher{min-width:0;max-width:100%;text-align:center}.mobile-section-switcher__position.sc-ds-mobile-section-switcher{width:var(--dimension-size-050);height:var(--dimension-size-050);border-radius:var(--dimension-radius-half);background:currentColor;opacity:0}.mobile-section-switcher__position--visible.sc-ds-mobile-section-switcher{opacity:1}.mobile-section-switcher--sheet.sc-ds-mobile-section-switcher{grid-template-columns:minmax(0, auto);min-height:var(--dimension-size-500);padding-inline:var(--dimension-space-150);border-radius:var(--dimension-radius-half);background:transparent;--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-tertiary)}.mobile-section-switcher--combined.sc-ds-mobile-section-switcher{display:flex}.mobile-section-switcher__page-label.sc-ds-mobile-section-switcher{flex:0 1 auto;min-width:0}.mobile-section-switcher__separator.sc-ds-mobile-section-switcher{flex:0 0 auto}.mobile-section-switcher--combined.sc-ds-mobile-section-switcher .mobile-section-switcher__label.sc-ds-mobile-section-switcher{flex:0 0 auto;max-width:50%}.mobile-section-sheet.sc-ds-mobile-section-switcher{position:fixed;inset:0 0 auto;width:100%;max-width:none;max-height:calc(100dvh - var(--dimension-size-500) - var(--dimension-space-200));margin:0;padding:0;border:0;border-radius:0;box-sizing:border-box;overflow:visible;background:transparent;color:var(--color-foreground-secondary);outline:none}.mobile-section-sheet[open].sc-ds-mobile-section-switcher{display:flex;flex-direction:column}.mobile-section-sheet[open].sc-ds-mobile-section-switcher .mobile-section-sheet__items.sc-ds-mobile-section-switcher{animation:mobileSectionSheetIn var(--effect-motion-short-2) both}.mobile-section-sheet.sc-ds-mobile-section-switcher::backdrop{background:var(--color-background-shade);animation:mobileSectionShadeIn var(--effect-motion-short-2) both}.mobile-section-sheet--closing[open].sc-ds-mobile-section-switcher .mobile-section-sheet__items.sc-ds-mobile-section-switcher{animation-name:mobileSectionSheetOut}.mobile-section-sheet--closing.sc-ds-mobile-section-switcher::backdrop{animation-name:mobileSectionShadeOut}.mobile-section-sheet__items.sc-ds-mobile-section-switcher{display:flex;flex-direction:column;gap:var(--dimension-space-100);min-height:0;max-height:inherit;box-sizing:border-box;background:var(--color-background-primary);box-shadow:var(--effect-elevation-elevated-floating);padding:var(--dimension-space-100);padding-block-start:max(var(--dimension-space-100), env(safe-area-inset-top, 0px));overflow-y:auto;overscroll-behavior:contain}.mobile-section-sheet__item.sc-ds-mobile-section-switcher{appearance:none;flex:0 0 auto;display:flex;align-items:center;height:var(--ds-control-height);width:100%;min-width:0;padding:0 var(--ds-control-padding-inline);box-sizing:border-box;border:0;border-radius:var(--ds-control-radius);background:transparent;color:inherit;text-align:start}.mobile-section-sheet__item[aria-current='page'].sc-ds-mobile-section-switcher{color:var(--color-foreground-primary)}.mobile-section-sheet__item.sc-ds-mobile-section-switcher:disabled{color:var(--color-foreground-tertiary)}.mobile-section-sheet__label.sc-ds-mobile-section-switcher{min-width:0;padding-inline:var(--ds-control-label-inset)}.mobile-section-sheet__divider.sc-ds-mobile-section-switcher{flex:0 0 auto;height:var(--dimension-stroke-width-012);margin-inline:var(--dimension-space-100);background:var(--color-border-tertiary)}@keyframes mobileSectionSheetIn{from{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes mobileSectionSheetOut{from{transform:translateY(0)}to{transform:translateY(-100%)}}@keyframes mobileSectionShadeIn{from{opacity:0}to{opacity:1}}@keyframes mobileSectionShadeOut{from{opacity:1}to{opacity:0}}.mobile-section-switcher--pointer-focus.sc-ds-mobile-section-switcher-h .ds-focus-ring-inset.sc-ds-mobile-section-switcher::after{outline:none}.mobile-section-sheet__browser-edge.sc-ds-mobile-section-switcher{position:fixed;inset:auto 0 0;height:max(var(--dimension-space-200), env(safe-area-inset-bottom, 0px));pointer-events:none;color:var(--color-background-primary);background-color:var(--_mobile-section-edge-color, var(--color-background-primary))}.mobile-section-sheet[open].sc-ds-mobile-section-switcher .mobile-section-sheet__browser-edge.sc-ds-mobile-section-switcher{animation:mobileSectionEdgeIn var(--effect-motion-short-2) both}.mobile-section-sheet--closing[open].sc-ds-mobile-section-switcher .mobile-section-sheet__browser-edge.sc-ds-mobile-section-switcher{animation-name:mobileSectionEdgeOut}@keyframes mobileSectionEdgeIn{from{background-color:var(--color-background-primary)}to{background-color:var(--_mobile-section-edge-color, var(--color-background-primary))}}@keyframes mobileSectionEdgeOut{from{background-color:var(--_mobile-section-edge-color, var(--color-background-primary))}to{background-color:var(--color-background-primary)}}@media (prefers-reduced-motion: reduce){.mobile-section-sheet[open].sc-ds-mobile-section-switcher .mobile-section-sheet__items.sc-ds-mobile-section-switcher,.mobile-section-sheet[open].sc-ds-mobile-section-switcher .mobile-section-sheet__browser-edge.sc-ds-mobile-section-switcher,.mobile-section-sheet.sc-ds-mobile-section-switcher::backdrop{animation:none}}`;let x=0;const k=i(class i extends e{constructor(i){super();if(i!==false){this.__registerHost()}this.dsChange=s(this,"dsChange",7);this.sections=[];this.value="";this.navigationLabel="Change page section";this.presentation="menu";this.pageLabel="";this.menuOpen=false;this.menuSurfaceOpen=false;this.initialFocusVisible=false;this.pointerFocus=false;this.sheetClosing=false;this.focusedSection="";this.instanceId=x++;this.triggerId=`ds-mobile-section-switcher-trigger-${this.instanceId}`;this.menuId=`ds-mobile-section-switcher-menu-${this.instanceId}`;this.triggerEl=null;this.dialogEl=null;this.browserEdgeEl=null;this.browserEdgeColors="";this.closeTimer=null;this.loaded=false;this.tasks=new a((()=>this.el.isConnected));this.handleDocumentKeyDown=i=>{if(["Shift","Control","Alt","Meta"].includes(i.key))return;this.pointerFocus=false};this.updateBrowserEdgeColor=()=>{if(!this.el.isConnected||!this.browserEdgeEl||!this.dialogEl)return;const i=getComputedStyle(this.browserEdgeEl).color;const e=getComputedStyle(this.dialogEl,"::backdrop").backgroundColor;const s=`${i}|${e}`;if(s===this.browserEdgeColors)return;const t=this.el.ownerDocument.createElement("canvas");t.width=t.height=1;const o=t.getContext("2d");if(!o)return;o.fillStyle=i;o.fillRect(0,0,1,1);o.fillStyle=e;o.fillRect(0,0,1,1);const[n,r,c]=o.getImageData(0,0,1,1).data;this.browserEdgeEl.style.setProperty("--_mobile-section-edge-color",`rgb(${n}, ${r}, ${c})`);this.browserEdgeColors=s};this.handleSheetKeyDown=i=>{if(i.key==="Escape"){i.preventDefault();i.stopPropagation();this.closeMenu();return}const e=this.selectableSections.filter((i=>!i.isInactive));if(!e.length)return;const s=Math.max(0,e.findIndex((i=>i.id===this.focusedSection)));let t;if(i.key==="ArrowDown")t=(s+1)%e.length;else if(i.key==="ArrowUp")t=(s+e.length-1)%e.length;else if(i.key==="Home")t=0;else if(i.key==="End")t=e.length-1;else if(i.key==="Tab")t=s;else if(i.key.length===1&&!i.ctrlKey&&!i.metaKey&&!i.altKey&&i.key!==" "){const o=e.findIndex(((t,o)=>e[(s+o+1)%e.length].label.toLowerCase().startsWith(i.key.toLowerCase())));if(o<0)return;t=(s+o+1)%e.length}else return;i.preventDefault();this.initialFocusVisible=true;this.focusSheetItem(e[t].id)};this.toggleMenu=i=>{if(this.selectableSections.length<=1)return;this.initialFocusVisible=i.detail===0;if(this.presentation==="sheet"){if(this.menuOpen)this.closeMenu();else{this.focusedSection=this.selectedSection?.id??"";this.menuOpen=true}return}this.menuOpen=!this.menuOpen;if(this.menuOpen)this.menuSurfaceOpen=true};this.closeMenu=()=>{this.menuOpen=false;if(this.dialogEl?.open)this.sheetClosing=true};this.handleSelect=i=>{const e=String(i.detail.value??"");const s=this.selectableSections.find((i=>i.id===e));if(!s||s.isInactive)return;this.closeMenu();if(e!==this.selectedSection?.id)this.dsChange.emit(e);this.tasks.frame((()=>this.triggerEl?.focus()))}}componentDidLoad(){this.loaded=true;this.connectResources()}connectedCallback(){if(this.loaded)this.connectResources()}connectResources(){if(!this.el.isConnected||this.boundDocument)return;this.boundDocument=this.el.ownerDocument;this.boundDocument.addEventListener("keydown",this.handleDocumentKeyDown,true);this.visibilityObserver=new ResizeObserver(this.tasks.guard((()=>{if(this.dialogEl?.open&&!this.triggerEl?.getClientRects().length){this.finishSheetClose(false)}})));this.visibilityObserver.observe(this.el)}componentDidRender(){if(!this.el.isConnected||!this.dialogEl)return;if(this.presentation==="sheet"&&this.menuOpen&&!this.dialogEl.open){const i=this.focusedSection;this.updateBrowserEdgeColor();this.observeBrowserEdgeTheme();this.dialogEl.showModal();this.focusSheetItem(i)}if(this.sheetClosing&&this.dialogEl.open&&!this.closeTimer){const i=v(g.motionShort2,g.animationDurationShort3);if(!i)this.finishSheetClose();else this.closeTimer=setTimeout((()=>this.finishSheetClose()),i)}}disconnectedCallback(){this.tasks.cancel();this.boundDocument?.removeEventListener("keydown",this.handleDocumentKeyDown,true);this.boundDocument=undefined;this.visibilityObserver?.disconnect();this.visibilityObserver=undefined;this.pointerFocus=false;this.menuSurfaceOpen=false;this.finishSheetClose(false)}handlePresentationChange(){this.menuSurfaceOpen=false;this.closeMenu()}handleContextChange(){this.closeMenu()}finishSheetClose(i=true){if(this.closeTimer)clearTimeout(this.closeTimer);this.closeTimer=null;const e=this.dialogEl?.open;this.dialogEl?.close();this.themeObserver?.disconnect();this.menuOpen=false;this.sheetClosing=false;if(e&&i&&this.triggerEl?.getClientRects().length)this.triggerEl.focus()}observeBrowserEdgeTheme(){this.themeObserver??(this.themeObserver=new MutationObserver(this.updateBrowserEdgeColor));for(let i=this.el;i;i=i.parentElement){this.themeObserver.observe(i,{attributes:true,attributeFilter:["class","style","data-theme"]})}}focusSheetItem(i){const e=Array.from(this.dialogEl?.querySelectorAll("button")??[]);const s=e.find((e=>e.value===i&&!e.disabled))??e.find((i=>!i.disabled));if(s){this.focusedSection=s.value;s.focus()}else this.dialogEl?.focus()}get resolvedSections(){return this.sections??[]}get selectableSections(){return r(this.resolvedSections)}get selectedIndex(){return w(this.resolvedSections,this.value).selectedIndex}get selectedSection(){return this.selectableSections[this.selectedIndex]}get hasPrevious(){return w(this.resolvedSections,this.value).hasPrevious}get hasNext(){return w(this.resolvedSections,this.value).hasNext}get triggerAriaLabel(){return`${this.presentation==="sheet"&&this.pageLabel?`${this.pageLabel}. `:""}${this.navigationLabel}. Current section: ${this.selectedSection?.label??""}`}get menuSections(){const i=[];let e=[];const s=()=>{if(e.length)i.push({items:e});e=[]};for(const i of this.resolvedSections){if(c(i)){s();continue}e.push({label:i.label,value:i.id,dot:i.dot,isSelected:i.id===this.selectedSection?.id,isInactive:i.isInactive})}s();return i}handleSectionsChange(){if(this.selectableSections.length<=1){this.closeMenu();this.menuSurfaceOpen=false}else if(this.dialogEl?.open&&!this.sheetClosing){this.tasks.frame((()=>{if(this.dialogEl?.open&&!this.sheetClosing)this.focusSheetItem(this.focusedSection)}))}}renderSheet(){return t("dialog",{id:this.menuId,ref:i=>{this.dialogEl=i??null},class:{"mobile-section-sheet":true,"mobile-section-sheet--closing":this.sheetClosing},"aria-label":this.navigationLabel,tabIndex:-1,onCancel:i=>{i.preventDefault();this.closeMenu()},onKeyDown:this.handleSheetKeyDown,onClick:i=>{if(!this.dialogEl||i.target!==this.dialogEl)return;const e=this.dialogEl.getBoundingClientRect();if(i.clientY<e.top||i.clientY>e.bottom||i.clientX<e.left||i.clientX>e.right)this.closeMenu()}},t("div",{class:"mobile-section-sheet__items",role:"menu","aria-label":this.navigationLabel},this.resolvedSections.map((i=>c(i)?t("div",{class:"mobile-section-sheet__divider",role:"separator"}):t("button",{type:"button",role:"menuitem",value:i.id,disabled:i.isInactive,"aria-current":i.id===this.selectedSection?.id?"page":undefined,tabIndex:i.id===this.focusedSection?0:-1,class:{"mobile-section-sheet__item":true,"ds-control--lg":true,"ds-interaction-fill":true,"ds-focus-ring-inset":true,"ds-focus-ring--visible":this.initialFocusVisible&&i.id===this.focusedSection},onFocus:()=>{this.focusedSection=i.id},onClick:()=>{if(this.sheetClosing||i.isInactive)return;this.closeMenu();if(i.id!==this.selectedSection?.id)this.dsChange.emit(i.id)}},t("ds-text",{class:"mobile-section-sheet__label ds-interaction-fill__content",as:"span",variant:"text-body-large",color:"inherit",emphasis:i.id===this.selectedSection?.id,lineTruncation:1},i.label))))),t("div",{ref:i=>{if(this.browserEdgeEl!==i)this.browserEdgeColors="";this.browserEdgeEl=i??null},class:"mobile-section-sheet__browser-edge","aria-hidden":"true"}))}render(){const i=this.selectedSection;if(!i)return t(o,null);const e=this.presentation==="sheet"&&!!this.pageLabel;return t(o,{class:{"mobile-section-switcher--pointer-focus":this.pointerFocus},onPointerDown:()=>{this.pointerFocus=true;this.initialFocusVisible=false}},t("button",{ref:i=>{this.triggerEl=i??null},id:this.triggerId,class:{"mobile-section-switcher":true,"mobile-section-switcher--expanded":this.menuOpen,"ds-interaction-fill--surface-open":this.menuSurfaceOpen||this.menuOpen||this.sheetClosing,"mobile-section-switcher--sheet":this.presentation==="sheet","mobile-section-switcher--combined":e,"ds-focus-ring-inset":true,"ds-interaction-fill":true},type:"button","aria-haspopup":this.presentation==="sheet"?"dialog":"menu","aria-controls":this.menuId,"aria-expanded":String(this.menuOpen),"aria-label":this.triggerAriaLabel,onClick:this.toggleMenu},this.presentation==="menu"?t("span",{class:{"mobile-section-switcher__position":true,"mobile-section-switcher__position--visible":this.hasPrevious,"ds-interaction-fill__content":true},"aria-hidden":"true"}):null,e?[t("ds-text",{class:"mobile-section-switcher__page-label ds-interaction-fill__content",as:"span",variant:"text-body-large",emphasis:true,color:"inherit",lineTruncation:1},this.pageLabel),t("ds-text",{class:"mobile-section-switcher__separator ds-interaction-fill__content",as:"span",variant:"text-body-large",color:"inherit","aria-hidden":"true"},"·")]:null,t("ds-text",{class:"mobile-section-switcher__label ds-interaction-fill__content",as:"span",variant:this.presentation==="sheet"?"text-body-large":"text-body-medium",emphasis:true,color:"inherit",lineTruncation:1},i.label),this.presentation==="menu"?t("span",{class:{"mobile-section-switcher__position":true,"mobile-section-switcher__position--visible":this.hasNext,"ds-interaction-fill__content":true},"aria-hidden":"true"}):null),this.presentation==="sheet"||this.sheetClosing?this.renderSheet():this.selectableSections.length>1?t("ds-menu",{id:this.menuId,anchorId:this.triggerId,align:"center",menuLabel:this.navigationLabel,open:this.menuOpen,initialFocusVisible:this.initialFocusVisible,sections:this.menuSections,onDsClose:this.closeMenu,onDsAfterClose:()=>{if(!this.menuOpen)this.menuSurfaceOpen=false},onDsSelect:this.handleSelect}):null)}get el(){return this}static get watchers(){return{presentation:[{handlePresentationChange:0}],value:[{handleContextChange:0}],pageLabel:[{handleContextChange:0}],sections:[{handleSectionsChange:0}]}}static get style(){return p()}},[2,"ds-mobile-section-switcher",{sections:[16],value:[1],navigationLabel:[1,"navigation-label"],presentation:[1],pageLabel:[1,"page-label"],menuOpen:[32],menuSurfaceOpen:[32],initialFocusVisible:[32],pointerFocus:[32],sheetClosing:[32],focusedSection:[32]},undefined,{presentation:[{handlePresentationChange:0}],value:[{handleContextChange:0}],pageLabel:[{handleContextChange:0}],sections:[{handleSectionsChange:0}]}]);function _(){if(typeof customElements==="undefined"){return}const i=["ds-mobile-section-switcher","ds-badge","ds-icon","ds-menu","ds-swatch-picker","ds-switch","ds-tag","ds-text"];i.forEach((i=>{switch(i){case"ds-mobile-section-switcher":if(!customElements.get(n(i))){customElements.define(n(i),k)}break;case"ds-badge":if(!customElements.get(n(i))){d()}break;case"ds-icon":if(!customElements.get(n(i))){l()}break;case"ds-menu":if(!customElements.get(n(i))){h()}break;case"ds-swatch-picker":if(!customElements.get(n(i))){m()}break;case"ds-switch":if(!customElements.get(n(i))){b()}break;case"ds-tag":if(!customElements.get(n(i))){f()}break;case"ds-text":if(!customElements.get(n(i))){u()}break}}))}_();export{k as M,_ as d};
2
+ //# sourceMappingURL=p-C5BBIDVm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["resolveMobileSectionPosition","sections","value","selectable","getSelectableTabs","matchedIndex","findIndex","section","id","selectedIndex","selected","hasPrevious","hasNext","length","mobileSectionSwitcherCss","nextMobileSectionSwitcherId","MobileSectionSwitcher","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","navigationLabel","presentation","pageLabel","menuOpen","menuSurfaceOpen","initialFocusVisible","pointerFocus","sheetClosing","focusedSection","instanceId","triggerId","menuId","triggerEl","dialogEl","browserEdgeEl","browserEdgeColors","closeTimer","loaded","tasks","ConnectionTasks","el","isConnected","handleDocumentKeyDown","event","includes","key","updateBrowserEdgeColor","base","getComputedStyle","color","shade","backgroundColor","colors","canvas","ownerDocument","createElement","width","height","context","getContext","fillStyle","fillRect","red","green","blue","getImageData","data","style","setProperty","handleSheetKeyDown","preventDefault","stopPropagation","closeMenu","selectableSections","filter","isInactive","index","Math","max","next","ctrlKey","metaKey","altKey","match","_","offset","label","toLowerCase","startsWith","focusSheetItem","toggleMenu","detail","selectedSection","open","handleSelect","String","find","candidate","dsChange","emit","frame","focus","componentDidLoad","connectResources","connectedCallback","boundDocument","addEventListener","visibilityObserver","ResizeObserver","guard","getClientRects","finishSheetClose","observe","componentDidRender","initialSection","observeBrowserEdgeTheme","showModal","duration","resolveMotionTimeMs","TOKEN_DEFAULTS","motionShort2","animationDurationShort3","setTimeout","disconnectedCallback","cancel","removeEventListener","undefined","disconnect","handlePresentationChange","handleContextChange","restoreFocus","clearTimeout","wasOpen","close","themeObserver","MutationObserver","ancestor","parentElement","attributes","attributeFilter","buttons","Array","from","querySelectorAll","button","item","disabled","resolvedSections","triggerAriaLabel","menuSections","groups","items","commit","push","isTabDivider","dot","isSelected","handleSectionsChange","renderSheet","h","ref","element","class","tabIndex","onCancel","onKeyDown","onClick","target","rect","getBoundingClientRect","clientY","top","bottom","clientX","left","right","role","map","type","onFocus","as","variant","emphasis","lineTruncation","render","Host","combined","onPointerDown","anchorId","align","menuLabel","onDsClose","onDsAfterClose","onDsSelect"],"sources":["src/wc/components/MobileSectionSwitcher/mobile-section-switcher-utils.ts","src/wc/components/MobileSectionSwitcher/MobileSectionSwitcher.css?tag=ds-mobile-section-switcher&encapsulation=scoped","src/wc/components/MobileSectionSwitcher/MobileSectionSwitcher.tsx"],"sourcesContent":["import { getSelectableTabs, type TabItem, type TabItemTab } from '../TabGroup/tab-item-utils';\n\nexport interface MobileSectionPosition {\n selectedIndex: number;\n selected?: TabItemTab;\n hasPrevious: boolean;\n hasNext: boolean;\n}\n\n/** Resolve ordered selectable neighbors while ignoring visual divider entries. */\nexport function resolveMobileSectionPosition(\n sections: TabItem[],\n value: string\n): MobileSectionPosition {\n const selectable = getSelectableTabs(sections);\n const matchedIndex = selectable.findIndex(section => section.id === value);\n const selectedIndex = matchedIndex >= 0 ? matchedIndex : 0;\n return {\n selectedIndex,\n selected: selectable[selectedIndex],\n hasPrevious: selectedIndex > 0,\n hasNext: selectedIndex < selectable.length - 1,\n };\n}\n","@import '../../utils/focus-ring.css';\n@import '../../utils/interaction-fill.css';\n@import '../../utils/radius.css';\n@import '../../utils/control-density.css';\n\n:host {\n display: block;\n min-width: 0;\n max-width: 100%;\n color: var(--color-foreground-primary);\n}\n\n.mobile-section-switcher {\n appearance: none;\n display: grid;\n grid-template-columns: var(--dimension-size-100) minmax(0, auto) var(--dimension-size-100);\n align-items: center;\n justify-content: center;\n gap: var(--dimension-space-050);\n max-width: 100%;\n min-height: var(--dimension-size-400);\n padding-inline: var(--dimension-space-100);\n border: 0;\n border-radius: var(--dimension-radius-100);\n background: var(--color-background-secondary);\n color: inherit;\n box-sizing: border-box;\n cursor: default;\n}\n\n.mobile-section-switcher__label {\n min-width: 0;\n max-width: 100%;\n text-align: center;\n}\n\n.mobile-section-switcher__position {\n width: var(--dimension-size-050);\n height: var(--dimension-size-050);\n border-radius: var(--dimension-radius-half);\n background: currentColor;\n opacity: 0;\n}\n\n.mobile-section-switcher__position--visible {\n opacity: 1;\n}\n\n.mobile-section-switcher--sheet {\n grid-template-columns: minmax(0, auto);\n min-height: var(--dimension-size-500);\n padding-inline: var(--dimension-space-150);\n border-radius: var(--dimension-radius-half);\n background: transparent;\n --ds-interaction-border-width: var(--dimension-stroke-width-012);\n --ds-interaction-border-color: var(--color-border-tertiary);\n}\n\n.mobile-section-switcher--combined {\n display: flex;\n}\n\n.mobile-section-switcher__page-label {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n.mobile-section-switcher__separator {\n flex: 0 0 auto;\n}\n\n.mobile-section-switcher--combined .mobile-section-switcher__label {\n flex: 0 0 auto;\n max-width: 50%;\n}\n\n.mobile-section-sheet {\n position: fixed;\n inset: 0 0 auto;\n width: 100%;\n max-width: none;\n max-height: calc(100dvh - var(--dimension-size-500) - var(--dimension-space-200));\n margin: 0;\n padding: 0;\n border: 0;\n border-radius: 0;\n box-sizing: border-box;\n overflow: visible;\n background: transparent;\n color: var(--color-foreground-secondary);\n outline: none;\n}\n\n.mobile-section-sheet[open] {\n display: flex;\n flex-direction: column;\n}\n\n.mobile-section-sheet[open] .mobile-section-sheet__items {\n animation: mobileSectionSheetIn var(--effect-motion-short-2) both;\n}\n\n.mobile-section-sheet::backdrop {\n background: var(--color-background-shade);\n animation: mobileSectionShadeIn var(--effect-motion-short-2) both;\n}\n\n.mobile-section-sheet--closing[open] .mobile-section-sheet__items {\n animation-name: mobileSectionSheetOut;\n}\n\n.mobile-section-sheet--closing::backdrop {\n animation-name: mobileSectionShadeOut;\n}\n\n.mobile-section-sheet__items {\n display: flex;\n flex-direction: column;\n gap: var(--dimension-space-100);\n min-height: 0;\n max-height: inherit;\n box-sizing: border-box;\n background: var(--color-background-primary);\n box-shadow: var(--effect-elevation-elevated-floating);\n padding: var(--dimension-space-100);\n padding-block-start: max(var(--dimension-space-100), env(safe-area-inset-top, 0px));\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n\n.mobile-section-sheet__item {\n appearance: none;\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n height: var(--ds-control-height);\n width: 100%;\n min-width: 0;\n padding: 0 var(--ds-control-padding-inline);\n box-sizing: border-box;\n border: 0;\n border-radius: var(--ds-control-radius);\n background: transparent;\n color: inherit;\n text-align: start;\n}\n\n.mobile-section-sheet__item[aria-current='page'] {\n color: var(--color-foreground-primary);\n}\n\n.mobile-section-sheet__item:disabled {\n color: var(--color-foreground-tertiary);\n}\n\n.mobile-section-sheet__label {\n min-width: 0;\n padding-inline: var(--ds-control-label-inset);\n}\n\n.mobile-section-sheet__divider {\n flex: 0 0 auto;\n height: var(--dimension-stroke-width-012);\n margin-inline: var(--dimension-space-100);\n background: var(--color-border-tertiary);\n}\n\n@keyframes mobileSectionSheetIn {\n from {\n transform: translateY(-100%);\n }\n to {\n transform: translateY(0);\n }\n}\n\n@keyframes mobileSectionSheetOut {\n from {\n transform: translateY(0);\n }\n to {\n transform: translateY(-100%);\n }\n}\n\n@keyframes mobileSectionShadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes mobileSectionShadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n/* Safari can preserve :focus-visible across modal entry and focus return after\n * a tap. Track the actual input, while leaving focus and keyboard access intact. */\n:host(.mobile-section-switcher--pointer-focus) .ds-focus-ring-inset::after {\n outline: none;\n}\n\n/* Keep this opaque strip in the modal top layer, outside the moving sheet.\n * Safari samples fixed edge backgrounds to tint its browser controls. */\n.mobile-section-sheet__browser-edge {\n position: fixed;\n inset: auto 0 0;\n height: max(var(--dimension-space-200), env(safe-area-inset-bottom, 0px));\n pointer-events: none;\n color: var(--color-background-primary);\n background-color: var(--_mobile-section-edge-color, var(--color-background-primary));\n}\n\n.mobile-section-sheet[open] .mobile-section-sheet__browser-edge {\n animation: mobileSectionEdgeIn var(--effect-motion-short-2) both;\n}\n\n.mobile-section-sheet--closing[open] .mobile-section-sheet__browser-edge {\n animation-name: mobileSectionEdgeOut;\n}\n\n/* Animate the opaque color, not opacity: the backdrop is already fading below. */\n@keyframes mobileSectionEdgeIn {\n from {\n background-color: var(--color-background-primary);\n }\n to {\n background-color: var(--_mobile-section-edge-color, var(--color-background-primary));\n }\n}\n\n@keyframes mobileSectionEdgeOut {\n from {\n background-color: var(--_mobile-section-edge-color, var(--color-background-primary));\n }\n to {\n background-color: var(--color-background-primary);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .mobile-section-sheet[open] .mobile-section-sheet__items,\n .mobile-section-sheet[open] .mobile-section-sheet__browser-edge,\n .mobile-section-sheet::backdrop {\n animation: none;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport type { MenuItemData, MenuSection } from '../Menu/menu-types';\nimport {\n getSelectableTabs,\n isTabDivider,\n type TabItem,\n type TabItemTab,\n} from '../TabGroup/tab-item-utils';\nimport { resolveMobileSectionPosition } from './mobile-section-switcher-utils';\nimport { resolveMotionTimeMs, TOKEN_DEFAULTS } from '../../utils';\nimport { ConnectionTasks } from '../../utils/connection-tasks';\n\nlet nextMobileSectionSwitcherId = 0;\n\n@Component({\n tag: 'ds-mobile-section-switcher',\n styleUrl: 'MobileSectionSwitcher.css',\n scoped: true,\n})\nexport class MobileSectionSwitcher {\n @Element() el!: HTMLElement;\n\n /** Ordered controlled sections. Divider entries group the popup menu. */\n @Prop() sections: TabItem[] = [];\n /** Controlled selected section id. */\n @Prop() value: string = '';\n /** Accessible name for the section chooser. */\n @Prop() navigationLabel: string = 'Change page section';\n /** Anchored local-view menu or viewport-edge sheet for primary page sections. */\n @Prop() presentation: 'menu' | 'sheet' = 'menu';\n /** Stable page identity shown before the selected section in a sheet trigger. */\n @Prop() pageLabel: string = '';\n\n /** Selection intent. The route, tool, or workflow owner updates `value`. */\n @Event() dsChange!: EventEmitter<string>;\n\n @State() private menuOpen = false;\n @State() private menuSurfaceOpen = false;\n @State() private initialFocusVisible = false;\n @State() private pointerFocus = false;\n @State() private sheetClosing = false;\n @State() private focusedSection = '';\n\n private readonly instanceId = nextMobileSectionSwitcherId++;\n private readonly triggerId = `ds-mobile-section-switcher-trigger-${this.instanceId}`;\n private readonly menuId = `ds-mobile-section-switcher-menu-${this.instanceId}`;\n private triggerEl: HTMLButtonElement | null = null;\n private dialogEl: HTMLDialogElement | null = null;\n private browserEdgeEl: HTMLDivElement | null = null;\n private browserEdgeColors = '';\n private themeObserver?: MutationObserver;\n private closeTimer: ReturnType<typeof setTimeout> | null = null;\n private visibilityObserver?: ResizeObserver;\n private loaded = false;\n private boundDocument?: Document;\n private readonly tasks = new ConnectionTasks(() => this.el.isConnected);\n\n private readonly handleDocumentKeyDown = (event: KeyboardEvent) => {\n if (['Shift', 'Control', 'Alt', 'Meta'].includes(event.key)) return;\n this.pointerFocus = false;\n };\n\n componentDidLoad() {\n this.loaded = true;\n this.connectResources();\n }\n\n connectedCallback() {\n if (this.loaded) this.connectResources();\n }\n\n private connectResources() {\n if (!this.el.isConnected || this.boundDocument) return;\n this.boundDocument = this.el.ownerDocument;\n this.boundDocument.addEventListener('keydown', this.handleDocumentKeyDown, true);\n this.visibilityObserver = new ResizeObserver(\n this.tasks.guard(() => {\n if (this.dialogEl?.open && !this.triggerEl?.getClientRects().length) {\n this.finishSheetClose(false);\n }\n })\n );\n this.visibilityObserver.observe(this.el);\n }\n\n componentDidRender() {\n if (!this.el.isConnected || !this.dialogEl) return;\n if (this.presentation === 'sheet' && this.menuOpen && !this.dialogEl.open) {\n const initialSection = this.focusedSection;\n this.updateBrowserEdgeColor();\n this.observeBrowserEdgeTheme();\n this.dialogEl.showModal();\n this.focusSheetItem(initialSection);\n }\n if (this.sheetClosing && this.dialogEl.open && !this.closeTimer) {\n const duration = resolveMotionTimeMs(\n TOKEN_DEFAULTS.motionShort2,\n TOKEN_DEFAULTS.animationDurationShort3\n );\n if (!duration) this.finishSheetClose();\n else this.closeTimer = setTimeout(() => this.finishSheetClose(), duration);\n }\n }\n\n disconnectedCallback() {\n this.tasks.cancel();\n this.boundDocument?.removeEventListener('keydown', this.handleDocumentKeyDown, true);\n this.boundDocument = undefined;\n this.visibilityObserver?.disconnect();\n this.visibilityObserver = undefined;\n this.pointerFocus = false;\n this.menuSurfaceOpen = false;\n this.finishSheetClose(false);\n }\n\n @Watch('presentation')\n handlePresentationChange() {\n this.menuSurfaceOpen = false;\n this.closeMenu();\n }\n\n @Watch('value')\n @Watch('pageLabel')\n handleContextChange() {\n this.closeMenu();\n }\n\n private finishSheetClose(restoreFocus = true) {\n if (this.closeTimer) clearTimeout(this.closeTimer);\n this.closeTimer = null;\n const wasOpen = this.dialogEl?.open;\n this.dialogEl?.close();\n this.themeObserver?.disconnect();\n this.menuOpen = false;\n this.sheetClosing = false;\n if (wasOpen && restoreFocus && this.triggerEl?.getClientRects().length) this.triggerEl.focus();\n }\n\n private updateBrowserEdgeColor = () => {\n if (!this.el.isConnected || !this.browserEdgeEl || !this.dialogEl) return;\n const base = getComputedStyle(this.browserEdgeEl).color;\n const shade = getComputedStyle(this.dialogEl, '::backdrop').backgroundColor;\n const colors = `${base}|${shade}`;\n if (colors === this.browserEdgeColors) return;\n // Let the browser resolve token colors, including alpha and non-sRGB syntax,\n // then flatten the shade over the bar into the opaque color Safari samples.\n const canvas = this.el.ownerDocument.createElement('canvas');\n canvas.width = canvas.height = 1;\n const context = canvas.getContext('2d');\n if (!context) return;\n context.fillStyle = base;\n context.fillRect(0, 0, 1, 1);\n context.fillStyle = shade;\n context.fillRect(0, 0, 1, 1);\n const [red, green, blue] = context.getImageData(0, 0, 1, 1).data;\n this.browserEdgeEl.style.setProperty(\n '--_mobile-section-edge-color',\n `rgb(${red}, ${green}, ${blue})`\n );\n this.browserEdgeColors = colors;\n };\n\n private observeBrowserEdgeTheme() {\n this.themeObserver ??= new MutationObserver(this.updateBrowserEdgeColor);\n // Token themes are inherited from the page or a containing theme scope.\n for (let ancestor: HTMLElement | null = this.el; ancestor; ancestor = ancestor.parentElement) {\n this.themeObserver.observe(ancestor, {\n attributes: true,\n attributeFilter: ['class', 'style', 'data-theme'],\n });\n }\n }\n\n private focusSheetItem(id: string) {\n const buttons = Array.from(this.dialogEl?.querySelectorAll<HTMLButtonElement>('button') ?? []);\n const button =\n buttons.find(item => item.value === id && !item.disabled) ??\n buttons.find(item => !item.disabled);\n if (button) {\n this.focusedSection = button.value;\n button.focus();\n } else this.dialogEl?.focus();\n }\n\n private handleSheetKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n this.closeMenu();\n return;\n }\n const sections = this.selectableSections.filter(section => !section.isInactive);\n if (!sections.length) return;\n const index = Math.max(\n 0,\n sections.findIndex(section => section.id === this.focusedSection)\n );\n let next: number;\n if (event.key === 'ArrowDown') next = (index + 1) % sections.length;\n else if (event.key === 'ArrowUp') next = (index + sections.length - 1) % sections.length;\n else if (event.key === 'Home') next = 0;\n else if (event.key === 'End') next = sections.length - 1;\n else if (event.key === 'Tab') next = index;\n else if (\n event.key.length === 1 &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey &&\n event.key !== ' '\n ) {\n const match = sections.findIndex((_, offset) =>\n sections[(index + offset + 1) % sections.length].label\n .toLowerCase()\n .startsWith(event.key.toLowerCase())\n );\n if (match < 0) return;\n next = (index + match + 1) % sections.length;\n } else return;\n event.preventDefault();\n this.initialFocusVisible = true;\n this.focusSheetItem(sections[next].id);\n };\n\n private get resolvedSections(): TabItem[] {\n return this.sections ?? [];\n }\n\n private get selectableSections(): TabItemTab[] {\n return getSelectableTabs(this.resolvedSections);\n }\n\n private get selectedIndex(): number {\n return resolveMobileSectionPosition(this.resolvedSections, this.value).selectedIndex;\n }\n\n private get selectedSection(): TabItemTab | undefined {\n return this.selectableSections[this.selectedIndex];\n }\n\n private get hasPrevious(): boolean {\n return resolveMobileSectionPosition(this.resolvedSections, this.value).hasPrevious;\n }\n\n private get hasNext(): boolean {\n return resolveMobileSectionPosition(this.resolvedSections, this.value).hasNext;\n }\n\n private get triggerAriaLabel(): string {\n return `${this.presentation === 'sheet' && this.pageLabel ? `${this.pageLabel}. ` : ''}${this.navigationLabel}. Current section: ${this.selectedSection?.label ?? ''}`;\n }\n\n private get menuSections(): MenuSection[] {\n const groups: MenuSection[] = [];\n let items: MenuItemData[] = [];\n const commit = () => {\n if (items.length) groups.push({ items });\n items = [];\n };\n\n for (const section of this.resolvedSections) {\n if (isTabDivider(section)) {\n commit();\n continue;\n }\n items.push({\n label: section.label,\n value: section.id,\n dot: section.dot,\n isSelected: section.id === this.selectedSection?.id,\n isInactive: section.isInactive,\n });\n }\n commit();\n return groups;\n }\n\n @Watch('sections')\n handleSectionsChange() {\n if (this.selectableSections.length <= 1) {\n this.closeMenu();\n this.menuSurfaceOpen = false;\n } else if (this.dialogEl?.open && !this.sheetClosing) {\n this.tasks.frame(() => {\n if (this.dialogEl?.open && !this.sheetClosing) this.focusSheetItem(this.focusedSection);\n });\n }\n }\n\n private toggleMenu = (event: MouseEvent) => {\n if (this.selectableSections.length <= 1) return;\n this.initialFocusVisible = event.detail === 0;\n if (this.presentation === 'sheet') {\n if (this.menuOpen) this.closeMenu();\n else {\n this.focusedSection = this.selectedSection?.id ?? '';\n this.menuOpen = true;\n }\n return;\n }\n this.menuOpen = !this.menuOpen;\n if (this.menuOpen) this.menuSurfaceOpen = true;\n };\n\n private closeMenu = () => {\n this.menuOpen = false;\n if (this.dialogEl?.open) this.sheetClosing = true;\n };\n\n private renderSheet() {\n return (\n <dialog\n id={this.menuId}\n ref={element => {\n this.dialogEl = element ?? null;\n }}\n class={{ 'mobile-section-sheet': true, 'mobile-section-sheet--closing': this.sheetClosing }}\n aria-label={this.navigationLabel}\n tabIndex={-1}\n onCancel={event => {\n event.preventDefault();\n this.closeMenu();\n }}\n onKeyDown={this.handleSheetKeyDown}\n onClick={event => {\n if (!this.dialogEl || event.target !== this.dialogEl) return;\n const rect = this.dialogEl.getBoundingClientRect();\n if (\n event.clientY < rect.top ||\n event.clientY > rect.bottom ||\n event.clientX < rect.left ||\n event.clientX > rect.right\n )\n this.closeMenu();\n }}\n >\n <div class=\"mobile-section-sheet__items\" role=\"menu\" aria-label={this.navigationLabel}>\n {this.resolvedSections.map(section =>\n isTabDivider(section) ? (\n <div class=\"mobile-section-sheet__divider\" role=\"separator\" />\n ) : (\n <button\n type=\"button\"\n role=\"menuitem\"\n value={section.id}\n disabled={section.isInactive}\n aria-current={section.id === this.selectedSection?.id ? 'page' : undefined}\n tabIndex={section.id === this.focusedSection ? 0 : -1}\n class={{\n 'mobile-section-sheet__item': true,\n 'ds-control--lg': true,\n 'ds-interaction-fill': true,\n 'ds-focus-ring-inset': true,\n 'ds-focus-ring--visible':\n this.initialFocusVisible && section.id === this.focusedSection,\n }}\n onFocus={() => {\n this.focusedSection = section.id;\n }}\n onClick={() => {\n if (this.sheetClosing || section.isInactive) return;\n this.closeMenu();\n if (section.id !== this.selectedSection?.id) this.dsChange.emit(section.id);\n }}\n >\n <ds-text\n class=\"mobile-section-sheet__label ds-interaction-fill__content\"\n as=\"span\"\n variant=\"text-body-large\"\n color=\"inherit\"\n emphasis={section.id === this.selectedSection?.id}\n lineTruncation={1}\n >\n {section.label}\n </ds-text>\n </button>\n )\n )}\n </div>\n <div\n ref={element => {\n if (this.browserEdgeEl !== element) this.browserEdgeColors = '';\n this.browserEdgeEl = element ?? null;\n }}\n class=\"mobile-section-sheet__browser-edge\"\n aria-hidden=\"true\"\n />\n </dialog>\n );\n }\n\n private handleSelect = (event: CustomEvent<MenuItemData>) => {\n const id = String(event.detail.value ?? '');\n const section = this.selectableSections.find(candidate => candidate.id === id);\n if (!section || section.isInactive) return;\n this.closeMenu();\n if (id !== this.selectedSection?.id) this.dsChange.emit(id);\n this.tasks.frame(() => this.triggerEl?.focus());\n };\n\n render() {\n const selected = this.selectedSection;\n if (!selected) return <Host />;\n const combined = this.presentation === 'sheet' && !!this.pageLabel;\n\n return (\n <Host\n class={{ 'mobile-section-switcher--pointer-focus': this.pointerFocus }}\n onPointerDown={() => {\n this.pointerFocus = true;\n this.initialFocusVisible = false;\n }}\n >\n <button\n ref={element => {\n this.triggerEl = element ?? null;\n }}\n id={this.triggerId}\n class={{\n 'mobile-section-switcher': true,\n 'mobile-section-switcher--expanded': this.menuOpen,\n 'ds-interaction-fill--surface-open':\n this.menuSurfaceOpen || this.menuOpen || this.sheetClosing,\n 'mobile-section-switcher--sheet': this.presentation === 'sheet',\n 'mobile-section-switcher--combined': combined,\n 'ds-focus-ring-inset': true,\n 'ds-interaction-fill': true,\n }}\n type=\"button\"\n aria-haspopup={this.presentation === 'sheet' ? 'dialog' : 'menu'}\n aria-controls={this.menuId}\n aria-expanded={String(this.menuOpen)}\n aria-label={this.triggerAriaLabel}\n onClick={this.toggleMenu}\n >\n {this.presentation === 'menu' ? (\n <span\n class={{\n 'mobile-section-switcher__position': true,\n 'mobile-section-switcher__position--visible': this.hasPrevious,\n 'ds-interaction-fill__content': true,\n }}\n aria-hidden=\"true\"\n />\n ) : null}\n {combined\n ? [\n <ds-text\n class=\"mobile-section-switcher__page-label ds-interaction-fill__content\"\n as=\"span\"\n variant=\"text-body-large\"\n emphasis\n color=\"inherit\"\n lineTruncation={1}\n >\n {this.pageLabel}\n </ds-text>,\n <ds-text\n class=\"mobile-section-switcher__separator ds-interaction-fill__content\"\n as=\"span\"\n variant=\"text-body-large\"\n color=\"inherit\"\n aria-hidden=\"true\"\n >\n ·\n </ds-text>,\n ]\n : null}\n <ds-text\n class=\"mobile-section-switcher__label ds-interaction-fill__content\"\n as=\"span\"\n variant={this.presentation === 'sheet' ? 'text-body-large' : 'text-body-medium'}\n emphasis\n color=\"inherit\"\n lineTruncation={1}\n >\n {selected.label}\n </ds-text>\n {this.presentation === 'menu' ? (\n <span\n class={{\n 'mobile-section-switcher__position': true,\n 'mobile-section-switcher__position--visible': this.hasNext,\n 'ds-interaction-fill__content': true,\n }}\n aria-hidden=\"true\"\n />\n ) : null}\n </button>\n\n {this.presentation === 'sheet' || this.sheetClosing ? (\n this.renderSheet()\n ) : this.selectableSections.length > 1 ? (\n <ds-menu\n id={this.menuId}\n anchorId={this.triggerId}\n align=\"center\"\n menuLabel={this.navigationLabel}\n open={this.menuOpen}\n initialFocusVisible={this.initialFocusVisible}\n sections={this.menuSections}\n onDsClose={this.closeMenu}\n onDsAfterClose={() => {\n if (!this.menuOpen) this.menuSurfaceOpen = false;\n }}\n onDsSelect={this.handleSelect}\n />\n ) : null}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{p as e,H as o,c as i,h as t,a as s,t as n}from"./index.js";import{a as r}from"./p-B8ZonS3S.js";import{p as a}from"./p-CeXf9-X3.js";import{d as l}from"./p-CwdRaJER.js";import{d}from"./p-D6FRqNhN.js";import{d as c}from"./p-B0BQCVkq.js";import{d as h}from"./p-DjkUFlDW.js";import{d as f}from"./p-0XTyQNRG.js";import{d as u}from"./p-DYQa1DVF.js";import{d as p}from"./p-D8OWhnID.js";import{d as v}from"./p-DIQiHX0q.js";const m=["agents","messages","activity","search","stacks","help"];const g="agents";const b={search:"Search",messages:"Messages",stacks:"Stacks",activity:"Activity",agents:"Agents",help:"Help & Support"};const y={search:"K",agents:"A",messages:"M",stacks:"S",activity:"N",help:"/"};const _=[{id:"agents",icon:"AIAsterisk",label:b.agents,railPlacement:"header",order:0,shortcutKey:y.agents,mobileDestination:"agents"},{id:"messages",icon:"MessageBubbleStack",label:b.messages,order:0,shortcutKey:y.messages,mobileDestination:"messages"},{id:"activity",icon:"Bell",label:b.activity,order:1,shortcutKey:y.activity,mobileDestination:"activity"},{id:"search",icon:"MagnifyingGlass",label:b.search,order:2,shortcutKey:y.search,mobileDestination:"search"},{id:"help",icon:"QuestionCircle",label:b.help,railPlacement:"footer",order:0,shortcutKey:y.help,mobileDestination:"help"}];const w={header:0,body:1,footer:2};function x(e){const o=m.findIndex((o=>o===e.id));return e.order??(o<0?Number.MAX_SAFE_INTEGER:o)}function k(e){const o=new Map;for(const i of e){if(i.id.trim()&&!o.has(i.id))o.set(i.id,i)}return Array.from(o.values()).sort(((e,o)=>{const i=S(e);const t=S(o);const s=w[i]-w[t];if(s!==0)return s;return x(e)-x(o)}))}function z(e,o){const i=k(e).map((e=>({type:"tool",id:e.id,item:e})));const t=new Map;for(const e of o){if(e.id.trim()&&!t.has(e.id)){t.set(e.id,e)}}const s=Array.from(t.values()).map((e=>({type:"accessory",id:e.id,accessory:e})));return[...i,...s].sort(((e,o)=>{const i=e.type==="tool"?S(e.item):e.accessory.railPlacement;const t=o.type==="tool"?S(o.item):o.accessory.railPlacement;const s=w[i]-w[t];if(s!==0)return s;const n=e.type==="tool"?x(e.item):e.accessory.order;const r=o.type==="tool"?x(o.item):o.accessory.order;return n-r}))}function C(e){return e.flatMap((e=>{if(e.type==="tool")return[`tool:${e.id}`];if(e.accessory.type==="divider")return[];if(e.accessory.type==="shortcut"){return e.accessory.action.isInactive?[]:[`accessory:${e.id}:${e.accessory.action.id}`]}const o=e.accessory.primaryAction.isInactive?[]:[`accessory:${e.id}:${e.accessory.primaryAction.id}`];if(e.accessory.secondaryAction&&!e.accessory.secondaryAction.isInactive){o.push(`accessory:${e.id}:${e.accessory.secondaryAction.id}`)}return o}))}function T(e,o,i){if(!o.length)return 0;const t=e[i];const s=t?o.indexOf(t):-1;if(s>=0)return s;for(let t=i+1;t<e.length;t+=1){const i=o.indexOf(e[t]);if(i>=0)return i}for(let t=i-1;t>=0;t-=1){const i=o.indexOf(e[t]);if(i>=0)return i}return Math.min(Math.max(i,0),o.length-1)}function A(e,o,i){return{accessoryId:e,actionId:o,anchor:i}}function D(e){return typeof e==="string"&&e.trim().length>0}function S(e){if(e.railPlacement)return e.railPlacement;if(e.id===g)return"header";if(e.id==="help")return"footer";return"body"}function $(e,o,i){if(!i||e.some((e=>e.id===i))){return{open:o,activeTool:i,removedTool:""}}return{open:false,activeTool:"",removedTool:i}}function j(e){const o=e.transitionProperty.split(",").map((e=>e.trim()));const i=e.transitionDuration.split(",").map((e=>a(e.trim(),0)));const t=e.transitionDelay.split(",").map((e=>a(e.trim(),0)));return o.reduce(((e,o,s)=>{if(o!=="all"&&o!=="max-width")return e;const n=i[s%i.length]??0;const r=t[s%t.length]??0;return Math.max(e,n+r,0)}),0)}function F(e,o){return!e&&o==="idle"}function R(e,o,i){if(i==="closing")return e<=.5;if(i==="opening")return o>0&&e>=o-.5;return true}function B(e,o,i){if(e&&o===i){return{open:false,activeTool:i,selected:false}}return{open:true,activeTool:i,selected:true}}const E=()=>`:host,:where(.ds-table),:where(.tooltip-popup),:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}.ds-control--lg,:host(.ds-control--lg),:host(.ds-control--md),.ds-control--md,:host(.ds-control--sm),.ds-control--sm,:host(.ds-control--xs),.ds-control--xs{--ds-control-radius:var(--ds-radius-control)}:host(.ds-control--lg),.ds-control--lg{--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)}:host(.ds-control--md),.ds-control--md{--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)}:host(.ds-control--sm),.ds-control--sm{--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)}:host(.ds-control--xs),.ds-control--xs{--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}:host(.ds-chrome-space--sm),.ds-chrome-space--sm{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}:host(.ds-chrome-space--md),.ds-chrome-space--md{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}:host(.ds-chrome-space--lg),.ds-chrome-space--lg{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}:host(.ds-chrome-row),.ds-chrome-row,:host(.ds-chrome-column),.ds-chrome-column,:host(.ds-chrome-grid),.ds-chrome-grid{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}:host(.ds-chrome-row),.ds-chrome-row{flex-direction:row;align-items:center}:host(.ds-chrome-column),.ds-chrome-column{flex-direction:column}:host(.ds-chrome-grid),.ds-chrome-grid{display:grid;align-items:center}@media (forced-colors: active){:root,:host,.ds-forced-colors-scope{--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}}:host{--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)}:host(.ds-focus-ring),.ds-focus-ring,:host(.ds-focus-ring-inset),.ds-focus-ring-inset{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}:host(.ds-focus-ring:focus-visible),.ds-focus-ring:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}:host(.ds-focus-ring.ds-focus-ring--visible),.ds-focus-ring.ds-focus-ring--visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}:host(.ds-focus-ring-inset:focus-visible),.ds-focus-ring-inset:focus-visible{outline:none}:host(.ds-focus-ring-inset:focus-visible)::after,.ds-focus-ring-inset:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}:host(.ds-focus-ring-inset.ds-focus-ring--visible),.ds-focus-ring-inset.ds-focus-ring--visible{outline:none}:host(.ds-focus-ring-inset.ds-focus-ring--visible)::after,.ds-focus-ring-inset.ds-focus-ring--visible::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){:host{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){:root,:host,.ds-forced-colors-scope{--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}}:host(.ds-interaction-fill),.ds-interaction-fill{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}:host(.ds-interaction-fill)::before,.ds-interaction-fill::before,:host(.ds-interaction-fill)::after,.ds-interaction-fill::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}:host(.ds-interaction-fill)::before,.ds-interaction-fill::before{z-index:1}:host(.ds-interaction-fill)::after,.ds-interaction-fill::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)}:host(.ds-interaction-fill--bordered),.ds-interaction-fill--bordered{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}:host(.ds-interaction-fill--selected)::before,.ds-interaction-fill--selected::before{background:var(--ds-interaction-active)}:host(.ds-interaction-fill--selected),.ds-interaction-fill--selected{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){:host(.ds-interaction-fill:hover:not(:disabled))::after,.ds-interaction-fill:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}:host(.ds-interaction-fill:active:not(:disabled))::after,.ds-interaction-fill:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}:host(.ds-interaction-fill--grouped)::after,.ds-interaction-fill--grouped::after,:host(.ds-interaction-fill--grouped:active:not(:disabled))::after,.ds-interaction-fill--grouped:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){:host(.ds-interaction-fill--grouped:hover:not(:disabled))::after,.ds-interaction-fill--grouped:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}:host(.ds-interaction-fill--grouped),.ds-interaction-fill--grouped{--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 )}:host(.ds-interaction-fill)>.ds-interaction-fill__content,.ds-interaction-fill>.ds-interaction-fill__content,.ds-interaction-fill__content{position:relative;z-index:2;cursor:inherit}:host(.ds-interaction-fill--on-faint),.ds-interaction-fill--on-faint{--ds-interaction-active:var(--color-interaction-active)}:host(.ds-interaction-fill--on-medium),.ds-interaction-fill--on-medium{--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)}:host(.ds-interaction-fill--on-bold),.ds-interaction-fill--on-bold{--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)}:host(.ds-interaction-fill--on-strong),.ds-interaction-fill--on-strong{--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)}:host(.ds-interaction-fill--on-translucent),.ds-interaction-fill--on-translucent{--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)}:host(.ds-interaction-fill--on-inverted),.ds-interaction-fill--on-inverted{--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)}:host(.ds-interaction-fill--on-media),.ds-interaction-fill--on-media{--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)}:host(.ds-interaction-fill--on-always-dark),.ds-interaction-fill--on-always-dark{--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)}:host(.ds-interaction-fill--on-chrome),.ds-interaction-fill--on-chrome{--ds-interaction-hover:var(--color-chrome-interaction-hover);--ds-interaction-pressed:var(--color-chrome-interaction-pressed);--ds-interaction-active:var(--color-chrome-interaction-active);--ds-focus-ring-color:var(--color-chrome-interaction-focus)}:host(.ds-interaction-fill--on-navigation),.ds-interaction-fill--on-navigation{--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)}:host(.ds-interaction-fill.ds-interaction-fill--surface-open:not(:disabled))::after,.ds-interaction-fill.ds-interaction-fill--surface-open:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){:host(.ds-interaction-fill)::after,.ds-interaction-fill::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))}:host(.ds-interaction-fill--surface-open:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible))::after,.ds-interaction-fill--surface-open:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}:host(.ds-interaction-fill--selected)::before,.ds-interaction-fill--selected::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){:host(.ds-interaction-fill:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible))::after,.ds-interaction-fill: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)}}:host(.ds-scrollbar-hidden),.ds-scrollbar-hidden{scrollbar-width:none}:host(.ds-scrollbar-hidden)::-webkit-scrollbar,.ds-scrollbar-hidden::-webkit-scrollbar{display:none}:host{display:block;flex:0 0 auto;box-sizing:border-box;height:100%;min-height:0;overflow:hidden;--_panel-tools-rail-width:var(--dimension-size-600);--_panel-tools-drawer-width:var(--ds-shell-panel-tools-width, var(--dimension-panel-width-xs));--_panel-tools-border:var(--dimension-stroke-width-012, 1px) solid var(--_shell-tools-border, var(--color-border-tertiary));--_panel-tools-divider-color:var(--_shell-tools-divider, var(--color-divider-divider));--_panel-tools-divider:var(--dimension-stroke-width-012, 1px) solid var(--_panel-tools-divider-color);--_panel-tools-fg-secondary:var(--_shell-tools-fg-secondary, var(--color-foreground-secondary));--_panel-tools-shortcut-fg-secondary:var( --_shell-tools-fg-secondary, var(--color-chrome-foreground-secondary) );--_panel-tools-shortcut-border:var( --_shell-tools-border-secondary, var(--color-chrome-border-secondary) );--_panel-tools-shortcut-dot-ring:var( --_shell-tools-background-theme, var(--color-chrome-background-theme) );--_panel-tools-expand-dur:var(--effect-animation-duration-medium-1, 300ms)}.panel-tools__layout{display:flex;flex-direction:row-reverse;align-items:stretch;height:100%;min-height:0;box-sizing:border-box}.panel-tools__drawer{flex:0 0 auto;max-width:0;min-width:0;height:100%;min-height:0;overflow:hidden;box-sizing:border-box;transition:none}:host(.panel-tools--ready) .panel-tools__drawer{transition:max-width var(--_panel-tools-expand-dur) var(--effect-animation-easing-ease-in-out, ease)}:host(.panel-tools--ready.panel-tools--motion-opening) .panel-tools__drawer{transition:max-width var(--_panel-tools-expand-dur) var(--effect-animation-easing-ease-out, ease-out)}:host(.panel-tools--ready.panel-tools--motion-closing) .panel-tools__drawer{transition:max-width var(--_panel-tools-expand-dur) var(--effect-animation-easing-ease-in, ease-in)}:host(.panel-tools--open) .panel-tools__drawer{max-width:var(--_panel-tools-drawer-width)}.panel-tools__drawer--visible{border-left:var(--_panel-tools-border)}.panel-tools__drawer-surface{display:flex;flex-direction:column;width:var(--_panel-tools-drawer-width);height:100%;min-height:0;box-sizing:border-box;background-color:transparent}.panel-tools__full-views,.panel-tools__full-view{flex:1 1 auto;min-height:0;overflow:hidden}.panel-tools__full-view{height:100%}.panel-tools__full-view{display:none}.panel-tools__full-view--active{display:block}:host([presentation='fullscreen']){height:100%;inset:0;position:fixed;width:100%;z-index:var(--dimension-z-index-modal)}:host([presentation='fullscreen']) .panel-tools__rail{display:none}:host([presentation='fullscreen']) .panel-tools__drawer{max-width:100%;transition:none;width:100%}:host([presentation='fullscreen']) .panel-tools__drawer--visible{border-left:none}:host([presentation='fullscreen']) .panel-tools__drawer-surface{background-color:transparent;width:100%}:host([presentation='fullscreen']:not(.panel-tools--fullscreen)) .panel-tools__drawer-surface,:host(.panel-tools--fullscreen:not([presentation='fullscreen'])) .panel-tools__drawer-surface{visibility:hidden}:host(.panel-tools--presentation-snap) .panel-tools__drawer{transition:none}.panel-tools__body{flex:1 1 auto;min-height:0;overflow:auto;position:relative}:host(.panel-tools--drawer-resting) .panel-tools__body{content-visibility:auto;contain-intrinsic-size:auto 200px}.panel-tools__view{display:none;height:100%;min-height:0;box-sizing:border-box;padding:var(--dimension-space-200);color:var(--_panel-tools-fg-secondary);font-family:var(--typography-font-family-ui);font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md);font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.panel-tools__view ::slotted(*){margin:0;color:var(--_panel-tools-fg-secondary);font-family:var(--typography-font-family-ui);font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md);font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.panel-tools__view--active{display:block}.panel-tools__rail{flex:0 0 var(--_panel-tools-rail-width);width:var(--_panel-tools-rail-width);min-width:var(--_panel-tools-rail-width);display:flex;flex-direction:column;box-sizing:border-box;height:100%;min-height:0;border-left:var(--_panel-tools-border);background-color:transparent}.panel-tools__rail-header{justify-content:center;height:var(--dimension-size-600);flex-shrink:0;border-bottom:var(--_panel-tools-divider)}.panel-tools__rail-header.panel-tools__rail-section--stacked{height:auto;min-height:var(--dimension-size-600)}.panel-tools__rail-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}.panel-tools__rail-actions{display:flex;flex-direction:column;gap:var(--dimension-space-050);width:100%}.panel-tools__rail-footer{justify-content:center;flex-shrink:0;margin-top:auto}.panel-tools__rail-section--stacked{align-items:stretch}.panel-tools__rail-action{display:flex;align-items:center;justify-content:center;width:100%;height:var(--ds-control-height);flex-shrink:0}.panel-tools__accessory{display:flex;flex-direction:column;flex:0 0 calc(var(--dimension-size-400) * 2);box-sizing:border-box;width:100%;min-height:calc(var(--dimension-size-400) * 2)}.panel-tools__accessory--shortcut{flex-basis:var(--dimension-size-400);min-width:var(--dimension-size-400);min-height:var(--dimension-size-400)}.panel-tools__accessory--shortcut>ds-tooltip{display:flex;flex:1 1 auto;width:100%;min-height:0}.panel-tools__accessory--transient{align-items:center;gap:var(--dimension-space-100);width:var(--dimension-size-400);height:calc(var(--dimension-size-400) * 2);min-height:calc(var(--dimension-size-400) * 2);padding:var(--dimension-space-050);border-radius:var(--dimension-radius-half)}.panel-tools__accessory--transient-active{background-color:var(--color-background-bold-brand)}.panel-tools__accessory--transient-positive{background-color:var(--color-background-bold-positive)}.panel-tools__accessory--transient>ds-tooltip{display:flex;flex:0 0 var(--dimension-size-300);width:var(--dimension-size-300);height:var(--dimension-size-300);min-height:var(--dimension-size-300)}.panel-tools__shortcut{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:var(--dimension-radius-half);color:var(--_panel-tools-shortcut-fg-secondary);background:transparent;font:inherit}.panel-tools__shortcut:disabled{color:var(--color-foreground-disabled);cursor:not-allowed}.panel-tools__shortcut-content{display:flex;align-items:center;justify-content:center;width:var(--dimension-size-400);height:var(--dimension-size-400)}.panel-tools__shortcut-orb{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--dimension-size-300);height:var(--dimension-size-300);border:var(--dimension-stroke-width-012) solid var(--_panel-tools-shortcut-border);border-radius:var(--dimension-radius-half);background:transparent}.panel-tools__shortcut-dot{position:absolute;inset-block-start:calc((var(--dimension-size-400) - var(--dimension-iconography-md)) / 2);inset-inline-end:calc((var(--dimension-size-400) - var(--dimension-iconography-md)) / 2);z-index:2;pointer-events:none}.panel-tools__accessory-primary{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--dimension-size-300);height:var(--dimension-size-300);margin:0;padding:0;border:0;border-radius:var(--dimension-radius-half);color:var(--color-foreground-on-bold-background-secondary);background:transparent;font:inherit;--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-on-bold-background-secondary)}.panel-tools__accessory-primary:disabled{color:var(--color-foreground-on-bold-background-quaternary);cursor:not-allowed}.panel-tools__accessory-primary-content{display:flex;align-items:center;justify-content:center;position:relative;width:100%;height:100%}.panel-tools__accessory-image,.panel-tools__accessory-initial{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%;border-radius:var(--dimension-radius-half)}.panel-tools__accessory-image{object-fit:cover}.panel-tools__accessory-initial{color:inherit;background:transparent}.panel-tools__accessory-secondary{display:inline-flex;flex:0 0 var(--dimension-size-300);width:var(--dimension-size-300);height:var(--dimension-size-300)}.panel-tools__accessory-divider{flex:0 0 auto;box-sizing:border-box;width:100%;padding-block:var(--dimension-space-050)}.panel-tools__accessory-divider ds-divider{display:block;--_divider-color:var(--_panel-tools-divider-color)}@media (prefers-reduced-motion: reduce){:host(.panel-tools--ready.panel-tools--motion-opening) .panel-tools__drawer,:host(.panel-tools--ready.panel-tools--motion-closing) .panel-tools__drawer{transition:none}}`;const M=e(class e extends o{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.dsToolChange=i(this,"dsToolChange",7);this.dsPresentationChange=i(this,"dsPresentationChange",7);this.dsHeaderBack=i(this,"dsHeaderBack",7);this.dsHeaderAction=i(this,"dsHeaderAction",7);this.dsRailAccessoryAction=i(this,"dsRailAccessoryAction",7);this.dsChromeTransitionStart=i(this,"dsChromeTransitionStart",7);this.dsChromeTransitionEnd=i(this,"dsChromeTransitionEnd",7);this.open=false;this.presentation="drawer";this.fullscreenHeaderMode="shared";this.activeTool="";this.items=[];this.accessories=[];this.toolsLabel="Tools";this.toolShortcutsLabel="Tool shortcuts";this.headers={};this.storageKey="";this.motion="idle";this.drawerSurfaceRetained=false;this.readyForMotion=false;this.presentationMotionSuppressed=false;this.rovingIndex=0;this.fullViewToolIds=[];this.railBodyScrollable=false;this.motionEnableGeneration=0;this.presentationMotionGeneration=0;this.transitionGeneration=0;this.transitionFallbackTimer=null;this.ignoreReplacementTerminal=false;this.focusBeforeFullscreen=null;this.fullViewObserver=null;this.handleComposedHeaderAction=e=>{const o=e.detail;if(!this.activeTool||!o?.id)return;e.stopPropagation();this.dsHeaderAction.emit({tool:this.activeTool,id:o.id,anchor:o.anchor})};this.handleTransitionEnd=e=>{const o=this.renderRoot.querySelector(".panel-tools__drawer");if(e.target!==o)return;if(e.propertyName!=="max-width")return;if(this.ignoreReplacementTerminal){this.ignoreReplacementTerminal=false;return}if(e.type==="transitioncancel")return;if(o&&!this.drawerTransitionAtTerminal(o,this.motion))return;this.finishDrawerTransition()};this.handleToolChange=e=>{const o=B(this.open,this.activeTool,e);this.open=o.open;this.activeTool=o.activeTool;this.dsToolChange.emit({id:e,selected:o.selected})};this.handleRailKeyDown=(e,o,i)=>{const t=C(this.orderedRailEntries);if(!t.length)return;if((e.key==="Enter"||e.key===" ")&&i){e.preventDefault();i();return}if(e.key==="ArrowDown"){if(o>=t.length-1)return;e.preventDefault();this.focusRailAt(o+1);return}if(e.key==="ArrowUp"){if(o<=0)return;e.preventDefault();this.focusRailAt(o-1)}}}get railItems(){return this.items??[]}get orderedRailItems(){return k(this.railItems)}get railAccessories(){return this.accessories??[]}get orderedRailEntries(){return z(this.railItems,this.railAccessories)}disconnectedCallback(){this.el.removeEventListener("transitionend",this.handleTransitionEnd);this.el.removeEventListener("transitioncancel",this.handleTransitionEnd);this.el.removeEventListener("dsAction",this.handleComposedHeaderAction);this.clearTransitionCompletion();this.motionEnableGeneration+=1;this.fullViewObserver?.disconnect();this.fullViewObserver=null;this.disconnectRailBodyObserver()}presentationChanged(e,i){if(e===i)return;if(this.el.getAttribute("presentation")!==e){this.el.setAttribute("presentation",e)}const t=++this.presentationMotionGeneration;this.presentationMotionSuppressed=true;requestAnimationFrame((()=>{requestAnimationFrame((()=>{if(t!==this.presentationMotionGeneration)return;this.presentationMotionSuppressed=false}))}));if(e==="fullscreen"){this.focusBeforeFullscreen=document.activeElement instanceof o?document.activeElement:null;this.open=true}else if(i==="fullscreen"){const e=this.focusBeforeFullscreen;const o=this.activeHeader().actions?.[0]?.id;requestAnimationFrame((async()=>{if(e?.isConnected){e.focus({preventScroll:true})}const i=e?document.activeElement===e||e.contains(document.activeElement):false;if(!i&&o)await this.focusHeaderAction(o);this.focusBeforeFullscreen=null}))}this.dsPresentationChange.emit({presentation:e})}handleFullscreenEscape(e){if(this.presentation!=="fullscreen"||e.key!=="Escape")return;e.preventDefault();e.stopPropagation();this.presentation="drawer"}deferMotionEnable(){if(this.readyForMotion)return;const e=++this.motionEnableGeneration;requestAnimationFrame((()=>{if(e!==this.motionEnableGeneration)return;requestAnimationFrame((()=>{if(e!==this.motionEnableGeneration)return;this.readyForMotion=true}))}))}connectedCallback(){this.el.setAttribute(r,"");this.el.addEventListener("transitionend",this.handleTransitionEnd);this.el.addEventListener("transitioncancel",this.handleTransitionEnd);this.el.addEventListener("dsAction",this.handleComposedHeaderAction)}componentWillLoad(){this.restoreLastActiveTool();this.drawerSurfaceRetained=this.open}openChanged(e,o){if(e)this.drawerSurfaceRetained=true;if(this.readyForMotion&&o!==undefined&&o!==e){this.startDrawerTransition(e?"opening":"closing")}else if(!e){this.drawerSurfaceRetained=false}this.deferMotionEnable()}activeToolChanged(){this.persistLastActiveTool();this.deferMotionEnable()}storageKeyChanged(){this.restoreLastActiveTool()}componentDidLoad(){this.deferMotionEnable();this.connectRailBodyObserver();this.updateRailBodyScrollable();this.syncFullViewTools();this.fullViewObserver=new MutationObserver((()=>this.syncFullViewTools()));this.fullViewObserver.observe(this.el,{childList:true,attributes:true,attributeFilter:["slot"]})}componentDidRender(){this.updateRailBodyScrollable()}connectRailBodyObserver(){this.disconnectRailBodyObserver();if(!this.railBodyEl||typeof ResizeObserver==="undefined")return;this.railBodyObserver=new ResizeObserver((()=>this.updateRailBodyScrollable()));this.railBodyObserver.observe(this.railBodyEl)}disconnectRailBodyObserver(){this.railBodyObserver?.disconnect();this.railBodyObserver=undefined}updateRailBodyScrollable(){const e=Boolean(this.railBodyEl&&this.railBodyEl.scrollHeight>this.railBodyEl.clientHeight+1);if(e!==this.railBodyScrollable)this.railBodyScrollable=e}itemsChanged(){this.rovingIndex=0;this.reconcileActiveTool();this.deferMotionEnable()}accessoriesChanged(e=[],o=[]){const i=C(z(this.railItems,o));const t=C(z(this.railItems,e));const s=this.renderRoot.activeElement;const n=s?.closest("[data-rail-focus-key]")?.dataset.railFocusKey;const r=n?i.indexOf(n):-1;const a=r>=0?r:this.rovingIndex;const l=T(i,t,a);const d=r>=0&&!t.includes(n??"");this.rovingIndex=l;if(d&&t.length){requestAnimationFrame((()=>this.focusRailAt(l)))}}restoreLastActiveTool(){if(!this.storageKey||this.activeTool)return;try{const e=localStorage.getItem(this.storageKey);if(D(e))this.activeTool=e}catch{}}persistLastActiveTool(){if(!this.storageKey||!this.activeTool)return;try{localStorage.setItem(this.storageKey,this.activeTool)}catch{}}clearPersistedTool(){if(!this.storageKey)return;try{localStorage.removeItem(this.storageKey)}catch{}}reconcileActiveTool(){const e=$(this.railItems,this.open,this.activeTool);if(!e.removedTool)return;this.clearPersistedTool();this.open=e.open;this.activeTool=e.activeTool;this.dsToolChange.emit({id:e.removedTool,selected:false})}startDrawerTransition(e){const o=this.renderRoot.querySelector(".panel-tools__drawer");if(this.motion!=="idle"){this.finishDrawerTransition();this.ignoreReplacementTerminal=true}this.motion=e;this.dsChromeTransitionStart.emit({source:"panel-tools",phase:e});const i=++this.transitionGeneration;requestAnimationFrame((()=>{requestAnimationFrame((()=>{if(i!==this.transitionGeneration||this.motion!==e)return;if(!o){this.finishDrawerTransition();return}if(this.drawerTransitionAtTerminal(o,e)){this.finishDrawerTransition();return}const t=j(getComputedStyle(o));if(t<=0){this.finishDrawerTransition();return}this.transitionFallbackTimer=window.setTimeout((()=>{this.finishDrawerTransition()}),t)}))}))}drawerTransitionAtTerminal(e,o){const i=e.getBoundingClientRect().width;const t=e.querySelector(".panel-tools__drawer-surface");const s=t?.getBoundingClientRect().width??0;return R(i,s,o)}finishDrawerTransition(){const e=this.motion;const o=e!=="idle";this.clearTransitionCompletion();if(!o)return;this.ignoreReplacementTerminal=false;this.motion="idle";if(e==="closing"&&!this.open){this.drawerSurfaceRetained=false}this.dsChromeTransitionEnd.emit({source:"panel-tools"})}clearTransitionCompletion(){this.transitionGeneration+=1;if(this.transitionFallbackTimer!==null){window.clearTimeout(this.transitionFallbackTimer);this.transitionFallbackTimer=null}}isRailSelected(e){return this.open&&this.activeTool===e}isDrawerPresent(){return this.open||this.drawerSurfaceRetained}isViewActive(e){return this.isDrawerPresent()&&this.activeTool===e}hasFullView(e){return this.fullViewToolIds.includes(e)}syncFullViewTools(){const e=this.orderedRailItems.map((e=>e.id));const o=e.filter((e=>Boolean(this.el.querySelector(`[slot="${e}-view"]`))));if(o.join("|")!==this.fullViewToolIds.join("|"))this.fullViewToolIds=o}get renderRoot(){return this.el.shadowRoot??this.el}accessibleLabel(){if(!this.isDrawerPresent()||!this.activeTool)return"";const e=this.railItems.find((e=>e.id===this.activeTool));return e?.label??b[this.activeTool]??this.activeTool}resolvedHeaders(){return this.headers??{}}activeHeader(){if(!this.activeTool)return{};return this.resolvedHeaders()[this.activeTool]??{}}async activateTool(e){const o=this.railItems.find((o=>o.id===e));if(!o||o.isInactive)return;this.handleToolChange(e)}async closeDrawer(){if(!this.open)return;const e=this.activeTool;this.open=false;if(e){this.dsToolChange.emit({id:e,selected:false})}}async focusHeaderAction(e){const o=this.renderRoot.querySelector(`[data-header-action-id="${CSS.escape(e)}"]`);await(o?.setFocus?.())}focusRailAt(e){const o=C(this.orderedRailEntries);if(!o.length)return;const i=Math.max(0,Math.min(e,o.length-1));this.rovingIndex=i;const t=this.renderRoot.querySelector(`[data-rail-focus-key="${CSS.escape(o[i])}"]`);if(t?.setFocus){void t.setFocus()}else{t?.focus({preventScroll:true})}}renderRailAction(e,o){const i=`tool:${e.id}`;const s=e.ariaLabel??e.label??b[e.id]??e.id;return t("ds-tooltip",{key:e.id,label:s,shortcutKey:e.shortcutKey??y[e.id],side:"left",size:"sm",boundary:"viewport"},t("ds-button-unfilled",{variant:"icon",class:"panel-tools__rail-action",icon:e.icon,isActive:this.isRailSelected(e.id),activeFill:false,hasBorder:false,background:"chrome",pressScale:false,dot:e.dot??false,isInactive:e.isInactive,focusTabIndex:o===this.rovingIndex?0:-1,"data-rail-focus-key":i,"aria-label":s,pressed:this.isRailSelected(e.id),onFocusin:()=>{this.rovingIndex=o},onKeyDown:i=>this.handleRailKeyDown(i,o,(()=>this.handleToolChange(e.id))),onDsClick:()=>this.handleToolChange(e.id)}))}accessoryPrimaryLabel(e){const o=e.primaryAction.ariaLabel?.trim()||e.ariaLabel;const i=e.statusText.trim();return i?`${o}. ${i}`:o}emitAccessoryAction(e,o,i){if(o.isInactive)return;this.dsRailAccessoryAction.emit(A(e,o.id,i))}renderAccessoryVisual(e){if(e.visual.type==="image"){return t("img",{class:"panel-tools__accessory-image",src:e.visual.src,alt:"","aria-hidden":"true"})}if(e.visual.type==="initial"){const o=[...e.visual.initial.trim()].slice(0,2).join("");return t("ds-text",{class:"panel-tools__accessory-initial",as:"span",variant:"text-caption",emphasis:true,color:"inherit","aria-hidden":"true"},o)}return t("ds-icon",{name:e.visual.icon,size:"sm","aria-hidden":"true"})}renderRailShortcut(e,o){const i=`accessory:${e.id}:${e.action.id}`;const s=o.get(i);const n=e.action.ariaLabel?.trim()||e.ariaLabel;const r=[...e.initials.trim()].slice(0,2).join("");return t("div",{key:`accessory:${e.id}`,class:"panel-tools__accessory panel-tools__accessory--shortcut"},t("ds-tooltip",{label:n,side:"left",size:"sm",boundary:"viewport"},t("button",{type:"button",class:"panel-tools__shortcut ds-focus-ring-inset ds-interaction-fill ds-interaction-fill--on-chrome",disabled:e.action.isInactive,tabIndex:s===this.rovingIndex?0:-1,"data-rail-focus-key":i,"aria-label":n,onFocus:()=>{if(s!==undefined)this.rovingIndex=s},onKeyDown:e=>s===undefined?undefined:this.handleRailKeyDown(e,s),onClick:o=>this.emitAccessoryAction(e.id,e.action,o.currentTarget)},t("span",{class:"panel-tools__shortcut-content ds-interaction-fill__content"},t("ds-text",{class:"panel-tools__shortcut-orb",as:"span",variant:"text-caption",emphasis:true,color:"inherit"},r),e.dot?t("ds-badge",{class:"panel-tools__shortcut-dot",variant:"dot",background:"var(--_panel-tools-shortcut-dot-ring)","aria-hidden":"true"}):null))))}renderRailAccessory(e,o){if(e.type==="divider"){return t("div",{key:`accessory:${e.id}`,class:"panel-tools__accessory-divider","aria-hidden":"true"},t("ds-divider",null))}if(e.type==="shortcut"){return this.renderRailShortcut(e,o)}const i=`accessory:${e.id}:${e.primaryAction.id}`;const s=o.get(i);const n=this.accessoryPrimaryLabel(e);const r=e.secondaryAction;const a=r?`accessory:${e.id}:${r.id}`:"";const l=r?o.get(a):undefined;return t("div",{key:`accessory:${e.id}`,class:{"panel-tools__accessory":true,"panel-tools__accessory--transient":true,"panel-tools__accessory--transient-active":e.statusTone==="active","panel-tools__accessory--transient-positive":e.statusTone==="positive"}},t("ds-tooltip",{label:n,side:"left",size:"sm",boundary:"viewport"},t("button",{type:"button",class:"panel-tools__accessory-primary ds-focus-ring-inset ds-interaction-fill ds-interaction-fill--on-bold",disabled:e.primaryAction.isInactive,tabIndex:s===this.rovingIndex?0:-1,"data-rail-focus-key":i,"aria-label":n,onFocus:()=>{if(s!==undefined)this.rovingIndex=s},onKeyDown:e=>s===undefined?undefined:this.handleRailKeyDown(e,s),onClick:o=>this.emitAccessoryAction(e.id,e.primaryAction,o.currentTarget)},t("span",{class:"panel-tools__accessory-primary-content ds-interaction-fill__content"},this.renderAccessoryVisual(e)))),r?t("ds-tooltip",{label:r.ariaLabel,side:"left",size:"sm",boundary:"viewport"},t("ds-button-unfilled",{class:"panel-tools__accessory-secondary",variant:"icon",size:"sm",rounded:true,background:"bold",hasBorder:false,icon:r.icon,isInactive:r.isInactive,focusTabIndex:l===this.rovingIndex?0:-1,"data-rail-focus-key":a,"aria-label":r.ariaLabel,onFocusin:()=>{if(l!==undefined)this.rovingIndex=l},onKeyDown:e=>l===undefined?undefined:this.handleRailKeyDown(e,l),onDsClick:o=>this.emitAccessoryAction(e.id,r,o.currentTarget)})):null)}renderRailEntry(e,o){if(e.type==="tool"){return this.renderRailAction(e.item,o.get(`tool:${e.id}`)??0)}return this.renderRailAccessory(e.accessory,o)}render(){const e=this.accessibleLabel();const o=this.activeHeader();const i=o.title?.trim()||e;const n=o.actions??[];const r=this.orderedRailItems;const a=this.orderedRailEntries;const l=e=>e.type==="tool"?S(e.item):e.accessory.railPlacement;const d=a.filter((e=>l(e)==="header"));const c=a.filter((e=>l(e)==="body"));const h=a.filter((e=>l(e)==="footer"));const f=new Map(C(a).map(((e,o)=>[e,o])));const u=this.isDrawerPresent();const p=F(this.open,this.motion);const v=Boolean(u&&this.activeTool&&this.hasFullView(this.activeTool));const m=r.map((e=>e.id));return t(s,{key:"50ebb506f1219c817b7bccfa70e0932068cfb951",class:{"panel-tools":true,"panel-tools--open":this.open,"panel-tools--ready":this.readyForMotion,"panel-tools--motion-opening":this.motion==="opening","panel-tools--motion-closing":this.motion==="closing","panel-tools--drawer-resting":p,"panel-tools--fullscreen":this.presentation==="fullscreen","panel-tools--presentation-snap":this.presentationMotionSuppressed},"data-ds-overlay-boundary":true,role:this.presentation==="fullscreen"?"dialog":"complementary","aria-modal":this.presentation==="fullscreen"?"true":undefined,"aria-label":this.toolsLabel},t("div",{key:"9f599e566231ff38220c57f0210cc95b7429c0c8",class:"panel-tools__layout"},t("nav",{key:"f718cc053de3a295cf77e28df3aed6049b7caa1f",class:"panel-tools__rail","aria-label":this.toolShortcutsLabel},d.length?t("div",{class:{"panel-tools__rail-header":true,"panel-tools__rail-section--stacked":d.length>1,"ds-chrome-row":d.length===1,"ds-chrome-column":d.length>1,"ds-chrome-space--md":true}},d.map((e=>this.renderRailEntry(e,f)))):null,t("div",{key:"6d31b42b704d4a65f9f522fd4cf9702d162b0639",class:{"panel-tools__rail-body":true,"ds-chrome-column":true,"ds-chrome-space--md":true,"ds-scrollbar-hidden":true,"ds-focus-ring":this.railBodyScrollable},ref:e=>{const o=e??undefined;if(o===this.railBodyEl)return;this.railBodyEl=o;this.connectRailBodyObserver()},role:this.railBodyScrollable?"region":undefined,"aria-label":this.railBodyScrollable?this.toolShortcutsLabel:undefined,tabIndex:this.railBodyScrollable?0:undefined},t("div",{key:"987be505cf1761c7b319aefd64df982d021d6b92",class:"panel-tools__rail-actions"},c.map((e=>this.renderRailEntry(e,f))))),h.length?t("div",{class:{"panel-tools__rail-footer":true,"panel-tools__rail-section--stacked":h.length>1,"ds-chrome-row":h.length===1,"ds-chrome-column":h.length>1,"ds-chrome-space--md":true}},h.map((e=>this.renderRailEntry(e,f)))):null),t("div",{key:"e51b2ab933b9353c4bd5500e69ad6db2c9c8f7e5",class:{"panel-tools__drawer":true,"panel-tools__drawer--visible":u},"aria-hidden":u?null:"true",inert:u?undefined:true},t("div",{key:"52b168a31246dee3dcb0c25ae2ea0d0d9cd3a0f6",class:"panel-tools__drawer-surface"},this.presentation!=="fullscreen"||this.fullscreenHeaderMode==="shared"?t("ds-panel-tool-header",{class:"panel-tools__header",heading:i,showBack:o.showBack??false,backIcon:o.backIcon||"ChevronLeft",backAriaLabel:o.backAriaLabel||"Back",showMenu:false,ref:e=>{const o=e;if(o)o.actions=n},onDsBack:()=>{if(this.activeTool)this.dsHeaderBack.emit({tool:this.activeTool})}}):null,t("div",{key:"98935c8f991f15a9d1cede43e756938cf3561b1b",class:"panel-tools__body",hidden:v},m.map((e=>{const o=this.isViewActive(e);return t("div",{class:{"panel-tools__view":true,"panel-tools__view--active":o},hidden:!o},t("slot",{name:e}))}))),t("div",{key:"d1f6ef122b9af73b3e06540c7942a06093cd3df4",class:"panel-tools__full-views",hidden:!v},m.map((e=>t("div",{class:{"panel-tools__full-view":true,"panel-tools__full-view--active":this.isViewActive(e)&&this.hasFullView(e)},hidden:!(this.isViewActive(e)&&this.hasFullView(e))},t("slot",{name:`${e}-view`})))))))))}get el(){return this}static get watchers(){return{presentation:[{presentationChanged:0}],open:[{openChanged:0}],activeTool:[{activeToolChanged:0}],storageKey:[{storageKeyChanged:0}],items:[{itemsChanged:0}],accessories:[{accessoriesChanged:0}]}}static get style(){return E()}},[257,"ds-panel-tools",{open:[1540],presentation:[1537],fullscreenHeaderMode:[513,"fullscreen-header-mode"],activeTool:[1537,"active-tool"],items:[16],accessories:[16],toolsLabel:[1,"tools-label"],toolShortcutsLabel:[1,"tool-shortcuts-label"],headers:[16],storageKey:[1,"storage-key"],motion:[32],drawerSurfaceRetained:[32],readyForMotion:[32],presentationMotionSuppressed:[32],rovingIndex:[32],fullViewToolIds:[32],railBodyScrollable:[32],activateTool:[64],closeDrawer:[64],focusHeaderAction:[64]},[[10,"keydown","handleFullscreenEscape"]],{presentation:[{presentationChanged:0}],open:[{openChanged:0}],activeTool:[{activeToolChanged:0}],storageKey:[{storageKeyChanged:0}],items:[{itemsChanged:0}],accessories:[{accessoriesChanged:0}]}]);function I(){if(typeof customElements==="undefined"){return}const e=["ds-panel-tools","ds-badge","ds-button-unfilled","ds-divider","ds-icon","ds-loader","ds-panel-tool-header","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-panel-tools":if(!customElements.get(n(e))){customElements.define(n(e),M)}break;case"ds-badge":if(!customElements.get(n(e))){l()}break;case"ds-button-unfilled":if(!customElements.get(n(e))){d()}break;case"ds-divider":if(!customElements.get(n(e))){c()}break;case"ds-icon":if(!customElements.get(n(e))){h()}break;case"ds-loader":if(!customElements.get(n(e))){f()}break;case"ds-panel-tool-header":if(!customElements.get(n(e))){u()}break;case"ds-text":if(!customElements.get(n(e))){p()}break;case"ds-tooltip":if(!customElements.get(n(e))){v()}break}}))}I();export{M as P,b as a,B as b,_ as c,I as d,k as o,$ as r};
2
- //# sourceMappingURL=p-CJ1NnOEW.js.map
1
+ import{p as e,H as o,c as t,h as i,a as s,t as n}from"./index.js";import{a as r}from"./p-CE6MaXBg.js";import{p as a}from"./p-CeXf9-X3.js";import{d as l}from"./p-CwdRaJER.js";import{d}from"./p-D-J7GgjY.js";import{d as c}from"./p-D_iZPukF.js";import{d as h}from"./p-pPtjNRqC.js";import{d as f}from"./p-0XTyQNRG.js";import{d as u}from"./p-C_9VGgPf.js";import{d as p}from"./p-D8OWhnID.js";import{d as v}from"./p-DvGrsLgt.js";const m=["agents","messages","activity","search","stacks","help"];const g="agents";const b={search:"Search",messages:"Messages",stacks:"Stacks",activity:"Activity",agents:"Agents",help:"Help & Support"};const y={search:"K",agents:"A",messages:"M",stacks:"S",activity:"N",help:"/"};const _=[{id:"agents",icon:"AIAsterisk",label:b.agents,railPlacement:"header",order:0,shortcutKey:y.agents,mobileDestination:"agents"},{id:"messages",icon:"MessageBubbleStack",label:b.messages,order:0,shortcutKey:y.messages,mobileDestination:"messages"},{id:"activity",icon:"Bell",label:b.activity,order:1,shortcutKey:y.activity,mobileDestination:"activity"},{id:"search",icon:"MagnifyingGlass",label:b.search,order:2,shortcutKey:y.search,mobileDestination:"search"},{id:"help",icon:"QuestionCircle",label:b.help,railPlacement:"footer",order:0,shortcutKey:y.help,mobileDestination:"help"}];const w={header:0,body:1,footer:2};function x(e){const o=m.findIndex((o=>o===e.id));return e.order??(o<0?Number.MAX_SAFE_INTEGER:o)}function k(e){const o=new Map;for(const t of e){if(t.id.trim()&&!o.has(t.id))o.set(t.id,t)}return Array.from(o.values()).sort(((e,o)=>{const t=S(e);const i=S(o);const s=w[t]-w[i];if(s!==0)return s;return x(e)-x(o)}))}function z(e,o){const t=k(e).map((e=>({type:"tool",id:e.id,item:e})));const i=new Map;for(const e of o){if(e.id.trim()&&!i.has(e.id)){i.set(e.id,e)}}const s=Array.from(i.values()).map((e=>({type:"accessory",id:e.id,accessory:e})));return[...t,...s].sort(((e,o)=>{const t=e.type==="tool"?S(e.item):e.accessory.railPlacement;const i=o.type==="tool"?S(o.item):o.accessory.railPlacement;const s=w[t]-w[i];if(s!==0)return s;const n=e.type==="tool"?x(e.item):e.accessory.order;const r=o.type==="tool"?x(o.item):o.accessory.order;return n-r}))}function C(e){return e.flatMap((e=>{if(e.type==="tool")return[`tool:${e.id}`];if(e.accessory.type==="divider")return[];if(e.accessory.type==="shortcut"){return e.accessory.action.isInactive?[]:[`accessory:${e.id}:${e.accessory.action.id}`]}const o=e.accessory.primaryAction.isInactive?[]:[`accessory:${e.id}:${e.accessory.primaryAction.id}`];if(e.accessory.secondaryAction&&!e.accessory.secondaryAction.isInactive){o.push(`accessory:${e.id}:${e.accessory.secondaryAction.id}`)}return o}))}function T(e,o,t){if(!o.length)return 0;const i=e[t];const s=i?o.indexOf(i):-1;if(s>=0)return s;for(let i=t+1;i<e.length;i+=1){const t=o.indexOf(e[i]);if(t>=0)return t}for(let i=t-1;i>=0;i-=1){const t=o.indexOf(e[i]);if(t>=0)return t}return Math.min(Math.max(t,0),o.length-1)}function A(e,o,t){return{accessoryId:e,actionId:o,anchor:t}}function D(e){return typeof e==="string"&&e.trim().length>0}function S(e){if(e.railPlacement)return e.railPlacement;if(e.id===g)return"header";if(e.id==="help")return"footer";return"body"}function $(e,o,t){if(!t||e.some((e=>e.id===t))){return{open:o,activeTool:t,removedTool:""}}return{open:false,activeTool:"",removedTool:t}}function j(e){const o=e.transitionProperty.split(",").map((e=>e.trim()));const t=e.transitionDuration.split(",").map((e=>a(e.trim(),0)));const i=e.transitionDelay.split(",").map((e=>a(e.trim(),0)));return o.reduce(((e,o,s)=>{if(o!=="all"&&o!=="max-width")return e;const n=t[s%t.length]??0;const r=i[s%i.length]??0;return Math.max(e,n+r,0)}),0)}function E(e,o){return!e&&o==="idle"}function R(e,o,t){if(t==="closing")return e<=.5;if(t==="opening")return o>0&&e>=o-.5;return true}function F(e,o,t){if(e&&o===t){return{open:false,activeTool:t,selected:false}}return{open:true,activeTool:t,selected:true}}const M=()=>`:host,:where(.ds-table),:where(.tooltip-popup),:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}.ds-control--lg,:host(.ds-control--lg),:host(.ds-control--md),.ds-control--md,:host(.ds-control--sm),.ds-control--sm,:host(.ds-control--xs),.ds-control--xs{--ds-control-radius:var(--ds-radius-control)}:host(.ds-control--lg),.ds-control--lg{--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)}:host(.ds-control--md),.ds-control--md{--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)}:host(.ds-control--sm),.ds-control--sm{--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)}:host(.ds-control--xs),.ds-control--xs{--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}:host(.ds-chrome-space--sm),.ds-chrome-space--sm{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}:host(.ds-chrome-space--md),.ds-chrome-space--md{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}:host(.ds-chrome-space--lg),.ds-chrome-space--lg{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}:host(.ds-chrome-row),.ds-chrome-row,:host(.ds-chrome-column),.ds-chrome-column,:host(.ds-chrome-grid),.ds-chrome-grid{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}:host(.ds-chrome-row),.ds-chrome-row{flex-direction:row;align-items:center}:host(.ds-chrome-column),.ds-chrome-column{flex-direction:column}:host(.ds-chrome-grid),.ds-chrome-grid{display:grid;align-items:center}@media (forced-colors: active){:root,:host,.ds-forced-colors-scope{--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}}:host{--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)}:host(.ds-focus-ring),.ds-focus-ring,:host(.ds-focus-ring-inset),.ds-focus-ring-inset{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}:host(.ds-focus-ring:focus-visible),.ds-focus-ring:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}:host(.ds-focus-ring.ds-focus-ring--visible),.ds-focus-ring.ds-focus-ring--visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}:host(.ds-focus-ring-inset:focus-visible),.ds-focus-ring-inset:focus-visible{outline:none}:host(.ds-focus-ring-inset:focus-visible)::after,.ds-focus-ring-inset:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}:host(.ds-focus-ring-inset.ds-focus-ring--visible),.ds-focus-ring-inset.ds-focus-ring--visible{outline:none}:host(.ds-focus-ring-inset.ds-focus-ring--visible)::after,.ds-focus-ring-inset.ds-focus-ring--visible::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){:host{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){:root,:host,.ds-forced-colors-scope{--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}}:host(.ds-interaction-fill),.ds-interaction-fill{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}:host(.ds-interaction-fill)::before,.ds-interaction-fill::before,:host(.ds-interaction-fill)::after,.ds-interaction-fill::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}:host(.ds-interaction-fill)::before,.ds-interaction-fill::before{z-index:1}:host(.ds-interaction-fill)::after,.ds-interaction-fill::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)}:host(.ds-interaction-fill--bordered),.ds-interaction-fill--bordered{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}:host(.ds-interaction-fill--selected)::before,.ds-interaction-fill--selected::before{background:var(--ds-interaction-active)}:host(.ds-interaction-fill--selected),.ds-interaction-fill--selected{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){:host(.ds-interaction-fill:hover:not(:disabled))::after,.ds-interaction-fill:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}:host(.ds-interaction-fill:active:not(:disabled))::after,.ds-interaction-fill:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}:host(.ds-interaction-fill--grouped)::after,.ds-interaction-fill--grouped::after,:host(.ds-interaction-fill--grouped:active:not(:disabled))::after,.ds-interaction-fill--grouped:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){:host(.ds-interaction-fill--grouped:hover:not(:disabled))::after,.ds-interaction-fill--grouped:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}:host(.ds-interaction-fill--grouped),.ds-interaction-fill--grouped{--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 )}:host(.ds-interaction-fill)>.ds-interaction-fill__content,.ds-interaction-fill>.ds-interaction-fill__content,.ds-interaction-fill__content{position:relative;z-index:2;cursor:inherit}:host(.ds-interaction-fill--on-faint),.ds-interaction-fill--on-faint{--ds-interaction-active:var(--color-interaction-active)}:host(.ds-interaction-fill--on-medium),.ds-interaction-fill--on-medium{--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)}:host(.ds-interaction-fill--on-bold),.ds-interaction-fill--on-bold{--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)}:host(.ds-interaction-fill--on-strong),.ds-interaction-fill--on-strong{--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)}:host(.ds-interaction-fill--on-translucent),.ds-interaction-fill--on-translucent{--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)}:host(.ds-interaction-fill--on-inverted),.ds-interaction-fill--on-inverted{--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)}:host(.ds-interaction-fill--on-media),.ds-interaction-fill--on-media{--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)}:host(.ds-interaction-fill--on-always-dark),.ds-interaction-fill--on-always-dark{--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)}:host(.ds-interaction-fill--on-chrome),.ds-interaction-fill--on-chrome{--ds-interaction-hover:var(--color-chrome-interaction-hover);--ds-interaction-pressed:var(--color-chrome-interaction-pressed);--ds-interaction-active:var(--color-chrome-interaction-active);--ds-focus-ring-color:var(--color-chrome-interaction-focus)}:host(.ds-interaction-fill--on-navigation),.ds-interaction-fill--on-navigation{--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)}:host(.ds-interaction-fill.ds-interaction-fill--surface-open:not(:disabled))::after,.ds-interaction-fill.ds-interaction-fill--surface-open:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){:host(.ds-interaction-fill)::after,.ds-interaction-fill::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))}:host(.ds-interaction-fill--surface-open:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible))::after,.ds-interaction-fill--surface-open:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}:host(.ds-interaction-fill--selected)::before,.ds-interaction-fill--selected::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){:host(.ds-interaction-fill:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible))::after,.ds-interaction-fill: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)}}:host(.ds-scrollbar-hidden),.ds-scrollbar-hidden{scrollbar-width:none}:host(.ds-scrollbar-hidden)::-webkit-scrollbar,.ds-scrollbar-hidden::-webkit-scrollbar{display:none}:host{display:block;flex:0 0 auto;box-sizing:border-box;height:100%;min-height:0;overflow:hidden;--_panel-tools-rail-width:var(--dimension-size-600);--_panel-tools-drawer-width:var(--ds-shell-panel-tools-width, var(--dimension-panel-width-xs));--_panel-tools-border:var(--dimension-stroke-width-012, 1px) solid var(--_shell-tools-border, var(--color-border-tertiary));--_panel-tools-divider-color:var(--_shell-tools-divider, var(--color-divider-divider));--_panel-tools-divider:var(--dimension-stroke-width-012, 1px) solid var(--_panel-tools-divider-color);--_panel-tools-fg-secondary:var(--_shell-tools-fg-secondary, var(--color-foreground-secondary));--_panel-tools-shortcut-fg-secondary:var( --_shell-tools-fg-secondary, var(--color-chrome-foreground-secondary) );--_panel-tools-shortcut-border:var( --_shell-tools-border-secondary, var(--color-chrome-border-secondary) );--_panel-tools-shortcut-dot-ring:var( --_shell-tools-background-theme, var(--color-chrome-background-theme) );--_panel-tools-expand-dur:var(--effect-animation-duration-medium-1, 300ms)}.panel-tools__layout{display:flex;flex-direction:row-reverse;align-items:stretch;height:100%;min-height:0;box-sizing:border-box}.panel-tools__drawer{flex:0 0 auto;max-width:0;min-width:0;height:100%;min-height:0;overflow:hidden;box-sizing:border-box;transition:none}:host(.panel-tools--ready) .panel-tools__drawer{transition:max-width var(--_panel-tools-expand-dur) var(--effect-animation-easing-ease-in-out, ease)}:host(.panel-tools--ready.panel-tools--motion-opening) .panel-tools__drawer{transition:max-width var(--_panel-tools-expand-dur) var(--effect-animation-easing-ease-out, ease-out)}:host(.panel-tools--ready.panel-tools--motion-closing) .panel-tools__drawer{transition:max-width var(--_panel-tools-expand-dur) var(--effect-animation-easing-ease-in, ease-in)}:host(.panel-tools--open) .panel-tools__drawer{max-width:var(--_panel-tools-drawer-width)}.panel-tools__drawer--visible{border-left:var(--_panel-tools-border)}.panel-tools__drawer-surface{display:flex;flex-direction:column;width:var(--_panel-tools-drawer-width);height:100%;min-height:0;box-sizing:border-box;background-color:transparent}.panel-tools__full-views,.panel-tools__full-view{flex:1 1 auto;min-height:0;overflow:hidden}.panel-tools__full-view{height:100%}.panel-tools__full-view{display:none}.panel-tools__full-view--active{display:block}:host([presentation='fullscreen']){height:100%;inset:0;position:fixed;width:100%;z-index:var(--dimension-z-index-modal)}:host([presentation='fullscreen']) .panel-tools__rail{display:none}:host([presentation='fullscreen']) .panel-tools__drawer{max-width:100%;transition:none;width:100%}:host([presentation='fullscreen']) .panel-tools__drawer--visible{border-left:none}:host([presentation='fullscreen']) .panel-tools__drawer-surface{background-color:transparent;width:100%}:host([presentation='fullscreen']:not(.panel-tools--fullscreen)) .panel-tools__drawer-surface,:host(.panel-tools--fullscreen:not([presentation='fullscreen'])) .panel-tools__drawer-surface{visibility:hidden}:host(.panel-tools--presentation-snap) .panel-tools__drawer{transition:none}.panel-tools__body{flex:1 1 auto;min-height:0;overflow:auto;position:relative}:host(.panel-tools--drawer-resting) .panel-tools__body{content-visibility:auto;contain-intrinsic-size:auto 200px}.panel-tools__view{display:none;height:100%;min-height:0;box-sizing:border-box;padding:var(--dimension-space-200);color:var(--_panel-tools-fg-secondary);font-family:var(--typography-font-family-ui);font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md);font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.panel-tools__view ::slotted(*){margin:0;color:var(--_panel-tools-fg-secondary);font-family:var(--typography-font-family-ui);font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md);font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.panel-tools__view--active{display:block}.panel-tools__rail{flex:0 0 var(--_panel-tools-rail-width);width:var(--_panel-tools-rail-width);min-width:var(--_panel-tools-rail-width);display:flex;flex-direction:column;box-sizing:border-box;height:100%;min-height:0;border-left:var(--_panel-tools-border);background-color:transparent}.panel-tools__rail-header{justify-content:center;height:var(--dimension-size-600);flex-shrink:0;border-bottom:var(--_panel-tools-divider)}.panel-tools__rail-header.panel-tools__rail-section--stacked{height:auto;min-height:var(--dimension-size-600)}.panel-tools__rail-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}.panel-tools__rail-actions{display:flex;flex-direction:column;gap:var(--dimension-space-050);width:100%}.panel-tools__rail-footer{justify-content:center;flex-shrink:0;margin-top:auto}.panel-tools__rail-section--stacked{align-items:stretch}.panel-tools__rail-action{display:flex;align-items:center;justify-content:center;width:100%;height:var(--ds-control-height);flex-shrink:0}.panel-tools__accessory{display:flex;flex-direction:column;flex:0 0 calc(var(--dimension-size-400) * 2);box-sizing:border-box;width:100%;min-height:calc(var(--dimension-size-400) * 2)}.panel-tools__accessory--shortcut{flex-basis:var(--dimension-size-400);min-width:var(--dimension-size-400);min-height:var(--dimension-size-400)}.panel-tools__accessory--shortcut>ds-tooltip{display:flex;flex:1 1 auto;width:100%;min-height:0}.panel-tools__accessory--transient{align-items:center;gap:var(--dimension-space-100);width:var(--dimension-size-400);height:calc(var(--dimension-size-400) * 2);min-height:calc(var(--dimension-size-400) * 2);padding:var(--dimension-space-050);border-radius:var(--dimension-radius-half)}.panel-tools__accessory--transient-active{background-color:var(--color-background-bold-brand)}.panel-tools__accessory--transient-positive{background-color:var(--color-background-bold-positive)}.panel-tools__accessory--transient>ds-tooltip{display:flex;flex:0 0 var(--dimension-size-300);width:var(--dimension-size-300);height:var(--dimension-size-300);min-height:var(--dimension-size-300)}.panel-tools__shortcut{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:var(--dimension-radius-half);color:var(--_panel-tools-shortcut-fg-secondary);background:transparent;font:inherit}.panel-tools__shortcut:disabled{color:var(--color-foreground-disabled);cursor:not-allowed}.panel-tools__shortcut-content{display:flex;align-items:center;justify-content:center;width:var(--dimension-size-400);height:var(--dimension-size-400)}.panel-tools__shortcut-orb{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--dimension-size-300);height:var(--dimension-size-300);border:var(--dimension-stroke-width-012) solid var(--_panel-tools-shortcut-border);border-radius:var(--dimension-radius-half);background:transparent}.panel-tools__shortcut-dot{position:absolute;inset-block-start:calc((var(--dimension-size-400) - var(--dimension-iconography-md)) / 2);inset-inline-end:calc((var(--dimension-size-400) - var(--dimension-iconography-md)) / 2);z-index:2;pointer-events:none}.panel-tools__accessory-primary{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--dimension-size-300);height:var(--dimension-size-300);margin:0;padding:0;border:0;border-radius:var(--dimension-radius-half);color:var(--color-foreground-on-bold-background-secondary);background:transparent;font:inherit;--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-on-bold-background-secondary)}.panel-tools__accessory-primary:disabled{color:var(--color-foreground-on-bold-background-quaternary);cursor:not-allowed}.panel-tools__accessory-primary-content{display:flex;align-items:center;justify-content:center;position:relative;width:100%;height:100%}.panel-tools__accessory-image,.panel-tools__accessory-initial{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%;border-radius:var(--dimension-radius-half)}.panel-tools__accessory-image{object-fit:cover}.panel-tools__accessory-initial{color:inherit;background:transparent}.panel-tools__accessory-secondary{display:inline-flex;flex:0 0 var(--dimension-size-300);width:var(--dimension-size-300);height:var(--dimension-size-300)}.panel-tools__accessory-divider{flex:0 0 auto;box-sizing:border-box;width:100%;padding-block:var(--dimension-space-050)}.panel-tools__accessory-divider ds-divider{display:block;--_divider-color:var(--_panel-tools-divider-color)}@media (prefers-reduced-motion: reduce){:host(.panel-tools--ready.panel-tools--motion-opening) .panel-tools__drawer,:host(.panel-tools--ready.panel-tools--motion-closing) .panel-tools__drawer{transition:none}}`;const B=e(class e extends o{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.dsToolChange=t(this,"dsToolChange",7);this.dsPresentationChange=t(this,"dsPresentationChange",7);this.dsHeaderBack=t(this,"dsHeaderBack",7);this.dsHeaderAction=t(this,"dsHeaderAction",7);this.dsRailAccessoryAction=t(this,"dsRailAccessoryAction",7);this.dsChromeTransitionStart=t(this,"dsChromeTransitionStart",7);this.dsChromeTransitionEnd=t(this,"dsChromeTransitionEnd",7);this.open=false;this.presentation="drawer";this.fullscreenHeaderMode="shared";this.activeTool="";this.items=[];this.accessories=[];this.toolsLabel="Tools";this.toolShortcutsLabel="Tool shortcuts";this.headers={};this.storageKey="";this.motion="idle";this.drawerSurfaceRetained=false;this.readyForMotion=false;this.presentationMotionSuppressed=false;this.rovingIndex=0;this.fullViewToolIds=[];this.railBodyScrollable=false;this.motionEnableGeneration=0;this.presentationMotionGeneration=0;this.transitionGeneration=0;this.transitionFallbackTimer=null;this.ignoreReplacementTerminal=false;this.focusBeforeFullscreen=null;this.fullViewObserver=null;this.handleComposedHeaderAction=e=>{const o=e.detail;if(!this.activeTool||!o?.id)return;e.stopPropagation();this.dsHeaderAction.emit({tool:this.activeTool,id:o.id,anchor:o.anchor})};this.handleTransitionEnd=e=>{const o=this.renderRoot.querySelector(".panel-tools__drawer");if(e.target!==o)return;if(e.propertyName!=="max-width")return;if(this.ignoreReplacementTerminal){this.ignoreReplacementTerminal=false;return}if(e.type==="transitioncancel")return;if(o&&!this.drawerTransitionAtTerminal(o,this.motion))return;this.finishDrawerTransition()};this.handleToolChange=e=>{const o=F(this.open,this.activeTool,e);this.open=o.open;this.activeTool=o.activeTool;this.dsToolChange.emit({id:e,selected:o.selected})};this.handleRailKeyDown=(e,o,t)=>{const i=C(this.orderedRailEntries);if(!i.length)return;if((e.key==="Enter"||e.key===" ")&&t){e.preventDefault();t();return}if(e.key==="ArrowDown"){if(o>=i.length-1)return;e.preventDefault();this.focusRailAt(o+1);return}if(e.key==="ArrowUp"){if(o<=0)return;e.preventDefault();this.focusRailAt(o-1)}}}get railItems(){return this.items??[]}get orderedRailItems(){return k(this.railItems)}get railAccessories(){return this.accessories??[]}get orderedRailEntries(){return z(this.railItems,this.railAccessories)}disconnectedCallback(){this.el.removeEventListener("transitionend",this.handleTransitionEnd);this.el.removeEventListener("transitioncancel",this.handleTransitionEnd);this.el.removeEventListener("dsAction",this.handleComposedHeaderAction);this.clearTransitionCompletion();this.motionEnableGeneration+=1;this.fullViewObserver?.disconnect();this.fullViewObserver=null;this.disconnectRailBodyObserver()}presentationChanged(e,t){if(e===t)return;if(this.el.getAttribute("presentation")!==e){this.el.setAttribute("presentation",e)}const i=++this.presentationMotionGeneration;this.presentationMotionSuppressed=true;requestAnimationFrame((()=>{requestAnimationFrame((()=>{if(i!==this.presentationMotionGeneration)return;this.presentationMotionSuppressed=false}))}));if(e==="fullscreen"){this.focusBeforeFullscreen=document.activeElement instanceof o?document.activeElement:null;this.open=true}else if(t==="fullscreen"){const e=this.focusBeforeFullscreen;const o=this.activeHeader().actions?.[0]?.id;requestAnimationFrame((async()=>{if(e?.isConnected){e.focus({preventScroll:true})}const t=e?document.activeElement===e||e.contains(document.activeElement):false;if(!t&&o)await this.focusHeaderAction(o);this.focusBeforeFullscreen=null}))}this.dsPresentationChange.emit({presentation:e})}handleFullscreenEscape(e){if(this.presentation!=="fullscreen"||e.key!=="Escape")return;e.preventDefault();e.stopPropagation();this.presentation="drawer"}deferMotionEnable(){if(this.readyForMotion)return;const e=++this.motionEnableGeneration;requestAnimationFrame((()=>{if(e!==this.motionEnableGeneration)return;requestAnimationFrame((()=>{if(e!==this.motionEnableGeneration)return;this.readyForMotion=true}))}))}connectedCallback(){this.el.setAttribute(r,"");this.el.addEventListener("transitionend",this.handleTransitionEnd);this.el.addEventListener("transitioncancel",this.handleTransitionEnd);this.el.addEventListener("dsAction",this.handleComposedHeaderAction)}componentWillLoad(){this.restoreLastActiveTool();this.drawerSurfaceRetained=this.open}openChanged(e,o){if(e)this.drawerSurfaceRetained=true;if(this.readyForMotion&&o!==undefined&&o!==e){this.startDrawerTransition(e?"opening":"closing")}else if(!e){this.drawerSurfaceRetained=false}this.deferMotionEnable()}activeToolChanged(){this.persistLastActiveTool();this.deferMotionEnable()}storageKeyChanged(){this.restoreLastActiveTool()}componentDidLoad(){this.deferMotionEnable();this.connectRailBodyObserver();this.updateRailBodyScrollable();this.syncFullViewTools();this.fullViewObserver=new MutationObserver((()=>this.syncFullViewTools()));this.fullViewObserver.observe(this.el,{childList:true,attributes:true,attributeFilter:["slot"]})}componentDidRender(){this.updateRailBodyScrollable()}connectRailBodyObserver(){this.disconnectRailBodyObserver();if(!this.railBodyEl||typeof ResizeObserver==="undefined")return;this.railBodyObserver=new ResizeObserver((()=>this.updateRailBodyScrollable()));this.railBodyObserver.observe(this.railBodyEl)}disconnectRailBodyObserver(){this.railBodyObserver?.disconnect();this.railBodyObserver=undefined}updateRailBodyScrollable(){const e=Boolean(this.railBodyEl&&this.railBodyEl.scrollHeight>this.railBodyEl.clientHeight+1);if(e!==this.railBodyScrollable)this.railBodyScrollable=e}itemsChanged(){this.rovingIndex=0;this.reconcileActiveTool();this.deferMotionEnable()}accessoriesChanged(e=[],o=[]){const t=C(z(this.railItems,o));const i=C(z(this.railItems,e));const s=this.renderRoot.activeElement;const n=s?.closest("[data-rail-focus-key]")?.dataset.railFocusKey;const r=n?t.indexOf(n):-1;const a=r>=0?r:this.rovingIndex;const l=T(t,i,a);const d=r>=0&&!i.includes(n??"");this.rovingIndex=l;if(d&&i.length){requestAnimationFrame((()=>this.focusRailAt(l)))}}restoreLastActiveTool(){if(!this.storageKey||this.activeTool)return;try{const e=localStorage.getItem(this.storageKey);if(D(e))this.activeTool=e}catch{}}persistLastActiveTool(){if(!this.storageKey||!this.activeTool)return;try{localStorage.setItem(this.storageKey,this.activeTool)}catch{}}clearPersistedTool(){if(!this.storageKey)return;try{localStorage.removeItem(this.storageKey)}catch{}}reconcileActiveTool(){const e=$(this.railItems,this.open,this.activeTool);if(!e.removedTool)return;this.clearPersistedTool();this.open=e.open;this.activeTool=e.activeTool;this.dsToolChange.emit({id:e.removedTool,selected:false})}startDrawerTransition(e){const o=this.renderRoot.querySelector(".panel-tools__drawer");if(this.motion!=="idle"){this.finishDrawerTransition();this.ignoreReplacementTerminal=true}this.motion=e;this.dsChromeTransitionStart.emit({source:"panel-tools",phase:e});const t=++this.transitionGeneration;requestAnimationFrame((()=>{requestAnimationFrame((()=>{if(t!==this.transitionGeneration||this.motion!==e)return;if(!o){this.finishDrawerTransition();return}if(this.drawerTransitionAtTerminal(o,e)){this.finishDrawerTransition();return}const i=j(getComputedStyle(o));if(i<=0){this.finishDrawerTransition();return}this.transitionFallbackTimer=window.setTimeout((()=>{this.finishDrawerTransition()}),i)}))}))}drawerTransitionAtTerminal(e,o){const t=e.getBoundingClientRect().width;const i=e.querySelector(".panel-tools__drawer-surface");const s=i?.getBoundingClientRect().width??0;return R(t,s,o)}finishDrawerTransition(){const e=this.motion;const o=e!=="idle";this.clearTransitionCompletion();if(!o)return;this.ignoreReplacementTerminal=false;this.motion="idle";if(e==="closing"&&!this.open){this.drawerSurfaceRetained=false}this.dsChromeTransitionEnd.emit({source:"panel-tools"})}clearTransitionCompletion(){this.transitionGeneration+=1;if(this.transitionFallbackTimer!==null){window.clearTimeout(this.transitionFallbackTimer);this.transitionFallbackTimer=null}}isRailSelected(e){return this.open&&this.activeTool===e}isDrawerPresent(){return this.open||this.drawerSurfaceRetained}isViewActive(e){return this.isDrawerPresent()&&this.activeTool===e}hasFullView(e){return this.fullViewToolIds.includes(e)}syncFullViewTools(){const e=this.orderedRailItems.map((e=>e.id));const o=e.filter((e=>Boolean(this.el.querySelector(`[slot="${e}-view"]`))));if(o.join("|")!==this.fullViewToolIds.join("|"))this.fullViewToolIds=o}get renderRoot(){return this.el.shadowRoot??this.el}accessibleLabel(){if(!this.isDrawerPresent()||!this.activeTool)return"";const e=this.railItems.find((e=>e.id===this.activeTool));return e?.label??b[this.activeTool]??this.activeTool}resolvedHeaders(){return this.headers??{}}activeHeader(){if(!this.activeTool)return{};return this.resolvedHeaders()[this.activeTool]??{}}async activateTool(e){const o=this.railItems.find((o=>o.id===e));if(!o||o.isInactive)return;this.handleToolChange(e)}async closeDrawer(){if(!this.open)return;const e=this.activeTool;this.open=false;if(e){this.dsToolChange.emit({id:e,selected:false})}}async focusHeaderAction(e){const o=this.renderRoot.querySelector(`[data-header-action-id="${CSS.escape(e)}"]`);await(o?.setFocus?.())}focusRailAt(e){const o=C(this.orderedRailEntries);if(!o.length)return;const t=Math.max(0,Math.min(e,o.length-1));this.rovingIndex=t;const i=this.renderRoot.querySelector(`[data-rail-focus-key="${CSS.escape(o[t])}"]`);if(i?.setFocus){void i.setFocus()}else{i?.focus({preventScroll:true})}}renderRailAction(e,o){const t=`tool:${e.id}`;const s=e.ariaLabel??e.label??b[e.id]??e.id;return i("ds-tooltip",{key:e.id,label:s,shortcutKey:e.shortcutKey??y[e.id],side:"left",size:"sm",boundary:"viewport"},i("ds-button-unfilled",{variant:"icon",class:"panel-tools__rail-action",icon:e.icon,isActive:this.isRailSelected(e.id),activeFill:false,hasBorder:false,background:"chrome",pressScale:false,dot:e.dot??false,isInactive:e.isInactive,focusTabIndex:o===this.rovingIndex?0:-1,"data-rail-focus-key":t,"aria-label":s,pressed:this.isRailSelected(e.id),onFocusin:()=>{this.rovingIndex=o},onKeyDown:t=>this.handleRailKeyDown(t,o,(()=>this.handleToolChange(e.id))),onDsClick:()=>this.handleToolChange(e.id)}))}accessoryPrimaryLabel(e){const o=e.primaryAction.ariaLabel?.trim()||e.ariaLabel;const t=e.statusText.trim();return t?`${o}. ${t}`:o}emitAccessoryAction(e,o,t){if(o.isInactive)return;this.dsRailAccessoryAction.emit(A(e,o.id,t))}renderAccessoryVisual(e){if(e.visual.type==="image"){return i("img",{class:"panel-tools__accessory-image",src:e.visual.src,alt:"","aria-hidden":"true"})}if(e.visual.type==="initial"){const o=[...e.visual.initial.trim()].slice(0,2).join("");return i("ds-text",{class:"panel-tools__accessory-initial",as:"span",variant:"text-caption",emphasis:true,color:"inherit","aria-hidden":"true"},o)}return i("ds-icon",{name:e.visual.icon,size:"sm","aria-hidden":"true"})}renderRailShortcut(e,o){const t=`accessory:${e.id}:${e.action.id}`;const s=o.get(t);const n=e.action.ariaLabel?.trim()||e.ariaLabel;const r=[...e.initials.trim()].slice(0,2).join("");return i("div",{key:`accessory:${e.id}`,class:"panel-tools__accessory panel-tools__accessory--shortcut"},i("ds-tooltip",{label:n,side:"left",size:"sm",boundary:"viewport"},i("button",{type:"button",class:"panel-tools__shortcut ds-focus-ring-inset ds-interaction-fill ds-interaction-fill--on-chrome",disabled:e.action.isInactive,tabIndex:s===this.rovingIndex?0:-1,"data-rail-focus-key":t,"aria-label":n,onFocus:()=>{if(s!==undefined)this.rovingIndex=s},onKeyDown:e=>s===undefined?undefined:this.handleRailKeyDown(e,s),onClick:o=>this.emitAccessoryAction(e.id,e.action,o.currentTarget)},i("span",{class:"panel-tools__shortcut-content ds-interaction-fill__content"},i("ds-text",{class:"panel-tools__shortcut-orb",as:"span",variant:"text-caption",emphasis:true,color:"inherit"},r),e.dot?i("ds-badge",{class:"panel-tools__shortcut-dot",variant:"dot",background:"var(--_panel-tools-shortcut-dot-ring)","aria-hidden":"true"}):null))))}renderRailAccessory(e,o){if(e.type==="divider"){return i("div",{key:`accessory:${e.id}`,class:"panel-tools__accessory-divider","aria-hidden":"true"},i("ds-divider",null))}if(e.type==="shortcut"){return this.renderRailShortcut(e,o)}const t=`accessory:${e.id}:${e.primaryAction.id}`;const s=o.get(t);const n=this.accessoryPrimaryLabel(e);const r=e.secondaryAction;const a=r?`accessory:${e.id}:${r.id}`:"";const l=r?o.get(a):undefined;return i("div",{key:`accessory:${e.id}`,class:{"panel-tools__accessory":true,"panel-tools__accessory--transient":true,"panel-tools__accessory--transient-active":e.statusTone==="active","panel-tools__accessory--transient-positive":e.statusTone==="positive"}},i("ds-tooltip",{label:n,side:"left",size:"sm",boundary:"viewport"},i("button",{type:"button",class:"panel-tools__accessory-primary ds-focus-ring-inset ds-interaction-fill ds-interaction-fill--on-bold",disabled:e.primaryAction.isInactive,tabIndex:s===this.rovingIndex?0:-1,"data-rail-focus-key":t,"aria-label":n,onFocus:()=>{if(s!==undefined)this.rovingIndex=s},onKeyDown:e=>s===undefined?undefined:this.handleRailKeyDown(e,s),onClick:o=>this.emitAccessoryAction(e.id,e.primaryAction,o.currentTarget)},i("span",{class:"panel-tools__accessory-primary-content ds-interaction-fill__content"},this.renderAccessoryVisual(e)))),r?i("ds-tooltip",{label:r.ariaLabel,side:"left",size:"sm",boundary:"viewport"},i("ds-button-unfilled",{class:"panel-tools__accessory-secondary",variant:"icon",size:"sm",rounded:true,background:"bold",hasBorder:false,icon:r.icon,isInactive:r.isInactive,focusTabIndex:l===this.rovingIndex?0:-1,"data-rail-focus-key":a,"aria-label":r.ariaLabel,onFocusin:()=>{if(l!==undefined)this.rovingIndex=l},onKeyDown:e=>l===undefined?undefined:this.handleRailKeyDown(e,l),onDsClick:o=>this.emitAccessoryAction(e.id,r,o.currentTarget)})):null)}renderRailEntry(e,o){if(e.type==="tool"){return this.renderRailAction(e.item,o.get(`tool:${e.id}`)??0)}return this.renderRailAccessory(e.accessory,o)}render(){const e=this.accessibleLabel();const o=this.activeHeader();const t=o.title?.trim()||e;const n=o.actions??[];const r=this.orderedRailItems;const a=this.orderedRailEntries;const l=e=>e.type==="tool"?S(e.item):e.accessory.railPlacement;const d=a.filter((e=>l(e)==="header"));const c=a.filter((e=>l(e)==="body"));const h=a.filter((e=>l(e)==="footer"));const f=new Map(C(a).map(((e,o)=>[e,o])));const u=this.isDrawerPresent();const p=E(this.open,this.motion);const v=Boolean(u&&this.activeTool&&this.hasFullView(this.activeTool));const m=r.map((e=>e.id));return i(s,{key:"50ebb506f1219c817b7bccfa70e0932068cfb951",class:{"panel-tools":true,"panel-tools--open":this.open,"panel-tools--ready":this.readyForMotion,"panel-tools--motion-opening":this.motion==="opening","panel-tools--motion-closing":this.motion==="closing","panel-tools--drawer-resting":p,"panel-tools--fullscreen":this.presentation==="fullscreen","panel-tools--presentation-snap":this.presentationMotionSuppressed},"data-ds-overlay-boundary":true,role:this.presentation==="fullscreen"?"dialog":"complementary","aria-modal":this.presentation==="fullscreen"?"true":undefined,"aria-label":this.toolsLabel},i("div",{key:"9f599e566231ff38220c57f0210cc95b7429c0c8",class:"panel-tools__layout"},i("nav",{key:"f718cc053de3a295cf77e28df3aed6049b7caa1f",class:"panel-tools__rail","aria-label":this.toolShortcutsLabel},d.length?i("div",{class:{"panel-tools__rail-header":true,"panel-tools__rail-section--stacked":d.length>1,"ds-chrome-row":d.length===1,"ds-chrome-column":d.length>1,"ds-chrome-space--md":true}},d.map((e=>this.renderRailEntry(e,f)))):null,i("div",{key:"6d31b42b704d4a65f9f522fd4cf9702d162b0639",class:{"panel-tools__rail-body":true,"ds-chrome-column":true,"ds-chrome-space--md":true,"ds-scrollbar-hidden":true,"ds-focus-ring":this.railBodyScrollable},ref:e=>{const o=e??undefined;if(o===this.railBodyEl)return;this.railBodyEl=o;this.connectRailBodyObserver()},role:this.railBodyScrollable?"region":undefined,"aria-label":this.railBodyScrollable?this.toolShortcutsLabel:undefined,tabIndex:this.railBodyScrollable?0:undefined},i("div",{key:"987be505cf1761c7b319aefd64df982d021d6b92",class:"panel-tools__rail-actions"},c.map((e=>this.renderRailEntry(e,f))))),h.length?i("div",{class:{"panel-tools__rail-footer":true,"panel-tools__rail-section--stacked":h.length>1,"ds-chrome-row":h.length===1,"ds-chrome-column":h.length>1,"ds-chrome-space--md":true}},h.map((e=>this.renderRailEntry(e,f)))):null),i("div",{key:"e51b2ab933b9353c4bd5500e69ad6db2c9c8f7e5",class:{"panel-tools__drawer":true,"panel-tools__drawer--visible":u},"aria-hidden":u?null:"true",inert:u?undefined:true},i("div",{key:"52b168a31246dee3dcb0c25ae2ea0d0d9cd3a0f6",class:"panel-tools__drawer-surface"},this.presentation!=="fullscreen"||this.fullscreenHeaderMode==="shared"?i("ds-panel-tool-header",{class:"panel-tools__header",heading:t,showBack:o.showBack??false,backIcon:o.backIcon||"ChevronLeft",backAriaLabel:o.backAriaLabel||"Back",showMenu:false,ref:e=>{const o=e;if(o)o.actions=n},onDsBack:()=>{if(this.activeTool)this.dsHeaderBack.emit({tool:this.activeTool})}}):null,i("div",{key:"98935c8f991f15a9d1cede43e756938cf3561b1b",class:"panel-tools__body",hidden:v},m.map((e=>{const o=this.isViewActive(e);return i("div",{class:{"panel-tools__view":true,"panel-tools__view--active":o},hidden:!o},i("slot",{name:e}))}))),i("div",{key:"d1f6ef122b9af73b3e06540c7942a06093cd3df4",class:"panel-tools__full-views",hidden:!v},m.map((e=>i("div",{class:{"panel-tools__full-view":true,"panel-tools__full-view--active":this.isViewActive(e)&&this.hasFullView(e)},hidden:!(this.isViewActive(e)&&this.hasFullView(e))},i("slot",{name:`${e}-view`})))))))))}get el(){return this}static get watchers(){return{presentation:[{presentationChanged:0}],open:[{openChanged:0}],activeTool:[{activeToolChanged:0}],storageKey:[{storageKeyChanged:0}],items:[{itemsChanged:0}],accessories:[{accessoriesChanged:0}]}}static get style(){return M()}},[257,"ds-panel-tools",{open:[1540],presentation:[1537],fullscreenHeaderMode:[513,"fullscreen-header-mode"],activeTool:[1537,"active-tool"],items:[16],accessories:[16],toolsLabel:[1,"tools-label"],toolShortcutsLabel:[1,"tool-shortcuts-label"],headers:[16],storageKey:[1,"storage-key"],motion:[32],drawerSurfaceRetained:[32],readyForMotion:[32],presentationMotionSuppressed:[32],rovingIndex:[32],fullViewToolIds:[32],railBodyScrollable:[32],activateTool:[64],closeDrawer:[64],focusHeaderAction:[64]},[[10,"keydown","handleFullscreenEscape"]],{presentation:[{presentationChanged:0}],open:[{openChanged:0}],activeTool:[{activeToolChanged:0}],storageKey:[{storageKeyChanged:0}],items:[{itemsChanged:0}],accessories:[{accessoriesChanged:0}]}]);function K(){if(typeof customElements==="undefined"){return}const e=["ds-panel-tools","ds-badge","ds-button-unfilled","ds-divider","ds-icon","ds-loader","ds-panel-tool-header","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-panel-tools":if(!customElements.get(n(e))){customElements.define(n(e),B)}break;case"ds-badge":if(!customElements.get(n(e))){l()}break;case"ds-button-unfilled":if(!customElements.get(n(e))){d()}break;case"ds-divider":if(!customElements.get(n(e))){c()}break;case"ds-icon":if(!customElements.get(n(e))){h()}break;case"ds-loader":if(!customElements.get(n(e))){f()}break;case"ds-panel-tool-header":if(!customElements.get(n(e))){u()}break;case"ds-text":if(!customElements.get(n(e))){p()}break;case"ds-tooltip":if(!customElements.get(n(e))){v()}break}}))}K();export{B as P,b as a,F as b,_ as c,K as d,k as o,$ as r};
2
+ //# sourceMappingURL=p-CA3iQ1ME.js.map
@@ -0,0 +1,2 @@
1
+ const t={top:"bottom",right:"left",bottom:"top",left:"right"};function i(t,i){const{anchorRect:s,popupWidth:n,popupHeight:e,align:h,sideOffsetPx:r,alignOffsetPx:o}=t;if(i==="top"||i==="bottom"){return{x:h==="start"?s.left+o:h==="end"?s.right-n+o:s.left+s.width/2-n/2+o,y:i==="top"?s.top-e-r:s.bottom+r}}return{x:i==="left"?s.left-n-r:s.right+r,y:h==="start"?s.top+o:h==="end"?s.bottom-e+o:s.top+s.height/2-e/2+o}}function s(t){const i=t.collisionRect??{top:0,left:0,right:t.viewportWidth,bottom:t.viewportHeight};return{top:i.top+t.viewportPadPx,left:i.left+t.viewportPadPx,right:i.right-t.viewportPadPx,bottom:i.bottom-t.viewportPadPx}}function n(t,i,n){const{popupWidth:e,popupHeight:h}=t;const r=s(t);if(i==="top"||i==="bottom"){return Math.max(r.top-n.y,0)+Math.max(n.y+h-r.bottom,0)}return Math.max(r.left-n.x,0)+Math.max(n.x+e-r.right,0)}function e(t,i,s,n){const e=Math.max(s,n-i);return Math.min(Math.max(t,s),e)}function h(h){const r=s(h);const o=i(h,h.side);const u=t[h.side];const a=i(h,u);const l=n(h,h.side,o);const c=n(h,u,a);const f=l>0&&c<l;const m=f?u:h.side;const d=f?a:o;const p=m==="top"?h.anchorRect.top-r.top-h.sideOffsetPx:m==="bottom"?r.bottom-h.anchorRect.bottom-h.sideOffsetPx:r.bottom-r.top;return{x:e(d.x,h.popupWidth,r.left,r.right),y:e(d.y,h.popupHeight,r.top,r.bottom),resolvedSide:m,availableHeight:Math.max(0,p)}}const r=8;class o{constructor(t){this.scrollResizeHandler=null;this.resizeObserver=null;this.retryRaf=null;this.liveRaf=null;this.anchorMotionRaf=null;this.activeAnchorMotions=0;this.ownerDocument=null;this.last=null;this.isReady=false;this.generation=0;this.retryGeneration=0;this.anchorMotionStartHandler=t=>{if(!this.eventCanMoveAnchor(t))return;this.activeAnchorMotions+=1;this.scheduleAnchorMotionUpdate()};this.anchorMotionEndHandler=t=>{if(!this.eventCanMoveAnchor(t))return;this.activeAnchorMotions=Math.max(0,this.activeAnchorMotions-1);this.scheduleAnchorMotionUpdate()};this.options=t}get ready(){return this.isReady}observe(){this.bindListeners()}unobserve(){this.unbindListeners();this.cancel();this.last=null;this.isReady=false}schedule(t){this.cancelRetry();this.isReady=false;const i=this.generation;const s=this.retryGeneration;const n=()=>i===this.generation&&s===this.retryGeneration;let e=this.options.retryBudget??r;const h=()=>{if(!n())return;this.retryRaf=null;const i=this.update();if(!n())return;if(i){this.isReady=true;this.options.onReady?.();if(n())t?.();return}if(e>0){e-=1;this.retryRaf=requestAnimationFrame(h)}};this.retryRaf=requestAnimationFrame(h)}update(){const t=this.options.getAnchor();if(!t?.isConnected)return false;const i=this.options.getPopup();if(!i?.isConnected)return false;this.observeResizeTargets();if(this.options.topLayer&&typeof i.showPopover==="function"&&!i.matches(":popover-open")){try{i.showPopover()}catch{return false}}const s=this.options.measure(t,i);if(!s)return false;const n=h(s);if(!this.last||this.last.x!==n.x||this.last.y!==n.y||this.last.resolvedSide!==n.resolvedSide||this.last.availableHeight!==n.availableHeight){this.last=n;this.options.apply(n)}return true}scheduleLiveUpdate(){const t=this.generation;const i=this.options.liveUpdate??"sync";if(i==="sync"){this.update();return}if(this.liveRaf!==null)return;if(i==="frame"){this.liveRaf=requestAnimationFrame((()=>{if(t!==this.generation)return;this.liveRaf=null;this.update()}));return}this.liveRaf=requestAnimationFrame((()=>{if(t!==this.generation)return;this.update();if(t!==this.generation)return;this.liveRaf=requestAnimationFrame((()=>{if(t!==this.generation)return;this.liveRaf=null;this.update()}))}))}cancel(){this.generation+=1;this.cancelRetry();if(this.liveRaf!==null){cancelAnimationFrame(this.liveRaf);this.liveRaf=null}if(this.anchorMotionRaf!==null){cancelAnimationFrame(this.anchorMotionRaf);this.anchorMotionRaf=null}}cancelRetry(){this.retryGeneration+=1;if(this.retryRaf===null)return;cancelAnimationFrame(this.retryRaf);this.retryRaf=null}bindListeners(){this.unbindListeners();this.scrollResizeHandler=()=>this.scheduleLiveUpdate();window.addEventListener("scroll",this.scrollResizeHandler,true);window.addEventListener("resize",this.scrollResizeHandler);if(this.options.observeResize&&typeof ResizeObserver!=="undefined"){const t=new ResizeObserver((()=>{if(this.resizeObserver===t)this.scheduleLiveUpdate()}));this.resizeObserver=t;this.observeResizeTargets()}if(this.options.observeAnchorMotion){this.ownerDocument=this.options.getAnchor()?.ownerDocument??this.options.getOwnerDocument?.()??null;this.ownerDocument?.addEventListener("transitionrun",this.anchorMotionStartHandler,true);this.ownerDocument?.addEventListener("transitionend",this.anchorMotionEndHandler,true);this.ownerDocument?.addEventListener("transitioncancel",this.anchorMotionEndHandler,true);this.ownerDocument?.addEventListener("animationstart",this.anchorMotionStartHandler,true);this.ownerDocument?.addEventListener("animationend",this.anchorMotionEndHandler,true);this.ownerDocument?.addEventListener("animationcancel",this.anchorMotionEndHandler,true)}}unbindListeners(){if(this.scrollResizeHandler){window.removeEventListener("scroll",this.scrollResizeHandler,true);window.removeEventListener("resize",this.scrollResizeHandler);this.scrollResizeHandler=null}this.resizeObserver?.disconnect();this.resizeObserver=null;this.ownerDocument?.removeEventListener("transitionrun",this.anchorMotionStartHandler,true);this.ownerDocument?.removeEventListener("transitionend",this.anchorMotionEndHandler,true);this.ownerDocument?.removeEventListener("transitioncancel",this.anchorMotionEndHandler,true);this.ownerDocument?.removeEventListener("animationstart",this.anchorMotionStartHandler,true);this.ownerDocument?.removeEventListener("animationend",this.anchorMotionEndHandler,true);this.ownerDocument?.removeEventListener("animationcancel",this.anchorMotionEndHandler,true);this.ownerDocument=null;this.activeAnchorMotions=0}eventCanMoveAnchor(t){const i=this.options.getAnchor();const s=t.target;if(!i||!(s instanceof Element))return false;return s===i||s.contains(i)}scheduleAnchorMotionUpdate(){if(this.anchorMotionRaf!==null)return;const t=this.generation;const i=()=>{if(t!==this.generation)return;this.anchorMotionRaf=null;this.update();if(t!==this.generation)return;if(this.activeAnchorMotions<=0||!this.options.getAnchor()?.isConnected){this.activeAnchorMotions=0;return}this.anchorMotionRaf=requestAnimationFrame(i)};this.anchorMotionRaf=requestAnimationFrame(i)}observeResizeTargets(){if(!this.resizeObserver)return;const t=this.options.getPopup();if(t)this.resizeObserver.observe(t);const i=this.options.getAnchor();if(i)this.resizeObserver.observe(i)}}const u="data-ds-overlay-boundary";function a(t){if(t.assignedSlot)return t.assignedSlot;if(t.parentElement)return t.parentElement;const i=t.getRootNode();return i instanceof ShadowRoot?i.host:null}function l(t){let i=t;while(i){if(i instanceof HTMLElement&&i.hasAttribute(u)){return i}i=a(i)}return null}function c(t,i){if(i==="viewport")return undefined;return(i??l(t))?.getBoundingClientRect()}export{o as A,u as a,h as c,c as r};
2
+ //# sourceMappingURL=p-CE6MaXBg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OPPOSITE_SIDE","top","right","bottom","left","rawPosition","input","side","anchorRect","anchor","popupWidth","popupHeight","align","sideOffsetPx","alignOffsetPx","x","width","y","height","collisionBounds","boundary","collisionRect","viewportWidth","viewportHeight","viewportPadPx","mainAxisOverflow","position","bounds","Math","max","clampToBounds","value","size","minimum","maximumEdge","maximum","min","computeAnchoredPosition","preferred","oppositeSide","opposite","preferredOverflow","oppositeOverflow","useOpposite","resolvedSide","availableHeight","POSITION_RETRY_BUDGET","AnchoredPositionController","constructor","options","this","scrollResizeHandler","resizeObserver","retryRaf","liveRaf","anchorMotionRaf","activeAnchorMotions","ownerDocument","last","isReady","generation","retryGeneration","anchorMotionStartHandler","event","eventCanMoveAnchor","scheduleAnchorMotionUpdate","anchorMotionEndHandler","ready","observe","bindListeners","unobserve","unbindListeners","cancel","schedule","onReady","cancelRetry","current","remaining","retryBudget","attempt","measured","update","requestAnimationFrame","getAnchor","isConnected","popup","getPopup","observeResizeTargets","topLayer","showPopover","matches","measure","next","apply","scheduleLiveUpdate","mode","liveUpdate","cancelAnimationFrame","window","addEventListener","observeResize","ResizeObserver","observer","observeAnchorMotion","getOwnerDocument","removeEventListener","disconnect","target","Element","contains","tick","ANCHORED_OVERLAY_BOUNDARY_ATTRIBUTE","composedParentElement","element","assignedSlot","parentElement","root","getRootNode","ShadowRoot","host","findAnchoredOverlayBoundary","HTMLElement","hasAttribute","resolveAnchoredOverlayBoundaryRect","explicitBoundary","undefined","getBoundingClientRect"],"sources":["src/wc/utils/anchored-position.ts","src/wc/utils/anchored-position-controller.ts","src/wc/utils/anchored-overlay-boundary.ts"],"sourcesContent":["export type AnchoredSide = 'top' | 'right' | 'bottom' | 'left';\nexport type AnchoredAlign = 'start' | 'center' | 'end';\n\nexport type AnchoredCollisionRect = Pick<\n DOMRectReadOnly,\n 'top' | 'left' | 'right' | 'bottom' | 'width' | 'height'\n>;\n\nexport interface AnchoredPositionInput {\n anchorRect: Pick<DOMRectReadOnly, 'top' | 'left' | 'right' | 'bottom' | 'width' | 'height'>;\n popupWidth: number;\n popupHeight: number;\n side: AnchoredSide;\n align: AnchoredAlign;\n sideOffsetPx: number;\n alignOffsetPx: number;\n viewportPadPx: number;\n viewportWidth: number;\n viewportHeight: number;\n /** Optional page or panel collision rectangle in viewport-fixed coordinates. */\n collisionRect?: AnchoredCollisionRect;\n}\n\nexport interface AnchoredPosition {\n x: number;\n y: number;\n /** Side actually used, which differs from the request when placement flipped. */\n resolvedSide: AnchoredSide;\n /** Vertical room available on the resolved side inside the padded viewport. */\n availableHeight: number;\n}\n\nconst OPPOSITE_SIDE: Record<AnchoredSide, AnchoredSide> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n};\n\n/** Unclamped coordinates for one candidate side. */\nfunction rawPosition(\n input: AnchoredPositionInput,\n side: AnchoredSide\n): Pick<AnchoredPosition, 'x' | 'y'> {\n const { anchorRect: anchor, popupWidth, popupHeight, align, sideOffsetPx, alignOffsetPx } = input;\n\n if (side === 'top' || side === 'bottom') {\n return {\n x:\n align === 'start'\n ? anchor.left + alignOffsetPx\n : align === 'end'\n ? anchor.right - popupWidth + alignOffsetPx\n : anchor.left + anchor.width / 2 - popupWidth / 2 + alignOffsetPx,\n y: side === 'top' ? anchor.top - popupHeight - sideOffsetPx : anchor.bottom + sideOffsetPx,\n };\n }\n\n return {\n x: side === 'left' ? anchor.left - popupWidth - sideOffsetPx : anchor.right + sideOffsetPx,\n y:\n align === 'start'\n ? anchor.top + alignOffsetPx\n : align === 'end'\n ? anchor.bottom - popupHeight + alignOffsetPx\n : anchor.top + anchor.height / 2 - popupHeight / 2 + alignOffsetPx,\n };\n}\n\n/** Total main-axis spill past the padded viewport for a candidate position. */\nfunction collisionBounds(input: AnchoredPositionInput) {\n const boundary = input.collisionRect ?? {\n top: 0,\n left: 0,\n right: input.viewportWidth,\n bottom: input.viewportHeight,\n };\n return {\n top: boundary.top + input.viewportPadPx,\n left: boundary.left + input.viewportPadPx,\n right: boundary.right - input.viewportPadPx,\n bottom: boundary.bottom - input.viewportPadPx,\n };\n}\n\nfunction mainAxisOverflow(\n input: AnchoredPositionInput,\n side: AnchoredSide,\n position: Pick<AnchoredPosition, 'x' | 'y'>\n): number {\n const { popupWidth, popupHeight } = input;\n const bounds = collisionBounds(input);\n\n if (side === 'top' || side === 'bottom') {\n return (\n Math.max(bounds.top - position.y, 0) + Math.max(position.y + popupHeight - bounds.bottom, 0)\n );\n }\n\n return (\n Math.max(bounds.left - position.x, 0) + Math.max(position.x + popupWidth - bounds.right, 0)\n );\n}\n\nfunction clampToBounds(value: number, size: number, minimum: number, maximumEdge: number): number {\n const maximum = Math.max(minimum, maximumEdge - size);\n return Math.min(Math.max(value, minimum), maximum);\n}\n\n/**\n * Pure viewport-fixed anchored-popup layout math shared by every element-anchored\n * overlay: menus, selects, tooltips, and anchored toasts.\n *\n * `side` is preferred. When the popup spills past the padded collision boundary and\n * the opposite side spills less, placement flips on the main axis; the result is\n * then clamped into that boundary on both axes. The viewport is the fallback when\n * no page or panel collision rectangle is supplied. Cross-axis `align` is applied\n * before clamping so `alignOffsetPx` stays an additive nudge.\n *\n * Callers own their own anchor semantics — inner-cell alignment offsets and\n * minimum widths belong to the calling component, not here.\n * @see choice-popup-alignment.ts for the choice-cell alignment transform.\n */\nexport function computeAnchoredPosition(input: AnchoredPositionInput): AnchoredPosition {\n const bounds = collisionBounds(input);\n const preferred = rawPosition(input, input.side);\n const oppositeSide = OPPOSITE_SIDE[input.side];\n const opposite = rawPosition(input, oppositeSide);\n const preferredOverflow = mainAxisOverflow(input, input.side, preferred);\n const oppositeOverflow = mainAxisOverflow(input, oppositeSide, opposite);\n const useOpposite = preferredOverflow > 0 && oppositeOverflow < preferredOverflow;\n const resolvedSide = useOpposite ? oppositeSide : input.side;\n const position = useOpposite ? opposite : preferred;\n const availableHeight =\n resolvedSide === 'top'\n ? input.anchorRect.top - bounds.top - input.sideOffsetPx\n : resolvedSide === 'bottom'\n ? bounds.bottom - input.anchorRect.bottom - input.sideOffsetPx\n : bounds.bottom - bounds.top;\n\n return {\n x: clampToBounds(position.x, input.popupWidth, bounds.left, bounds.right),\n y: clampToBounds(position.y, input.popupHeight, bounds.top, bounds.bottom),\n resolvedSide,\n availableHeight: Math.max(0, availableHeight),\n };\n}\n","import {\n computeAnchoredPosition,\n type AnchoredPosition,\n type AnchoredPositionInput,\n} from './anchored-position';\n\n/** Frames to wait for an anchor and popup to become measurable before giving up. */\nconst POSITION_RETRY_BUDGET = 8;\n\n/**\n * How the scroll/resize path reschedules. Each consumer family measured\n * differently before consolidation, and the differences are preserved verbatim\n * so placement timing is unchanged.\n *\n * - `sync` — measure inside the listener. Selects.\n * - `frame` — coalesce and measure on the next frame. Tooltips.\n * - `double-frame` — coalesce, measure next frame, then measure once more the\n * frame after. Scroll-driven owners such as ShellPage commit a compact-header\n * render in the frame after the scroll event, so a single frame reads a stale\n * anchor rect. Menus.\n */\nexport type AnchoredLiveUpdateMode = 'sync' | 'frame' | 'double-frame';\n\nexport interface AnchoredPositionControllerOptions {\n /** Resolve the anchor at measure time; positioning retries while this is null. */\n getAnchor: () => HTMLElement | null;\n /** Resolve the popup at measure time; positioning retries while this is null. */\n getPopup: () => HTMLElement | null;\n /** Stable owner fallback when framework bindings assign open before anchor. */\n getOwnerDocument?: () => Document | null;\n /**\n * Build the layout input for one measurement pass.\n *\n * The owning component keeps its own anchor semantics here — inner-cell align\n * offsets, minimum widths, and token resolution stay with the component rather\n * than moving into this controller. Return `null` when the component's own\n * guards say the popup is not measurable yet, which schedules a retry.\n */\n measure: (anchor: HTMLElement, popup: HTMLElement) => AnchoredPositionInput | null;\n /** Commit a changed position. Not called when the result is unchanged. */\n apply: (position: AnchoredPosition) => void;\n /**\n * Move a `popover=\"manual\"` popup into the native top layer before measuring.\n *\n * Use this for popups that remain in their owner's DOM tree. The top layer\n * gives `position: fixed` viewport coordinates even when an application\n * ancestor establishes a fixed-position containing block through containment,\n * transforms, or filters.\n */\n topLayer?: boolean;\n /** Fired once per `start()` when the first measurement succeeds. */\n onReady?: () => void;\n /** Scroll/resize behavior. Defaults to `sync`. */\n liveUpdate?: AnchoredLiveUpdateMode;\n /**\n * Re-measure when the popup or anchor resizes. Tooltips need this because the\n * label's `ds-text` upgrade changes the measured width after mount.\n */\n observeResize?: boolean;\n /**\n * Follow CSS transitions or animations that move the anchor without resizing\n * it. The observer only runs a measurement loop while related motion is active.\n */\n observeAnchorMotion?: boolean;\n retryBudget?: number;\n}\n\n/**\n * Lifecycle owner for an element-anchored popup: listener binding, measurement\n * retries, frame coalescing, and teardown.\n *\n * Pairs with `computeAnchoredPosition`, which owns the geometry. Split this way\n * because the geometry is pure and exhaustively testable while the lifecycle is\n * timing-dependent; keeping them separate means the risky half lives in exactly\n * one place.\n *\n * Not suitable for overlays that place several popups in one shared pass — Toast\n * positions N anchored records inside a single layout commit and keeps its own\n * scheduler, using only the geometry function.\n */\nexport class AnchoredPositionController {\n private readonly options: AnchoredPositionControllerOptions;\n private scrollResizeHandler: (() => void) | null = null;\n private resizeObserver: ResizeObserver | null = null;\n private retryRaf: number | null = null;\n private liveRaf: number | null = null;\n private anchorMotionRaf: number | null = null;\n private activeAnchorMotions = 0;\n private ownerDocument: Document | null = null;\n private last: AnchoredPosition | null = null;\n private isReady = false;\n private generation = 0;\n private retryGeneration = 0;\n private readonly anchorMotionStartHandler = (event: Event) => {\n if (!this.eventCanMoveAnchor(event)) return;\n this.activeAnchorMotions += 1;\n this.scheduleAnchorMotionUpdate();\n };\n private readonly anchorMotionEndHandler = (event: Event) => {\n if (!this.eventCanMoveAnchor(event)) return;\n this.activeAnchorMotions = Math.max(0, this.activeAnchorMotions - 1);\n this.scheduleAnchorMotionUpdate();\n };\n\n constructor(options: AnchoredPositionControllerOptions) {\n this.options = options;\n }\n\n /** `true` once a measurement has succeeded, for gating popup reveal. */\n get ready(): boolean {\n return this.isReady;\n }\n\n /**\n * Bind scroll/resize tracking for an opening popup.\n *\n * Deliberately does not schedule placement: every consumer binds listeners and\n * then schedules in its own order, and folding both into one call produced two\n * overlapping retry loops. Call `schedule()` or `update()` separately.\n */\n observe(): void {\n this.bindListeners();\n }\n\n /** Unbind tracking, cancel pending frames, and clear the cached position. */\n unobserve(): void {\n this.unbindListeners();\n this.cancel();\n this.last = null;\n this.isReady = false;\n }\n\n /**\n * Retry measurement each frame until it succeeds or the budget runs out, so a\n * popup is never revealed at 0,0 after a failed first pass.\n */\n schedule(onReady?: () => void): void {\n this.cancelRetry();\n this.isReady = false;\n const generation = this.generation;\n const retryGeneration = this.retryGeneration;\n const current = () =>\n generation === this.generation && retryGeneration === this.retryGeneration;\n\n let remaining = this.options.retryBudget ?? POSITION_RETRY_BUDGET;\n\n const attempt = () => {\n if (!current()) return;\n this.retryRaf = null;\n const measured = this.update();\n if (!current()) return;\n if (measured) {\n this.isReady = true;\n this.options.onReady?.();\n if (current()) onReady?.();\n return;\n }\n if (remaining > 0) {\n remaining -= 1;\n this.retryRaf = requestAnimationFrame(attempt);\n }\n };\n\n this.retryRaf = requestAnimationFrame(attempt);\n }\n\n /** Measure and commit once. @returns `false` when the popup is not measurable. */\n update(): boolean {\n const anchor = this.options.getAnchor();\n if (!anchor?.isConnected) return false;\n const popup = this.options.getPopup();\n if (!popup?.isConnected) return false;\n this.observeResizeTargets();\n\n if (\n this.options.topLayer &&\n typeof popup.showPopover === 'function' &&\n !popup.matches(':popover-open')\n ) {\n try {\n popup.showPopover();\n } catch {\n // The popup may not be connected yet. The scheduled retry will try again\n // on the next frame instead of measuring it in the wrong coordinate space.\n return false;\n }\n }\n\n const input = this.options.measure(anchor, popup);\n if (!input) return false;\n\n const next = computeAnchoredPosition(input);\n if (\n !this.last ||\n this.last.x !== next.x ||\n this.last.y !== next.y ||\n this.last.resolvedSide !== next.resolvedSide ||\n this.last.availableHeight !== next.availableHeight\n ) {\n this.last = next;\n this.options.apply(next);\n }\n return true;\n }\n\n /** Reposition an already-open popup without hiding it. */\n scheduleLiveUpdate(): void {\n const generation = this.generation;\n const mode = this.options.liveUpdate ?? 'sync';\n if (mode === 'sync') {\n this.update();\n return;\n }\n\n if (this.liveRaf !== null) return;\n\n if (mode === 'frame') {\n this.liveRaf = requestAnimationFrame(() => {\n if (generation !== this.generation) return;\n this.liveRaf = null;\n this.update();\n });\n return;\n }\n\n // double-frame stays coalesced until the second frame resolves.\n this.liveRaf = requestAnimationFrame(() => {\n if (generation !== this.generation) return;\n this.update();\n if (generation !== this.generation) return;\n this.liveRaf = requestAnimationFrame(() => {\n if (generation !== this.generation) return;\n this.liveRaf = null;\n this.update();\n });\n });\n }\n\n /** Cancel pending retry and live frames without unbinding listeners. */\n cancel(): void {\n this.generation += 1;\n this.cancelRetry();\n if (this.liveRaf !== null) {\n cancelAnimationFrame(this.liveRaf);\n this.liveRaf = null;\n }\n if (this.anchorMotionRaf !== null) {\n cancelAnimationFrame(this.anchorMotionRaf);\n this.anchorMotionRaf = null;\n }\n }\n\n private cancelRetry(): void {\n this.retryGeneration += 1;\n if (this.retryRaf === null) return;\n cancelAnimationFrame(this.retryRaf);\n this.retryRaf = null;\n }\n\n private bindListeners(): void {\n this.unbindListeners();\n this.scrollResizeHandler = () => this.scheduleLiveUpdate();\n // Capture phase so scrolling inside any ancestor repositions the popup.\n window.addEventListener('scroll', this.scrollResizeHandler, true);\n window.addEventListener('resize', this.scrollResizeHandler);\n\n if (this.options.observeResize && typeof ResizeObserver !== 'undefined') {\n const observer = new ResizeObserver(() => {\n if (this.resizeObserver === observer) this.scheduleLiveUpdate();\n });\n this.resizeObserver = observer;\n this.observeResizeTargets();\n }\n\n if (this.options.observeAnchorMotion) {\n this.ownerDocument =\n this.options.getAnchor()?.ownerDocument ?? this.options.getOwnerDocument?.() ?? null;\n this.ownerDocument?.addEventListener('transitionrun', this.anchorMotionStartHandler, true);\n this.ownerDocument?.addEventListener('transitionend', this.anchorMotionEndHandler, true);\n this.ownerDocument?.addEventListener('transitioncancel', this.anchorMotionEndHandler, true);\n this.ownerDocument?.addEventListener('animationstart', this.anchorMotionStartHandler, true);\n this.ownerDocument?.addEventListener('animationend', this.anchorMotionEndHandler, true);\n this.ownerDocument?.addEventListener('animationcancel', this.anchorMotionEndHandler, true);\n }\n }\n\n private unbindListeners(): void {\n if (this.scrollResizeHandler) {\n window.removeEventListener('scroll', this.scrollResizeHandler, true);\n window.removeEventListener('resize', this.scrollResizeHandler);\n this.scrollResizeHandler = null;\n }\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n this.ownerDocument?.removeEventListener('transitionrun', this.anchorMotionStartHandler, true);\n this.ownerDocument?.removeEventListener('transitionend', this.anchorMotionEndHandler, true);\n this.ownerDocument?.removeEventListener('transitioncancel', this.anchorMotionEndHandler, true);\n this.ownerDocument?.removeEventListener('animationstart', this.anchorMotionStartHandler, true);\n this.ownerDocument?.removeEventListener('animationend', this.anchorMotionEndHandler, true);\n this.ownerDocument?.removeEventListener('animationcancel', this.anchorMotionEndHandler, true);\n this.ownerDocument = null;\n this.activeAnchorMotions = 0;\n }\n\n private eventCanMoveAnchor(event: Event): boolean {\n const anchor = this.options.getAnchor();\n const target = event.target;\n if (!anchor || !(target instanceof Element)) return false;\n // Motion on the anchor or one of its layout ancestors can move its rect.\n // Descendant-only animation is irrelevant unless it resizes the anchor,\n // which the ResizeObserver path already covers.\n return target === anchor || target.contains(anchor);\n }\n\n private scheduleAnchorMotionUpdate(): void {\n if (this.anchorMotionRaf !== null) return;\n const generation = this.generation;\n const tick = () => {\n if (generation !== this.generation) return;\n this.anchorMotionRaf = null;\n this.update();\n if (generation !== this.generation) return;\n if (this.activeAnchorMotions <= 0 || !this.options.getAnchor()?.isConnected) {\n this.activeAnchorMotions = 0;\n return;\n }\n this.anchorMotionRaf = requestAnimationFrame(tick);\n };\n this.anchorMotionRaf = requestAnimationFrame(tick);\n }\n\n /**\n * Re-attach the resize observer after the popup remounts. Safe to call\n * repeatedly; `ResizeObserver.observe` ignores duplicate targets.\n */\n observeResizeTargets(): void {\n if (!this.resizeObserver) return;\n const popup = this.options.getPopup();\n if (popup) this.resizeObserver.observe(popup);\n const anchor = this.options.getAnchor();\n if (anchor) this.resizeObserver.observe(anchor);\n }\n}\n","import type { AnchoredCollisionRect } from './anchored-position';\n\n/** Attribute placed on a page or panel whose visible rectangle owns anchored overlays. */\nexport const ANCHORED_OVERLAY_BOUNDARY_ATTRIBUTE = 'data-ds-overlay-boundary';\n\n/** An element-owned collision rectangle, or an explicit escape to the viewport. */\nexport type AnchoredOverlayBoundary = HTMLElement | 'viewport';\n\nfunction composedParentElement(element: Element): Element | null {\n if (element.assignedSlot) return element.assignedSlot;\n if (element.parentElement) return element.parentElement;\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root.host : null;\n}\n\n/**\n * Find the nearest collision owner through light DOM, assigned slots, and open\n * shadow roots. The popup may live in the top layer or a body portal; ownership\n * follows its anchor instead of the popup's rendering location.\n */\nexport function findAnchoredOverlayBoundary(anchor: Element): HTMLElement | null {\n let current: Element | null = anchor;\n while (current) {\n if (\n current instanceof HTMLElement &&\n current.hasAttribute(ANCHORED_OVERLAY_BOUNDARY_ATTRIBUTE)\n ) {\n return current;\n }\n current = composedParentElement(current);\n }\n return null;\n}\n\n/** Resolve an explicit owner first, then the nearest composed-tree boundary. */\nexport function resolveAnchoredOverlayBoundaryRect(\n anchor: Element,\n explicitBoundary?: AnchoredOverlayBoundary\n): AnchoredCollisionRect | undefined {\n if (explicitBoundary === 'viewport') return undefined;\n return (explicitBoundary ?? findAnchoredOverlayBoundary(anchor))?.getBoundingClientRect();\n}\n"],"mappings":"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","ignoreList":[]}