@ds-mo/ui 16.1.3 → 16.3.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 (270) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +574 -3
  4. package/dist/angular/ds-disclosure.d.ts +18 -0
  5. package/dist/angular/ds-disclosure.js +42 -0
  6. package/dist/angular/ds-drawer.d.ts +40 -0
  7. package/dist/angular/ds-drawer.js +54 -0
  8. package/dist/angular/ds-popover.d.ts +24 -0
  9. package/dist/angular/ds-popover.js +45 -0
  10. package/dist/angular/index.d.ts +1 -1
  11. package/dist/angular/index.js +3 -0
  12. package/dist/angular/proxies.d.ts +3 -0
  13. package/dist/angular/proxies.js +3 -0
  14. package/dist/components/ds-agent-activity.js +1 -1
  15. package/dist/components/ds-agent-questionnaire.js +1 -1
  16. package/dist/components/ds-agent-response.js +1 -1
  17. package/dist/components/ds-agent-source-list.js +1 -1
  18. package/dist/components/ds-agent-tool-call.js +1 -1
  19. package/dist/components/ds-attachment-list.js +1 -1
  20. package/dist/components/ds-badge.js +1 -1
  21. package/dist/components/ds-banner.js +1 -1
  22. package/dist/components/ds-bar-action.js +1 -1
  23. package/dist/components/ds-bar-nav.js +1 -1
  24. package/dist/components/ds-bar-page-title.js +1 -1
  25. package/dist/components/ds-bar-title.js +1 -1
  26. package/dist/components/ds-bar-workflow.js +1 -1
  27. package/dist/components/ds-breadcrumb.js +1 -1
  28. package/dist/components/ds-button-filled.js +1 -1
  29. package/dist/components/ds-button-inverted.js +1 -1
  30. package/dist/components/ds-button-unfilled.js +1 -1
  31. package/dist/components/ds-calendar.js +1 -1
  32. package/dist/components/ds-card-action-center.js +1 -1
  33. package/dist/components/ds-card-chart.js +1 -1
  34. package/dist/components/ds-card-navigation.js +1 -1
  35. package/dist/components/ds-card-overview.js +1 -1
  36. package/dist/components/ds-card-setting.js +1 -1
  37. package/dist/components/ds-card-settings-scope.js +1 -1
  38. package/dist/components/ds-chart-legend.js +1 -1
  39. package/dist/components/ds-chart.js +1 -1
  40. package/dist/components/ds-checkbox-group.js +1 -1
  41. package/dist/components/ds-checkbox.js +1 -1
  42. package/dist/components/ds-chip.js +1 -1
  43. package/dist/components/ds-code-block.js +1 -1
  44. package/dist/components/ds-conversation-list-item.js +1 -1
  45. package/dist/components/ds-conversation-list-section.js +1 -1
  46. package/dist/components/ds-conversation-list.js +1 -1
  47. package/dist/components/ds-data-customize.js +1 -1
  48. package/dist/components/ds-data-filter.js +1 -1
  49. package/dist/components/ds-data-group.js +1 -1
  50. package/dist/components/ds-data-preferences.js +1 -1
  51. package/dist/components/ds-data-preferences.js.map +1 -1
  52. package/dist/components/ds-data-saved-views.js +1 -1
  53. package/dist/components/ds-data-search.js +1 -1
  54. package/dist/components/ds-data-search.js.map +1 -1
  55. package/dist/components/ds-data-sort.js +1 -1
  56. package/dist/components/ds-data-toolbar.js +1 -1
  57. package/dist/components/ds-disclosure.d.ts +11 -0
  58. package/dist/components/ds-disclosure.js +2 -0
  59. package/dist/components/ds-disclosure.js.map +1 -0
  60. package/dist/components/ds-divider.js +1 -1
  61. package/dist/components/ds-drawer.d.ts +11 -0
  62. package/dist/components/ds-drawer.js +2 -0
  63. package/dist/components/ds-drawer.js.map +1 -0
  64. package/dist/components/ds-empty-state.js +1 -1
  65. package/dist/components/ds-field.js +1 -1
  66. package/dist/components/ds-filter-menu.js +1 -1
  67. package/dist/components/ds-inline-banner-settings.js +1 -1
  68. package/dist/components/ds-input-date.js +1 -1
  69. package/dist/components/ds-input-time.js +1 -1
  70. package/dist/components/ds-input.js +1 -1
  71. package/dist/components/ds-map-cluster-marker.js +1 -1
  72. package/dist/components/ds-map-entity-marker.js +1 -1
  73. package/dist/components/ds-map-marker.js +1 -1
  74. package/dist/components/ds-markdown.js +1 -1
  75. package/dist/components/ds-menu.js +1 -1
  76. package/dist/components/ds-message-actions.js +1 -1
  77. package/dist/components/ds-message-bubble.js +1 -1
  78. package/dist/components/ds-message-composer.js +1 -1
  79. package/dist/components/ds-message-scroller.js +1 -1
  80. package/dist/components/ds-message.js +1 -1
  81. package/dist/components/ds-mobile-bar-nav.js +1 -1
  82. package/dist/components/ds-mobile-header.js +1 -1
  83. package/dist/components/ds-mobile-section-switcher.js +1 -1
  84. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  85. package/dist/components/ds-modal.js +1 -1
  86. package/dist/components/ds-navigation-tab-group.js +1 -1
  87. package/dist/components/ds-pagination.js +1 -1
  88. package/dist/components/ds-panel-nav.js +1 -1
  89. package/dist/components/ds-panel-sub-nav.js +1 -1
  90. package/dist/components/ds-panel-tool-header.js +1 -1
  91. package/dist/components/ds-panel-tool-search.js +1 -1
  92. package/dist/components/ds-panel-tools.js +1 -1
  93. package/dist/components/ds-paper-texture.js +1 -1
  94. package/dist/components/ds-popover.d.ts +11 -0
  95. package/dist/components/ds-popover.js +2 -0
  96. package/dist/components/ds-popover.js.map +1 -0
  97. package/dist/components/ds-radio-tile.js +1 -1
  98. package/dist/components/ds-radio.js +1 -1
  99. package/dist/components/ds-score.js +1 -1
  100. package/dist/components/ds-scroll-overlay.js +1 -1
  101. package/dist/components/ds-select-toggle.js +1 -1
  102. package/dist/components/ds-select.js +1 -1
  103. package/dist/components/ds-setting-row-checkbox.js +1 -1
  104. package/dist/components/ds-setting-row-radio.js +1 -1
  105. package/dist/components/ds-setting-row-radio.js.map +1 -1
  106. package/dist/components/ds-setting-row-toggle.js +1 -1
  107. package/dist/components/ds-shell-app.js +1 -1
  108. package/dist/components/ds-shell-app.js.map +1 -1
  109. package/dist/components/ds-shell-page.js +1 -1
  110. package/dist/components/ds-shell-tools.js +1 -1
  111. package/dist/components/ds-skeleton.js +1 -1
  112. package/dist/components/ds-slider.js +1 -1
  113. package/dist/components/ds-swatch-picker.js +1 -1
  114. package/dist/components/ds-switch.js +1 -1
  115. package/dist/components/ds-tab-group.js +1 -1
  116. package/dist/components/ds-table.js +1 -1
  117. package/dist/components/ds-tag.js +1 -1
  118. package/dist/components/ds-text.js +1 -1
  119. package/dist/components/ds-textarea.js +1 -1
  120. package/dist/components/ds-time-picker.js +1 -1
  121. package/dist/components/ds-toast.js +1 -1
  122. package/dist/components/ds-toast.js.map +1 -1
  123. package/dist/components/ds-tooltip-chart.js +1 -1
  124. package/dist/components/ds-tooltip.js +1 -1
  125. package/dist/components/ds-typing-indicator.js +1 -1
  126. package/dist/components/{p-D-Lo5uuI.js → p-3_LHRdqq.js} +2 -2
  127. package/dist/components/{p-Cc8p57pS.js → p-9EjkmESv.js} +2 -2
  128. package/dist/components/{p-CQnjpuMX.js → p-9PpepIfc.js} +2 -2
  129. package/dist/components/{p-C860ilDn.js → p-A47UHyiC.js} +2 -2
  130. package/dist/components/p-BCzvtlR2.js +2 -0
  131. package/dist/components/{p-D3FrQk7o.js.map → p-BCzvtlR2.js.map} +1 -1
  132. package/dist/components/{p-ClOvX8cD.js → p-BEj9uENH.js} +2 -2
  133. package/dist/components/{p-CtomYv1z.js → p-BJmAAyRk.js} +2 -2
  134. package/dist/components/{p-Bt1Ybvz-.js → p-BQ6p3LFP.js} +2 -2
  135. package/dist/components/{p-DiNEjFpy.js → p-BbndBzzZ.js} +2 -2
  136. package/dist/components/{p-hFe35P2l.js → p-Bg1UmSZn.js} +2 -2
  137. package/dist/components/{p-ClhfXMaD.js → p-Bn-cskPo.js} +2 -2
  138. package/dist/components/p-Bz9dI7nI.js +2 -0
  139. package/dist/components/{p-Dc_zSOKq.js.map → p-Bz9dI7nI.js.map} +1 -1
  140. package/dist/components/{p-D538svhW.js → p-C0-sabnr.js} +2 -2
  141. package/dist/components/{p-DQ-wfTOw.js → p-C11CnHDl.js} +2 -2
  142. package/dist/components/{p-xszHlNkG.js → p-C68nt4dl.js} +2 -2
  143. package/dist/components/p-C8UThLHd.js +2 -0
  144. package/dist/components/{p-CsGkdf4W.js.map → p-C8UThLHd.js.map} +1 -1
  145. package/dist/components/p-C8WKo0sf.js +2 -0
  146. package/dist/components/{p-D8iNLSCa.js.map → p-C8WKo0sf.js.map} +1 -1
  147. package/dist/components/p-CAYqnjyC.js +2 -0
  148. package/dist/components/{p-oBBzQpg_.js.map → p-CAYqnjyC.js.map} +1 -1
  149. package/dist/components/{p-G6r6yYg8.js → p-CBezgJ3r.js} +2 -2
  150. package/dist/components/p-CF6Px2b2.js +2 -0
  151. package/dist/components/{p-omfGVBEt.js.map → p-CF6Px2b2.js.map} +1 -1
  152. package/dist/components/{p-CMZAEySh.js → p-CVSE2Ool.js} +2 -2
  153. package/dist/components/{p-KTaiJztz.js → p-CVuSm1Sh.js} +2 -2
  154. package/dist/components/{p-BNvZM4jP.js → p-CZVoCdYE.js} +2 -2
  155. package/dist/components/{p-BYo1-6b5.js → p-CeACJYcU.js} +2 -2
  156. package/dist/components/{p-lnCWfvuA.js → p-Cjw63BmX.js} +2 -2
  157. package/dist/components/{p-N-2CZze7.js → p-CkUF45d_.js} +2 -2
  158. package/dist/components/{p-CbyZ7BDJ.js → p-ClRd39mR.js} +2 -2
  159. package/dist/components/{p-Nx52go85.js → p-Cn6Ud58k.js} +2 -2
  160. package/dist/components/{p-BFgJoeVV.js → p-D3r_5Fw-.js} +2 -2
  161. package/dist/components/p-DCqDQWVK.js +2 -0
  162. package/dist/components/{p-BuvVFyAA.js.map → p-DCqDQWVK.js.map} +1 -1
  163. package/dist/components/{p-CXrOGz7X.js → p-DIXpyBWB.js} +2 -2
  164. package/dist/components/{p-1lWK_LMY.js → p-DJtohrKV.js} +2 -2
  165. package/dist/components/{p-D5-hqLPK.js → p-DKL7n7NM.js} +2 -2
  166. package/dist/components/{p-DYI6UlOP.js → p-D_CfgH1L.js} +2 -2
  167. package/dist/components/{p-P2-eHQJU.js → p-D_N38YjY.js} +2 -2
  168. package/dist/components/p-Dalq5voO.js +2 -0
  169. package/dist/components/{p-ClgJZFkb.js.map → p-Dalq5voO.js.map} +1 -1
  170. package/dist/components/{p-DMPn_dt7.js → p-DcwgXLe-.js} +2 -2
  171. package/dist/components/{p-BckLHaey.js → p-DpA8UeSy.js} +2 -2
  172. package/dist/components/{p-hom6svhE.js → p-DtNCj4p0.js} +2 -2
  173. package/dist/components/{p-pkJ3X3s7.js → p-Dwga8azB.js} +2 -2
  174. package/dist/components/{p-CGtq7TnC.js → p-LFHrICnV.js} +2 -2
  175. package/dist/components/p-LQGcTdiv.js +2 -0
  176. package/dist/components/{p-BI-XuQKW.js.map → p-LQGcTdiv.js.map} +1 -1
  177. package/dist/components/{p-BoWpIl_m.js → p-N8tEOYt8.js} +2 -2
  178. package/dist/components/{p-CbJx9swS.js → p-QU-CyuBt.js} +2 -2
  179. package/dist/components/p-QYI9nW7a.js +2 -0
  180. package/dist/components/p-QYI9nW7a.js.map +1 -0
  181. package/dist/components/{p-DcvPY30Q.js → p-X-GPE9bP.js} +2 -2
  182. package/dist/components/{p-CnsuVR2e.js → p-cOkFnnZV.js} +2 -2
  183. package/dist/components/{p-BctjNfzt.js → p-c_qWiZ6V.js} +2 -2
  184. package/dist/components/{p-M-Sxsv7V.js → p-dVdTdZdu.js} +2 -2
  185. package/dist/components/{p-CE_S4oQ_.js → p-hHtKJMVu.js} +2 -2
  186. package/dist/components/{p-6r60E0i4.js → p-snYhfM1q.js} +2 -2
  187. package/dist/components/p-xHv_RGJh.js +2 -0
  188. package/dist/components/p-xHv_RGJh.js.map +1 -0
  189. package/dist/components/{p-cvVUXaen.js → p-zGd26CTX.js} +2 -2
  190. package/dist/docs/components.json +1291 -1
  191. package/dist/lint/index.js +1 -1
  192. package/dist/mcp-data/registry/disclosure.json +282 -0
  193. package/dist/mcp-data/registry/drawer.json +567 -0
  194. package/dist/mcp-data/registry/popover.json +385 -0
  195. package/dist/mcp-data/registry/registry.json +582 -2
  196. package/dist/mcp-data/registry/shell-app.json +6 -4
  197. package/dist/react/components.d.ts +3 -0
  198. package/dist/react/components.js +3 -0
  199. package/dist/react/ds-disclosure.d.ts +12 -0
  200. package/dist/react/ds-disclosure.js +12 -0
  201. package/dist/react/ds-drawer.d.ts +16 -0
  202. package/dist/react/ds-drawer.js +18 -0
  203. package/dist/react/ds-popover.d.ts +13 -0
  204. package/dist/react/ds-popover.js +15 -0
  205. package/dist/types/components/Disclosure/Disclosure.d.ts +22 -0
  206. package/dist/types/components/Drawer/Drawer.d.ts +123 -0
  207. package/dist/types/components/Popover/Popover.d.ts +64 -0
  208. package/dist/types/components.d.ts +423 -0
  209. package/dist/vue/components.d.ts +3 -0
  210. package/dist/vue/components.js +3 -0
  211. package/dist/vue/ds-disclosure.d.ts +3 -0
  212. package/dist/vue/ds-disclosure.js +15 -0
  213. package/dist/vue/ds-drawer.d.ts +3 -0
  214. package/dist/vue/ds-drawer.js +34 -0
  215. package/dist/vue/ds-popover.d.ts +3 -0
  216. package/dist/vue/ds-popover.js +21 -0
  217. package/package.json +1 -1
  218. package/dist/components/p-BI-XuQKW.js +0 -2
  219. package/dist/components/p-BuvVFyAA.js +0 -2
  220. package/dist/components/p-ClgJZFkb.js +0 -2
  221. package/dist/components/p-CsGkdf4W.js +0 -2
  222. package/dist/components/p-D3FrQk7o.js +0 -2
  223. package/dist/components/p-D8iNLSCa.js +0 -2
  224. package/dist/components/p-DTlNtCX1.js +0 -2
  225. package/dist/components/p-DTlNtCX1.js.map +0 -1
  226. package/dist/components/p-Dc_zSOKq.js +0 -2
  227. package/dist/components/p-oBBzQpg_.js +0 -2
  228. package/dist/components/p-omfGVBEt.js +0 -2
  229. /package/dist/components/{p-D-Lo5uuI.js.map → p-3_LHRdqq.js.map} +0 -0
  230. /package/dist/components/{p-Cc8p57pS.js.map → p-9EjkmESv.js.map} +0 -0
  231. /package/dist/components/{p-CQnjpuMX.js.map → p-9PpepIfc.js.map} +0 -0
  232. /package/dist/components/{p-C860ilDn.js.map → p-A47UHyiC.js.map} +0 -0
  233. /package/dist/components/{p-ClOvX8cD.js.map → p-BEj9uENH.js.map} +0 -0
  234. /package/dist/components/{p-CtomYv1z.js.map → p-BJmAAyRk.js.map} +0 -0
  235. /package/dist/components/{p-Bt1Ybvz-.js.map → p-BQ6p3LFP.js.map} +0 -0
  236. /package/dist/components/{p-DiNEjFpy.js.map → p-BbndBzzZ.js.map} +0 -0
  237. /package/dist/components/{p-hFe35P2l.js.map → p-Bg1UmSZn.js.map} +0 -0
  238. /package/dist/components/{p-ClhfXMaD.js.map → p-Bn-cskPo.js.map} +0 -0
  239. /package/dist/components/{p-D538svhW.js.map → p-C0-sabnr.js.map} +0 -0
  240. /package/dist/components/{p-DQ-wfTOw.js.map → p-C11CnHDl.js.map} +0 -0
  241. /package/dist/components/{p-xszHlNkG.js.map → p-C68nt4dl.js.map} +0 -0
  242. /package/dist/components/{p-G6r6yYg8.js.map → p-CBezgJ3r.js.map} +0 -0
  243. /package/dist/components/{p-CMZAEySh.js.map → p-CVSE2Ool.js.map} +0 -0
  244. /package/dist/components/{p-KTaiJztz.js.map → p-CVuSm1Sh.js.map} +0 -0
  245. /package/dist/components/{p-BNvZM4jP.js.map → p-CZVoCdYE.js.map} +0 -0
  246. /package/dist/components/{p-BYo1-6b5.js.map → p-CeACJYcU.js.map} +0 -0
  247. /package/dist/components/{p-lnCWfvuA.js.map → p-Cjw63BmX.js.map} +0 -0
  248. /package/dist/components/{p-N-2CZze7.js.map → p-CkUF45d_.js.map} +0 -0
  249. /package/dist/components/{p-CbyZ7BDJ.js.map → p-ClRd39mR.js.map} +0 -0
  250. /package/dist/components/{p-Nx52go85.js.map → p-Cn6Ud58k.js.map} +0 -0
  251. /package/dist/components/{p-BFgJoeVV.js.map → p-D3r_5Fw-.js.map} +0 -0
  252. /package/dist/components/{p-CXrOGz7X.js.map → p-DIXpyBWB.js.map} +0 -0
  253. /package/dist/components/{p-1lWK_LMY.js.map → p-DJtohrKV.js.map} +0 -0
  254. /package/dist/components/{p-D5-hqLPK.js.map → p-DKL7n7NM.js.map} +0 -0
  255. /package/dist/components/{p-DYI6UlOP.js.map → p-D_CfgH1L.js.map} +0 -0
  256. /package/dist/components/{p-P2-eHQJU.js.map → p-D_N38YjY.js.map} +0 -0
  257. /package/dist/components/{p-DMPn_dt7.js.map → p-DcwgXLe-.js.map} +0 -0
  258. /package/dist/components/{p-BckLHaey.js.map → p-DpA8UeSy.js.map} +0 -0
  259. /package/dist/components/{p-hom6svhE.js.map → p-DtNCj4p0.js.map} +0 -0
  260. /package/dist/components/{p-pkJ3X3s7.js.map → p-Dwga8azB.js.map} +0 -0
  261. /package/dist/components/{p-CGtq7TnC.js.map → p-LFHrICnV.js.map} +0 -0
  262. /package/dist/components/{p-BoWpIl_m.js.map → p-N8tEOYt8.js.map} +0 -0
  263. /package/dist/components/{p-CbJx9swS.js.map → p-QU-CyuBt.js.map} +0 -0
  264. /package/dist/components/{p-DcvPY30Q.js.map → p-X-GPE9bP.js.map} +0 -0
  265. /package/dist/components/{p-CnsuVR2e.js.map → p-cOkFnnZV.js.map} +0 -0
  266. /package/dist/components/{p-BctjNfzt.js.map → p-c_qWiZ6V.js.map} +0 -0
  267. /package/dist/components/{p-M-Sxsv7V.js.map → p-dVdTdZdu.js.map} +0 -0
  268. /package/dist/components/{p-CE_S4oQ_.js.map → p-hHtKJMVu.js.map} +0 -0
  269. /package/dist/components/{p-6r60E0i4.js.map → p-snYhfM1q.js.map} +0 -0
  270. /package/dist/components/{p-cvVUXaen.js.map → p-zGd26CTX.js.map} +0 -0
@@ -1,2 +0,0 @@
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,d as a}from"./p-DTlNtCX1.js";import{p as l}from"./p-mSCnWLhL.js";import{d}from"./p-ClOvX8cD.js";import{d as c}from"./p-D5-hqLPK.js";import{d as h}from"./p-G6r6yYg8.js";import{d as f}from"./p-C942uiH1.js";import{d as u}from"./p-0XTyQNRG.js";import{d as p}from"./p-DQ-wfTOw.js";import{d as v}from"./p-DMPn_dt7.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 T(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 C(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=>l(e.trim(),0)));const t=e.transitionDelay.split(",").map((e=>l(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 E(e,o){return!e&&o==="idle"}function F(e,o,i){if(i==="closing")return e<=.5;if(i==="opening")return o>0&&e>=o-.5;return true}function M(e,o,i){if(e&&o===i){return{open:false,activeTool:i,selected:false}}return{open:true,activeTool:i,selected:true}}const K=()=>`: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(--ds-chrome-space-sm-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 calc(var(--dimension-size-base) * 25)}.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 R=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=M(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=T(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=T(z(this.railItems,o));const t=T(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=C(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 F(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=T(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(T(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 t(s,{key:"45e204ae960374cfc1d3681f60962e108fbb0468",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:"049996e38ed5d329248e54f1c596b5aff7fe553c",class:"panel-tools__layout"},t("nav",{key:"e555ffd19db886d3318d203f93c7f372e6c22ad1",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:"841cc12542837786ade8bea08c9317014f889839",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:"a54deb3f2c392a1300179d379557563bdb699672",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:"99a5fecc9397e83241e35dcac03af99aa3869edc",class:{"panel-tools__drawer":true,"panel-tools__drawer--visible":u},"aria-hidden":u?null:"true",inert:u?undefined:true},t("div",{key:"41c29741e77e10b403f58480c2bf7e2b3d7a33c2",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:"12e4c3524810ba2721a59bc63d5d2acf75c62f4d",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:"feccbb82077d0181812a1d3501dbc6d436772851",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 K()}},[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 B(){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),R)}break;case"ds-badge":if(!customElements.get(n(e))){d()}break;case"ds-button-unfilled":if(!customElements.get(n(e))){c()}break;case"ds-divider":if(!customElements.get(n(e))){h()}break;case"ds-icon":if(!customElements.get(n(e))){f()}break;case"ds-loader":if(!customElements.get(n(e))){u()}break;case"ds-panel-tool-header":if(!customElements.get(n(e))){p()}break;case"ds-text":if(!customElements.get(n(e))){v()}break;case"ds-tooltip":if(!customElements.get(n(e))){a()}break}}))}B();export{R as P,b as a,M as b,_ as c,B as d,k as o,$ as r};
2
- //# sourceMappingURL=p-D3FrQk7o.js.map
@@ -1,2 +0,0 @@
1
- import{p as e,H as i,c as s,h as n,a as t,t as o}from"./index.js";import{A as r,r as d,c,d as a}from"./p-DTlNtCX1.js";import{C as l}from"./p-DlsjHRU3.js";import{A as u}from"./p-CwUXroLs.js";import{d as h}from"./p-ClOvX8cD.js";import{d as m}from"./p-D5-hqLPK.js";import{d as f}from"./p-C942uiH1.js";import{d as p}from"./p-0XTyQNRG.js";import{d as v}from"./p-Nx52go85.js";import{d as g}from"./p-KTaiJztz.js";import{d as b}from"./p-Bt1Ybvz-.js";import{d as x}from"./p-DMPn_dt7.js";import{b as w,r as _,T as y}from"./p-mSCnWLhL.js";import{c as k,r as C}from"./p-DhKvqh5G.js";import{r as P}from"./p-CVYjLzYI.js";import{C as z,a as I}from"./p-CuwopElg.js";function A(e){return"variant"in e&&e.variant==="swatch-picker"}function T(e){return A(e)}function D(e){return e.map((e=>{if(A(e)){return{...e,...e.options?{options:e.options.map((e=>({...e})))}:{},...e.sections?{sections:e.sections.map((e=>({...e,options:e.options.map((e=>({...e})))})))}:{}}}return{...e,items:e.items.map((e=>({...e,...e.trailingToggle?{trailingToggle:{...e.trailingToggle}}:{},...e.trailingActions?{trailingActions:e.trailingActions.map((e=>({...e})))}:{}})))}}))}function j(e,i){if(!e[i]?.reorderable)return null;let s=i;while(s>0&&e[s-1]?.reorderable)s-=1;let n=i;while(n<e.length-1&&e[n+1]?.reorderable)n+=1;return{start:s,end:n}}function H(e,i,s){const n=j(e,i);if(!n)return null;const t=Math.min(Math.max(s,n.start),n.end+1);let o=t;if(i<o)o-=1;if(o===i||o<n.start||o>n.end)return null;const r=[...e];const[d]=r.splice(i,1);r.splice(o,0,d);return r}function O(e,i,s){if(s===0)return null;return H(e,i,i+(s<0?s:s+1))}function M(e,i){let s=i;for(let i=0;i<e.length;i+=1){const n=e[i];if(T(n))continue;if(s<n.items.length){return{sectionIndex:i,itemIndex:s,items:n.items}}s-=n.items.length}return null}function B(e,i,s,n){const t=e[i];if(!t)return null;const o=s.indexOf(t);if(o<0){const e=t.value;const o=e?s.findIndex((i=>i.value===e)):-1;if(o<0)return null;return{item:t,fromIndex:i,toIndex:o,sectionIndex:n,items:s}}return{item:t,fromIndex:i,toIndex:o,sectionIndex:n,items:s}}const R=()=>`.sc-ds-menu-h,.sc-ds-menu:where(.ds-table),.sc-ds-menu:where(.tooltip-popup),.sc-ds-menu: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)}@media (forced-colors: active){.sc-ds-menu:root,.sc-ds-menu-h,.ds-forced-colors-scope.sc-ds-menu{--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-menu-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-menu-h,.ds-focus-ring.sc-ds-menu,.ds-focus-ring-inset.sc-ds-menu-h,.ds-focus-ring-inset.sc-ds-menu{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-menu-h:focus-visible,.ds-focus-ring.sc-ds-menu: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-menu-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-menu{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-menu-h:focus-visible,.ds-focus-ring-inset.sc-ds-menu:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-menu-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-menu: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-menu-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-menu{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-menu-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-menu::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-menu-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-menu:root,.sc-ds-menu-h,.ds-forced-colors-scope.sc-ds-menu{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}@media (forced-colors: active){.sc-ds-menu:root,.sc-ds-menu-h,.ds-forced-colors-scope.sc-ds-menu{--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-menu-h,.ds-interaction-fill.sc-ds-menu{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-menu-h::before,.ds-interaction-fill.sc-ds-menu::before,.ds-interaction-fill.sc-ds-menu-h::after,.ds-interaction-fill.sc-ds-menu::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-menu-h::before,.ds-interaction-fill.sc-ds-menu::before{z-index:1}.ds-interaction-fill.sc-ds-menu-h::after,.ds-interaction-fill.sc-ds-menu::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-menu-h,.ds-interaction-fill--bordered.sc-ds-menu{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-menu-h::before,.ds-interaction-fill--selected.sc-ds-menu::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-menu-h,.ds-interaction-fill--selected.sc-ds-menu{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-menu-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-menu:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-menu-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-menu:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-menu-h::after,.ds-interaction-fill--grouped.sc-ds-menu::after,.ds-interaction-fill--grouped.sc-ds-menu-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-menu:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-menu-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-menu:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-menu-h,.ds-interaction-fill--grouped.sc-ds-menu{--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-menu-h>.ds-interaction-fill__content.sc-ds-menu,.ds-interaction-fill.sc-ds-menu>.ds-interaction-fill__content.sc-ds-menu,.ds-interaction-fill__content.sc-ds-menu{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-menu-h,.ds-interaction-fill--on-faint.sc-ds-menu{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-menu-h,.ds-interaction-fill--on-medium.sc-ds-menu{--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-menu-h,.ds-interaction-fill--on-bold.sc-ds-menu{--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-menu-h,.ds-interaction-fill--on-strong.sc-ds-menu{--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-menu-h,.ds-interaction-fill--on-translucent.sc-ds-menu{--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-menu-h,.ds-interaction-fill--on-inverted.sc-ds-menu{--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-menu-h,.ds-interaction-fill--on-media.sc-ds-menu{--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-menu-h,.ds-interaction-fill--on-always-dark.sc-ds-menu{--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-menu-h,.ds-interaction-fill--on-chrome.sc-ds-menu{--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-menu-h,.ds-interaction-fill--on-navigation.sc-ds-menu{--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-menu-h:not(:disabled)::after,.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-menu:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-menu-h::after,.ds-interaction-fill.sc-ds-menu::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-menu-h:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill--surface-open.sc-ds-menu: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-menu-h::before,.ds-interaction-fill--selected.sc-ds-menu::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-menu-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-menu:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline-color:var(--ds-forced-color-selected);outline-width:var(--dimension-stroke-width-012)}}@media (forced-colors: active){.sc-ds-menu:root,.sc-ds-menu-h,.ds-forced-colors-scope.sc-ds-menu{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control-inactive.sc-ds-menu-h,.ds-control-inactive.sc-ds-menu{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-menu-h,.ds-control-inactive.sc-ds-menu{color:var(--ds-forced-color-disabled);opacity:1}}.ds-control--lg.sc-ds-menu,.ds-control--lg.sc-ds-menu-h,.ds-control--md.sc-ds-menu-h,.ds-control--md.sc-ds-menu,.ds-control--sm.sc-ds-menu-h,.ds-control--sm.sc-ds-menu,.ds-control--xs.sc-ds-menu-h,.ds-control--xs.sc-ds-menu{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-menu-h,.ds-control--lg.sc-ds-menu{--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-menu-h,.ds-control--md.sc-ds-menu{--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-menu-h,.ds-control--sm.sc-ds-menu{--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-menu-h,.ds-control--xs.sc-ds-menu{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-chrome-space--sm.sc-ds-menu-h,.ds-chrome-space--sm.sc-ds-menu{--ds-chrome-padding:var(--ds-chrome-space-sm-padding, var(--dimension-space-050));--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-menu-h,.ds-chrome-space--md.sc-ds-menu{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-menu-h,.ds-chrome-space--lg.sc-ds-menu{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-menu-h,.ds-chrome-row.sc-ds-menu,.ds-chrome-column.sc-ds-menu-h,.ds-chrome-column.sc-ds-menu,.ds-chrome-grid.sc-ds-menu-h,.ds-chrome-grid.sc-ds-menu{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-menu-h,.ds-chrome-row.sc-ds-menu{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-menu-h,.ds-chrome-column.sc-ds-menu{flex-direction:column}.ds-chrome-grid.sc-ds-menu-h,.ds-chrome-grid.sc-ds-menu{display:grid;align-items:center}.ds-control-frame.sc-ds-menu{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:var(--ds-control-padding-inline, var(--dimension-space-075));gap:var(--ds-control-gap, var(--dimension-space-050));border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.ds-control-section-heading.sc-ds-menu{display:flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-control-icon-box.sc-ds-menu{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md))}.ds-control-label-box.sc-ds-menu{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-menu{position:relative;padding-inline-end:calc( var(--ds-control-label-inset, var(--dimension-space-025)) + var(--ds-control-gap, var(--dimension-space-050)) )}.ds-control-label-dot__badge.sc-ds-menu{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-empty-region.sc-ds-menu{display:flex;flex:1 1 auto;align-items:center;justify-content:center;box-sizing:border-box;min-width:0;min-height:0}.ds-empty-region--padded.sc-ds-menu{padding:var(--dimension-space-200)}.sc-ds-menu:where(.ds-text-decoration,.ds-text-action).sc-ds-menu{text-decoration-color:var(--ds-text-decoration-color, var(--color-foreground-tertiary));text-decoration-thickness:var(--ds-text-decoration-thickness, var(--dimension-stroke-width-012));text-underline-offset:var(--ds-text-decoration-offset, var(--dimension-space-025))}.ds-text-action.sc-ds-menu{--ds-text-action-foreground:var(--color-foreground-bold-brand);--ds-text-decoration-color:var(--ds-text-action-foreground);color:var(--ds-text-action-foreground);text-decoration-line:none}.ds-text-action--on-medium.sc-ds-menu{--ds-text-action-foreground:var(--color-foreground-on-medium-background-primary);--ds-text-decoration-color:var(--color-foreground-on-medium-background-secondary);text-decoration-line:underline}.ds-text-action--on-strong.sc-ds-menu{--ds-text-action-foreground:var(--color-foreground-on-strong-background-primary);--ds-text-decoration-color:var(--color-foreground-on-strong-background-secondary);text-decoration-line:underline}.ds-text-action--on-bold.sc-ds-menu{--ds-text-action-foreground:var(--color-foreground-on-bold-background-primary);--ds-text-decoration-color:var(--color-foreground-on-bold-background-secondary);text-decoration-line:underline}@media (hover: hover) and (pointer: fine){.ds-text-action.sc-ds-menu:hover{text-decoration-line:underline}}@media (forced-colors: active){.ds-text-action.sc-ds-menu{text-decoration-line:underline;text-decoration-color:currentcolor}}.ds-choice-popup.sc-ds-menu{box-sizing:border-box;display:flex;flex-direction:column;min-width:var(--ds-choice-popup-min-inline-size, var(--dimension-menu-width-xs));max-width:min(var(--dimension-panel-width-lg), calc(100vw - var(--dimension-space-200)));max-height:calc(100vh - var(--dimension-space-200));overflow:hidden;inset:auto;margin:0;padding:0;border:0;background-color:var(--color-background-primary);border-radius:var(--ds-radius-menu);box-shadow:var(--effect-shadow-elevated-floating);color:var(--color-foreground-secondary);animation:dsChoiceFadeIn var(--effect-motion-short-2) forwards;backface-visibility:hidden;will-change:transform;text-align:start}.ds-choice-popup.sc-ds-menu::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:var(--effect-highlight-elevated-floating)}.ds-choice-popup--closing.sc-ds-menu{animation:dsChoiceFadeOut var(--effect-motion-short-2) forwards}@keyframes dsChoiceFadeIn{from{opacity:0;transform:inherit scale(0.97)}to{opacity:1}}@keyframes dsChoiceFadeOut{from{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.ds-choice-popup.sc-ds-menu{animation:none;opacity:1}.ds-choice-popup--closing.sc-ds-menu{opacity:0}}@media (forced-colors: active){.ds-choice-popup.sc-ds-menu{outline:var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);outline-offset:calc(-1 * var(--dimension-stroke-width-012))}.ds-choice-popup.sc-ds-menu::after{box-shadow:none}}.ds-choice-list.sc-ds-menu{display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain}.ds-choice-section--divided.sc-ds-menu{border-bottom:var(--dimension-stroke-width-015) solid var(--color-border-tertiary)}ds-text.ds-choice-section__header.sc-ds-menu{text-align:start;-webkit-user-select:none;user-select:none}.ds-choice-section--headed-after-first.sc-ds-menu{margin-block-start:var(--dimension-space-050)}.select-option-row.sc-ds-menu{display:flex;flex-direction:column;min-width:0}.ds-choice-item.sc-ds-menu{width:100%;border:none;border-radius:var(--ds-control-radius, var(--dimension-radius-025));background:transparent;cursor:default;-webkit-user-select:none;user-select:none;text-align:left;color:inherit}.ds-choice-item.sc-ds-menu:has(.ds-choice-item__subtext){height:auto;min-height:var(--ds-control-height, var(--dimension-size-400));padding-block:var(--ds-control-padding-inline, var(--dimension-space-075));align-items:flex-start}.ds-choice-item.ds-control--xs.sc-ds-menu:has(.ds-choice-item__subtext){padding-block:0}.ds-choice-item__content.sc-ds-menu{display:flex;flex:1;flex-direction:column;gap:var(--dimension-space-025);min-width:0}ds-text.ds-choice-item__label.sc-ds-menu{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ds-text.ds-choice-item__subtext.sc-ds-menu{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.ds-choice-item__icon.sc-ds-menu,.ds-choice-item__suffix.sc-ds-menu{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md));pointer-events:none}.ds-choice-item.ds-interaction-fill--selected.sc-ds-menu .ds-choice-item__icon.sc-ds-menu{color:var(--color-foreground-primary)}.ds-choice-item__tag.sc-ds-menu{flex-shrink:0;pointer-events:none}.ds-choice-empty.sc-ds-menu,.ds-choice-loading.sc-ds-menu{min-height:var(--dimension-size-600);padding:var(--dimension-space-100)}.ds-choice-footer.sc-ds-menu{position:relative;box-sizing:border-box;padding-block:var(--dimension-space-050)}.ds-choice-footer.sc-ds-menu::before{content:'';position:absolute;inset:0 0 auto;height:var(--dimension-stroke-width-012);background-color:var(--color-border-tertiary);pointer-events:none}.ds-choice-footer__content.sc-ds-menu{display:flex;align-items:center;justify-content:space-between;column-gap:var(--dimension-space-050);box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400))}.ds-choice-footer__summary.sc-ds-menu,.ds-choice-footer__summary-measure.sc-ds-menu,.ds-choice-footer__clear.sc-ds-menu ds-text.sc-ds-menu,.ds-choice-footer__action.sc-ds-menu ds-text.sc-ds-menu{padding-inline:calc( var(--dimension-space-050) + var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-choice-footer__summary.sc-ds-menu,.ds-choice-footer__summary-measure.sc-ds-menu,.ds-choice-footer__clear.sc-ds-menu,.ds-choice-footer__action.sc-ds-menu{white-space:nowrap}.ds-choice-footer__summary-measure.sc-ds-menu{position:absolute;visibility:hidden;pointer-events:none}.ds-choice-footer__clear.sc-ds-menu,.ds-choice-footer__action.sc-ds-menu{appearance:none;display:inline-flex;align-items:center;padding:0;border:0;border-radius:var(--dimension-radius-025);background:transparent;cursor:default}@media (forced-colors: active){.ds-choice-section--divided.sc-ds-menu{border-bottom-color:var(--ds-forced-color-content)}.ds-choice-footer.sc-ds-menu::before{background-color:var(--ds-forced-color-content)}}.ds-visually-hidden.sc-ds-menu-h,.ds-visually-hidden.sc-ds-menu{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}@media (forced-colors: active){.sc-ds-menu:root,.sc-ds-menu-h,.ds-forced-colors-scope.sc-ds-menu{--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}}.menu-empty.sc-ds-menu{padding:var(--dimension-space-200);box-sizing:border-box;overflow-wrap:anywhere}.menu-item--destructive.sc-ds-menu .menu-item__label.sc-ds-menu{color:var(--color-foreground-bold-negative) !important}.menu-item__dot-box.sc-ds-menu{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md));pointer-events:none}.menu-item__switch.sc-ds-menu{flex-shrink:0;margin-inline-start:calc( var(--dimension-space-100) - var(--ds-control-gap, var(--dimension-space-050)) )}.menu-item-row.sc-ds-menu{display:contents}.menu-item-row--trailing-toggle.sc-ds-menu{display:flex;align-items:center;min-width:0}.menu-item-row--actions.sc-ds-menu{display:flex;align-items:center;min-width:0;padding-inline-end:var(--dimension-space-025)}.menu-item-row--trailing-toggle.sc-ds-menu>.menu-item.sc-ds-menu{flex:1;min-width:0;width:auto}.menu-item-row__trailing-toggle.sc-ds-menu{display:inline-flex;align-items:center;flex-shrink:0}.menu-item-row__divider.sc-ds-menu{flex-shrink:0;width:var(--dimension-stroke-width-012);height:var(--dimension-size-250);margin-inline:var(--dimension-space-025);background:var(--color-border-tertiary)}.menu-item-row__trailing-toggle.sc-ds-menu>ds-button-unfilled.sc-ds-menu{flex-shrink:0}.menu-item-row__actions.sc-ds-menu,.menu-item-row__action.sc-ds-menu{display:inline-flex;align-items:center;flex-shrink:0}.menu-item-row__action.sc-ds-menu>ds-button-unfilled.sc-ds-menu{flex-shrink:0}.menu-subsection-divider.sc-ds-menu{display:block;flex-shrink:0;height:var(--dimension-stroke-width-012);margin-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) );background:var(--color-border-tertiary)}.menu-item.sc-ds-menu>.menu-item__handle.sc-ds-menu{pointer-events:auto;cursor:grab;touch-action:none}.menu-item.sc-ds-menu>.menu-item__handle--action-row.sc-ds-menu{--ds-menu-action-handle-size:calc( var(--ds-control-height, var(--dimension-size-400)) - var(--dimension-space-050) );width:var(--ds-menu-action-handle-size);height:var(--ds-menu-action-handle-size);margin-inline:calc( (var(--ds-control-icon, var(--dimension-iconography-md)) - var(--ds-menu-action-handle-size)) / 2 );border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.menu-item.sc-ds-menu>.menu-item__handle--inactive.sc-ds-menu{color:var(--color-foreground-quaternary);pointer-events:none;cursor:default;touch-action:auto}.menu-item.sc-ds-menu>.menu-item__handle.sc-ds-menu:active,.menu-item--dragging.sc-ds-menu>.menu-item__handle.sc-ds-menu{cursor:grabbing}.menu-item--dragging.sc-ds-menu{opacity:var(--effect-opacity-medium)}.menu-item__drop-rail.sc-ds-menu{position:absolute;z-index:var(--dimension-z-index-raised);inset-inline:var(--dimension-space-050);block-size:var(--dimension-stroke-width-025);border-radius:var(--dimension-radius-half);background:var(--color-border-bold-brand);pointer-events:none}.menu-item__drop-rail--before.sc-ds-menu{inset-block-start:calc(-1 * var(--dimension-space-025));transform:translateY(-50%)}.menu-item__drop-rail--after.sc-ds-menu{inset-block-end:calc(-1 * var(--dimension-space-025));transform:translateY(50%)}@media (forced-colors: active){.menu-item-row__divider.sc-ds-menu{background:var(--ds-forced-color-content)}.menu-subsection-divider.sc-ds-menu{background:var(--ds-forced-color-content)}.menu-item__drop-rail.sc-ds-menu{background:var(--ds-forced-color-selected)}}.data-preferences-embedded.sc-ds-menu{display:flex;flex-direction:column;min-width:0;min-height:0;color:var(--color-foreground-secondary)}`;let E=0;const L={lg:"md",md:"sm",sm:"xs",xs:"xs"};const $=e(class e extends i{constructor(e){super();if(e!==false){this.__registerHost()}this.dsClose=s(this,"dsClose",7);this.dsAfterClose=s(this,"dsAfterClose",7);this.dsSelect=s(this,"dsSelect",7);this.dsItemToggle=s(this,"dsItemToggle",7);this.dsSwatchSelect=s(this,"dsSwatchSelect",7);this.dsReorder=s(this,"dsReorder",7);this.embedded=false;this.open=false;this.items=[];this.size="md";this.selectionMode="none";this.sections=[];this.side="bottom";this.align="start";this.anchorAlignment="choice-cell";this.sideOffset=w.space050;this.alignOffset=0;this.initialFocusVisible=false;this.menuLabel="Menu";this.emptyMessage="";this.shouldRender=false;this.closing=false;this.pos={x:0,y:0};this.focusedIndex=0;this.positionReady=false;this.availableHeight=null;this.focusRingVisible=false;this.reorderFromFlat=null;this.reorderInsertBefore=null;this.reorderAnnouncement="";this.closeTimer=null;this.loaded=false;this.tasks=new l((()=>this.el.isConnected));this.suppressItemClick=false;this.reorderPointer=null;this.position=new r({getAnchor:()=>this.resolvedAnchor??null,getPopup:()=>this.el.querySelector(".menu-popup"),getOwnerDocument:()=>this.el.ownerDocument,measure:(e,i)=>{if(!this.open)return null;const s=e.getBoundingClientRect();const n=this.viewportPadPx;if(!this.minWidth){if(this.anchorAlignment==="choice-cell"&&(this.side==="top"||this.side==="bottom")){i.style.minWidth=`max(var(--dimension-menu-width-xs), ${k(s.width,n)}px)`}else{i.style.removeProperty("min-width")}}const t=this.viewportPadPx;const o=i.querySelector(".ds-choice-list");const r=Math.min(Math.max(i.offsetHeight,o?.scrollHeight??0),window.innerHeight-t*2);const a={anchorRect:s,popupWidth:i.offsetWidth||this.popupFallbackWidthPx,popupHeight:r||this.popupFallbackHeightPx,side:this.side,align:this.align,sideOffsetPx:this.sideOffsetPx,alignOffsetPx:C({align:this.align,alignOffsetPx:this.alignOffsetPx,sectionInsetPx:n,anchorAlignment:this.anchorAlignment}),viewportPadPx:t,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,collisionRect:d(e,this.boundary)};const l=c(a);return{...a,popupHeight:Math.min(a.popupHeight,l.availableHeight)}},apply:({x:e,y:i,availableHeight:s})=>{this.pos={x:e,y:i};this.availableHeight=s},onReady:()=>{this.positionReady=true},liveUpdate:"double-frame",topLayer:true,observeResize:true,observeAnchorMotion:true});this.interaction=new u({getAnchor:()=>this.resolvedAnchor,getPopup:()=>this.el.querySelector(".menu-popup"),getOwnerDocument:()=>this.el.ownerDocument,onOutsideActivation:()=>this.close()});this.lastRenderedSections=[];this.closingSections=null;this.emptyMessageId=`ds-menu-empty-${++E}`;this.lastRenderedEmptyMessage="";this.onReorderPointerMove=e=>{const i=this.reorderPointer;if(!i||e.pointerId!==i.pointerId)return;const s=this.activeSections[i.sectionIndex];if(!s||T(s))return;const n=this.resolveReorderInsertBefore(e.clientY,i.sectionIndex,i.fromIndex,s.items);if(n!==this.reorderInsertBefore)this.reorderInsertBefore=n};this.onReorderPointerUp=e=>{const i=this.reorderPointer;if(!i||e.pointerId!==i.pointerId)return;const s=this.activeSections[i.sectionIndex];const n=this.reorderInsertBefore;this.clearReorderPointer();this.tasks.microtask((()=>{this.suppressItemClick=false}));if(!s||T(s)||n===null)return;const t=H(s.items,i.fromIndex,n);if(!t)return;this.emitReorder(s.items,i.fromIndex,t,i.sectionIndex)};this.onReorderPointerCancel=e=>{if(!this.reorderPointer||e.pointerId!==this.reorderPointer.pointerId)return;this.clearReorderPointer();this.tasks.microtask((()=>{this.suppressItemClick=false}))}}componentDidLoad(){this.loaded=true;if(this.open)this.onOpenChange(true)}connectedCallback(){if(this.loaded&&this.open)this.onOpenChange(true)}disconnectedCallback(){this.cancelPositionRetry();this.cancelLivePositionUpdate();this.clearReorderPointer();this.teardownListeners();this.positionReadyCallback=undefined;this.shouldRender=false;this.closing=false;this.positionReady=false;this.closingSections=null;this.lastRenderedSections=[];this.suppressItemClick=false;this.reorderAnnouncement=""}onOpenChange(e){if(this.embedded||!this.loaded||!this.el.isConnected)return;if(e){this.teardownListeners();this.closingSections=null;this.shouldRender=true;this.closing=false;this.positionReady=false;this.availableHeight=null;this.focusRingVisible=this.initialFocusVisible;this.setupListeners();this.schedulePositionUpdate((()=>{this.focusInitialItem()}))}else if(this.shouldRender&&!this.closing){this.positionReadyCallback=undefined;this.cancelPositionRetry();this.captureClosingSections();this.closing=true;this.teardownListeners();const e=this.closeAnimationMs;if(e<=0){this.finishClose();return}this.closeTimer=setTimeout((()=>{this.closeTimer=null;this.finishClose()}),e)}}onAnchorChange(){if(this.open)this.schedulePositionUpdate()}onPositionPropsChange(){if(this.open)this.schedulePositionUpdate()}get viewportPadPx(){return P(y.space050,y.space050)}get sideOffsetPx(){return P(this.sideOffset,y.space050)}get alignOffsetPx(){return P(this.alignOffset,0)}get popupFallbackWidthPx(){return P(y.menuWidthXs,y.menuWidthXs)}get popupFallbackHeightPx(){return P(y.menuFallbackHeight,y.menuFallbackHeight)}get closeAnimationMs(){return _(y.motionShort2,y.animationDurationShort3)}finishClose(){if(this.open||!this.closing||!this.el.isConnected)return;const e=this.el.querySelector(".menu-popup");if(e?.matches(":popover-open"))e.hidePopover();this.shouldRender=false;this.closing=false;this.lastRenderedSections=[];this.closingSections=null;this.clearReorderPointer();this.reorderAnnouncement="";this.dsAfterClose.emit()}captureClosingSections(){if(this.closingSections)return;const e=this.lastRenderedSections.length?this.lastRenderedSections:this.activeSections;this.closingSections=D(e)}get resolvedAnchor(){if(this.anchor)return this.anchor;if(this.anchorId)return document.getElementById(this.anchorId);return null}compositeTabLeavesPopup(e){return this.interaction.tabLeavesPopup(e)}get activeSections(){if(this.sections.length>0)return this.sections;if(this.items.length>0)return[{items:this.items}];return[]}get flatItems(){return this.activeSections.flatMap((e=>T(e)?[]:e.items))}get hasCompositeSections(){return this.sectionsHaveCompositeControls(this.activeSections)}sectionsHaveCompositeControls(e){return e.some((e=>T(e)||e.items.some((e=>Boolean(e.trailingToggle||e.trailingActions?.length)))))}sectionUsesInsetDivider(e){return Boolean(e&&!T(e)&&e.insetDividerBefore)}cancelPositionRetry(){this.position.cancel()}cancelLivePositionUpdate(){this.position.cancel()}scheduleLivePositionUpdate(){this.position.scheduleLiveUpdate()}schedulePositionUpdate(e){if(!this.open||!this.el.isConnected)return;this.positionReady=false;if(e)this.positionReadyCallback=e;const i=this.positionReadyCallback;this.position.schedule((()=>{if(this.positionReadyCallback===i){this.positionReadyCallback=undefined}i?.()}))}calculatePosition(){return this.position.update()}focusInitialItem(){if(!this.hasCompositeSections&&!this.flatItems.length&&this.emptyMessage.trim()){this.tasks.frame((()=>{if(this.open)this.el.querySelector(".menu-popup")?.focus()}));return}if(this.hasCompositeSections){this.tasks.frame((()=>{this.el.querySelector('.menu-popup [tabindex="0"]')?.focus()}));return}const e=this.flatItems;const i=e.findIndex((e=>e.isSelected&&!e.isInactive));const s=e.findIndex((e=>!e.isInactive||!!e.reorderable));this.focusedIndex=i>=0?i:s>=0?s:0;this.tasks.frame((()=>{const e=this.el.querySelectorAll(".menu-item");e[this.focusedIndex]?.focus()}))}setupListeners(){this.interaction.connect();this.position.observe()}teardownListeners(){this.tasks.cancel();this.position.unobserve();this.interaction.disconnect();if(this.closeTimer){clearTimeout(this.closeTimer);this.closeTimer=null}}close(e=true){this.captureClosingSections();if(e)this.interaction.focusAnchor();this.dsClose.emit();this.open=false;this.onOpenChange(false)}handleKeyDown(e){if(this.embedded&&(e.key==="Escape"||e.key==="Tab"))return;if(!this.shouldRender&&!this.embedded||this.closing)return;if(e.key==="Escape"){e.preventDefault();this.close();return}if(e.key==="Tab"){if(this.hasCompositeSections&&!this.compositeTabLeavesPopup(e))return;e.preventDefault();this.close(false);this.interaction.moveFocusAfterTab(e.shiftKey);return}if((e.key==="ArrowUp"||e.key==="ArrowDown")&&e.altKey&&!e.ctrlKey&&!e.shiftKey&&e.target.closest(".menu-item")){this.handleReorderKey(e);return}if(this.hasCompositeSections)return;const i=this.flatItems;const s=i.map(((e,i)=>({it:e,i}))).filter((({it:e})=>!e.isInactive||!!e.reorderable)).map((({i:e})=>e));if(!s.length)return;const n=s.indexOf(this.focusedIndex);const t=n<0?0:n;switch(e.key){case"ArrowDown":e.preventDefault();e.stopPropagation();this.focusRingVisible=true;this.focusedIndex=s[(t+1)%s.length];this.focusItem(this.focusedIndex);break;case"ArrowUp":e.preventDefault();e.stopPropagation();this.focusRingVisible=true;this.focusedIndex=s[(t-1+s.length)%s.length];this.focusItem(this.focusedIndex);break;case"Home":e.preventDefault();e.stopPropagation();this.focusRingVisible=true;this.focusedIndex=s[0];this.focusItem(this.focusedIndex);break;case"End":e.preventDefault();e.stopPropagation();this.focusRingVisible=true;this.focusedIndex=s[s.length-1];this.focusItem(this.focusedIndex);break}}focusItem(e){const i=this.el.querySelectorAll(".menu-item");const s=i[e];if(!s)return;if(s.matches("button"))s.focus();else s.querySelector('[tabindex="0"]')?.focus()}handleItemClick(e){if(this.suppressItemClick){this.suppressItemClick=false;return}if(e.isInactive)return;this.captureClosingSections();this.dsSelect.emit(e)}handleSwatchSelect(e){this.dsSwatchSelect.emit(e)}handleReorderKey(e){const i=M(this.activeSections,this.focusedIndex);if(!i||!i.items[i.itemIndex]?.reorderable)return;const s=O(i.items,i.itemIndex,e.key==="ArrowUp"?-1:1);if(!s)return;e.preventDefault();e.stopPropagation();this.emitReorder(i.items,i.itemIndex,s,i.sectionIndex)}emitReorder(e,i,s,n){const t=B(e,i,s,n);if(!t)return;this.focusedIndex=this.flatIndexFor(n,t.toIndex);this.announceReorder(t);this.dsReorder.emit(t)}flatIndexFor(e,i){let s=0;for(let n=0;n<this.activeSections.length;n+=1){const t=this.activeSections[n];if(T(t))continue;if(n===e)return s+i;s+=t.items.length}return i}announceReorder(e){const i=j(e.items,e.toIndex);const s=i?i.end-i.start+1:e.items.length;const n=i?e.toIndex-i.start+1:e.toIndex+1;this.reorderAnnouncement=`${e.item.label} moved to position ${n} of ${s}`}onReorderPointerDown(e,i,s,n){if(e.button!==0)return;const t=this.activeSections[i];if(!t||T(t))return;if(!t.items[s]?.reorderable)return;e.preventDefault();e.stopPropagation();this.suppressItemClick=true;this.focusRingVisible=false;this.focusedIndex=n;this.focusItem(n);this.reorderPointer={pointerId:e.pointerId,sectionIndex:i,fromIndex:s};this.reorderFromFlat=n;this.reorderInsertBefore=s;window.addEventListener("pointermove",this.onReorderPointerMove);window.addEventListener("pointerup",this.onReorderPointerUp);window.addEventListener("pointercancel",this.onReorderPointerCancel)}resolveReorderInsertBefore(e,i,s,n){const t=j(n,s);if(!t)return s;const o=[...this.el.querySelectorAll(".menu-item")];const r=this.flatIndexFor(i,0);let d=t.end+1;for(let i=t.start;i<=t.end;i+=1){const s=o[r+i];if(!s)continue;const n=s.getBoundingClientRect();if(e<n.top+n.height/2){d=i;break}}return Math.min(Math.max(d,t.start),t.end+1)}clearReorderPointer(){if(this.reorderPointer){window.removeEventListener("pointermove",this.onReorderPointerMove);window.removeEventListener("pointerup",this.onReorderPointerUp);window.removeEventListener("pointercancel",this.onReorderPointerCancel)}this.reorderPointer=null;this.reorderFromFlat=null;this.reorderInsertBefore=null}render(){if(!this.shouldRender&&!this.embedded)return n(t,{style:{display:"contents"}});const e=this.closing?this.closingSections??this.lastRenderedSections:this.activeSections;const i=this.sectionsHaveCompositeControls(e);const s=this.closing?this.lastRenderedEmptyMessage:this.emptyMessage.trim();const o=Boolean(s)&&!i&&e.every((e=>!T(e)&&e.items.length===0));if(!this.closing){this.lastRenderedEmptyMessage=s;this.lastRenderedSections=D(e);this.closingSections=null}let r=0;const d=this.reorderFromFlat===null?null:M(e,this.reorderFromFlat);const c=d?j(d.items,d.itemIndex):null;const a={position:"fixed",left:"0",top:"0",transform:`translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,zIndex:"9998",visibility:this.positionReady?"visible":"hidden"};if(this.menuWidth)a["width"]=this.menuWidth;if(this.minWidth)a["min-width"]=this.minWidth;if(this.availableHeight!==null){a["max-height"]=`${Math.floor(this.availableHeight)}px`}return n(t,{style:{display:"contents"}},n("div",{popover:this.embedded?undefined:"manual",class:{"menu-popup":true,"menu-popup--closing":this.closing,"ds-choice-popup":!this.embedded,"data-preferences-embedded":this.embedded,"ds-choice-popup--closing":this.closing,"ds-focus-ring":o,"ds-focus-ring--visible":o&&this.focusRingVisible},style:this.embedded?undefined:a,role:i||o?"dialog":"menu","aria-label":this.menuLabel,"aria-orientation":i||o?undefined:"vertical","aria-describedby":o?this.emptyMessageId:undefined,tabIndex:o?-1:undefined},n("div",{class:"ds-choice-list"},o?n("ds-text",{textId:this.emptyMessageId,class:"menu-empty",as:"p",variant:z[this.size],color:"secondary"},s):e.map(((s,t)=>n("div",{key:t,class:{"menu-section":true,"menu-section--divided":t<e.length-1&&!this.sectionUsesInsetDivider(e[t+1]),"menu-section--swatch-picker":T(s),"ds-choice-section":true,"ds-chrome-column":true,"ds-chrome-space--sm":true,"ds-choice-section--divided":t<e.length-1&&!this.sectionUsesInsetDivider(e[t+1]),"ds-choice-section--headed-after-first":t>0&&!T(s)&&Boolean(s.header||s.subheader)},role:s.header||!T(s)&&s.subheader?"group":undefined,"aria-label":!T(s)&&s.subheader?s.subheader:s.header},!T(s)&&s.insetDividerBefore&&n("span",{class:"menu-subsection-divider","aria-hidden":"true"}),s.header&&n("ds-text",{class:`section-header ds-choice-section__header ds-control-section-heading ds-control--${this.size}`,as:"span",variant:I[this.size],emphasis:true,color:"primary","aria-hidden":"true"},n("span",{class:"ds-choice-section__header-label"},s.header)),!A(s)&&s.subheader&&n("ds-text",{class:`section-subheader ds-choice-section__header ds-control-section-heading ds-control--${this.size}`,as:"span",variant:"text-caption",emphasis:true,color:"secondary","aria-hidden":"true"},n("span",{class:"ds-choice-section__header-label"},s.subheader)),A(s)?n("ds-swatch-picker",{value:s.value,groupLabel:s.groupLabel??s.header??"Swatch options",options:s.options??[],sections:s.sections??[],onDsChange:e=>{e.stopPropagation();this.handleSwatchSelect(e.detail)}}):s.items.map(((e,o)=>{const a=r++;const l=this.focusedIndex===a;const u=!i&&this.selectionMode==="single"&&!e.showSwitch;const h=s.items.some((e=>e.reorderable||e.reorderHandleInactive||!!e.icon));const m=!!e.isInactive&&!e.reorderable;const f=this.reorderFromFlat===a;const p=d?.sectionIndex===t&&c!==null&&o<=c.end&&this.reorderInsertBefore===o;const v=d?.sectionIndex===t&&c!==null&&this.reorderInsertBefore===c.end+1&&o===c.end;if(e.trailingActions?.length){return n("div",{key:e.value??`${t}-${e.label}`,class:{"menu-item-row":true,"menu-item-row--actions":true,"menu-item":true,"ds-choice-item":true,"ds-control-frame":true,[`ds-control--${this.size}`]:true,"menu-item--dragging":f},role:"group","aria-label":e.label,onMouseDown:()=>{this.focusRingVisible=false},onFocusin:()=>{this.focusedIndex=a}},(p||v)&&n("span",{class:{"menu-item__drop-rail":true,"menu-item__drop-rail--before":p,"menu-item__drop-rail--after":v},"data-menu-drop-rail":true,"aria-hidden":"true"}),e.reorderable||e.reorderHandleInactive?n("span",{class:{"menu-item__handle":true,"menu-item__handle--action-row":true,"menu-item__handle--inactive":Boolean(e.reorderHandleInactive),"ds-interaction-fill":Boolean(e.reorderable),"ds-choice-item__icon":true,"ds-control-icon-box":true},"data-menu-handle":true,"aria-hidden":"true",onPointerDown:e.reorderable?e=>this.onReorderPointerDown(e,t,o,a):undefined},n("ds-icon",{class:"ds-interaction-fill__content",name:"DragDots",size:this.size,color:"inherit"})):h&&e.icon?n("span",{class:"menu-item__icon ds-choice-item__icon ds-control-icon-box","aria-hidden":"true"},n("ds-icon",{name:e.icon,size:this.size,color:"inherit"})):h?n("span",{class:"menu-item__icon-spacer ds-choice-item__icon ds-control-icon-box","aria-hidden":"true"}):null,n("div",{class:"menu-item__content ds-choice-item__content"},n("ds-text",{class:"menu-item__label ds-choice-item__label ds-control-label-box",as:"span",variant:z[this.size],color:"secondary"},e.label),e.subtext&&n("ds-text",{class:"menu-item__subtext ds-choice-item__subtext ds-control-label-box",as:"span",variant:I[this.size],color:"secondary"},e.subtext)),n("span",{class:"menu-item-row__actions"},e.trailingActions.map(((i,s)=>n("span",{class:"menu-item-row__action",key:i.id},s>0&&n("span",{class:"menu-item-row__divider","aria-hidden":"true"}),n("ds-button-unfilled",{variant:"icon",icon:i.icon,size:"md",ariaLabel:i.label,hasBorder:false,pressScale:false,isInset:true,insetDepth:"single",isInactive:i.isInactive??false,focusTabIndex:0,onDsClick:s=>{s.stopPropagation();this.dsItemToggle.emit({item:e,action:i,pressed:false})}}))))))}return n("div",{key:e.value??`${t}-${e.label}`,class:{"menu-item-row":true,"menu-item-row--trailing-toggle":Boolean(e.trailingToggle)}},n("button",{type:"button",class:{"menu-item":true,"ds-choice-item":true,"ds-control-frame":true,[`ds-control--${this.size}`]:true,"ds-focus-ring-inset":true,"ds-focus-ring--visible":l&&this.focusRingVisible,"ds-interaction-fill":!m,"ds-interaction-fill--selected":!!e.isSelected&&!m,"menu-item--selected":!!e.isSelected,"menu-item--switch":!!e.showSwitch,"ds-control-inactive":m,"menu-item--destructive":!!e.isDestructive,"menu-item--focused":l,"menu-item--dragging":f},role:i?undefined:e.showSwitch?"menuitemcheckbox":u?"menuitemradio":"menuitem","aria-checked":!i&&e.showSwitch?String(!!e.switchValue):u?String(!!e.isSelected):undefined,"aria-pressed":i?String(e.showSwitch?!!e.switchValue:!!e.isSelected):undefined,"aria-current":!i&&!e.showSwitch&&!u&&e.isSelected?"true":undefined,"aria-description":e.reorderable?e.isInactive?"Visibility cannot be changed. Alt + Arrow Up or Alt + Arrow Down moves this row.":"Drag to reorder. Alt + Arrow Up or Alt + Arrow Down moves this row.":undefined,"aria-disabled":e.isInactive?"true":undefined,disabled:m,tabIndex:i||this.embedded&&a===0?0:l?0:-1,onMouseDown:()=>{this.focusRingVisible=false},onClick:()=>this.handleItemClick(e),onFocus:()=>{this.focusedIndex=a}},(p||v)&&n("span",{class:{"menu-item__drop-rail":true,"menu-item__drop-rail--before":p,"menu-item__drop-rail--after":v},"data-menu-drop-rail":true,"aria-hidden":"true"}),e.reorderable||e.reorderHandleInactive?n("span",{class:{"menu-item__handle":true,"menu-item__handle--inactive":Boolean(e.reorderHandleInactive),"ds-choice-item__icon":true,"ds-control-icon-box":true,"ds-interaction-fill__content":true},"data-menu-handle":true,"aria-hidden":"true",onPointerDown:e.reorderable?e=>this.onReorderPointerDown(e,t,o,a):undefined,onClick:e.reorderable?e=>{e.preventDefault();e.stopPropagation()}:undefined},n("ds-icon",{name:"DragDots",size:this.size,color:"inherit"})):h&&e.icon?n("span",{class:"menu-item__icon ds-choice-item__icon ds-control-icon-box ds-interaction-fill__content","aria-hidden":"true"},n("ds-icon",{name:e.icon,size:this.size,color:"inherit"})):h?n("span",{class:"menu-item__icon-spacer ds-choice-item__icon ds-control-icon-box","aria-hidden":"true"}):null,n("div",{class:"menu-item__content ds-choice-item__content ds-interaction-fill__content"},n("ds-text",{class:"menu-item__label ds-choice-item__label ds-control-label-box",as:"span",variant:z[this.size],color:e.isSelected?"primary":"secondary"},e.label),e.subtext&&n("ds-text",{class:"menu-item__subtext ds-choice-item__subtext ds-control-label-box",as:"span",variant:I[this.size],color:"secondary"},e.subtext)),e.tag&&n("ds-tag",{class:"ds-choice-item__tag ds-interaction-fill__content",label:e.tag.label,size:L[this.size],intent:e.tag.intent??"neutral",contrast:e.tag.contrast??"faint",rounded:e.tag.rounded??false,isInset:true}),e.dot&&n("span",{class:"menu-item__dot-box ds-interaction-fill__content","aria-hidden":"true"},n("ds-badge",{class:"menu-item__dot",variant:"dot",hasRing:false,label:""})),e.showSwitch&&n("ds-switch",{class:"menu-item__switch ds-interaction-fill__content",size:this.size,checked:!!e.switchValue,isInactive:!!e.isInactive,presentation:true})),e.trailingToggle&&n("span",{class:"menu-item-row__trailing-toggle"},n("span",{class:"menu-item-row__divider","aria-hidden":"true"}),n("ds-button-unfilled",{variant:"icon",icon:e.trailingToggle.icon,size:this.size,ariaLabel:e.trailingToggle.label,hasBorder:false,pressScale:false,pressed:e.trailingToggle.pressed,isInactive:e.trailingToggle.isInactive??false,onDsChange:i=>{i.stopPropagation();this.dsItemToggle.emit({item:e,pressed:i.detail})}})))}))))))),n("div",{class:"ds-visually-hidden",role:"status","aria-live":"polite"},this.reorderAnnouncement))}get el(){return this}static get watchers(){return{open:[{onOpenChange:0}],anchor:[{onAnchorChange:0}],anchorId:[{onAnchorChange:0}],boundary:[{onAnchorChange:0}],side:[{onPositionPropsChange:0}],align:[{onPositionPropsChange:0}],anchorAlignment:[{onPositionPropsChange:0}],sideOffset:[{onPositionPropsChange:0}],alignOffset:[{onPositionPropsChange:0}]}}static get style(){return R()}},[2,"ds-menu",{embedded:[4],open:[1028],items:[16],size:[1],selectionMode:[1,"selection-mode"],sections:[16],side:[1],align:[1],anchorAlignment:[1,"anchor-alignment"],sideOffset:[8,"side-offset"],alignOffset:[8,"align-offset"],menuWidth:[1,"menu-width"],minWidth:[1,"min-width"],anchor:[16],anchorId:[1,"anchor-id"],boundary:[16],initialFocusVisible:[4,"initial-focus-visible"],menuLabel:[1,"menu-label"],emptyMessage:[1,"empty-message"],shouldRender:[32],closing:[32],pos:[32],focusedIndex:[32],positionReady:[32],availableHeight:[32],focusRingVisible:[32],reorderFromFlat:[32],reorderInsertBefore:[32],reorderAnnouncement:[32]},[[0,"keydown","handleKeyDown"]],{open:[{onOpenChange:0}],anchor:[{onAnchorChange:0}],anchorId:[{onAnchorChange:0}],boundary:[{onAnchorChange:0}],side:[{onPositionPropsChange:0}],align:[{onPositionPropsChange:0}],anchorAlignment:[{onPositionPropsChange:0}],sideOffset:[{onPositionPropsChange:0}],alignOffset:[{onPositionPropsChange:0}]}]);function S(){if(typeof customElements==="undefined"){return}const e=["ds-menu","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-swatch-picker","ds-switch","ds-tag","ds-text","ds-tooltip"];e.forEach((e=>{switch(e){case"ds-menu":if(!customElements.get(o(e))){customElements.define(o(e),$)}break;case"ds-badge":if(!customElements.get(o(e))){h()}break;case"ds-button-unfilled":if(!customElements.get(o(e))){m()}break;case"ds-icon":if(!customElements.get(o(e))){f()}break;case"ds-loader":if(!customElements.get(o(e))){p()}break;case"ds-swatch-picker":if(!customElements.get(o(e))){v()}break;case"ds-switch":if(!customElements.get(o(e))){g()}break;case"ds-tag":if(!customElements.get(o(e))){b()}break;case"ds-text":if(!customElements.get(o(e))){x()}break;case"ds-tooltip":if(!customElements.get(o(e))){a()}break}}))}S();export{$ as M,S as d};
2
- //# sourceMappingURL=p-D8iNLSCa.js.map
@@ -1,2 +0,0 @@
1
- import{p as t,H as i,h as s,a as o,t as n}from"./index.js";import{d as e}from"./p-DMPn_dt7.js";import{b as r,T as h,a,r as l}from"./p-mSCnWLhL.js";import{r as d}from"./p-CVYjLzYI.js";import{C as c}from"./p-CuwopElg.js";const p=new Set(["⌘","⇧","⌥","⌃"]);const u={alt:"⌥",cmd:"⌘",command:"⌘",control:"⌃",ctrl:"⌃",option:"⌥",shift:"⇧"};function f(t){return u[t.toLowerCase()]??t}function m(t){const i=t.trim();if(!i)return[];if(i.includes("+")){return i.split("+").map((t=>t.trim())).filter(Boolean).map(f)}if(/\s/.test(i)){return i.split(/\s+/).filter(Boolean).map(f)}const s=Array.from(i);const o=[];while(s.length>1&&p.has(s[0])){o.push(s.shift())}o.push(s.join(""));return o}const g={top:"bottom",right:"left",bottom:"top",left:"right"};function v(t,i){const{anchorRect:s,popupWidth:o,popupHeight:n,align:e,sideOffsetPx:r,alignOffsetPx:h}=t;if(i==="top"||i==="bottom"){return{x:e==="start"?s.left+h:e==="end"?s.right-o+h:s.left+s.width/2-o/2+h,y:i==="top"?s.top-n-r:s.bottom+r}}return{x:i==="left"?s.left-o-r:s.right+r,y:e==="start"?s.top+h:e==="end"?s.bottom-n+h:s.top+s.height/2-n/2+h}}function y(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 b(t,i,s){const{popupWidth:o,popupHeight:n}=t;const e=y(t);if(i==="top"||i==="bottom"){return Math.max(e.top-s.y,0)+Math.max(s.y+n-e.bottom,0)}return Math.max(e.left-s.x,0)+Math.max(s.x+o-e.right,0)}function w(t,i,s,o){const n=Math.max(s,o-i);return Math.min(Math.max(t,s),n)}function x(t){const i=y(t);const s=v(t,t.side);const o=g[t.side];const n=v(t,o);const e=b(t,t.side,s);const r=b(t,o,n);const h=e>0&&r<e;const a=h?o:t.side;const l=h?n:s;const d=a==="top"?t.anchorRect.top-i.top-t.sideOffsetPx:a==="bottom"?i.bottom-t.anchorRect.bottom-t.sideOffsetPx:i.bottom-i.top;return{x:w(l.x,t.popupWidth,i.left,i.right),y:w(l.y,t.popupHeight,i.top,i.bottom),resolvedSide:a,availableHeight:Math.max(0,d)}}const C=8;class O{constructor(t){this.scrollResizeHandler=null;this.resizeObserver=null;this.resizeTargets=new Set;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 o=()=>i===this.generation&&s===this.retryGeneration;let n=this.options.retryBudget??C;const e=()=>{if(!o())return;this.retryRaf=null;const i=this.update();if(!o())return;if(i){this.isReady=true;this.options.onReady?.();if(o())t?.();return}if(n>0){n-=1;this.retryRaf=requestAnimationFrame(e)}};this.retryRaf=requestAnimationFrame(e)}update(){this.observeResizeTargets();const t=this.options.getAnchor();if(!t?.isConnected)return false;const i=this.options.getPopup();if(!i?.isConnected)return false;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 o=x(s);if(!this.last||this.last.x!==o.x||this.last.y!==o.y||this.last.resolvedSide!==o.resolvedSide||this.last.availableHeight!==o.availableHeight){this.last=o;this.options.apply(o)}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.resizeTargets.clear();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=new Set([this.options.getPopup(),this.options.getAnchor()].filter((t=>!!t?.isConnected)));for(const i of this.resizeTargets){if(!t.has(i))this.resizeObserver.unobserve(i)}for(const i of t){if(!this.resizeTargets.has(i))this.resizeObserver.observe(i)}this.resizeTargets=t}}const P="data-ds-overlay-boundary";function k(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 z(t){let i=t;while(i){if(i instanceof HTMLElement&&i.hasAttribute(P)){return i}i=k(i)}return null}function A(t,i){if(i==="viewport")return undefined;return(i??z(t))?.getBoundingClientRect()}const F=()=>`.sc-ds-tooltip-h,.sc-ds-tooltip:where(.ds-table),.sc-ds-tooltip:where(.tooltip-popup),.sc-ds-tooltip:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}.ds-control--lg.sc-ds-tooltip,.ds-control--lg.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip,.ds-control--sm.sc-ds-tooltip-h,.ds-control--sm.sc-ds-tooltip,.ds-control--xs.sc-ds-tooltip-h,.ds-control--xs.sc-ds-tooltip{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-tooltip-h,.ds-control--lg.sc-ds-tooltip{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-tooltip-h,.ds-control--sm.sc-ds-tooltip{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-tooltip-h,.ds-control--xs.sc-ds-tooltip{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-control--lg.sc-ds-tooltip,.ds-control--lg.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip,.ds-control--sm.sc-ds-tooltip-h,.ds-control--sm.sc-ds-tooltip,.ds-control--xs.sc-ds-tooltip-h,.ds-control--xs.sc-ds-tooltip{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-tooltip-h,.ds-control--lg.sc-ds-tooltip{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-tooltip-h,.ds-control--md.sc-ds-tooltip{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-tooltip-h,.ds-control--sm.sc-ds-tooltip{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-tooltip-h,.ds-control--xs.sc-ds-tooltip{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.key-hint-group.sc-ds-tooltip{display:inline-flex;align-items:center;gap:var(--dimension-stroke-width-012);width:max-content;flex-shrink:0}.key-hint.sc-ds-tooltip{box-sizing:border-box;min-width:var(--ds-control-icon, var(--dimension-iconography-md));width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md));padding-inline:0;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background-color:var(--color-background-secondary);border:var(--dimension-stroke-width-015) solid var(--color-border-tertiary);border-bottom-width:var(--dimension-stroke-width-025);border-radius:var(--dimension-radius-025);color:var(--color-foreground-secondary)}.key-hint--wide.sc-ds-tooltip{width:calc(var(--ds-control-icon, var(--dimension-iconography-md)) * 1.5)}.key-hint__label.sc-ds-tooltip{display:inline-flex;width:max-content;min-width:max-content;font-family:var(--typography-font-family-ui);font-size:var(--typography-fontsize-xs);line-height:1;font-weight:var(--typography-weight-regular);letter-spacing:0;text-transform:uppercase;color:inherit}.ds-control--xs.sc-ds-tooltip .key-hint__label.sc-ds-tooltip{font-size:calc(var(--typography-fontsize-xs) * 0.78)}@media (forced-colors: active){.sc-ds-tooltip:root,.sc-ds-tooltip-h,.ds-forced-colors-scope.sc-ds-tooltip{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.tooltip-popup.sc-ds-tooltip{box-sizing:border-box;background-color:var(--color-background-primary);border-radius:var(--ds-radius-tooltip-control, var(--dimension-radius-025));box-shadow:var(--effect-elevation-elevated-floating);white-space:nowrap;pointer-events:none;animation:tooltipFadeIn var(--effect-motion-short-2) forwards;will-change:transform;backface-visibility:hidden}.tooltip-popup--instant.sc-ds-tooltip{animation:none;opacity:1}.tooltip-popup--closing.sc-ds-tooltip{animation:tooltipFadeOut var(--effect-motion-short-3) forwards}.tooltip-inner.sc-ds-tooltip{box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));display:flex;align-items:center;gap:var(--ds-control-gap, var(--dimension-space-050));padding:0 var(--ds-control-padding-inline, var(--dimension-space-075))}.tooltip-inner.sc-ds-tooltip>ds-text.sc-ds-tooltip{flex-shrink:0;min-width:max-content;max-width:none;padding:0 var(--ds-control-label-inset, var(--dimension-space-025));color:var(--color-foreground-primary)}.tooltip-popup--wrap.sc-ds-tooltip{white-space:normal;max-inline-size:var(--dimension-panel-width-xs)}.tooltip-popup--wrap.sc-ds-tooltip .tooltip-inner.sc-ds-tooltip{height:auto;min-height:var(--ds-control-height, var(--dimension-size-400));padding-block:var(--dimension-space-050);align-items:flex-start}.tooltip-popup--wrap.sc-ds-tooltip .tooltip-inner.sc-ds-tooltip>ds-text.sc-ds-tooltip{flex:1 1 auto;min-width:0;max-width:100%;white-space:pre-line}@keyframes tooltipFadeIn{from{opacity:0}to{opacity:1}}@keyframes tooltipFadeOut{from{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.tooltip-popup.sc-ds-tooltip,.tooltip-popup--instant.sc-ds-tooltip{animation:none;opacity:1}.tooltip-popup--closing.sc-ds-tooltip{animation:none;opacity:0}}@media (forced-colors: active){.tooltip-popup.sc-ds-tooltip{box-shadow:none;outline:var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);outline-offset:calc(-1 * var(--dimension-stroke-width-012))}}`;const M={md:h.size400,sm:h.size300,xs:h.size200};let L=0;let T=0;let S=null;function R(t){const i=document.createElement("ds-text");i.as="span";i.variant=t.variant;i.emphasis=t.emphasis??false;i.color=t.color??"inherit";if(t.wrap)i.wrap=t.wrap;i.textContent=t.text;return i}function q(t,i=false){t.style.flexShrink=i?"1":"0";t.style.minWidth=i?"0":"max-content";t.style.maxWidth=i?"100%":"none";t.style.whiteSpace=i?"pre-line":"";t.style.padding="0 var(--ds-control-label-inset, var(--dimension-space-025))";t.style.color="var(--color-foreground-primary)"}const D=t(class t extends i{constructor(t){super();if(t!==false){this.__registerHost()}this.size="md";this.side="top";this.align="center";this.sideOffset=r.space050;this.alignOffset=0;this.delay=h.animationDelayMedium3;this.shortcutKeyPosition="end";this.describedBy=true;this.wrapLabel=false;this.tooltipId=`ds-tooltip-${++T}`;this.delayTimer=null;this.closeTimer=null;this.anchor=null;this.popupEl=null;this.anchorObserver=null;this.didLoad=false;this.position=new O({getAnchor:()=>this.anchor,getPopup:()=>this.popupEl,getOwnerDocument:()=>this.el.ownerDocument,measure:(t,i)=>({anchorRect:t.getBoundingClientRect(),popupWidth:i.offsetWidth||this.tooltipFallbackWidthPx,popupHeight:i.offsetHeight||this.tooltipFallbackHeightPx,side:this.side,align:this.align,sideOffsetPx:this.sideOffsetPx,alignOffsetPx:this.alignOffsetPx,viewportPadPx:this.viewportPadPx,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,collisionRect:A(t,this.boundary)}),apply:({x:t,y:i,resolvedSide:s})=>{if(!this.popupEl)return;this.popupEl.dataset.side=s;this.popupEl.style.transform=`translate(${Math.round(t)}px, ${Math.round(i)}px)`},liveUpdate:"frame",observeResize:true});this.skipEnterAnimation=false;this.isOpen=false;this.programmaticAnchor=false;this.lastInteractionWasKeyboard=false;this.pointerEnterHandler=t=>{if(t.pointerType==="touch")return;this.show()};this.pointerLeaveHandler=t=>{if(t.pointerType==="touch")return;this.hide()};this.pointerDownHandler=t=>{this.lastInteractionWasKeyboard=false;if(t.pointerType==="touch"&&(this.isOpen||this.popupEl))this.hideInstant()};this.keyDownHandler=()=>{this.lastInteractionWasKeyboard=true};this.focusHandler=()=>{if(this.lastInteractionWasKeyboard||this.anchor?.matches(":focus-visible"))this.show()};this.blurHandler=t=>{const i=t.relatedTarget;if(i&&this.anchor?.contains(i))return;this.hide()};this.escapeHandler=t=>{if(t.key!=="Escape"||!this.isOpen)return;t.preventDefault();this.hide()};this.handleSlotChange=()=>{if(this.programmaticAnchor)return;const t=this.el.querySelector("slot");const i=t?.assignedElements?.()[0]??this.el.firstElementChild;if(i===this.anchor||i?.tagName==="SLOT")return;if(this.isOpen||this.popupEl)this.hideInstant();this.unbindAnchor();this.bindAnchor()}}connectedCallback(){if(!this.didLoad)return;this.connectAnchor()}componentDidLoad(){this.didLoad=true;this.connectAnchor()}connectAnchor(){this.bindAnchor();if(this.anchorObserver)return;this.anchorObserver=new MutationObserver((()=>this.handleSlotChange()));this.anchorObserver.observe(this.el,{childList:true})}disconnectedCallback(){if(S===this)S=null;this.anchorObserver?.disconnect();this.anchorObserver=null;this.unbindAnchor();this.clearTimers();this.destroyPopup()}onContentOrPositionChange(){if(!this.label?.trim()){if(this.isOpen||this.popupEl)this.hideInstant();return}if(!this.popupEl||!this.isOpen)return;this.renderPopupContent();this.schedulePosition()}get viewportPadPx(){return d(h.space050,h.space050)}get sideOffsetPx(){return d(this.sideOffset,h.space050)}get alignOffsetPx(){return d(this.alignOffset,0)}get hoverDelayMs(){return a(this.delay,h.animationDelayMedium3)}get instantReopenMs(){return a(h.animationDurationMedium1,h.animationDurationMedium1)}get fadeOutMs(){return l(h.motionShort3,h.animationDurationShort3)}get tooltipFallbackWidthPx(){return d(h.tooltipFallbackWidth,h.tooltipFallbackWidth)}get tooltipFallbackHeightPx(){const t=M[this.size];return d(t,t)}async presentFrom(t,i){if(i!=null)this.label=i;if(!this.label?.trim()){this.hide();return}const s=this.anchor===t;if(!s){this.unbindAnchor();this.anchor=t;this.programmaticAnchor=true;if(this.popupEl&&this.describedBy)this.linkDescribedBy()}if(this.popupEl){this.renderPopupContent();this.schedulePosition();return}if(this.delayTimer&&s)return;this.show()}async dismiss(){this.hide()}bindAnchor(){if(this.programmaticAnchor)return;const t=this.el.querySelector("slot");const i=t?.assignedElements?.()??[];const s=i[0]??this.el.firstElementChild;if(!s||s.tagName==="SLOT"||s===this.anchor)return;this.anchor=s;s.addEventListener("pointerenter",this.pointerEnterHandler);s.addEventListener("pointerleave",this.pointerLeaveHandler);s.addEventListener("pointerdown",this.pointerDownHandler);s.addEventListener("keydown",this.keyDownHandler);s.addEventListener("focusin",this.focusHandler);s.addEventListener("focusout",this.blurHandler)}unbindAnchor(){if(!this.anchor)return;this.unlinkDescribedBy();if(!this.programmaticAnchor){this.anchor.removeEventListener("pointerenter",this.pointerEnterHandler);this.anchor.removeEventListener("pointerleave",this.pointerLeaveHandler);this.anchor.removeEventListener("pointerdown",this.pointerDownHandler);this.anchor.removeEventListener("keydown",this.keyDownHandler);this.anchor.removeEventListener("focusin",this.focusHandler);this.anchor.removeEventListener("focusout",this.blurHandler)}this.anchor=null;this.programmaticAnchor=false}linkDescribedBy(){if(!this.describedBy||!this.anchor||!this.popupEl)return;const t=new Set((this.anchor.getAttribute("aria-describedby")??"").split(/\s+/).filter(Boolean));t.add(this.tooltipId);this.anchor.setAttribute("aria-describedby",Array.from(t).join(" "))}unlinkDescribedBy(){if(!this.anchor)return;const t=(this.anchor.getAttribute("aria-describedby")??"").split(/\s+/).filter((t=>t&&t!==this.tooltipId));if(t.length)this.anchor.setAttribute("aria-describedby",t.join(" "));else this.anchor.removeAttribute("aria-describedby")}clearTimers(){if(this.delayTimer){clearTimeout(this.delayTimer);this.delayTimer=null}if(this.closeTimer){clearTimeout(this.closeTimer);this.closeTimer=null}}setupOpenListeners(){this.position.observe();document.addEventListener("keydown",this.escapeHandler)}teardownOpenListeners(){this.position.unobserve();document.removeEventListener("keydown",this.escapeHandler)}destroyPopup(){this.teardownOpenListeners();this.unlinkDescribedBy();if(!this.popupEl)return;this.popupEl.remove();this.popupEl=null}schedulePosition(){if(!this.popupEl)return;const t=()=>{const t=this.popupEl?.querySelector(":scope > .tooltip-inner > ds-text");if(t instanceof i)q(t,this.wrapLabel)};requestAnimationFrame((()=>{t();this.position.update();requestAnimationFrame((()=>{t();this.position.update()}))}));this.position.observeResizeTargets()}hideInstant(){this.clearTimers();L=Date.now();if(S===this)S=null;this.destroyPopup();this.isOpen=false;this.skipEnterAnimation=false}show(){if(!this.label?.trim())return;this.clearTimers();let t=Date.now()-L<this.instantReopenMs;if(S&&S!==this){S.hideInstant();t=true}S=this;this.skipEnterAnimation=t;if(t){this.mountPopup();return}this.delayTimer=setTimeout((()=>{this.delayTimer=null;if(!this.label?.trim())return;this.mountPopup()}),this.hoverDelayMs)}hide(){this.clearTimers();if(!this.popupEl&&!this.isOpen)return;L=Date.now();if(!this.popupEl){this.isOpen=false;return}this.popupEl.classList.remove("tooltip-popup--instant");this.popupEl.classList.add("tooltip-popup--closing");if(this.fadeOutMs===0){if(S===this)S=null;this.destroyPopup();this.isOpen=false;this.skipEnterAnimation=false;return}this.closeTimer=setTimeout((()=>{this.closeTimer=null;if(S===this)S=null;this.destroyPopup();this.isOpen=false;this.skipEnterAnimation=false}),this.fadeOutMs)}mountPopup(){if(!this.popupEl){const t=document.createElement("div");t.id=this.tooltipId;t.setAttribute("role","tooltip");t.className="tooltip-popup ds-forced-colors-scope sc-ds-tooltip";Object.assign(t.style,{position:"fixed",left:"0",top:"0",zIndex:"var(--dimension-z-index-tooltip)",pointerEvents:"none"});document.body.appendChild(t);this.popupEl=t}this.setupOpenListeners();this.linkDescribedBy();this.popupEl.classList.toggle("tooltip-popup--instant",this.skipEnterAnimation);this.popupEl.classList.toggle("tooltip-popup--wrap",this.wrapLabel);this.popupEl.classList.remove("tooltip-popup--closing");this.renderPopupContent();this.schedulePosition();this.isOpen=true}renderPopupContent(){if(!this.popupEl)return;this.popupEl.classList.toggle("tooltip-popup--wrap",this.wrapLabel);const t=c[this.size];const i=this.size==="md"?"ds-control--md":this.size==="sm"?"ds-control--sm":"ds-control--xs";const s="sc-ds-tooltip";const o=document.createElement("div");o.className=`tooltip-inner ${i} ${s}`;const n=t=>{if(!this.shortcutKey||this.shortcutKeyPosition!==t)return;const i=document.createElement("span");i.className=`key-hint-group ${s}`;i.setAttribute("aria-hidden","true");for(const t of m(this.shortcutKey)){const o=document.createElement("span");const n=Array.from(t).length>1?" key-hint--wide":"";o.className=`key-hint${n} ${s}`;const e=document.createElement("span");e.className=`key-hint__label ${s}`;e.textContent=t;o.appendChild(e);i.appendChild(o)}o.appendChild(i)};n("start");const e=R({variant:t,wrap:this.wrapLabel?"wrap":"nowrap",text:this.label});q(e,this.wrapLabel);o.appendChild(e);n("end");this.popupEl.replaceChildren(o)}render(){return s(o,{key:"a91ea35cad4d388682b562745b5079553b1cfd4f",style:{display:"contents"}},s("slot",{key:"2ecadc1cd67d800114e42cc7f66c2d2566a475d2",onSlotchange:this.handleSlotChange}))}get el(){return this}static get watchers(){return{label:[{onContentOrPositionChange:0}],size:[{onContentOrPositionChange:0}],side:[{onContentOrPositionChange:0}],align:[{onContentOrPositionChange:0}],sideOffset:[{onContentOrPositionChange:0}],alignOffset:[{onContentOrPositionChange:0}],boundary:[{onContentOrPositionChange:0}],shortcutKey:[{onContentOrPositionChange:0}],shortcutKeyPosition:[{onContentOrPositionChange:0}],wrapLabel:[{onContentOrPositionChange:0}]}}static get style(){return F()}},[262,"ds-tooltip",{label:[1],size:[1],side:[1],align:[1],sideOffset:[8,"side-offset"],alignOffset:[8,"align-offset"],boundary:[1],delay:[8],shortcutKey:[1,"shortcut-key"],shortcutKeyPosition:[1,"shortcut-key-position"],describedBy:[4,"described-by"],wrapLabel:[4,"wrap-label"],presentFrom:[64],dismiss:[64]},undefined,{label:[{onContentOrPositionChange:0}],size:[{onContentOrPositionChange:0}],side:[{onContentOrPositionChange:0}],align:[{onContentOrPositionChange:0}],sideOffset:[{onContentOrPositionChange:0}],alignOffset:[{onContentOrPositionChange:0}],boundary:[{onContentOrPositionChange:0}],shortcutKey:[{onContentOrPositionChange:0}],shortcutKeyPosition:[{onContentOrPositionChange:0}],wrapLabel:[{onContentOrPositionChange:0}]}]);function E(){if(typeof customElements==="undefined"){return}const t=["ds-tooltip","ds-text"];t.forEach((t=>{switch(t){case"ds-tooltip":if(!customElements.get(n(t))){customElements.define(n(t),D)}break;case"ds-text":if(!customElements.get(n(t))){e()}break}}))}E();export{O as A,D as T,P as a,x as c,E as d,A as r};
2
- //# sourceMappingURL=p-DTlNtCX1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["MODIFIER_GLYPHS","Set","MODIFIER_LABELS","alt","cmd","command","control","ctrl","option","shift","canonicalKeyLabel","label","toLowerCase","shortcutKeyLabels","shortcut","normalized","trim","includes","split","map","part","filter","Boolean","test","characters","Array","from","labels","length","has","push","join","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","resizeTargets","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","observeResizeTargets","getAnchor","isConnected","popup","getPopup","topLayer","showPopover","matches","measure","next","apply","scheduleLiveUpdate","mode","liveUpdate","cancelAnimationFrame","window","addEventListener","observeResize","ResizeObserver","observer","observeAnchorMotion","getOwnerDocument","removeEventListener","disconnect","clear","target","Element","contains","tick","targets","element","ANCHORED_OVERLAY_BOUNDARY_ATTRIBUTE","composedParentElement","assignedSlot","parentElement","root","getRootNode","ShadowRoot","host","findAnchoredOverlayBoundary","HTMLElement","hasAttribute","resolveAnchoredOverlayBoundaryRect","explicitBoundary","undefined","getBoundingClientRect","tooltipCss","FALLBACK_HEIGHT","md","TOKEN_DEFAULTS","size400","sm","size300","xs","size200","lastDismissedAt","tooltipIdCounter","activeTooltip","createDsText","opts","el","document","createElement","as","variant","emphasis","color","wrap","textContent","text","styleTooltipLabel","wrapLabel","style","flexShrink","minWidth","maxWidth","whiteSpace","padding","Tooltip","__stencil_proxyCustomElement","registerHost","sideOffset","TOKEN_CSS_LENGTHS","space050","alignOffset","delay","animationDelayMedium3","shortcutKeyPosition","describedBy","tooltipId","delayTimer","closeTimer","popupEl","anchorObserver","didLoad","tip","offsetWidth","tooltipFallbackWidthPx","offsetHeight","tooltipFallbackHeightPx","innerWidth","innerHeight","dataset","transform","round","skipEnterAnimation","isOpen","programmaticAnchor","lastInteractionWasKeyboard","pointerEnterHandler","pointerType","show","pointerLeaveHandler","hide","pointerDownHandler","hideInstant","keyDownHandler","focusHandler","blurHandler","e","relatedTarget","escapeHandler","key","preventDefault","handleSlotChange","slot","querySelector","assignedElements","firstElementChild","tagName","unbindAnchor","bindAnchor","connectedCallback","connectAnchor","componentDidLoad","MutationObserver","childList","disconnectedCallback","clearTimers","destroyPopup","onContentOrPositionChange","renderPopupContent","schedulePosition","resolveCssLengthPx","hoverDelayMs","resolveCssTimeMs","instantReopenMs","animationDurationMedium1","fadeOutMs","resolveMotionTimeMs","motionShort3","animationDurationShort3","tooltipFallbackWidth","token","presentFrom","sameAnchor","linkDescribedBy","dismiss","slotted","child","unlinkDescribedBy","ids","getAttribute","add","setAttribute","id","removeAttribute","clearTimeout","setupOpenListeners","teardownOpenListeners","remove","reapplyLabelStyles","Date","now","instant","mountPopup","setTimeout","classList","className","Object","assign","zIndex","pointerEvents","body","appendChild","toggle","textVariant","CONTROL_TEXT_VARIANT","density","sc","inner","appendShortcut","shortcutKey","group","hint","wide","replaceChildren","render","h","Host","display","onSlotchange"],"sources":["src/wc/utils/shortcut-key.ts","src/wc/utils/anchored-position.ts","src/wc/utils/anchored-position-controller.ts","src/wc/utils/anchored-overlay-boundary.ts","src/wc/components/Tooltip/Tooltip.css?tag=ds-tooltip&encapsulation=scoped","src/wc/components/Tooltip/Tooltip.tsx"],"sourcesContent":["const MODIFIER_GLYPHS = new Set(['⌘', '⇧', '⌥', '⌃']);\nconst MODIFIER_LABELS: Readonly<Record<string, string>> = {\n alt: '⌥',\n cmd: '⌘',\n command: '⌘',\n control: '⌃',\n ctrl: '⌃',\n option: '⌥',\n shift: '⇧',\n};\n\nfunction canonicalKeyLabel(label: string): string {\n return MODIFIER_LABELS[label.toLowerCase()] ?? label;\n}\n\n/** Split a shortcut chord into the labels rendered on individual keycaps. */\nexport function shortcutKeyLabels(shortcut: string): string[] {\n const normalized = shortcut.trim();\n if (!normalized) return [];\n\n if (normalized.includes('+')) {\n return normalized\n .split('+')\n .map(part => part.trim())\n .filter(Boolean)\n .map(canonicalKeyLabel);\n }\n\n if (/\\s/.test(normalized)) {\n return normalized.split(/\\s+/).filter(Boolean).map(canonicalKeyLabel);\n }\n\n const characters = Array.from(normalized);\n const labels: string[] = [];\n while (characters.length > 1 && MODIFIER_GLYPHS.has(characters[0])) {\n labels.push(characters.shift()!);\n }\n labels.push(characters.join(''));\n return labels;\n}\n","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 resizeTargets = new Set<HTMLElement>();\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 this.observeResizeTargets();\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\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.resizeTargets.clear();\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 * Keep only the current connected anchor and popup observed. Replaced or\n * detached elements must not remain retained until the overlay closes.\n */\n observeResizeTargets(): void {\n if (!this.resizeObserver) return;\n const targets = new Set(\n [this.options.getPopup(), this.options.getAnchor()].filter(\n (element): element is HTMLElement => !!element?.isConnected\n )\n );\n for (const target of this.resizeTargets) {\n if (!targets.has(target)) this.resizeObserver.unobserve(target);\n }\n for (const target of targets) {\n if (!this.resizeTargets.has(target)) this.resizeObserver.observe(target);\n }\n this.resizeTargets = targets;\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","@import '../../utils/radius.css';\n@import '../../utils/control-density.css';\n@import '../../utils/key-hint.css';\n@import '../../utils/forced-colors.css';\n\n.tooltip-popup {\n box-sizing: border-box;\n background-color: var(--color-background-primary);\n border-radius: var(--ds-radius-tooltip-control, var(--dimension-radius-025));\n box-shadow: var(--effect-elevation-elevated-floating);\n white-space: nowrap;\n pointer-events: none;\n animation: tooltipFadeIn var(--effect-motion-short-2) forwards;\n will-change: transform;\n backface-visibility: hidden;\n}\n\n/* Warm handoff between nearby triggers — no enter fade (avoids 20–100ms lag). */\n.tooltip-popup--instant {\n animation: none;\n opacity: 1;\n}\n\n.tooltip-popup--closing {\n animation: tooltipFadeOut var(--effect-motion-short-3) forwards;\n}\n\n/* Density: md / sm / xs via `.ds-control--*` on `.tooltip-inner`. */\n.tooltip-inner {\n box-sizing: border-box;\n height: var(--ds-control-height, var(--dimension-size-400));\n display: flex;\n align-items: center;\n gap: var(--ds-control-gap, var(--dimension-space-050));\n padding: 0 var(--ds-control-padding-inline, var(--dimension-space-075));\n}\n\n/*\n * Label layout lives on ds-text (metric-box + control label-inset).\n * NOTE: Stencil scopes this to `ds-text.sc-ds-tooltip`, but portaled\n * createElement ds-text loses that class when Text's <Host class> renders.\n * `renderPopupContent` therefore also sets these as inline styles.\n */\n.tooltip-inner > ds-text {\n flex-shrink: 0;\n min-width: max-content;\n max-width: none;\n padding: 0 var(--ds-control-label-inset, var(--dimension-space-025));\n color: var(--color-foreground-primary);\n}\n\n.tooltip-popup--wrap {\n white-space: normal;\n max-inline-size: var(--dimension-panel-width-xs);\n}\n\n.tooltip-popup--wrap .tooltip-inner {\n height: auto;\n min-height: var(--ds-control-height, var(--dimension-size-400));\n padding-block: var(--dimension-space-050);\n align-items: flex-start;\n}\n\n.tooltip-popup--wrap .tooltip-inner > ds-text {\n flex: 1 1 auto;\n min-width: 0;\n max-width: 100%;\n white-space: pre-line;\n}\n\n@keyframes tooltipFadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes tooltipFadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .tooltip-popup,\n .tooltip-popup--instant {\n animation: none;\n opacity: 1;\n }\n\n .tooltip-popup--closing {\n animation: none;\n opacity: 0;\n }\n}\n\n@media (forced-colors: active) {\n .tooltip-popup {\n box-shadow: none;\n outline: var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);\n outline-offset: calc(-1 * var(--dimension-stroke-width-012));\n }\n}\n","import { Component, Prop, Element, Method, Watch, h, Host } from '@stencil/core';\nimport {\n CONTROL_TEXT_VARIANT,\n resolveCssLengthPx,\n resolveCssTimeMs,\n resolveMotionTimeMs,\n TOKEN_CSS_LENGTHS,\n TOKEN_DEFAULTS,\n} from '../../utils';\nimport type { TextVariant } from '../Text/text-types';\nimport { shortcutKeyLabels } from '../../utils/shortcut-key';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\nimport {\n resolveAnchoredOverlayBoundaryRect,\n type AnchoredOverlayBoundary,\n} from '../../utils/anchored-overlay-boundary';\n// Side-effect: register `ds-text` — the portal builds it via createElement, not JSX.\nimport '../Text/Text';\n\nexport type TooltipSide = 'top' | 'right' | 'bottom' | 'left';\nexport type TooltipAlign = 'start' | 'center' | 'end';\nexport type TooltipSize = 'md' | 'sm' | 'xs';\n\nconst FALLBACK_HEIGHT: Record<TooltipSize, string> = {\n md: TOKEN_DEFAULTS.size400,\n sm: TOKEN_DEFAULTS.size300,\n xs: TOKEN_DEFAULTS.size200,\n};\n\nlet lastDismissedAt = 0;\nlet tooltipIdCounter = 0;\n/** Currently open tooltip — force-cleared on warm handoff so tips don't cross-fade. */\nlet activeTooltip: Tooltip | null = null;\n\ntype DsTextEl = HTMLElement & {\n as: string;\n variant: TextVariant;\n emphasis: boolean;\n color: string;\n wrap: string;\n};\n\nfunction createDsText(opts: {\n variant: TextVariant;\n emphasis?: boolean;\n color?: string;\n wrap?: 'wrap' | 'nowrap' | 'balance' | 'pretty';\n text: string;\n}): DsTextEl {\n const el = document.createElement('ds-text') as DsTextEl;\n el.as = 'span';\n el.variant = opts.variant;\n el.emphasis = opts.emphasis ?? false;\n el.color = opts.color ?? 'inherit';\n if (opts.wrap) el.wrap = opts.wrap;\n el.textContent = opts.text;\n return el;\n}\n\n/**\n * Control-density label styles for portaled ds-text.\n * Scoped CSS requires `sc-ds-tooltip` on the host, but Text's `<Host class>`\n * overwrites imperative className — so these must be inline to stick.\n */\nfunction styleTooltipLabel(el: HTMLElement, wrapLabel = false) {\n el.style.flexShrink = wrapLabel ? '1' : '0';\n el.style.minWidth = wrapLabel ? '0' : 'max-content';\n el.style.maxWidth = wrapLabel ? '100%' : 'none';\n el.style.whiteSpace = wrapLabel ? 'pre-line' : '';\n el.style.padding = '0 var(--ds-control-label-inset, var(--dimension-space-025))';\n el.style.color = 'var(--color-foreground-primary)';\n}\n\n/**\n * Imperative body portal for the popup.\n * Stencil must not own the portaled node — moving a VDOM child to `document.body`\n * causes recreate → re-portal → @State loops that freeze the page.\n */\n@Component({\n tag: 'ds-tooltip',\n styleUrl: 'Tooltip.css',\n scoped: true,\n})\nexport class Tooltip {\n @Element() el!: HTMLElement;\n\n /**\n * Tooltip text. Empty/whitespace skips show — useful when the wrapper must stay\n * mounted for layout/animation stability (e.g. PanelNav expand/collapse).\n */\n @Prop() label!: string;\n\n /** Control density (height, padding, type). */\n @Prop() size: TooltipSize = 'md';\n\n @Prop() side: TooltipSide = 'top';\n @Prop() align: TooltipAlign = 'center';\n /** Gap between anchor and tooltip — number (px) or TokoMo length. */\n @Prop() sideOffset: number | string = TOKEN_CSS_LENGTHS.space050;\n /** Cross-axis offset — number (px) or TokoMo length. */\n @Prop() alignOffset: number | string = 0;\n /** Explicit collision owner, `viewport`, or the nearest data-ds-overlay-boundary ancestor. */\n @Prop() boundary: AnchoredOverlayBoundary | undefined;\n /**\n * Hover show delay before the tooltip appears.\n * Default: `--effect-animation-delay-medium-3` (1000ms). Accepts a number (ms)\n * or a TokoMo time token / `var(--effect-animation-delay-*)`. Applies to the\n * initial hover/focus show only — after a recent dismiss, reopen is instant.\n * Prefer the default; override only for denser chrome or rare/destructive actions.\n */\n @Prop() delay: number | string = TOKEN_DEFAULTS.animationDelayMedium3;\n @Prop() shortcutKey: string | undefined;\n @Prop() shortcutKeyPosition: 'start' | 'end' = 'end';\n /**\n * Link the trigger with aria-describedby while the popup is open. Disable when\n * the label is already in the DOM, such as a truncated table cell.\n */\n @Prop() describedBy = true;\n /** Allow wrapping at a panel-xs max width and preserve explicit line breaks. */\n @Prop() wrapLabel = false;\n\n private tooltipId = `ds-tooltip-${++tooltipIdCounter}`;\n private delayTimer: ReturnType<typeof setTimeout> | null = null;\n private closeTimer: ReturnType<typeof setTimeout> | null = null;\n private anchor: HTMLElement | null = null;\n private popupEl: HTMLElement | null = null;\n private anchorObserver: MutationObserver | null = null;\n private didLoad = false;\n private readonly position = new AnchoredPositionController({\n getAnchor: () => this.anchor,\n getPopup: () => this.popupEl,\n getOwnerDocument: () => this.el.ownerDocument,\n measure: (anchor, tip) => ({\n anchorRect: anchor.getBoundingClientRect(),\n // Fall back to token metrics until `ds-text` upgrades and reports a width.\n popupWidth: tip.offsetWidth || this.tooltipFallbackWidthPx,\n popupHeight: tip.offsetHeight || this.tooltipFallbackHeightPx,\n side: this.side,\n align: this.align,\n sideOffsetPx: this.sideOffsetPx,\n alignOffsetPx: this.alignOffsetPx,\n viewportPadPx: this.viewportPadPx,\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n collisionRect: resolveAnchoredOverlayBoundaryRect(anchor, this.boundary),\n }),\n apply: ({ x, y, resolvedSide }) => {\n if (!this.popupEl) return;\n this.popupEl.dataset.side = resolvedSide;\n this.popupEl.style.transform = `translate(${Math.round(x)}px, ${Math.round(y)}px)`;\n },\n liveUpdate: 'frame',\n observeResize: true,\n });\n private skipEnterAnimation = false;\n private isOpen = false;\n private programmaticAnchor = false;\n private lastInteractionWasKeyboard = false;\n private pointerEnterHandler = (event: PointerEvent) => {\n if (event.pointerType === 'touch') return;\n this.show();\n };\n private pointerLeaveHandler = (event: PointerEvent) => {\n if (event.pointerType === 'touch') return;\n this.hide();\n };\n private pointerDownHandler = (event: PointerEvent) => {\n this.lastInteractionWasKeyboard = false;\n if (event.pointerType === 'touch' && (this.isOpen || this.popupEl)) this.hideInstant();\n };\n private keyDownHandler = () => {\n this.lastInteractionWasKeyboard = true;\n };\n /** focusin/focusout so nested focus targets (e.g. ds-button-* inner button) still open the tip. */\n private focusHandler = () => {\n if (this.lastInteractionWasKeyboard || this.anchor?.matches(':focus-visible')) this.show();\n };\n private blurHandler: (e: FocusEvent) => void = e => {\n const next = e.relatedTarget as Node | null;\n if (next && this.anchor?.contains(next)) return;\n this.hide();\n };\n private escapeHandler = (event: KeyboardEvent) => {\n if (event.key !== 'Escape' || !this.isOpen) return;\n event.preventDefault();\n this.hide();\n };\n\n connectedCallback() {\n if (!this.didLoad) return;\n this.connectAnchor();\n }\n\n componentDidLoad() {\n this.didLoad = true;\n this.connectAnchor();\n }\n\n private connectAnchor() {\n this.bindAnchor();\n if (this.anchorObserver) return;\n this.anchorObserver = new MutationObserver(() => this.handleSlotChange());\n this.anchorObserver.observe(this.el, { childList: true });\n }\n\n disconnectedCallback() {\n if (activeTooltip === this) activeTooltip = null;\n this.anchorObserver?.disconnect();\n this.anchorObserver = null;\n this.unbindAnchor();\n this.clearTimers();\n this.destroyPopup();\n }\n\n @Watch('label')\n @Watch('size')\n @Watch('side')\n @Watch('align')\n @Watch('sideOffset')\n @Watch('alignOffset')\n @Watch('boundary')\n @Watch('shortcutKey')\n @Watch('shortcutKeyPosition')\n @Watch('wrapLabel')\n onContentOrPositionChange() {\n if (!this.label?.trim()) {\n if (this.isOpen || this.popupEl) this.hideInstant();\n return;\n }\n if (!this.popupEl || !this.isOpen) return;\n this.renderPopupContent();\n this.schedulePosition();\n }\n\n private get viewportPadPx(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n }\n\n private get sideOffsetPx(): number {\n return resolveCssLengthPx(this.sideOffset, TOKEN_DEFAULTS.space050);\n }\n\n private get alignOffsetPx(): number {\n return resolveCssLengthPx(this.alignOffset, 0);\n }\n\n private get hoverDelayMs(): number {\n return resolveCssTimeMs(this.delay, TOKEN_DEFAULTS.animationDelayMedium3);\n }\n\n private get instantReopenMs(): number {\n return resolveCssTimeMs(\n TOKEN_DEFAULTS.animationDurationMedium1,\n TOKEN_DEFAULTS.animationDurationMedium1\n );\n }\n\n private get fadeOutMs(): number {\n return resolveMotionTimeMs(TOKEN_DEFAULTS.motionShort3, TOKEN_DEFAULTS.animationDurationShort3);\n }\n\n private get tooltipFallbackWidthPx(): number {\n return resolveCssLengthPx(\n TOKEN_DEFAULTS.tooltipFallbackWidth,\n TOKEN_DEFAULTS.tooltipFallbackWidth\n );\n }\n\n private get tooltipFallbackHeightPx(): number {\n const token = FALLBACK_HEIGHT[this.size];\n return resolveCssLengthPx(token, token);\n }\n\n /**\n * Present against an external anchor the host already measured.\n * Does not bind hover or focus on that anchor — the owner drives show/hide.\n */\n @Method()\n async presentFrom(anchor: HTMLElement, label?: string) {\n if (label != null) this.label = label;\n if (!this.label?.trim()) {\n this.hide();\n return;\n }\n const sameAnchor = this.anchor === anchor;\n if (!sameAnchor) {\n this.unbindAnchor();\n this.anchor = anchor;\n this.programmaticAnchor = true;\n if (this.popupEl && this.describedBy) this.linkDescribedBy();\n }\n if (this.popupEl) {\n this.renderPopupContent();\n this.schedulePosition();\n return;\n }\n if (this.delayTimer && sameAnchor) return;\n this.show();\n }\n\n /** Dismiss a popup opened through presentFrom or the slotted trigger. */\n @Method()\n async dismiss() {\n this.hide();\n }\n\n private bindAnchor() {\n if (this.programmaticAnchor) return;\n const slot = this.el.querySelector('slot') as HTMLSlotElement | null;\n const slotted = slot?.assignedElements?.() ?? [];\n const child = (slotted[0] ?? this.el.firstElementChild) as HTMLElement | null;\n if (!child || child.tagName === 'SLOT' || child === this.anchor) return;\n this.anchor = child;\n child.addEventListener('pointerenter', this.pointerEnterHandler);\n child.addEventListener('pointerleave', this.pointerLeaveHandler);\n child.addEventListener('pointerdown', this.pointerDownHandler);\n child.addEventListener('keydown', this.keyDownHandler);\n child.addEventListener('focusin', this.focusHandler);\n child.addEventListener('focusout', this.blurHandler);\n }\n\n private unbindAnchor() {\n if (!this.anchor) return;\n this.unlinkDescribedBy();\n if (!this.programmaticAnchor) {\n this.anchor.removeEventListener('pointerenter', this.pointerEnterHandler);\n this.anchor.removeEventListener('pointerleave', this.pointerLeaveHandler);\n this.anchor.removeEventListener('pointerdown', this.pointerDownHandler);\n this.anchor.removeEventListener('keydown', this.keyDownHandler);\n this.anchor.removeEventListener('focusin', this.focusHandler);\n this.anchor.removeEventListener('focusout', this.blurHandler);\n }\n this.anchor = null;\n this.programmaticAnchor = false;\n }\n\n private linkDescribedBy() {\n if (!this.describedBy || !this.anchor || !this.popupEl) return;\n const ids = new Set(\n (this.anchor.getAttribute('aria-describedby') ?? '').split(/\\s+/).filter(Boolean)\n );\n ids.add(this.tooltipId);\n this.anchor.setAttribute('aria-describedby', Array.from(ids).join(' '));\n }\n\n private unlinkDescribedBy() {\n if (!this.anchor) return;\n const ids = (this.anchor.getAttribute('aria-describedby') ?? '')\n .split(/\\s+/)\n .filter(id => id && id !== this.tooltipId);\n if (ids.length) this.anchor.setAttribute('aria-describedby', ids.join(' '));\n else this.anchor.removeAttribute('aria-describedby');\n }\n\n private handleSlotChange = () => {\n if (this.programmaticAnchor) return;\n const slot = this.el.querySelector('slot') as HTMLSlotElement | null;\n const next = (slot?.assignedElements?.()[0] ?? this.el.firstElementChild) as HTMLElement | null;\n if (next === this.anchor || next?.tagName === 'SLOT') return;\n if (this.isOpen || this.popupEl) this.hideInstant();\n this.unbindAnchor();\n this.bindAnchor();\n };\n\n private clearTimers() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n if (this.closeTimer) {\n clearTimeout(this.closeTimer);\n this.closeTimer = null;\n }\n }\n\n private setupOpenListeners() {\n // Binds scroll/resize + the resize observer; placement itself is scheduled\n // by schedulePosition() so the label restyle stays interleaved.\n this.position.observe();\n document.addEventListener('keydown', this.escapeHandler);\n }\n\n private teardownOpenListeners() {\n this.position.unobserve();\n document.removeEventListener('keydown', this.escapeHandler);\n }\n\n private destroyPopup() {\n this.teardownOpenListeners();\n this.unlinkDescribedBy();\n if (!this.popupEl) return;\n this.popupEl.remove();\n this.popupEl = null;\n }\n\n /**\n * Position after `ds-text` upgrades and lays out. Measuring synchronously in\n * `mountPopup` reads a collapsed/fallback width and places left/right tips wrong.\n */\n private schedulePosition() {\n if (!this.popupEl) return;\n\n const reapplyLabelStyles = () => {\n const label = this.popupEl?.querySelector(':scope > .tooltip-inner > ds-text');\n if (label instanceof HTMLElement) styleTooltipLabel(label, this.wrapLabel);\n };\n\n requestAnimationFrame(() => {\n reapplyLabelStyles();\n this.position.update();\n requestAnimationFrame(() => {\n reapplyLabelStyles();\n this.position.update();\n });\n });\n\n // The popup remounts on every show, so re-target the observer bound in start().\n this.position.observeResizeTargets();\n }\n\n /** Drop the open tip immediately (warm handoff to another tooltip). */\n private hideInstant() {\n this.clearTimers();\n lastDismissedAt = Date.now();\n if (activeTooltip === this) activeTooltip = null;\n this.destroyPopup();\n this.isOpen = false;\n this.skipEnterAnimation = false;\n }\n\n private show() {\n // Empty label = wrapper present for DOM stability (e.g. PanelNav expand/collapse)\n // but no tip should appear.\n if (!this.label?.trim()) return;\n this.clearTimers();\n let instant = Date.now() - lastDismissedAt < this.instantReopenMs;\n if (activeTooltip && activeTooltip !== this) {\n activeTooltip.hideInstant();\n instant = true;\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias -- module singleton tracks the active instance\n activeTooltip = this;\n this.skipEnterAnimation = instant;\n if (instant) {\n this.mountPopup();\n return;\n }\n this.delayTimer = setTimeout(() => {\n this.delayTimer = null;\n if (!this.label?.trim()) return;\n this.mountPopup();\n }, this.hoverDelayMs);\n }\n\n private hide() {\n this.clearTimers();\n if (!this.popupEl && !this.isOpen) return;\n lastDismissedAt = Date.now();\n if (!this.popupEl) {\n this.isOpen = false;\n return;\n }\n this.popupEl.classList.remove('tooltip-popup--instant');\n this.popupEl.classList.add('tooltip-popup--closing');\n if (this.fadeOutMs === 0) {\n if (activeTooltip === this) activeTooltip = null;\n this.destroyPopup();\n this.isOpen = false;\n this.skipEnterAnimation = false;\n return;\n }\n this.closeTimer = setTimeout(() => {\n this.closeTimer = null;\n if (activeTooltip === this) activeTooltip = null;\n this.destroyPopup();\n this.isOpen = false;\n this.skipEnterAnimation = false;\n }, this.fadeOutMs);\n }\n\n private mountPopup() {\n if (!this.popupEl) {\n const tip = document.createElement('div');\n tip.id = this.tooltipId;\n tip.setAttribute('role', 'tooltip');\n // `sc-ds-tooltip` is required for Stencil scoped CSS to match outside the host.\n tip.className = 'tooltip-popup ds-forced-colors-scope sc-ds-tooltip';\n Object.assign(tip.style, {\n position: 'fixed',\n left: '0',\n top: '0',\n zIndex: 'var(--dimension-z-index-tooltip)',\n pointerEvents: 'none',\n });\n document.body.appendChild(tip);\n this.popupEl = tip;\n }\n\n this.setupOpenListeners();\n this.linkDescribedBy();\n this.popupEl.classList.toggle('tooltip-popup--instant', this.skipEnterAnimation);\n this.popupEl.classList.toggle('tooltip-popup--wrap', this.wrapLabel);\n this.popupEl.classList.remove('tooltip-popup--closing');\n this.renderPopupContent();\n this.schedulePosition();\n this.isOpen = true;\n }\n\n private renderPopupContent() {\n if (!this.popupEl) return;\n this.popupEl.classList.toggle('tooltip-popup--wrap', this.wrapLabel);\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const density =\n this.size === 'md'\n ? 'ds-control--md'\n : this.size === 'sm'\n ? 'ds-control--sm'\n : 'ds-control--xs';\n // Every layout node needs `sc-ds-tooltip` so scoped selectors (`.foo.sc-ds-tooltip`) match.\n const sc = 'sc-ds-tooltip';\n\n const inner = document.createElement('div');\n inner.className = `tooltip-inner ${density} ${sc}`;\n\n const appendShortcut = (position: 'start' | 'end') => {\n if (!this.shortcutKey || this.shortcutKeyPosition !== position) return;\n const group = document.createElement('span');\n group.className = `key-hint-group ${sc}`;\n group.setAttribute('aria-hidden', 'true');\n\n for (const label of shortcutKeyLabels(this.shortcutKey)) {\n const hint = document.createElement('span');\n const wide = Array.from(label).length > 1 ? ' key-hint--wide' : '';\n hint.className = `key-hint${wide} ${sc}`;\n const text = document.createElement('span');\n text.className = `key-hint__label ${sc}`;\n text.textContent = label;\n hint.appendChild(text);\n group.appendChild(hint);\n }\n inner.appendChild(group);\n };\n\n appendShortcut('start');\n\n // ds-text is the layout box (metric-box + 2px control label-inset).\n // Inline styles required — see styleTooltipLabel.\n const label = createDsText({\n variant: textVariant,\n wrap: this.wrapLabel ? 'wrap' : 'nowrap',\n text: this.label,\n });\n styleTooltipLabel(label, this.wrapLabel);\n inner.appendChild(label);\n\n appendShortcut('end');\n\n this.popupEl.replaceChildren(inner);\n }\n\n render() {\n return (\n <Host style={{ display: 'contents' }}>\n <slot onSlotchange={this.handleSlotChange} />\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{p as t,H as e,h as s,a,t as c}from"./index.js";import{d as i}from"./p-C942uiH1.js";import{d as n}from"./p-DMPn_dt7.js";const d=()=>`.sc-ds-empty-state-h{display:block;width:100%;height:100%}.sc-ds-empty-state-h,.empty-state.sc-ds-empty-state,.empty-state__text.sc-ds-empty-state{box-sizing:border-box}.empty-state.sc-ds-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%;text-align:center}.empty-state__icon.sc-ds-empty-state{margin-block-end:var(--dimension-space-100);flex:0 0 auto}.empty-state__text.sc-ds-empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--dimension-space-050);width:100%}.empty-state__actions.sc-ds-empty-state{margin-block-start:var(--dimension-space-200);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--dimension-space-100)}.empty-state__actions.sc-ds-empty-state:not(:has([slot='actions'])){display:none}.empty-state__title.sc-ds-empty-state,.empty-state__body.sc-ds-empty-state{text-wrap:balance}`;const o=t(class t extends e{constructor(t){super();if(t!==false){this.__registerHost()}this.body=""}render(){const t=Boolean(this.heading?.trim());const e=t&&Boolean(this.icon);return s(a,{key:"f5390365e603c037e8fa588581930ce90392de98"},s("div",{key:"b390f6a44812998576b052f1d6392c1c646a3241",class:"empty-state"},e&&s("ds-icon",{key:"929f2a2e18432bd51d5fbc0992ff88f2465fb091",class:"empty-state__icon",name:this.icon,size:"xl",color:"primary"}),s("div",{key:"ad348a4f5f30706f79d848c2ee3011eb25d8dbf6",class:"empty-state__text"},t&&s("ds-text",{key:"ebcc5a690db829faa62a3c4a88a3b22da2ac1149",class:"empty-state__title",as:"div",variant:"text-title-small",color:"primary",align:"center"},this.heading),this.body&&s("ds-text",{key:"5f2b4f35a80f1db3c252028871e3590ff6bca4ea",class:"empty-state__body",as:"p",variant:"text-body-medium",color:"secondary",align:"center"},this.body)),s("div",{key:"75132a9b0e4191b66ba37c5573f358f83c2c7731",class:"empty-state__actions"},s("slot",{key:"53f65bf88676768572ae6e7aeb70d8023d85cbf9",name:"actions"}))))}static get style(){return d()}},[262,"ds-empty-state",{icon:[1],heading:[1],body:[1]}]);function m(){if(typeof customElements==="undefined"){return}const t=["ds-empty-state","ds-icon","ds-text"];t.forEach((t=>{switch(t){case"ds-empty-state":if(!customElements.get(c(t))){customElements.define(c(t),o)}break;case"ds-icon":if(!customElements.get(c(t))){i()}break;case"ds-text":if(!customElements.get(c(t))){n()}break}}))}m();export{o as E,m as d};
2
- //# sourceMappingURL=p-Dc_zSOKq.js.map