@ds-mo/ui 15.4.0 → 15.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (477) hide show
  1. package/NOTICE +7 -1
  2. package/dist/.package-ready.json +1 -1
  3. package/dist/agent-patterns.json +1 -1
  4. package/dist/agent.json +64 -8
  5. package/dist/angular/boolean-value-accessor.js +3 -3
  6. package/dist/angular/ds-agent-activity.js +3 -3
  7. package/dist/angular/ds-agent-questionnaire.js +3 -3
  8. package/dist/angular/ds-agent-response.js +3 -3
  9. package/dist/angular/ds-agent-source-list.js +3 -3
  10. package/dist/angular/ds-agent-tool-call.js +3 -3
  11. package/dist/angular/ds-attachment-list.js +3 -3
  12. package/dist/angular/ds-avatar.js +3 -3
  13. package/dist/angular/ds-badge.js +3 -3
  14. package/dist/angular/ds-banner.js +3 -3
  15. package/dist/angular/ds-bar-action.js +3 -3
  16. package/dist/angular/ds-bar-nav.js +3 -3
  17. package/dist/angular/ds-bar-page-title.js +3 -3
  18. package/dist/angular/ds-bar-title.js +3 -3
  19. package/dist/angular/ds-bar-workflow.js +3 -3
  20. package/dist/angular/ds-breadcrumb.js +3 -3
  21. package/dist/angular/ds-button-filled.js +3 -3
  22. package/dist/angular/ds-button-inverted.js +3 -3
  23. package/dist/angular/ds-button-unfilled.js +3 -3
  24. package/dist/angular/ds-calendar.js +3 -3
  25. package/dist/angular/ds-card-action-center.js +3 -3
  26. package/dist/angular/ds-card-chart.js +3 -3
  27. package/dist/angular/ds-card-navigation.js +3 -3
  28. package/dist/angular/ds-card-overview.js +3 -3
  29. package/dist/angular/ds-card-setting.js +3 -3
  30. package/dist/angular/ds-card-settings-scope.js +3 -3
  31. package/dist/angular/ds-chart-legend.js +3 -3
  32. package/dist/angular/ds-chart.js +3 -3
  33. package/dist/angular/ds-checkbox-group.js +3 -3
  34. package/dist/angular/ds-checkbox.d.ts +1 -1
  35. package/dist/angular/ds-checkbox.js +5 -5
  36. package/dist/angular/ds-chip.js +3 -3
  37. package/dist/angular/ds-code-block.js +3 -3
  38. package/dist/angular/ds-conversation-list-item.js +3 -3
  39. package/dist/angular/ds-conversation-list-section.js +3 -3
  40. package/dist/angular/ds-conversation-list.js +3 -3
  41. package/dist/angular/ds-data-customize.js +3 -3
  42. package/dist/angular/ds-data-filter.js +3 -3
  43. package/dist/angular/ds-data-group.js +3 -3
  44. package/dist/angular/ds-data-preferences.js +3 -3
  45. package/dist/angular/ds-data-saved-views.js +3 -3
  46. package/dist/angular/ds-data-search.js +3 -3
  47. package/dist/angular/ds-data-sort.js +3 -3
  48. package/dist/angular/ds-data-toolbar.js +3 -3
  49. package/dist/angular/ds-divider.js +3 -3
  50. package/dist/angular/ds-empty-state.js +3 -3
  51. package/dist/angular/ds-field.js +3 -3
  52. package/dist/angular/ds-filter-menu.js +3 -3
  53. package/dist/angular/ds-icon.js +3 -3
  54. package/dist/angular/ds-inline-banner-settings.js +3 -3
  55. package/dist/angular/ds-input-date.js +3 -3
  56. package/dist/angular/ds-input-time.js +3 -3
  57. package/dist/angular/ds-input.js +3 -3
  58. package/dist/angular/ds-loader.js +3 -3
  59. package/dist/angular/ds-map-cluster-marker.js +3 -3
  60. package/dist/angular/ds-map-entity-marker.js +3 -3
  61. package/dist/angular/ds-markdown.js +3 -3
  62. package/dist/angular/ds-menu.js +3 -3
  63. package/dist/angular/ds-message-actions.js +3 -3
  64. package/dist/angular/ds-message-bubble.js +3 -3
  65. package/dist/angular/ds-message-composer.js +3 -3
  66. package/dist/angular/ds-message-scroller.js +3 -3
  67. package/dist/angular/ds-message.js +3 -3
  68. package/dist/angular/ds-mobile-bar-nav.js +3 -3
  69. package/dist/angular/ds-mobile-header.js +3 -3
  70. package/dist/angular/ds-mobile-section-switcher.js +3 -3
  71. package/dist/angular/ds-mobile-sheet-nav.js +3 -3
  72. package/dist/angular/ds-modal.js +3 -3
  73. package/dist/angular/ds-pagination.js +3 -3
  74. package/dist/angular/ds-panel-nav.js +3 -3
  75. package/dist/angular/ds-panel-sub-nav.js +3 -3
  76. package/dist/angular/ds-panel-tool-header.js +3 -3
  77. package/dist/angular/ds-panel-tool-search.js +3 -3
  78. package/dist/angular/ds-panel-tools.js +3 -3
  79. package/dist/angular/ds-paper-texture.js +3 -3
  80. package/dist/angular/ds-radio-tile.js +3 -3
  81. package/dist/angular/ds-radio.js +3 -3
  82. package/dist/angular/ds-score.js +3 -3
  83. package/dist/angular/ds-scroll-overlay.js +3 -3
  84. package/dist/angular/ds-select.d.ts +1 -1
  85. package/dist/angular/ds-select.js +5 -5
  86. package/dist/angular/ds-setting-row-checkbox.js +3 -3
  87. package/dist/angular/ds-setting-row-radio.js +3 -3
  88. package/dist/angular/ds-setting-row-toggle.js +3 -3
  89. package/dist/angular/ds-shell-app.js +3 -3
  90. package/dist/angular/ds-shell-page.js +3 -3
  91. package/dist/angular/ds-shell-tools.js +3 -3
  92. package/dist/angular/ds-skeleton.js +3 -3
  93. package/dist/angular/ds-slider.js +3 -3
  94. package/dist/angular/ds-swatch-picker.js +3 -3
  95. package/dist/angular/ds-switch.js +3 -3
  96. package/dist/angular/ds-tab-group.js +3 -3
  97. package/dist/angular/ds-table.d.ts +7 -1
  98. package/dist/angular/ds-table.js +13 -7
  99. package/dist/angular/ds-tag.js +3 -3
  100. package/dist/angular/ds-text.js +3 -3
  101. package/dist/angular/ds-textarea.js +3 -3
  102. package/dist/angular/ds-time-picker.js +3 -3
  103. package/dist/angular/ds-toast.js +3 -3
  104. package/dist/angular/ds-tooltip-chart.js +3 -3
  105. package/dist/angular/ds-tooltip.js +3 -3
  106. package/dist/angular/ds-typing-indicator.js +3 -3
  107. package/dist/angular/number-value-accessor.js +3 -3
  108. package/dist/angular/radio-value-accessor.js +3 -3
  109. package/dist/angular/select-value-accessor.js +3 -3
  110. package/dist/angular/text-value-accessor.js +3 -3
  111. package/dist/angular/value-accessor.js +3 -3
  112. package/dist/components/THIRD-PARTY-NOTICES +1791 -0
  113. package/dist/components/bundled-dependencies.json +478 -0
  114. package/dist/components/ds-agent-activity.js +1 -1
  115. package/dist/components/ds-agent-questionnaire.js +1 -1
  116. package/dist/components/ds-agent-response.js +1 -1
  117. package/dist/components/ds-agent-source-list.js +1 -1
  118. package/dist/components/ds-agent-tool-call.js +1 -1
  119. package/dist/components/ds-attachment-list.js +1 -1
  120. package/dist/components/ds-avatar.js +1 -1
  121. package/dist/components/ds-banner.js +1 -1
  122. package/dist/components/ds-banner.js.map +1 -1
  123. package/dist/components/ds-bar-nav.js +1 -1
  124. package/dist/components/ds-bar-page-title.js +1 -1
  125. package/dist/components/ds-bar-title.js +1 -1
  126. package/dist/components/ds-bar-workflow.js +1 -1
  127. package/dist/components/ds-breadcrumb.js +1 -1
  128. package/dist/components/ds-button-filled.js +1 -1
  129. package/dist/components/ds-button-inverted.js +1 -1
  130. package/dist/components/ds-button-unfilled.js +1 -1
  131. package/dist/components/ds-calendar.js +1 -1
  132. package/dist/components/ds-card-action-center.js +1 -1
  133. package/dist/components/ds-card-chart.js +1 -1
  134. package/dist/components/ds-card-navigation.js +1 -1
  135. package/dist/components/ds-card-overview.js +1 -1
  136. package/dist/components/ds-card-overview.js.map +1 -1
  137. package/dist/components/ds-card-setting.js +1 -1
  138. package/dist/components/ds-chart-legend.js +1 -1
  139. package/dist/components/ds-chart-legend.js.map +1 -1
  140. package/dist/components/ds-chart.js +1 -1
  141. package/dist/components/ds-chart.js.map +1 -1
  142. package/dist/components/ds-checkbox.js +1 -1
  143. package/dist/components/ds-chip.js +1 -1
  144. package/dist/components/ds-code-block.js +1 -1
  145. package/dist/components/ds-conversation-list.js +1 -1
  146. package/dist/components/ds-conversation-list.js.map +1 -1
  147. package/dist/components/ds-data-customize.js +1 -1
  148. package/dist/components/ds-data-filter.js +1 -1
  149. package/dist/components/ds-data-group.js +1 -1
  150. package/dist/components/ds-data-preferences.js +1 -1
  151. package/dist/components/ds-data-preferences.js.map +1 -1
  152. package/dist/components/ds-data-saved-views.js +1 -1
  153. package/dist/components/ds-data-search.js +1 -1
  154. package/dist/components/ds-data-sort.js +1 -1
  155. package/dist/components/ds-data-toolbar.js +1 -1
  156. package/dist/components/ds-divider.js +1 -1
  157. package/dist/components/ds-empty-state.js +1 -1
  158. package/dist/components/ds-filter-menu.js +1 -1
  159. package/dist/components/ds-icon.js +1 -1
  160. package/dist/components/ds-input-date.js +1 -1
  161. package/dist/components/ds-input-date.js.map +1 -1
  162. package/dist/components/ds-input-time.js +1 -1
  163. package/dist/components/ds-input-time.js.map +1 -1
  164. package/dist/components/ds-input.js +1 -1
  165. package/dist/components/ds-map-entity-marker.js +1 -1
  166. package/dist/components/ds-markdown.js +1 -1
  167. package/dist/components/ds-menu.js +1 -1
  168. package/dist/components/ds-message-actions.js +1 -1
  169. package/dist/components/ds-message-bubble.js +1 -1
  170. package/dist/components/ds-message-composer.js +1 -1
  171. package/dist/components/ds-message-scroller.js +1 -1
  172. package/dist/components/ds-message.js +1 -1
  173. package/dist/components/ds-mobile-bar-nav.js +1 -1
  174. package/dist/components/ds-mobile-header.js +1 -1
  175. package/dist/components/ds-mobile-section-switcher.js +1 -1
  176. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  177. package/dist/components/ds-modal.js +1 -1
  178. package/dist/components/ds-pagination.js +1 -1
  179. package/dist/components/ds-panel-nav.js +1 -1
  180. package/dist/components/ds-panel-sub-nav.js +1 -1
  181. package/dist/components/ds-panel-tool-header.js +1 -1
  182. package/dist/components/ds-panel-tool-search.js +1 -1
  183. package/dist/components/ds-panel-tools.js +1 -1
  184. package/dist/components/ds-radio-tile.js +1 -1
  185. package/dist/components/ds-radio-tile.js.map +1 -1
  186. package/dist/components/ds-radio.js +1 -1
  187. package/dist/components/ds-scroll-overlay.js +1 -1
  188. package/dist/components/ds-scroll-overlay.js.map +1 -1
  189. package/dist/components/ds-select.js +1 -1
  190. package/dist/components/ds-setting-row-toggle.js +1 -1
  191. package/dist/components/ds-shell-app.js +1 -1
  192. package/dist/components/ds-shell-app.js.map +1 -1
  193. package/dist/components/ds-shell-page.js +1 -1
  194. package/dist/components/ds-shell-tools.js +1 -1
  195. package/dist/components/ds-slider.js +1 -1
  196. package/dist/components/ds-slider.js.map +1 -1
  197. package/dist/components/ds-switch.js +1 -1
  198. package/dist/components/ds-tab-group.js +1 -1
  199. package/dist/components/ds-table.js +1 -1
  200. package/dist/components/ds-table.js.map +1 -1
  201. package/dist/components/ds-tag.js +1 -1
  202. package/dist/components/ds-textarea.js +1 -1
  203. package/dist/components/ds-textarea.js.map +1 -1
  204. package/dist/components/ds-time-picker.js +1 -1
  205. package/dist/components/ds-toast.js +1 -1
  206. package/dist/components/ds-tooltip-chart.js +1 -1
  207. package/dist/components/ds-tooltip.js +1 -1
  208. package/dist/components/p--STJbKuN.js +2 -0
  209. package/dist/components/p--STJbKuN.js.map +1 -0
  210. package/dist/components/{p-Co1rUdOR.js → p--pJyciTI.js} +2 -2
  211. package/dist/components/p--pJyciTI.js.map +1 -0
  212. package/dist/components/p-02k7d7BH.js +2 -0
  213. package/dist/components/p-02k7d7BH.js.map +1 -0
  214. package/dist/components/{p-CZNZTcYS.js → p-5-gQbIIz.js} +2 -2
  215. package/dist/components/{p-DRdoGSGX.js → p-7MwoWtTJ.js} +2 -2
  216. package/dist/components/p-B0uO3-Dp.js +2 -0
  217. package/dist/components/p-B0uO3-Dp.js.map +1 -0
  218. package/dist/components/p-B6TX55c5.js +2 -0
  219. package/dist/components/p-B6TX55c5.js.map +1 -0
  220. package/dist/components/p-B95UP66y.js +2 -0
  221. package/dist/components/p-B95UP66y.js.map +1 -0
  222. package/dist/components/p-BGSG6xIS.js +2 -0
  223. package/dist/components/p-BGSG6xIS.js.map +1 -0
  224. package/dist/components/p-BNarCFJZ.js +2 -0
  225. package/dist/components/p-BNarCFJZ.js.map +1 -0
  226. package/dist/components/{p-DJDbskZf.js → p-BO5URdZF.js} +2 -2
  227. package/dist/components/{p-DmSnHVW6.js → p-BVxK8ce0.js} +2 -2
  228. package/dist/components/{p-B0EpvBDs.js → p-BYeG0b5N.js} +2 -2
  229. package/dist/components/p-BcpIK9S6.js +2 -0
  230. package/dist/components/p-BcpIK9S6.js.map +1 -0
  231. package/dist/components/p-Bf-BphXP.js +2 -0
  232. package/dist/components/p-Bf-BphXP.js.map +1 -0
  233. package/dist/components/{p-Bk3poU91.js → p-BmIllmq2.js} +2 -2
  234. package/dist/components/p-BmIllmq2.js.map +1 -0
  235. package/dist/components/p-Bq_ypMSy.js +2 -0
  236. package/dist/components/p-Bq_ypMSy.js.map +1 -0
  237. package/dist/components/p-ByLH5RAD.js +2 -0
  238. package/dist/components/p-ByLH5RAD.js.map +1 -0
  239. package/dist/components/{p-DzvTC27M.js → p-C1ZfBbJ_.js} +2 -2
  240. package/dist/components/p-C1ZfBbJ_.js.map +1 -0
  241. package/dist/components/p-C1oczmAc.js +2 -0
  242. package/dist/components/p-C1oczmAc.js.map +1 -0
  243. package/dist/components/p-C5BBIDVm.js +2 -0
  244. package/dist/components/p-C5BBIDVm.js.map +1 -0
  245. package/dist/components/{p-CJ1NnOEW.js → p-CA3iQ1ME.js} +2 -2
  246. package/dist/components/p-CE6MaXBg.js +2 -0
  247. package/dist/components/p-CE6MaXBg.js.map +1 -0
  248. package/dist/components/p-CXGjCWSh.js +2 -0
  249. package/dist/components/p-CXGjCWSh.js.map +1 -0
  250. package/dist/components/{p-DYQa1DVF.js → p-C_9VGgPf.js} +2 -2
  251. package/dist/components/p-CbrDF2gA.js +2 -0
  252. package/dist/components/p-CbrDF2gA.js.map +1 -0
  253. package/dist/components/{p-7TVdPhGR.js → p-CgQB8Ct5.js} +2 -2
  254. package/dist/components/{p-D6FRqNhN.js → p-D-J7GgjY.js} +2 -2
  255. package/dist/components/{p-DSZPO06T.js → p-D9_iDlkT.js} +2 -2
  256. package/dist/components/{p-BwdnVqAY.js → p-DEYCF-oJ.js} +2 -2
  257. package/dist/components/p-DGVZhrMd.js +2 -0
  258. package/dist/components/p-DGVZhrMd.js.map +1 -0
  259. package/dist/components/{p-C8V4lkVy.js → p-DKGW3gRa.js} +2 -2
  260. package/dist/components/p-DPFg5d4_.js +2 -0
  261. package/dist/components/p-DPFg5d4_.js.map +1 -0
  262. package/dist/components/{p-C4huuwed.js → p-DR_8IPn9.js} +2 -2
  263. package/dist/components/p-DXL5D30P.js +2 -0
  264. package/dist/components/p-DXL5D30P.js.map +1 -0
  265. package/dist/components/{p-B0BQCVkq.js → p-D_iZPukF.js} +2 -2
  266. package/dist/components/{p-JBki_jyY.js → p-DfMTDFcE.js} +2 -2
  267. package/dist/components/{p-MOJmB6vX.js → p-Dg6hnCc2.js} +2 -2
  268. package/dist/components/{p-DXk1eml1.js → p-DjbT9kKm.js} +2 -2
  269. package/dist/components/p-Dka0lUI_.js +2 -0
  270. package/dist/components/p-Dka0lUI_.js.map +1 -0
  271. package/dist/components/p-DlsjHRU3.js +2 -0
  272. package/dist/components/p-DlsjHRU3.js.map +1 -0
  273. package/dist/components/{p-_IqSPt5V.js → p-Dr5rkAhe.js} +2 -2
  274. package/dist/components/p-DuCCuJKI.js +2 -0
  275. package/dist/components/p-DuCCuJKI.js.map +1 -0
  276. package/dist/components/{p-DIQiHX0q.js → p-DvGrsLgt.js} +2 -2
  277. package/dist/components/{p-Doa2blZT.js → p-PtxCwf5S.js} +2 -2
  278. package/dist/components/p-PzYJqN8B.js +2 -0
  279. package/dist/components/p-PzYJqN8B.js.map +1 -0
  280. package/dist/components/p-S1Ct3FJV.js +2 -0
  281. package/dist/components/p-S1Ct3FJV.js.map +1 -0
  282. package/dist/components/p-YC7UM4jH.js +2 -0
  283. package/dist/components/p-YC7UM4jH.js.map +1 -0
  284. package/dist/components/{p-B9TM6FqC.js → p-d76Ry5nh.js} +2 -2
  285. package/dist/components/p-ioGH5SoA.js +2 -0
  286. package/dist/components/p-ioGH5SoA.js.map +1 -0
  287. package/dist/components/p-jp7hwRtC.js +2 -0
  288. package/dist/components/p-jp7hwRtC.js.map +1 -0
  289. package/dist/components/{p-BFHpU-uU.js → p-kwS-vkau.js} +2 -2
  290. package/dist/components/{p-DjkUFlDW.js → p-pPtjNRqC.js} +3 -2
  291. package/dist/components/p-pPtjNRqC.js.map +1 -0
  292. package/dist/components/{p-B39iJO8F.js → p-rmPIcWED.js} +2 -2
  293. package/dist/components/p-t2Ebn8si.js +2 -0
  294. package/dist/components/p-t2Ebn8si.js.map +1 -0
  295. package/dist/components/p-wRhYxngW.js +2 -0
  296. package/dist/components/p-wRhYxngW.js.map +1 -0
  297. package/dist/docs/components.json +477 -82
  298. package/dist/lib/components/Icon/icon-cache.d.ts +6 -0
  299. package/dist/lib/utils/clock-time.d.ts +1 -0
  300. package/dist/lib/utils/date-filter-value.d.ts +2 -0
  301. package/dist/lib/utils/form-association.d.ts +2 -1
  302. package/dist/lib/utils/format-percentage.d.ts +1 -1
  303. package/dist/lib/utils/index.js +113 -93
  304. package/dist/lib/utils/index.js.map +4 -4
  305. package/dist/lib/utils/intl-formatters.d.ts +3 -0
  306. package/dist/lib/utils/resolve-css-length-px.d.ts +4 -3
  307. package/dist/lint/THIRD-PARTY-NOTICES +97 -40
  308. package/dist/lint/bundled-dependencies.json +162 -0
  309. package/dist/lint/index.js +1341 -1333
  310. package/dist/mcp/THIRD-PARTY-NOTICES +470 -0
  311. package/dist/mcp/bundled-dependencies.json +29 -0
  312. package/dist/mcp-data/registry/agent-tool-call.json +1 -1
  313. package/dist/mcp-data/registry/banner.json +1 -1
  314. package/dist/mcp-data/registry/bar-nav.json +1 -1
  315. package/dist/mcp-data/registry/bar-page-title.json +1 -1
  316. package/dist/mcp-data/registry/breadcrumb.json +1 -1
  317. package/dist/mcp-data/registry/calendar.json +4 -4
  318. package/dist/mcp-data/registry/card-overview.json +1 -1
  319. package/dist/mcp-data/registry/chart.json +3 -3
  320. package/dist/mcp-data/registry/checkbox.json +17 -1
  321. package/dist/mcp-data/registry/conversation-list.json +1 -1
  322. package/dist/mcp-data/registry/data-group.json +1 -1
  323. package/dist/mcp-data/registry/data-preferences.json +1 -1
  324. package/dist/mcp-data/registry/filter-menu.json +1 -1
  325. package/dist/mcp-data/registry/icon.json +6 -5
  326. package/dist/mcp-data/registry/input-date.json +1 -1
  327. package/dist/mcp-data/registry/input-time.json +1 -1
  328. package/dist/mcp-data/registry/markdown.json +1 -1
  329. package/dist/mcp-data/registry/menu.json +1 -1
  330. package/dist/mcp-data/registry/message.json +4 -4
  331. package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
  332. package/dist/mcp-data/registry/modal.json +1 -1
  333. package/dist/mcp-data/registry/panel-nav.json +1 -1
  334. package/dist/mcp-data/registry/radio-tile.json +1 -1
  335. package/dist/mcp-data/registry/radio.json +1 -1
  336. package/dist/mcp-data/registry/registry.json +63 -7
  337. package/dist/mcp-data/registry/scroll-overlay.json +1 -1
  338. package/dist/mcp-data/registry/select.json +70 -3
  339. package/dist/mcp-data/registry/shell-app.json +1 -1
  340. package/dist/mcp-data/registry/slider.json +3 -3
  341. package/dist/mcp-data/registry/switch.json +1 -1
  342. package/dist/mcp-data/registry/table.json +140 -14
  343. package/dist/mcp-data/registry/tooltip-chart.json +1 -1
  344. package/dist/react/ds-table.d.ts +3 -1
  345. package/dist/react/ds-table.js +2 -0
  346. package/dist/styles/table.css +405 -8
  347. package/dist/types/components/AgentToolCall/AgentToolCall.d.ts +3 -0
  348. package/dist/types/components/Banner/Banner.d.ts +1 -0
  349. package/dist/types/components/BarNav/BarNav.d.ts +4 -0
  350. package/dist/types/components/BarPageTitle/BarPageTitle.d.ts +4 -0
  351. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts +5 -0
  352. package/dist/types/components/Calendar/Calendar.d.ts +2 -0
  353. package/dist/types/components/CardOverview/CardOverview.d.ts +3 -0
  354. package/dist/types/components/Chart/Chart.d.ts +7 -1
  355. package/dist/types/components/Checkbox/Checkbox.d.ts +3 -0
  356. package/dist/types/components/ConversationList/ConversationList.d.ts +3 -0
  357. package/dist/types/components/DataGroup/DataGroup.d.ts +3 -0
  358. package/dist/types/components/DataPreferences/DataPreferences.d.ts +1 -0
  359. package/dist/types/components/FilterMenu/FilterMenu.d.ts +1 -0
  360. package/dist/types/components/Icon/icon-cache.d.ts +6 -0
  361. package/dist/types/components/Icon/icon-svg.d.ts +10 -24
  362. package/dist/types/components/Markdown/Markdown.d.ts +4 -0
  363. package/dist/types/components/Menu/Menu.d.ts +3 -0
  364. package/dist/types/components/Message/Message.d.ts +1 -1
  365. package/dist/types/components/MobileSectionSwitcher/MobileSectionSwitcher.d.ts +5 -0
  366. package/dist/types/components/Modal/Modal.d.ts +3 -0
  367. package/dist/types/components/PanelNav/PanelNav.d.ts +8 -1
  368. package/dist/types/components/Radio/Radio.d.ts +1 -0
  369. package/dist/types/components/ScrollOverlay/ScrollOverlay.d.ts +1 -0
  370. package/dist/types/components/Select/Select.d.ts +8 -0
  371. package/dist/types/components/ShellApp/ShellApp.d.ts +3 -0
  372. package/dist/types/components/Slider/Slider.d.ts +1 -1
  373. package/dist/types/components/Switch/Switch.d.ts +2 -0
  374. package/dist/types/components/Table/Table.d.ts +35 -0
  375. package/dist/types/components/Table/index.d.ts +1 -1
  376. package/dist/types/components/Table/table-body-renderer.d.ts +1 -0
  377. package/dist/types/components/Table/table-cell-editor.d.ts +4 -0
  378. package/dist/types/components/Table/table-grid-model.d.ts +23 -0
  379. package/dist/types/components/Table/table-layout-controller.d.ts +1 -0
  380. package/dist/types/components/Table/table-model.d.ts +1 -1
  381. package/dist/types/components/Table/table-review-fixtures.d.ts +10 -0
  382. package/dist/types/components/Table/table-row-view.d.ts +11 -2
  383. package/dist/types/components/Table/table-skeleton-view.d.ts +3 -1
  384. package/dist/types/components/Table/table-structure.d.ts +38 -0
  385. package/dist/types/components/Table/table-types.d.ts +71 -1
  386. package/dist/types/components/Table/table-virtual-controller.d.ts +1 -0
  387. package/dist/types/components/TooltipChart/TooltipChart.d.ts +4 -0
  388. package/dist/types/components.d.ts +98 -12
  389. package/dist/types/shell/chrome-transition.d.ts +1 -0
  390. package/dist/types/utils/anchored-position-controller.d.ts +2 -0
  391. package/dist/types/utils/clock-time.d.ts +1 -0
  392. package/dist/types/utils/connection-tasks.d.ts +13 -0
  393. package/dist/types/utils/date-filter-value.d.ts +2 -0
  394. package/dist/types/utils/form-association.d.ts +2 -1
  395. package/dist/types/utils/format-percentage.d.ts +1 -1
  396. package/dist/types/utils/intl-formatters.d.ts +4 -0
  397. package/dist/types/utils/resolve-css-length-px.d.ts +4 -3
  398. package/dist/types/utils/select-controller.d.ts +1 -0
  399. package/dist/vue/THIRD-PARTY-NOTICES +14 -0
  400. package/dist/vue/bundled-dependencies.json +13 -0
  401. package/dist/vue/ds-checkbox.js +1 -0
  402. package/dist/vue/ds-select.js +4 -0
  403. package/dist/vue/ds-table.js +8 -0
  404. package/package.json +16 -11
  405. package/dist/components/p-B8ZonS3S.js +0 -2
  406. package/dist/components/p-B8ZonS3S.js.map +0 -1
  407. package/dist/components/p-BDdlJZyL.js +0 -2
  408. package/dist/components/p-BDdlJZyL.js.map +0 -1
  409. package/dist/components/p-BERXvOCf.js +0 -2
  410. package/dist/components/p-BERXvOCf.js.map +0 -1
  411. package/dist/components/p-BQspV5U7.js +0 -2
  412. package/dist/components/p-BQspV5U7.js.map +0 -1
  413. package/dist/components/p-BhjqYTiY.js +0 -2
  414. package/dist/components/p-BhjqYTiY.js.map +0 -1
  415. package/dist/components/p-BjtXYFhw.js +0 -2
  416. package/dist/components/p-BjtXYFhw.js.map +0 -1
  417. package/dist/components/p-Bk3poU91.js.map +0 -1
  418. package/dist/components/p-BxduVc5g.js +0 -2
  419. package/dist/components/p-BxduVc5g.js.map +0 -1
  420. package/dist/components/p-C0qN3PSb.js +0 -2
  421. package/dist/components/p-C0qN3PSb.js.map +0 -1
  422. package/dist/components/p-CPamUzaj.js +0 -2
  423. package/dist/components/p-CPamUzaj.js.map +0 -1
  424. package/dist/components/p-CUDocY23.js +0 -2
  425. package/dist/components/p-CUDocY23.js.map +0 -1
  426. package/dist/components/p-CX6ZxUQT.js +0 -2
  427. package/dist/components/p-CX6ZxUQT.js.map +0 -1
  428. package/dist/components/p-Cgn-BORA.js +0 -2
  429. package/dist/components/p-Cgn-BORA.js.map +0 -1
  430. package/dist/components/p-Ck1hgD6g.js +0 -2
  431. package/dist/components/p-Ck1hgD6g.js.map +0 -1
  432. package/dist/components/p-Co1rUdOR.js.map +0 -1
  433. package/dist/components/p-CochmPyg.js +0 -2
  434. package/dist/components/p-CochmPyg.js.map +0 -1
  435. package/dist/components/p-DCyJ3_PL.js +0 -2
  436. package/dist/components/p-DCyJ3_PL.js.map +0 -1
  437. package/dist/components/p-DVEx-Xg9.js +0 -2
  438. package/dist/components/p-DVEx-Xg9.js.map +0 -1
  439. package/dist/components/p-DYsE6HLk.js +0 -2
  440. package/dist/components/p-DYsE6HLk.js.map +0 -1
  441. package/dist/components/p-DebLYW7A.js +0 -2
  442. package/dist/components/p-DebLYW7A.js.map +0 -1
  443. package/dist/components/p-DjkUFlDW.js.map +0 -1
  444. package/dist/components/p-Dnt5xUBD.js +0 -2
  445. package/dist/components/p-Dnt5xUBD.js.map +0 -1
  446. package/dist/components/p-Dyqd-cub.js +0 -2
  447. package/dist/components/p-Dyqd-cub.js.map +0 -1
  448. package/dist/components/p-DzvTC27M.js.map +0 -1
  449. package/dist/components/p-g0jsfEXz.js +0 -2
  450. package/dist/components/p-g0jsfEXz.js.map +0 -1
  451. package/dist/components/p-pp1IQN4Z.js +0 -2
  452. package/dist/components/p-pp1IQN4Z.js.map +0 -1
  453. package/dist/components/p-rCeztgVn.js +0 -2
  454. package/dist/components/p-rCeztgVn.js.map +0 -1
  455. /package/dist/components/{p-CZNZTcYS.js.map → p-5-gQbIIz.js.map} +0 -0
  456. /package/dist/components/{p-DRdoGSGX.js.map → p-7MwoWtTJ.js.map} +0 -0
  457. /package/dist/components/{p-DJDbskZf.js.map → p-BO5URdZF.js.map} +0 -0
  458. /package/dist/components/{p-DmSnHVW6.js.map → p-BVxK8ce0.js.map} +0 -0
  459. /package/dist/components/{p-B0EpvBDs.js.map → p-BYeG0b5N.js.map} +0 -0
  460. /package/dist/components/{p-CJ1NnOEW.js.map → p-CA3iQ1ME.js.map} +0 -0
  461. /package/dist/components/{p-DYQa1DVF.js.map → p-C_9VGgPf.js.map} +0 -0
  462. /package/dist/components/{p-7TVdPhGR.js.map → p-CgQB8Ct5.js.map} +0 -0
  463. /package/dist/components/{p-D6FRqNhN.js.map → p-D-J7GgjY.js.map} +0 -0
  464. /package/dist/components/{p-DSZPO06T.js.map → p-D9_iDlkT.js.map} +0 -0
  465. /package/dist/components/{p-BwdnVqAY.js.map → p-DEYCF-oJ.js.map} +0 -0
  466. /package/dist/components/{p-C8V4lkVy.js.map → p-DKGW3gRa.js.map} +0 -0
  467. /package/dist/components/{p-C4huuwed.js.map → p-DR_8IPn9.js.map} +0 -0
  468. /package/dist/components/{p-B0BQCVkq.js.map → p-D_iZPukF.js.map} +0 -0
  469. /package/dist/components/{p-JBki_jyY.js.map → p-DfMTDFcE.js.map} +0 -0
  470. /package/dist/components/{p-MOJmB6vX.js.map → p-Dg6hnCc2.js.map} +0 -0
  471. /package/dist/components/{p-DXk1eml1.js.map → p-DjbT9kKm.js.map} +0 -0
  472. /package/dist/components/{p-_IqSPt5V.js.map → p-Dr5rkAhe.js.map} +0 -0
  473. /package/dist/components/{p-DIQiHX0q.js.map → p-DvGrsLgt.js.map} +0 -0
  474. /package/dist/components/{p-Doa2blZT.js.map → p-PtxCwf5S.js.map} +0 -0
  475. /package/dist/components/{p-B9TM6FqC.js.map → p-d76Ry5nh.js.map} +0 -0
  476. /package/dist/components/{p-BFHpU-uU.js.map → p-kwS-vkau.js.map} +0 -0
  477. /package/dist/components/{p-B39iJO8F.js.map → p-rmPIcWED.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["agentToolCallCss","STATUS_LABELS","preparing","queued","running","success","error","denied","canceled","AgentToolCall","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","name","label","state","open","hasSummary","hasResult","hasPlainTextResult","hasDetails","handleToggle","event","dsOpenChange","emit","currentTarget","componentWillLoad","syncSlots","componentDidLoad","slotObserver","MutationObserver","observe","el","childList","subtree","attributes","attributeFilter","disconnectedCallback","disconnect","Boolean","querySelector","result","childElementCount","textContent","trim","serialize","value","undefined","JSON","stringify","String","active","includes","expandable","input","output","renderStatusIcon","h","size","color","renderSummary","class","as","variant","emphasis","statusLabel","renderGenericDetails","render","Host","key","onToggle"],"sources":["src/wc/components/AgentToolCall/AgentToolCall.css?tag=ds-agent-tool-call&encapsulation=scoped","src/wc/components/AgentToolCall/AgentToolCall.tsx"],"sourcesContent":["@import '../../utils/forced-colors.css';\n\n:host {\n display: block;\n min-width: 0;\n}\n\n.agent-tool {\n min-width: 0;\n color: var(--color-foreground-secondary);\n}\n\ndetails {\n margin: 0;\n}\n\nsummary,\n.agent-tool__row {\n min-width: 0;\n padding: var(--dimension-space-050) 0;\n}\n\nsummary {\n cursor: pointer;\n list-style: none;\n}\n\nsummary::-webkit-details-marker {\n display: none;\n}\n\n.agent-tool__summary-content {\n display: grid;\n align-items: center;\n grid-template-columns: auto minmax(0, 1fr) auto;\n gap: var(--dimension-space-075);\n min-width: 0;\n}\n\n.agent-tool__status-icon {\n display: flex;\n align-items: center;\n color: var(--color-foreground-faint-neutral);\n}\n\n.agent-tool--preparing .agent-tool__status-icon,\n.agent-tool--queued .agent-tool__status-icon,\n.agent-tool--running .agent-tool__status-icon {\n color: var(--color-foreground-faint-brand);\n}\n\n.agent-tool--waiting-for-user .agent-tool__status-icon {\n color: var(--color-foreground-bold-warning);\n}\n\n.agent-tool--error .agent-tool__status-icon,\n.agent-tool--denied .agent-tool__status-icon {\n color: var(--color-foreground-bold-negative);\n}\n\n.agent-tool__title {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: var(--dimension-space-025) var(--dimension-space-075);\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n.agent-tool__chevron {\n transition: none;\n}\n\ndetails[open] .agent-tool__chevron {\n transform: rotate(90deg);\n}\n\n.agent-tool__details,\n.agent-tool__diagnostics {\n display: grid;\n gap: var(--dimension-space-075);\n}\n\n.agent-tool__details {\n padding: var(--dimension-space-050) 0 var(--dimension-space-100)\n calc(var(--dimension-size-200) + var(--dimension-space-075));\n}\n\n.agent-tool__diagnostics section {\n display: grid;\n gap: var(--dimension-space-025);\n}\n\npre {\n max-width: 100%;\n margin: 0;\n padding: var(--dimension-space-075);\n overflow: auto;\n border-radius: var(--dimension-radius-050);\n background: var(--color-background-secondary);\n color: var(--color-foreground-primary);\n font-family: var(\n --typography-font-family-code,\n 'Fira Code',\n ui-monospace,\n 'SFMono-Regular',\n 'Cascadia Code',\n 'Roboto Mono',\n Menlo,\n Monaco,\n Consolas,\n 'Liberation Mono',\n monospace\n );\n font-variant-ligatures: var(--ds-code-font-variant-ligatures, normal);\n font-weight: var(--typography-weight-regular);\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n\n.agent-tool__result {\n min-width: 0;\n padding-block: var(--dimension-space-050);\n}\n\n.agent-tool__result--plain-text {\n font-family: var(--typography-font-family-ui);\n font-size: var(--typography-fontsize-md);\n font-weight: var(--typography-weight-regular);\n line-height: var(--typography-lineheight-md);\n letter-spacing: var(--typography-letterspacing-negative-half);\n}\n\nsummary:focus-visible {\n border-radius: var(--dimension-radius-025);\n outline: var(--dimension-stroke-width-025) solid var(--color-border-bold-brand);\n outline-offset: var(--dimension-space-025);\n}\n\n@media (prefers-reduced-motion: no-preference) {\n .agent-tool__chevron {\n transition: transform var(--effect-motion-short-2);\n }\n}\n\n@media (forced-colors: active) {\n summary:focus-visible {\n outline-color: var(--ds-forced-color-selected);\n }\n\n .agent-tool--error .agent-tool__summary-content,\n .agent-tool--denied .agent-tool__summary-content {\n border-inline-start: var(--dimension-stroke-width-025) solid var(--ds-forced-color-content);\n padding-inline-start: var(--dimension-space-050);\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core';\nimport type { AgentToolState } from '../conversation-types';\n\nconst STATUS_LABELS: Record<AgentToolState, string> = {\n preparing: 'Preparing',\n queued: 'Queued',\n running: 'Running',\n 'waiting-for-user': 'Waiting for your response',\n success: 'Completed',\n error: 'Failed',\n denied: 'Permission denied',\n canceled: 'Canceled',\n};\n\n@Component({ tag: 'ds-agent-tool-call', styleUrl: 'AgentToolCall.css', scoped: true })\nexport class AgentToolCall {\n @Element() el!: HTMLElement;\n\n @Prop() name: string = '';\n @Prop() label: string = '';\n @Prop() state: AgentToolState = 'queued';\n @Prop() statusLabel?: string;\n @Prop() input?: unknown;\n @Prop() output?: unknown;\n @Prop() error?: string;\n @Prop() open: boolean = false;\n\n @Event() dsOpenChange!: EventEmitter<{ open: boolean }>;\n\n @State() private hasSummary = false;\n @State() private hasResult = false;\n @State() private hasPlainTextResult = false;\n @State() private hasDetails = false;\n\n private slotObserver?: MutationObserver;\n\n componentWillLoad() {\n this.syncSlots();\n }\n\n componentDidLoad() {\n this.syncSlots();\n this.slotObserver = new MutationObserver(() => this.syncSlots());\n this.slotObserver.observe(this.el, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['slot'],\n });\n }\n\n disconnectedCallback() {\n this.slotObserver?.disconnect();\n }\n\n private syncSlots() {\n this.hasSummary = Boolean(this.el.querySelector('[slot=\"summary\"]'));\n const result = this.el.querySelector<HTMLElement>('[slot=\"result\"]');\n this.hasResult = Boolean(result);\n this.hasPlainTextResult = Boolean(\n result && result.childElementCount === 0 && result.textContent?.trim()\n );\n this.hasDetails = Boolean(this.el.querySelector('[slot=\"details\"]'));\n }\n\n private serialize(value: unknown) {\n if (value === undefined) return '';\n if (typeof value === 'string') return value;\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return String(value);\n }\n }\n\n private get active(): boolean {\n return ['preparing', 'queued', 'running'].includes(this.state);\n }\n\n private get expandable(): boolean {\n return (\n this.hasDetails ||\n this.input !== undefined ||\n this.output !== undefined ||\n Boolean(this.error)\n );\n }\n\n private renderStatusIcon() {\n if (this.active) return <ds-loader size=\"xs\" color=\"inherit\" />;\n if (this.state === 'success') {\n return <ds-icon name=\"Check\" size=\"xs\" color=\"inherit\" />;\n }\n if (this.state === 'waiting-for-user') {\n return <ds-icon name=\"Clock\" size=\"xs\" color=\"inherit\" />;\n }\n return <ds-icon name=\"ExclamationTriangle\" size=\"xs\" color=\"inherit\" />;\n }\n\n private renderSummary(expandable: boolean) {\n return (\n <span class=\"agent-tool__summary-content\">\n <span class=\"agent-tool__status-icon\" aria-hidden=\"true\">\n {this.renderStatusIcon()}\n </span>\n <span class=\"agent-tool__title\">\n {this.hasSummary ? (\n <slot name=\"summary\" />\n ) : (\n <ds-text as=\"span\" variant=\"text-body-small\" emphasis>\n {this.label || this.name}\n </ds-text>\n )}\n <ds-text\n class=\"agent-tool__state-label\"\n as=\"span\"\n variant=\"text-caption\"\n color={['error', 'denied'].includes(this.state) ? 'negative' : 'secondary'}\n >\n {this.statusLabel ?? STATUS_LABELS[this.state]}\n </ds-text>\n </span>\n {expandable ? (\n <ds-icon class=\"agent-tool__chevron\" name=\"ChevronRight\" size=\"xs\" color=\"inherit\" />\n ) : null}\n </span>\n );\n }\n\n private renderGenericDetails() {\n return (\n <div class=\"agent-tool__diagnostics\">\n {this.input !== undefined ? (\n <section>\n <ds-text variant=\"text-caption\" emphasis>\n Input\n </ds-text>\n <pre>{this.serialize(this.input)}</pre>\n </section>\n ) : null}\n {this.output !== undefined ? (\n <section>\n <ds-text variant=\"text-caption\" emphasis>\n Output\n </ds-text>\n <pre>{this.serialize(this.output)}</pre>\n </section>\n ) : null}\n {this.error ? (\n <section>\n <ds-text variant=\"text-caption\" emphasis>\n Error\n </ds-text>\n <pre>{this.error}</pre>\n </section>\n ) : null}\n </div>\n );\n }\n\n private handleToggle = (event: Event) => {\n this.dsOpenChange.emit({ open: (event.currentTarget as HTMLDetailsElement).open });\n };\n\n render() {\n const expandable = this.expandable;\n return (\n <Host>\n <div class={`agent-tool agent-tool--${this.state}`}>\n {expandable ? (\n <details open={this.open} onToggle={this.handleToggle}>\n <summary>{this.renderSummary(true)}</summary>\n <div class=\"agent-tool__details\">\n {this.hasDetails ? <slot name=\"details\" /> : this.renderGenericDetails()}\n </div>\n </details>\n ) : (\n <div class=\"agent-tool__row\">{this.renderSummary(false)}</div>\n )}\n {this.hasResult ? (\n <div\n class={{\n 'agent-tool__result': true,\n 'agent-tool__result--plain-text': this.hasPlainTextResult,\n }}\n >\n <slot name=\"result\" />\n </div>\n ) : null}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{i as t}from"./p-BQq26pt9.js";function n(n,e){const r=[];let i=[];for(const s of n){if(t(s)){if(i.length>0){r.push({items:i});i=[]}continue}i.push({label:s.label,value:s.id,dot:s.dot,isSelected:s.id===e,isInactive:s.isInactive})}if(i.length>0){r.push({items:i})}return r}function e(t,e){return n(o(t),e)}function r(t,n,e,r=2){const i=t-n;if(e){return i>-r}return i>r}function i(t,n,e,r,i){if(t.length===0||n<=0)return 0;const s=c(t,t.length,r,i);if(s<=n)return t.length;const o=Math.max(0,n-e);let u=0;for(let n=1;n<=t.length;n++){const e=c(t,n,r,i);if(e>o)break;u=n}return u}function s(n){let e=n.length;while(e>0&&t(n[e-1])){e-=1}return n.slice(0,e)}function o(n){let e=0;while(e<n.length&&t(n[e])){e+=1}return n.slice(e)}function c(t,n,e,r){if(n<=0)return 0;const i=t.slice(0,n).reduce(((t,n)=>t+n),0);return r+i+e*Math.max(0,n-1)}const u="dsChromeTransitionStart";const a="dsChromeTransitionEnd";class f{constructor(){this.depth=0}enter(){this.depth+=1}exit(){this.depth=Math.max(0,this.depth-1)}get isActive(){return this.depth>0}}class l{constructor(){this.active=false}enter(){this.active=true}exit(){this.active=false}get isActive(){return this.active}}function h(t){let n=0;return{schedule(){if(n!==0)return;n=requestAnimationFrame((()=>{n=0;t()}))},cancel(){if(n!==0){cancelAnimationFrame(n);n=0}}}}function m(t){return t.detail?.source}function d(t){return t.detail?.phase}export{l as C,u as a,a as b,h as c,d,s as e,e as f,f as g,m as r,r as t,i as v};
2
- //# sourceMappingURL=p-BxduVc5g.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["tabsToMenuSections","tabs","selectedId","sections","batch","item","isTabDivider","length","push","items","label","value","id","dot","isSelected","isInactive","tabsToOverflowMenuSections","trimLeadingDividers","tabsOverflowContainer","tabListScrollWidth","containerClientWidth","collapsed","hysteresis","diff","visibleTabCountForWidth","itemWidths","availableWidth","overflowTriggerWidth","itemGap","listExtraWidth","fullWidth","widthForItemCount","availableForTabs","Math","max","count","i","width","trimTrailingDividers","end","slice","start","itemsWidth","reduce","sum","CHROME_TRANSITION_START","CHROME_TRANSITION_END","ChromeTransitionDepth","constructor","this","depth","enter","exit","isActive","ChromeTransitionGate","active","createRafCoalescer","onFrame","rafId","schedule","requestAnimationFrame","cancel","cancelAnimationFrame","readChromeTransitionSource","event","detail","source","readChromeTransitionPhase","phase"],"sources":["src/wc/components/BarNav/bar-nav-tabs-menu-utils.ts","src/wc/shell/chrome-transition.ts"],"sourcesContent":["import type { MenuItemData, MenuSection } from '../Menu/menu-types';\nimport {\n getSelectableTabs,\n isTabDivider,\n type TabItem,\n type TabItemTab,\n} from '../TabGroup/tab-item-utils';\n\n/** Map BarNav tabs to menu sections, preserving `{ type: 'divider' }` as section breaks. */\nexport function tabsToMenuSections(tabs: TabItem[], selectedId: string): MenuSection[] {\n const sections: MenuSection[] = [];\n let batch: MenuItemData[] = [];\n\n for (const item of tabs) {\n if (isTabDivider(item)) {\n if (batch.length > 0) {\n sections.push({ items: batch });\n batch = [];\n }\n continue;\n }\n\n batch.push({\n label: item.label,\n value: item.id,\n dot: item.dot,\n isSelected: item.id === selectedId,\n isInactive: item.isInactive,\n });\n }\n\n if (batch.length > 0) {\n sections.push({ items: batch });\n }\n\n return sections;\n}\n\nexport function tabsToOverflowMenuSections(tabs: TabItem[], selectedId: string): MenuSection[] {\n return tabsToMenuSections(trimLeadingDividers(tabs), selectedId);\n}\n\nexport function getActiveTab(tabs: TabItem[], selectedId: string): TabItemTab | undefined {\n const selectable = getSelectableTabs(tabs);\n return selectable.find(tab => tab.id === selectedId) ?? selectable[0];\n}\n\nexport function getActiveTabLabel(tabs: TabItem[], selectedId: string): string {\n return getActiveTab(tabs, selectedId)?.label ?? 'Tabs';\n}\n\n/** True when tablist content exceeds the available width (with optional hysteresis). */\nexport function tabsOverflowContainer(\n tabListScrollWidth: number,\n containerClientWidth: number,\n collapsed: boolean,\n hysteresis = 2\n): boolean {\n const diff = tabListScrollWidth - containerClientWidth;\n if (collapsed) {\n return diff > -hysteresis;\n }\n return diff > hysteresis;\n}\n\nexport function visibleTabCountForWidth(\n itemWidths: number[],\n availableWidth: number,\n overflowTriggerWidth: number,\n itemGap: number,\n listExtraWidth: number\n): number {\n if (itemWidths.length === 0 || availableWidth <= 0) return 0;\n\n const fullWidth = widthForItemCount(itemWidths, itemWidths.length, itemGap, listExtraWidth);\n if (fullWidth <= availableWidth) return itemWidths.length;\n\n const availableForTabs = Math.max(0, availableWidth - overflowTriggerWidth);\n let count = 0;\n\n for (let i = 1; i <= itemWidths.length; i++) {\n const width = widthForItemCount(itemWidths, i, itemGap, listExtraWidth);\n if (width > availableForTabs) break;\n count = i;\n }\n\n return count;\n}\n\nexport function trimTrailingDividers(tabs: TabItem[]): TabItem[] {\n let end = tabs.length;\n while (end > 0 && isTabDivider(tabs[end - 1])) {\n end -= 1;\n }\n return tabs.slice(0, end);\n}\n\nfunction trimLeadingDividers(tabs: TabItem[]): TabItem[] {\n let start = 0;\n while (start < tabs.length && isTabDivider(tabs[start])) {\n start += 1;\n }\n return tabs.slice(start);\n}\n\nfunction widthForItemCount(\n itemWidths: number[],\n count: number,\n itemGap: number,\n listExtraWidth: number\n): number {\n if (count <= 0) return 0;\n const itemsWidth = itemWidths.slice(0, count).reduce((sum, width) => sum + width, 0);\n return listExtraWidth + itemsWidth + itemGap * Math.max(0, count - 1);\n}\n","/** Bubbling/composed events — `ds-shell-app` and `ds-bar-nav` coordinate during width motion. */\n\nexport const CHROME_TRANSITION_START = 'dsChromeTransitionStart';\nexport const CHROME_TRANSITION_END = 'dsChromeTransitionEnd';\n\nexport type ChromeTransitionSource = 'panel-nav' | 'panel-tools';\n\nexport interface ChromeTransitionDetail {\n source: ChromeTransitionSource;\n /** Panel-tools drawer motion direction; omitted for panel-nav. */\n phase?: 'opening' | 'closing';\n}\n\n/** Reference-counted gate — used while panel-nav width is transitioning. */\nexport class ChromeTransitionDepth {\n private depth = 0;\n\n enter(): void {\n this.depth += 1;\n }\n\n exit(): void {\n this.depth = Math.max(0, this.depth - 1);\n }\n\n get isActive(): boolean {\n return this.depth > 0;\n }\n}\n\n/** Idempotent gate for one physical chrome surface.\n * Duplicate start notifications still require only one matching end. */\nexport class ChromeTransitionGate {\n private active = false;\n\n enter(): void {\n this.active = true;\n }\n\n exit(): void {\n this.active = false;\n }\n\n get isActive(): boolean {\n return this.active;\n }\n}\n\nexport interface RafCoalescer {\n schedule(): void;\n cancel(): void;\n}\n\n/** Coalesce bursty layout work (ResizeObserver, prop churn) to one callback per frame. */\nexport function createRafCoalescer(onFrame: () => void): RafCoalescer {\n let rafId = 0;\n return {\n schedule() {\n if (rafId !== 0) return;\n rafId = requestAnimationFrame(() => {\n rafId = 0;\n onFrame();\n });\n },\n cancel() {\n if (rafId !== 0) {\n cancelAnimationFrame(rafId);\n rafId = 0;\n }\n },\n };\n}\n\nexport function readChromeTransitionSource(event: Event): ChromeTransitionSource | undefined {\n return (event as CustomEvent<ChromeTransitionDetail>).detail?.source;\n}\n\nexport function readChromeTransitionPhase(event: Event): ChromeTransitionDetail['phase'] {\n return (event as CustomEvent<ChromeTransitionDetail>).detail?.phase;\n}\n"],"mappings":"oCASM,SAAUA,EAAmBC,EAAiBC,GAClD,MAAMC,EAA0B,GAChC,IAAIC,EAAwB,GAE5B,IAAK,MAAMC,KAAQJ,EAAM,CACvB,GAAIK,EAAaD,GAAO,CACtB,GAAID,EAAMG,OAAS,EAAG,CACpBJ,EAASK,KAAK,CAAEC,MAAOL,IACvBA,EAAQ,E,CAEV,Q,CAGFA,EAAMI,KAAK,CACTE,MAAOL,EAAKK,MACZC,MAAON,EAAKO,GACZC,IAAKR,EAAKQ,IACVC,WAAYT,EAAKO,KAAOV,EACxBa,WAAYV,EAAKU,Y,CAIrB,GAAIX,EAAMG,OAAS,EAAG,CACpBJ,EAASK,KAAK,CAAEC,MAAOL,G,CAGzB,OAAOD,CACT,CAEM,SAAUa,EAA2Bf,EAAiBC,GAC1D,OAAOF,EAAmBiB,EAAoBhB,GAAOC,EACvD,CAYM,SAAUgB,EACdC,EACAC,EACAC,EACAC,EAAa,GAEb,MAAMC,EAAOJ,EAAqBC,EAClC,GAAIC,EAAW,CACb,OAAOE,GAAQD,C,CAEjB,OAAOC,EAAOD,CAChB,CAEM,SAAUE,EACdC,EACAC,EACAC,EACAC,EACAC,GAEA,GAAIJ,EAAWlB,SAAW,GAAKmB,GAAkB,EAAG,OAAO,EAE3D,MAAMI,EAAYC,EAAkBN,EAAYA,EAAWlB,OAAQqB,EAASC,GAC5E,GAAIC,GAAaJ,EAAgB,OAAOD,EAAWlB,OAEnD,MAAMyB,EAAmBC,KAAKC,IAAI,EAAGR,EAAiBC,GACtD,IAAIQ,EAAQ,EAEZ,IAAK,IAAIC,EAAI,EAAGA,GAAKX,EAAWlB,OAAQ6B,IAAK,CAC3C,MAAMC,EAAQN,EAAkBN,EAAYW,EAAGR,EAASC,GACxD,GAAIQ,EAAQL,EAAkB,MAC9BG,EAAQC,C,CAGV,OAAOD,CACT,CAEM,SAAUG,EAAqBrC,GACnC,IAAIsC,EAAMtC,EAAKM,OACf,MAAOgC,EAAM,GAAKjC,EAAaL,EAAKsC,EAAM,IAAK,CAC7CA,GAAO,C,CAET,OAAOtC,EAAKuC,MAAM,EAAGD,EACvB,CAEA,SAAStB,EAAoBhB,GAC3B,IAAIwC,EAAQ,EACZ,MAAOA,EAAQxC,EAAKM,QAAUD,EAAaL,EAAKwC,IAAS,CACvDA,GAAS,C,CAEX,OAAOxC,EAAKuC,MAAMC,EACpB,CAEA,SAASV,EACPN,EACAU,EACAP,EACAC,GAEA,GAAIM,GAAS,EAAG,OAAO,EACvB,MAAMO,EAAajB,EAAWe,MAAM,EAAGL,GAAOQ,QAAO,CAACC,EAAKP,IAAUO,EAAMP,GAAO,GAClF,OAAOR,EAAiBa,EAAad,EAAUK,KAAKC,IAAI,EAAGC,EAAQ,EACrE,CChHO,MAAMU,EAA0B,0BAChC,MAAMC,EAAwB,wB,MAWxBC,EAAb,WAAAC,GACUC,KAAAC,MAAQ,C,CAEhB,KAAAC,GACEF,KAAKC,OAAS,C,CAGhB,IAAAE,GACEH,KAAKC,MAAQjB,KAAKC,IAAI,EAAGe,KAAKC,MAAQ,E,CAGxC,YAAIG,GACF,OAAOJ,KAAKC,MAAQ,C,QAMXI,EAAb,WAAAN,GACUC,KAAAM,OAAS,K,CAEjB,KAAAJ,GACEF,KAAKM,OAAS,I,CAGhB,IAAAH,GACEH,KAAKM,OAAS,K,CAGhB,YAAIF,GACF,OAAOJ,KAAKM,M,EAUV,SAAUC,EAAmBC,GACjC,IAAIC,EAAQ,EACZ,MAAO,CACL,QAAAC,GACE,GAAID,IAAU,EAAG,OACjBA,EAAQE,uBAAsB,KAC5BF,EAAQ,EACRD,GAAS,G,EAGb,MAAAI,GACE,GAAIH,IAAU,EAAG,CACfI,qBAAqBJ,GACrBA,EAAQ,C,GAIhB,CAEM,SAAUK,EAA2BC,GACzC,OAAQA,EAA8CC,QAAQC,MAChE,CAEM,SAAUC,EAA0BH,GACxC,OAAQA,EAA8CC,QAAQG,KAChE,Q","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- function r(r,n,t={}){const e=t.inactive?null:n;if(t.state===undefined){r.setFormValue(e);return}r.setFormValue(e,t.state)}function n(r,n,t,e={}){if(e.inactive||!n||t.length===0){r.setFormValue(null);return}const u=new FormData;t.forEach((r=>u.append(n,String(r))));r.setFormValue(u,e.state??JSON.stringify(t))}function t(r,n=""){return typeof r==="string"?r:n}function e(r){if(typeof r!=="string")return[];try{const n=JSON.parse(r);return Array.isArray(n)?n.filter((r=>typeof r==="string")):[]}catch{return[]}}function u(r,n){if(typeof r!=="string")return[];try{const t=JSON.parse(r);if(!Array.isArray(t))return[];const e=t.map((r=>typeof r==="number"?r:Number(r))).filter((r=>Number.isFinite(r)));return e.slice(0,n)}catch{return[]}}export{n as a,e as b,u as c,t as r,r as s};
2
- //# sourceMappingURL=p-C0qN3PSb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["setFormControlValue","internals","value","options","submission","inactive","state","undefined","setFormValue","setRepeatedFormControlValue","name","values","length","data","FormData","forEach","append","String","JSON","stringify","restoreStringFormState","fallback","restoreStringArrayFormState","restored","parse","Array","isArray","filter","restoreNumberArrayFormState","maximumValues","map","Number","isFinite","slice"],"sources":["src/wc/utils/form-association.ts"],"sourcesContent":["export type FormControlState = File | FormData | string | null;\n\nexport interface SetFormControlValueOptions {\n inactive?: boolean;\n state?: FormControlState;\n}\n\nexport interface SetRepeatedFormControlValueOptions {\n inactive?: boolean;\n state?: FormControlState;\n}\n\n/**\n * Set one form-associated value while consistently omitting inactive controls.\n * Pass `state` only when restoration differs from the submitted value.\n */\nexport function setFormControlValue(\n internals: ElementInternals,\n value: File | string | null,\n options: SetFormControlValueOptions = {}\n): void {\n const submission = options.inactive ? null : value;\n if (options.state === undefined) {\n internals.setFormValue(submission);\n return;\n }\n internals.setFormValue(submission, options.state);\n}\n\n/**\n * Submit repeated values under one field name and preserve a serialized array\n * for browser form-state restoration.\n */\nexport function setRepeatedFormControlValue(\n internals: ElementInternals,\n name: string | null | undefined,\n values: readonly (number | string)[],\n options: SetRepeatedFormControlValueOptions = {}\n): void {\n if (options.inactive || !name || values.length === 0) {\n internals.setFormValue(null);\n return;\n }\n\n const data = new FormData();\n values.forEach(value => data.append(name, String(value)));\n internals.setFormValue(data, options.state ?? JSON.stringify(values));\n}\n\nexport function restoreStringFormState(state: FormControlState, fallback: string = ''): string {\n return typeof state === 'string' ? state : fallback;\n}\n\nexport function restoreStringArrayFormState(state: FormControlState): string[] {\n if (typeof state !== 'string') return [];\n try {\n const restored: unknown = JSON.parse(state);\n return Array.isArray(restored)\n ? restored.filter((value): value is string => typeof value === 'string')\n : [];\n } catch {\n return [];\n }\n}\n\nexport function restoreNumberArrayFormState(\n state: FormControlState,\n maximumValues?: number\n): number[] {\n if (typeof state !== 'string') return [];\n try {\n const restored: unknown = JSON.parse(state);\n if (!Array.isArray(restored)) return [];\n const values = restored\n .map(value => (typeof value === 'number' ? value : Number(value)))\n .filter(value => Number.isFinite(value));\n return maximumValues === undefined ? values : values.slice(0, maximumValues);\n } catch {\n return [];\n }\n}\n"],"mappings":"AAgBM,SAAUA,EACdC,EACAC,EACAC,EAAsC,IAEtC,MAAMC,EAAaD,EAAQE,SAAW,KAAOH,EAC7C,GAAIC,EAAQG,QAAUC,UAAW,CAC/BN,EAAUO,aAAaJ,GACvB,M,CAEFH,EAAUO,aAAaJ,EAAYD,EAAQG,MAC7C,CAMM,SAAUG,EACdR,EACAS,EACAC,EACAR,EAA8C,IAE9C,GAAIA,EAAQE,WAAaK,GAAQC,EAAOC,SAAW,EAAG,CACpDX,EAAUO,aAAa,MACvB,M,CAGF,MAAMK,EAAO,IAAIC,SACjBH,EAAOI,SAAQb,GAASW,EAAKG,OAAON,EAAMO,OAAOf,MACjDD,EAAUO,aAAaK,EAAMV,EAAQG,OAASY,KAAKC,UAAUR,GAC/D,C,SAEgBS,EAAuBd,EAAyBe,EAAmB,IACjF,cAAcf,IAAU,SAAWA,EAAQe,CAC7C,CAEM,SAAUC,EAA4BhB,GAC1C,UAAWA,IAAU,SAAU,MAAO,GACtC,IACE,MAAMiB,EAAoBL,KAAKM,MAAMlB,GACrC,OAAOmB,MAAMC,QAAQH,GACjBA,EAASI,QAAQzB,UAAkCA,IAAU,WAC7D,E,CACJ,MACA,MAAO,E,CAEX,CAEM,SAAU0B,EACdtB,EACAuB,GAEA,UAAWvB,IAAU,SAAU,MAAO,GACtC,IACE,MAAMiB,EAAoBL,KAAKM,MAAMlB,GACrC,IAAKmB,MAAMC,QAAQH,GAAW,MAAO,GACrC,MAAMZ,EAASY,EACZO,KAAI5B,UAAiBA,IAAU,SAAWA,EAAQ6B,OAAO7B,KACzDyB,QAAOzB,GAAS6B,OAAOC,SAAS9B,KACnC,OAA8CS,EAAOsB,MAAM,EAAGJ,E,CAC9D,MACA,MAAO,E,CAEX,Q","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{p as i,H as e,c as s,h as t,a as o,t as n}from"./index.js";import{g as r,i as c}from"./p-BQq26pt9.js";import{d as a}from"./p-CwdRaJER.js";import{d}from"./p-DjkUFlDW.js";import{d as l}from"./p-Dnt5xUBD.js";import{d as h}from"./p-B9y6azEw.js";import{d as m}from"./p-Cgn-BORA.js";import{d as b}from"./p-B9TM6FqC.js";import{d as f}from"./p-D8OWhnID.js";import{b as u,T as v}from"./p-CeXf9-X3.js";function g(i,e){const s=r(i);const t=s.findIndex((i=>i.id===e));const o=t>=0?t:0;return{selectedIndex:o,selected:s[o],hasPrevious:o>0,hasNext:o<s.length-1}}const w=()=>`@media (forced-colors: active){.sc-ds-mobile-section-switcher:root,.sc-ds-mobile-section-switcher-h,.ds-forced-colors-scope.sc-ds-mobile-section-switcher{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.sc-ds-mobile-section-switcher-h{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}.ds-focus-ring.sc-ds-mobile-section-switcher-h,.ds-focus-ring.sc-ds-mobile-section-switcher,.ds-focus-ring-inset.sc-ds-mobile-section-switcher-h,.ds-focus-ring-inset.sc-ds-mobile-section-switcher{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-mobile-section-switcher-h:focus-visible,.ds-focus-ring.sc-ds-mobile-section-switcher:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring.ds-focus-ring--visible.sc-ds-mobile-section-switcher-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-mobile-section-switcher{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring-inset.sc-ds-mobile-section-switcher-h:focus-visible,.ds-focus-ring-inset.sc-ds-mobile-section-switcher:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-mobile-section-switcher-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-mobile-section-switcher:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-section-switcher-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-section-switcher{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-section-switcher-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-mobile-section-switcher::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}@media (forced-colors: active){.sc-ds-mobile-section-switcher-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-mobile-section-switcher:root,.sc-ds-mobile-section-switcher-h,.ds-forced-colors-scope.sc-ds-mobile-section-switcher{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-interaction-fill.sc-ds-mobile-section-switcher-h,.ds-interaction-fill.sc-ds-mobile-section-switcher{position:var(--ds-interaction-position, relative);z-index:var(--ds-interaction-z-index, 0);cursor:default;--ds-interaction-hover:var(--color-interaction-hover);--ds-interaction-pressed:var(--color-interaction-pressed);--ds-interaction-active:var(--color-interaction-active-brand);--ds-interaction-border-width:0px;--ds-interaction-border-color:transparent;--ds-interaction-divider-width:0px;--ds-interaction-divider-color:transparent;--ds-interaction-divider-inline-start-width:0px;--ds-interaction-divider-inline-start-color:transparent;--ds-interaction-divider-inline-end-width:0px;--ds-interaction-divider-inline-end-color:transparent}.ds-interaction-fill.sc-ds-mobile-section-switcher-h::before,.ds-interaction-fill.sc-ds-mobile-section-switcher::before,.ds-interaction-fill.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill.sc-ds-mobile-section-switcher::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-mobile-section-switcher-h::before,.ds-interaction-fill.sc-ds-mobile-section-switcher::before{z-index:1}.ds-interaction-fill.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill.sc-ds-mobile-section-switcher::after{z-index:3;box-shadow:inset 0 calc(-1 * var(--ds-interaction-divider-width)) 0 var(--ds-interaction-divider-color), inset var(--ds-interaction-divider-inline-start-width) 0 0 var(--ds-interaction-divider-inline-start-color), inset calc(-1 * var(--ds-interaction-divider-inline-end-width)) 0 0 var(--ds-interaction-divider-inline-end-color), inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-interaction-fill--bordered.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--bordered.sc-ds-mobile-section-switcher{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-mobile-section-switcher-h::before,.ds-interaction-fill--selected.sc-ds-mobile-section-switcher::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--selected.sc-ds-mobile-section-switcher{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-mobile-section-switcher-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-mobile-section-switcher:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-mobile-section-switcher-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-mobile-section-switcher:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--grouped.sc-ds-mobile-section-switcher{--ds-interaction-divider-width:var(--ds-interaction-group-divider-width, 0px);--ds-interaction-divider-color:var(--ds-interaction-group-divider-color, transparent);--ds-interaction-divider-inline-start-width:var( --ds-interaction-group-divider-inline-start-width, 0px );--ds-interaction-divider-inline-start-color:var( --ds-interaction-group-divider-inline-start-color, transparent );--ds-interaction-divider-inline-end-width:var( --ds-interaction-group-divider-inline-end-width, 0px );--ds-interaction-divider-inline-end-color:var( --ds-interaction-group-divider-inline-end-color, transparent )}.ds-interaction-fill.sc-ds-mobile-section-switcher-h>.ds-interaction-fill__content.sc-ds-mobile-section-switcher,.ds-interaction-fill.sc-ds-mobile-section-switcher>.ds-interaction-fill__content.sc-ds-mobile-section-switcher,.ds-interaction-fill__content.sc-ds-mobile-section-switcher{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-faint.sc-ds-mobile-section-switcher{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-medium.sc-ds-mobile-section-switcher{--ds-interaction-hover:var(--color-interaction-on-medium-background-hover);--ds-interaction-pressed:var(--color-interaction-on-medium-background-pressed);--ds-interaction-active:var(--color-interaction-on-medium-background-active);--ds-focus-ring-color:var(--color-interaction-on-medium-background-focus)}.ds-interaction-fill--on-bold.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-bold.sc-ds-mobile-section-switcher{--ds-interaction-hover:var(--color-interaction-on-bold-background-hover);--ds-interaction-pressed:var(--color-interaction-on-bold-background-pressed);--ds-interaction-active:var(--color-interaction-on-bold-background-active);--ds-focus-ring-color:var(--color-interaction-on-bold-background-focus)}.ds-interaction-fill--on-strong.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-strong.sc-ds-mobile-section-switcher{--ds-interaction-hover:var(--color-interaction-on-strong-background-hover);--ds-interaction-pressed:var(--color-interaction-on-strong-background-pressed);--ds-interaction-active:var(--color-interaction-on-strong-background-active);--ds-focus-ring-color:var(--color-interaction-on-strong-background-focus)}.ds-interaction-fill--on-translucent.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-translucent.sc-ds-mobile-section-switcher{--ds-interaction-hover:var(--color-translucent-interaction-hover);--ds-interaction-pressed:var(--color-translucent-interaction-pressed);--ds-interaction-active:var(--color-translucent-interaction-active-brand);--ds-focus-ring-color:var(--color-translucent-interaction-focus)}.ds-interaction-fill--on-inverted.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-inverted.sc-ds-mobile-section-switcher{--ds-interaction-hover:var(--color-inverted-interaction-hover);--ds-interaction-pressed:var(--color-inverted-interaction-pressed);--ds-interaction-active:var(--color-inverted-interaction-active-brand);--ds-focus-ring-color:var(--color-inverted-interaction-focus)}.ds-interaction-fill--on-media.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-media.sc-ds-mobile-section-switcher{--ds-interaction-hover:var(--color-media-interaction-hover);--ds-interaction-pressed:var(--color-media-interaction-pressed);--ds-interaction-active:var(--color-media-interaction-active);--ds-focus-ring-color:var(--color-media-interaction-focus)}.ds-interaction-fill--on-always-dark.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-always-dark.sc-ds-mobile-section-switcher{--ds-interaction-hover:var(--color-always-dark-interaction-hover);--ds-interaction-pressed:var(--color-always-dark-interaction-pressed);--ds-interaction-active:var(--color-always-dark-interaction-active-brand);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-chrome.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-chrome.sc-ds-mobile-section-switcher{--ds-interaction-hover:var(--color-chrome-interaction-hover);--ds-interaction-pressed:var(--color-chrome-interaction-pressed);--ds-interaction-active:var(--color-chrome-interaction-active);--ds-focus-ring-color:var(--color-chrome-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-mobile-section-switcher-h,.ds-interaction-fill--on-navigation.sc-ds-mobile-section-switcher{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-mobile-section-switcher-h:not(:disabled)::after,.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-mobile-section-switcher:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-mobile-section-switcher-h::after,.ds-interaction-fill.sc-ds-mobile-section-switcher::after{box-shadow:none;outline:var(--ds-interaction-border-width) solid var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--ds-interaction-border-width))}.ds-interaction-fill--surface-open.sc-ds-mobile-section-switcher-h:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill--surface-open.sc-ds-mobile-section-switcher:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline:var(--dimension-stroke-width-025) dashed var(--ds-forced-color-control-boundary);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}.ds-interaction-fill--selected.sc-ds-mobile-section-switcher-h::before,.ds-interaction-fill--selected.sc-ds-mobile-section-switcher::before{background:transparent;outline:var(--dimension-stroke-width-025) solid var(--ds-forced-color-selected);outline-offset:calc(-1 * var(--dimension-stroke-width-025))}}@media (forced-colors: active) and (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-mobile-section-switcher-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-mobile-section-switcher:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline-color:var(--ds-forced-color-selected);outline-width:var(--dimension-stroke-width-012)}}.sc-ds-mobile-section-switcher-h,.sc-ds-mobile-section-switcher:where(.ds-table),.sc-ds-mobile-section-switcher:where(.tooltip-popup),.sc-ds-mobile-section-switcher:where(.ds-radius){--ds-radius-control:var(--dimension-radius-025);--ds-radius-card:var(--dimension-radius-050);--ds-radius-modal:var(--dimension-radius-050);--ds-radius-menu:var(--dimension-radius-075);--ds-radius-tooltip-control:var(--dimension-radius-025);--ds-radius-tooltip-menu:var(--dimension-radius-075);--ds-radius-table:var(--dimension-radius-050)}.ds-control--lg.sc-ds-mobile-section-switcher,.ds-control--lg.sc-ds-mobile-section-switcher-h,.ds-control--md.sc-ds-mobile-section-switcher-h,.ds-control--md.sc-ds-mobile-section-switcher,.ds-control--sm.sc-ds-mobile-section-switcher-h,.ds-control--sm.sc-ds-mobile-section-switcher,.ds-control--xs.sc-ds-mobile-section-switcher-h,.ds-control--xs.sc-ds-mobile-section-switcher{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-mobile-section-switcher-h,.ds-control--lg.sc-ds-mobile-section-switcher{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-mobile-section-switcher-h,.ds-control--md.sc-ds-mobile-section-switcher{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-mobile-section-switcher-h,.ds-control--sm.sc-ds-mobile-section-switcher{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-mobile-section-switcher-h,.ds-control--xs.sc-ds-mobile-section-switcher{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.sc-ds-mobile-section-switcher-h{display:block;min-width:0;max-width:100%;color:var(--color-foreground-primary)}.mobile-section-switcher.sc-ds-mobile-section-switcher{appearance:none;display:grid;grid-template-columns:var(--dimension-size-100) minmax(0, auto) var(--dimension-size-100);align-items:center;justify-content:center;gap:var(--dimension-space-050);max-width:100%;min-height:var(--dimension-size-400);padding-inline:var(--dimension-space-100);border:0;border-radius:var(--dimension-radius-100);background:var(--color-background-secondary);color:inherit;box-sizing:border-box;cursor:default}.mobile-section-switcher__label.sc-ds-mobile-section-switcher{min-width:0;max-width:100%;text-align:center}.mobile-section-switcher__position.sc-ds-mobile-section-switcher{width:var(--dimension-size-050);height:var(--dimension-size-050);border-radius:var(--dimension-radius-half);background:currentColor;opacity:0}.mobile-section-switcher__position--visible.sc-ds-mobile-section-switcher{opacity:1}.mobile-section-switcher--sheet.sc-ds-mobile-section-switcher{grid-template-columns:minmax(0, auto);min-height:var(--dimension-size-500);padding-inline:var(--dimension-space-150);border-radius:var(--dimension-radius-half);background:transparent;--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-tertiary)}.mobile-section-switcher--combined.sc-ds-mobile-section-switcher{display:flex}.mobile-section-switcher__page-label.sc-ds-mobile-section-switcher{flex:0 1 auto;min-width:0}.mobile-section-switcher__separator.sc-ds-mobile-section-switcher{flex:0 0 auto}.mobile-section-switcher--combined.sc-ds-mobile-section-switcher .mobile-section-switcher__label.sc-ds-mobile-section-switcher{flex:0 0 auto;max-width:50%}.mobile-section-sheet.sc-ds-mobile-section-switcher{position:fixed;inset:0 0 auto;width:100%;max-width:none;max-height:calc(100dvh - var(--dimension-size-500) - var(--dimension-space-200));margin:0;padding:0;border:0;border-radius:0;box-sizing:border-box;overflow:visible;background:transparent;color:var(--color-foreground-secondary);outline:none}.mobile-section-sheet[open].sc-ds-mobile-section-switcher{display:flex;flex-direction:column}.mobile-section-sheet[open].sc-ds-mobile-section-switcher .mobile-section-sheet__items.sc-ds-mobile-section-switcher{animation:mobileSectionSheetIn var(--effect-motion-short-2) both}.mobile-section-sheet.sc-ds-mobile-section-switcher::backdrop{background:var(--color-background-shade);animation:mobileSectionShadeIn var(--effect-motion-short-2) both}.mobile-section-sheet--closing[open].sc-ds-mobile-section-switcher .mobile-section-sheet__items.sc-ds-mobile-section-switcher{animation-name:mobileSectionSheetOut}.mobile-section-sheet--closing.sc-ds-mobile-section-switcher::backdrop{animation-name:mobileSectionShadeOut}.mobile-section-sheet__items.sc-ds-mobile-section-switcher{display:flex;flex-direction:column;gap:var(--dimension-space-100);min-height:0;max-height:inherit;box-sizing:border-box;background:var(--color-background-primary);box-shadow:var(--effect-elevation-elevated-floating);padding:var(--dimension-space-100);padding-block-start:max(var(--dimension-space-100), env(safe-area-inset-top, 0px));overflow-y:auto;overscroll-behavior:contain}.mobile-section-sheet__item.sc-ds-mobile-section-switcher{appearance:none;flex:0 0 auto;display:flex;align-items:center;height:var(--ds-control-height);width:100%;min-width:0;padding:0 var(--ds-control-padding-inline);box-sizing:border-box;border:0;border-radius:var(--ds-control-radius);background:transparent;color:inherit;text-align:start}.mobile-section-sheet__item[aria-current='page'].sc-ds-mobile-section-switcher{color:var(--color-foreground-primary)}.mobile-section-sheet__item.sc-ds-mobile-section-switcher:disabled{color:var(--color-foreground-tertiary)}.mobile-section-sheet__label.sc-ds-mobile-section-switcher{min-width:0;padding-inline:var(--ds-control-label-inset)}.mobile-section-sheet__divider.sc-ds-mobile-section-switcher{flex:0 0 auto;height:var(--dimension-stroke-width-012);margin-inline:var(--dimension-space-100);background:var(--color-border-tertiary)}@keyframes mobileSectionSheetIn{from{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes mobileSectionSheetOut{from{transform:translateY(0)}to{transform:translateY(-100%)}}@keyframes mobileSectionShadeIn{from{opacity:0}to{opacity:1}}@keyframes mobileSectionShadeOut{from{opacity:1}to{opacity:0}}.mobile-section-switcher--pointer-focus.sc-ds-mobile-section-switcher-h .ds-focus-ring-inset.sc-ds-mobile-section-switcher::after{outline:none}.mobile-section-sheet__browser-edge.sc-ds-mobile-section-switcher{position:fixed;inset:auto 0 0;height:max(var(--dimension-space-200), env(safe-area-inset-bottom, 0px));pointer-events:none;color:var(--color-background-primary);background-color:var(--_mobile-section-edge-color, var(--color-background-primary))}.mobile-section-sheet[open].sc-ds-mobile-section-switcher .mobile-section-sheet__browser-edge.sc-ds-mobile-section-switcher{animation:mobileSectionEdgeIn var(--effect-motion-short-2) both}.mobile-section-sheet--closing[open].sc-ds-mobile-section-switcher .mobile-section-sheet__browser-edge.sc-ds-mobile-section-switcher{animation-name:mobileSectionEdgeOut}@keyframes mobileSectionEdgeIn{from{background-color:var(--color-background-primary)}to{background-color:var(--_mobile-section-edge-color, var(--color-background-primary))}}@keyframes mobileSectionEdgeOut{from{background-color:var(--_mobile-section-edge-color, var(--color-background-primary))}to{background-color:var(--color-background-primary)}}@media (prefers-reduced-motion: reduce){.mobile-section-sheet[open].sc-ds-mobile-section-switcher .mobile-section-sheet__items.sc-ds-mobile-section-switcher,.mobile-section-sheet[open].sc-ds-mobile-section-switcher .mobile-section-sheet__browser-edge.sc-ds-mobile-section-switcher,.mobile-section-sheet.sc-ds-mobile-section-switcher::backdrop{animation:none}}`;let p=0;const x=i(class i extends e{constructor(i){super();if(i!==false){this.__registerHost()}this.dsChange=s(this,"dsChange",7);this.sections=[];this.value="";this.navigationLabel="Change page section";this.presentation="menu";this.pageLabel="";this.menuOpen=false;this.menuSurfaceOpen=false;this.initialFocusVisible=false;this.pointerFocus=false;this.sheetClosing=false;this.focusedSection="";this.instanceId=p++;this.triggerId=`ds-mobile-section-switcher-trigger-${this.instanceId}`;this.menuId=`ds-mobile-section-switcher-menu-${this.instanceId}`;this.triggerEl=null;this.dialogEl=null;this.browserEdgeEl=null;this.browserEdgeColors="";this.closeTimer=null;this.handleDocumentKeyDown=i=>{if(["Shift","Control","Alt","Meta"].includes(i.key))return;this.pointerFocus=false};this.updateBrowserEdgeColor=()=>{if(!this.browserEdgeEl||!this.dialogEl)return;const i=getComputedStyle(this.browserEdgeEl).color;const e=getComputedStyle(this.dialogEl,"::backdrop").backgroundColor;const s=`${i}|${e}`;if(s===this.browserEdgeColors)return;const t=this.el.ownerDocument.createElement("canvas");t.width=t.height=1;const o=t.getContext("2d");if(!o)return;o.fillStyle=i;o.fillRect(0,0,1,1);o.fillStyle=e;o.fillRect(0,0,1,1);const[n,r,c]=o.getImageData(0,0,1,1).data;this.browserEdgeEl.style.setProperty("--_mobile-section-edge-color",`rgb(${n}, ${r}, ${c})`);this.browserEdgeColors=s};this.handleSheetKeyDown=i=>{if(i.key==="Escape"){i.preventDefault();i.stopPropagation();this.closeMenu();return}const e=this.selectableSections.filter((i=>!i.isInactive));if(!e.length)return;const s=Math.max(0,e.findIndex((i=>i.id===this.focusedSection)));let t;if(i.key==="ArrowDown")t=(s+1)%e.length;else if(i.key==="ArrowUp")t=(s+e.length-1)%e.length;else if(i.key==="Home")t=0;else if(i.key==="End")t=e.length-1;else if(i.key==="Tab")t=s;else if(i.key.length===1&&!i.ctrlKey&&!i.metaKey&&!i.altKey&&i.key!==" "){const o=e.findIndex(((t,o)=>e[(s+o+1)%e.length].label.toLowerCase().startsWith(i.key.toLowerCase())));if(o<0)return;t=(s+o+1)%e.length}else return;i.preventDefault();this.initialFocusVisible=true;this.focusSheetItem(e[t].id)};this.toggleMenu=i=>{if(this.selectableSections.length<=1)return;this.initialFocusVisible=i.detail===0;if(this.presentation==="sheet"){if(this.menuOpen)this.closeMenu();else{this.focusedSection=this.selectedSection?.id??"";this.menuOpen=true}return}this.menuOpen=!this.menuOpen;if(this.menuOpen)this.menuSurfaceOpen=true};this.closeMenu=()=>{this.menuOpen=false;if(this.dialogEl?.open)this.sheetClosing=true};this.handleSelect=i=>{const e=String(i.detail.value??"");const s=this.selectableSections.find((i=>i.id===e));if(!s||s.isInactive)return;this.closeMenu();if(e!==this.selectedSection?.id)this.dsChange.emit(e);requestAnimationFrame((()=>this.triggerEl?.focus()))}}componentDidLoad(){this.el.ownerDocument.addEventListener("keydown",this.handleDocumentKeyDown,true);this.visibilityObserver=new ResizeObserver((()=>{if(this.dialogEl?.open&&!this.triggerEl?.getClientRects().length){this.finishSheetClose(false)}}));this.visibilityObserver.observe(this.el)}componentDidRender(){if(!this.dialogEl)return;if(this.presentation==="sheet"&&this.menuOpen&&!this.dialogEl.open){const i=this.focusedSection;this.updateBrowserEdgeColor();this.observeBrowserEdgeTheme();this.dialogEl.showModal();this.focusSheetItem(i)}if(this.sheetClosing&&this.dialogEl.open&&!this.closeTimer){const i=u(v.motionShort2,v.animationDurationShort3);if(!i)this.finishSheetClose();else this.closeTimer=setTimeout((()=>this.finishSheetClose()),i)}}disconnectedCallback(){this.el.ownerDocument.removeEventListener("keydown",this.handleDocumentKeyDown,true);this.visibilityObserver?.disconnect();this.menuSurfaceOpen=false;this.finishSheetClose(false)}handlePresentationChange(){this.menuSurfaceOpen=false;this.closeMenu()}handleContextChange(){this.closeMenu()}finishSheetClose(i=true){if(this.closeTimer)clearTimeout(this.closeTimer);this.closeTimer=null;const e=this.dialogEl?.open;this.dialogEl?.close();this.themeObserver?.disconnect();this.menuOpen=false;this.sheetClosing=false;if(e&&i&&this.triggerEl?.getClientRects().length)this.triggerEl.focus()}observeBrowserEdgeTheme(){this.themeObserver??(this.themeObserver=new MutationObserver(this.updateBrowserEdgeColor));for(let i=this.el;i;i=i.parentElement){this.themeObserver.observe(i,{attributes:true,attributeFilter:["class","style","data-theme"]})}}focusSheetItem(i){const e=Array.from(this.dialogEl?.querySelectorAll("button")??[]);const s=e.find((e=>e.value===i&&!e.disabled))??e.find((i=>!i.disabled));if(s){this.focusedSection=s.value;s.focus()}else this.dialogEl?.focus()}get resolvedSections(){return this.sections??[]}get selectableSections(){return r(this.resolvedSections)}get selectedIndex(){return g(this.resolvedSections,this.value).selectedIndex}get selectedSection(){return this.selectableSections[this.selectedIndex]}get hasPrevious(){return g(this.resolvedSections,this.value).hasPrevious}get hasNext(){return g(this.resolvedSections,this.value).hasNext}get triggerAriaLabel(){return`${this.presentation==="sheet"&&this.pageLabel?`${this.pageLabel}. `:""}${this.navigationLabel}. Current section: ${this.selectedSection?.label??""}`}get menuSections(){const i=[];let e=[];const s=()=>{if(e.length)i.push({items:e});e=[]};for(const i of this.resolvedSections){if(c(i)){s();continue}e.push({label:i.label,value:i.id,dot:i.dot,isSelected:i.id===this.selectedSection?.id,isInactive:i.isInactive})}s();return i}handleSectionsChange(){if(this.selectableSections.length<=1){this.closeMenu();this.menuSurfaceOpen=false}else if(this.dialogEl?.open&&!this.sheetClosing)this.focusSheetItem(this.focusedSection)}renderSheet(){return t("dialog",{id:this.menuId,ref:i=>{this.dialogEl=i??null},class:{"mobile-section-sheet":true,"mobile-section-sheet--closing":this.sheetClosing},"aria-label":this.navigationLabel,tabIndex:-1,onCancel:i=>{i.preventDefault();this.closeMenu()},onKeyDown:this.handleSheetKeyDown,onClick:i=>{if(!this.dialogEl||i.target!==this.dialogEl)return;const e=this.dialogEl.getBoundingClientRect();if(i.clientY<e.top||i.clientY>e.bottom||i.clientX<e.left||i.clientX>e.right)this.closeMenu()}},t("div",{class:"mobile-section-sheet__items",role:"menu","aria-label":this.navigationLabel},this.resolvedSections.map((i=>c(i)?t("div",{class:"mobile-section-sheet__divider",role:"separator"}):t("button",{type:"button",role:"menuitem",value:i.id,disabled:i.isInactive,"aria-current":i.id===this.selectedSection?.id?"page":undefined,tabIndex:i.id===this.focusedSection?0:-1,class:{"mobile-section-sheet__item":true,"ds-control--lg":true,"ds-interaction-fill":true,"ds-focus-ring-inset":true,"ds-focus-ring--visible":this.initialFocusVisible&&i.id===this.focusedSection},onFocus:()=>{this.focusedSection=i.id},onClick:()=>{if(this.sheetClosing||i.isInactive)return;this.closeMenu();if(i.id!==this.selectedSection?.id)this.dsChange.emit(i.id)}},t("ds-text",{class:"mobile-section-sheet__label ds-interaction-fill__content",as:"span",variant:"text-body-large",color:"inherit",emphasis:i.id===this.selectedSection?.id,lineTruncation:1},i.label))))),t("div",{ref:i=>{if(this.browserEdgeEl!==i)this.browserEdgeColors="";this.browserEdgeEl=i??null},class:"mobile-section-sheet__browser-edge","aria-hidden":"true"}))}render(){const i=this.selectedSection;if(!i)return t(o,null);const e=this.presentation==="sheet"&&!!this.pageLabel;return t(o,{class:{"mobile-section-switcher--pointer-focus":this.pointerFocus},onPointerDown:()=>{this.pointerFocus=true;this.initialFocusVisible=false}},t("button",{ref:i=>{this.triggerEl=i??null},id:this.triggerId,class:{"mobile-section-switcher":true,"mobile-section-switcher--expanded":this.menuOpen,"ds-interaction-fill--surface-open":this.menuSurfaceOpen||this.menuOpen||this.sheetClosing,"mobile-section-switcher--sheet":this.presentation==="sheet","mobile-section-switcher--combined":e,"ds-focus-ring-inset":true,"ds-interaction-fill":true},type:"button","aria-haspopup":this.presentation==="sheet"?"dialog":"menu","aria-controls":this.menuId,"aria-expanded":String(this.menuOpen),"aria-label":this.triggerAriaLabel,onClick:this.toggleMenu},this.presentation==="menu"?t("span",{class:{"mobile-section-switcher__position":true,"mobile-section-switcher__position--visible":this.hasPrevious,"ds-interaction-fill__content":true},"aria-hidden":"true"}):null,e?[t("ds-text",{class:"mobile-section-switcher__page-label ds-interaction-fill__content",as:"span",variant:"text-body-large",emphasis:true,color:"inherit",lineTruncation:1},this.pageLabel),t("ds-text",{class:"mobile-section-switcher__separator ds-interaction-fill__content",as:"span",variant:"text-body-large",color:"inherit","aria-hidden":"true"},"·")]:null,t("ds-text",{class:"mobile-section-switcher__label ds-interaction-fill__content",as:"span",variant:this.presentation==="sheet"?"text-body-large":"text-body-medium",emphasis:true,color:"inherit",lineTruncation:1},i.label),this.presentation==="menu"?t("span",{class:{"mobile-section-switcher__position":true,"mobile-section-switcher__position--visible":this.hasNext,"ds-interaction-fill__content":true},"aria-hidden":"true"}):null),this.presentation==="sheet"||this.sheetClosing?this.renderSheet():this.selectableSections.length>1?t("ds-menu",{id:this.menuId,anchorId:this.triggerId,align:"center",menuLabel:this.navigationLabel,open:this.menuOpen,initialFocusVisible:this.initialFocusVisible,sections:this.menuSections,onDsClose:this.closeMenu,onDsAfterClose:()=>{if(!this.menuOpen)this.menuSurfaceOpen=false},onDsSelect:this.handleSelect}):null)}get el(){return this}static get watchers(){return{presentation:[{handlePresentationChange:0}],value:[{handleContextChange:0}],pageLabel:[{handleContextChange:0}],sections:[{handleSectionsChange:0}]}}static get style(){return w()}},[2,"ds-mobile-section-switcher",{sections:[16],value:[1],navigationLabel:[1,"navigation-label"],presentation:[1],pageLabel:[1,"page-label"],menuOpen:[32],menuSurfaceOpen:[32],initialFocusVisible:[32],pointerFocus:[32],sheetClosing:[32],focusedSection:[32]},undefined,{presentation:[{handlePresentationChange:0}],value:[{handleContextChange:0}],pageLabel:[{handleContextChange:0}],sections:[{handleSectionsChange:0}]}]);function k(){if(typeof customElements==="undefined"){return}const i=["ds-mobile-section-switcher","ds-badge","ds-icon","ds-menu","ds-swatch-picker","ds-switch","ds-tag","ds-text"];i.forEach((i=>{switch(i){case"ds-mobile-section-switcher":if(!customElements.get(n(i))){customElements.define(n(i),x)}break;case"ds-badge":if(!customElements.get(n(i))){a()}break;case"ds-icon":if(!customElements.get(n(i))){d()}break;case"ds-menu":if(!customElements.get(n(i))){l()}break;case"ds-swatch-picker":if(!customElements.get(n(i))){h()}break;case"ds-switch":if(!customElements.get(n(i))){m()}break;case"ds-tag":if(!customElements.get(n(i))){b()}break;case"ds-text":if(!customElements.get(n(i))){f()}break}}))}k();export{x as M,k as d};
2
- //# sourceMappingURL=p-CPamUzaj.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["resolveMobileSectionPosition","sections","value","selectable","getSelectableTabs","matchedIndex","findIndex","section","id","selectedIndex","selected","hasPrevious","hasNext","length","mobileSectionSwitcherCss","nextMobileSectionSwitcherId","MobileSectionSwitcher","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","navigationLabel","presentation","pageLabel","menuOpen","menuSurfaceOpen","initialFocusVisible","pointerFocus","sheetClosing","focusedSection","instanceId","triggerId","menuId","triggerEl","dialogEl","browserEdgeEl","browserEdgeColors","closeTimer","handleDocumentKeyDown","event","includes","key","updateBrowserEdgeColor","base","getComputedStyle","color","shade","backgroundColor","colors","canvas","el","ownerDocument","createElement","width","height","context","getContext","fillStyle","fillRect","red","green","blue","getImageData","data","style","setProperty","handleSheetKeyDown","preventDefault","stopPropagation","closeMenu","selectableSections","filter","isInactive","index","Math","max","next","ctrlKey","metaKey","altKey","match","_","offset","label","toLowerCase","startsWith","focusSheetItem","toggleMenu","detail","selectedSection","open","handleSelect","String","find","candidate","dsChange","emit","requestAnimationFrame","focus","componentDidLoad","addEventListener","visibilityObserver","ResizeObserver","getClientRects","finishSheetClose","observe","componentDidRender","initialSection","observeBrowserEdgeTheme","showModal","duration","resolveMotionTimeMs","TOKEN_DEFAULTS","motionShort2","animationDurationShort3","setTimeout","disconnectedCallback","removeEventListener","disconnect","handlePresentationChange","handleContextChange","restoreFocus","clearTimeout","wasOpen","close","themeObserver","MutationObserver","ancestor","parentElement","attributes","attributeFilter","buttons","Array","from","querySelectorAll","button","item","disabled","resolvedSections","triggerAriaLabel","menuSections","groups","items","commit","push","isTabDivider","dot","isSelected","handleSectionsChange","renderSheet","h","ref","element","class","tabIndex","onCancel","onKeyDown","onClick","target","rect","getBoundingClientRect","clientY","top","bottom","clientX","left","right","role","map","type","undefined","onFocus","as","variant","emphasis","lineTruncation","render","Host","combined","onPointerDown","anchorId","align","menuLabel","onDsClose","onDsAfterClose","onDsSelect"],"sources":["src/wc/components/MobileSectionSwitcher/mobile-section-switcher-utils.ts","src/wc/components/MobileSectionSwitcher/MobileSectionSwitcher.css?tag=ds-mobile-section-switcher&encapsulation=scoped","src/wc/components/MobileSectionSwitcher/MobileSectionSwitcher.tsx"],"sourcesContent":["import { getSelectableTabs, type TabItem, type TabItemTab } from '../TabGroup/tab-item-utils';\n\nexport interface MobileSectionPosition {\n selectedIndex: number;\n selected?: TabItemTab;\n hasPrevious: boolean;\n hasNext: boolean;\n}\n\n/** Resolve ordered selectable neighbors while ignoring visual divider entries. */\nexport function resolveMobileSectionPosition(\n sections: TabItem[],\n value: string\n): MobileSectionPosition {\n const selectable = getSelectableTabs(sections);\n const matchedIndex = selectable.findIndex(section => section.id === value);\n const selectedIndex = matchedIndex >= 0 ? matchedIndex : 0;\n return {\n selectedIndex,\n selected: selectable[selectedIndex],\n hasPrevious: selectedIndex > 0,\n hasNext: selectedIndex < selectable.length - 1,\n };\n}\n","@import '../../utils/focus-ring.css';\n@import '../../utils/interaction-fill.css';\n@import '../../utils/radius.css';\n@import '../../utils/control-density.css';\n\n:host {\n display: block;\n min-width: 0;\n max-width: 100%;\n color: var(--color-foreground-primary);\n}\n\n.mobile-section-switcher {\n appearance: none;\n display: grid;\n grid-template-columns: var(--dimension-size-100) minmax(0, auto) var(--dimension-size-100);\n align-items: center;\n justify-content: center;\n gap: var(--dimension-space-050);\n max-width: 100%;\n min-height: var(--dimension-size-400);\n padding-inline: var(--dimension-space-100);\n border: 0;\n border-radius: var(--dimension-radius-100);\n background: var(--color-background-secondary);\n color: inherit;\n box-sizing: border-box;\n cursor: default;\n}\n\n.mobile-section-switcher__label {\n min-width: 0;\n max-width: 100%;\n text-align: center;\n}\n\n.mobile-section-switcher__position {\n width: var(--dimension-size-050);\n height: var(--dimension-size-050);\n border-radius: var(--dimension-radius-half);\n background: currentColor;\n opacity: 0;\n}\n\n.mobile-section-switcher__position--visible {\n opacity: 1;\n}\n\n.mobile-section-switcher--sheet {\n grid-template-columns: minmax(0, auto);\n min-height: var(--dimension-size-500);\n padding-inline: var(--dimension-space-150);\n border-radius: var(--dimension-radius-half);\n background: transparent;\n --ds-interaction-border-width: var(--dimension-stroke-width-012);\n --ds-interaction-border-color: var(--color-border-tertiary);\n}\n\n.mobile-section-switcher--combined {\n display: flex;\n}\n\n.mobile-section-switcher__page-label {\n flex: 0 1 auto;\n min-width: 0;\n}\n\n.mobile-section-switcher__separator {\n flex: 0 0 auto;\n}\n\n.mobile-section-switcher--combined .mobile-section-switcher__label {\n flex: 0 0 auto;\n max-width: 50%;\n}\n\n.mobile-section-sheet {\n position: fixed;\n inset: 0 0 auto;\n width: 100%;\n max-width: none;\n max-height: calc(100dvh - var(--dimension-size-500) - var(--dimension-space-200));\n margin: 0;\n padding: 0;\n border: 0;\n border-radius: 0;\n box-sizing: border-box;\n overflow: visible;\n background: transparent;\n color: var(--color-foreground-secondary);\n outline: none;\n}\n\n.mobile-section-sheet[open] {\n display: flex;\n flex-direction: column;\n}\n\n.mobile-section-sheet[open] .mobile-section-sheet__items {\n animation: mobileSectionSheetIn var(--effect-motion-short-2) both;\n}\n\n.mobile-section-sheet::backdrop {\n background: var(--color-background-shade);\n animation: mobileSectionShadeIn var(--effect-motion-short-2) both;\n}\n\n.mobile-section-sheet--closing[open] .mobile-section-sheet__items {\n animation-name: mobileSectionSheetOut;\n}\n\n.mobile-section-sheet--closing::backdrop {\n animation-name: mobileSectionShadeOut;\n}\n\n.mobile-section-sheet__items {\n display: flex;\n flex-direction: column;\n gap: var(--dimension-space-100);\n min-height: 0;\n max-height: inherit;\n box-sizing: border-box;\n background: var(--color-background-primary);\n box-shadow: var(--effect-elevation-elevated-floating);\n padding: var(--dimension-space-100);\n padding-block-start: max(var(--dimension-space-100), env(safe-area-inset-top, 0px));\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n\n.mobile-section-sheet__item {\n appearance: none;\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n height: var(--ds-control-height);\n width: 100%;\n min-width: 0;\n padding: 0 var(--ds-control-padding-inline);\n box-sizing: border-box;\n border: 0;\n border-radius: var(--ds-control-radius);\n background: transparent;\n color: inherit;\n text-align: start;\n}\n\n.mobile-section-sheet__item[aria-current='page'] {\n color: var(--color-foreground-primary);\n}\n\n.mobile-section-sheet__item:disabled {\n color: var(--color-foreground-tertiary);\n}\n\n.mobile-section-sheet__label {\n min-width: 0;\n padding-inline: var(--ds-control-label-inset);\n}\n\n.mobile-section-sheet__divider {\n flex: 0 0 auto;\n height: var(--dimension-stroke-width-012);\n margin-inline: var(--dimension-space-100);\n background: var(--color-border-tertiary);\n}\n\n@keyframes mobileSectionSheetIn {\n from {\n transform: translateY(-100%);\n }\n to {\n transform: translateY(0);\n }\n}\n\n@keyframes mobileSectionSheetOut {\n from {\n transform: translateY(0);\n }\n to {\n transform: translateY(-100%);\n }\n}\n\n@keyframes mobileSectionShadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes mobileSectionShadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n/* Safari can preserve :focus-visible across modal entry and focus return after\n * a tap. Track the actual input, while leaving focus and keyboard access intact. */\n:host(.mobile-section-switcher--pointer-focus) .ds-focus-ring-inset::after {\n outline: none;\n}\n\n/* Keep this opaque strip in the modal top layer, outside the moving sheet.\n * Safari samples fixed edge backgrounds to tint its browser controls. */\n.mobile-section-sheet__browser-edge {\n position: fixed;\n inset: auto 0 0;\n height: max(var(--dimension-space-200), env(safe-area-inset-bottom, 0px));\n pointer-events: none;\n color: var(--color-background-primary);\n background-color: var(--_mobile-section-edge-color, var(--color-background-primary));\n}\n\n.mobile-section-sheet[open] .mobile-section-sheet__browser-edge {\n animation: mobileSectionEdgeIn var(--effect-motion-short-2) both;\n}\n\n.mobile-section-sheet--closing[open] .mobile-section-sheet__browser-edge {\n animation-name: mobileSectionEdgeOut;\n}\n\n/* Animate the opaque color, not opacity: the backdrop is already fading below. */\n@keyframes mobileSectionEdgeIn {\n from {\n background-color: var(--color-background-primary);\n }\n to {\n background-color: var(--_mobile-section-edge-color, var(--color-background-primary));\n }\n}\n\n@keyframes mobileSectionEdgeOut {\n from {\n background-color: var(--_mobile-section-edge-color, var(--color-background-primary));\n }\n to {\n background-color: var(--color-background-primary);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .mobile-section-sheet[open] .mobile-section-sheet__items,\n .mobile-section-sheet[open] .mobile-section-sheet__browser-edge,\n .mobile-section-sheet::backdrop {\n animation: none;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport type { MenuItemData, MenuSection } from '../Menu/menu-types';\nimport {\n getSelectableTabs,\n isTabDivider,\n type TabItem,\n type TabItemTab,\n} from '../TabGroup/tab-item-utils';\nimport { resolveMobileSectionPosition } from './mobile-section-switcher-utils';\nimport { resolveMotionTimeMs, TOKEN_DEFAULTS } from '../../utils';\n\nlet nextMobileSectionSwitcherId = 0;\n\n@Component({\n tag: 'ds-mobile-section-switcher',\n styleUrl: 'MobileSectionSwitcher.css',\n scoped: true,\n})\nexport class MobileSectionSwitcher {\n @Element() el!: HTMLElement;\n\n /** Ordered controlled sections. Divider entries group the popup menu. */\n @Prop() sections: TabItem[] = [];\n /** Controlled selected section id. */\n @Prop() value: string = '';\n /** Accessible name for the section chooser. */\n @Prop() navigationLabel: string = 'Change page section';\n /** Anchored local-view menu or viewport-edge sheet for primary page sections. */\n @Prop() presentation: 'menu' | 'sheet' = 'menu';\n /** Stable page identity shown before the selected section in a sheet trigger. */\n @Prop() pageLabel: string = '';\n\n /** Selection intent. The route, tool, or workflow owner updates `value`. */\n @Event() dsChange!: EventEmitter<string>;\n\n @State() private menuOpen = false;\n @State() private menuSurfaceOpen = false;\n @State() private initialFocusVisible = false;\n @State() private pointerFocus = false;\n @State() private sheetClosing = false;\n @State() private focusedSection = '';\n\n private readonly instanceId = nextMobileSectionSwitcherId++;\n private readonly triggerId = `ds-mobile-section-switcher-trigger-${this.instanceId}`;\n private readonly menuId = `ds-mobile-section-switcher-menu-${this.instanceId}`;\n private triggerEl: HTMLButtonElement | null = null;\n private dialogEl: HTMLDialogElement | null = null;\n private browserEdgeEl: HTMLDivElement | null = null;\n private browserEdgeColors = '';\n private themeObserver?: MutationObserver;\n private closeTimer: ReturnType<typeof setTimeout> | null = null;\n private visibilityObserver?: ResizeObserver;\n\n private readonly handleDocumentKeyDown = (event: KeyboardEvent) => {\n if (['Shift', 'Control', 'Alt', 'Meta'].includes(event.key)) return;\n this.pointerFocus = false;\n };\n\n componentDidLoad() {\n this.el.ownerDocument.addEventListener('keydown', this.handleDocumentKeyDown, true);\n this.visibilityObserver = new ResizeObserver(() => {\n if (this.dialogEl?.open && !this.triggerEl?.getClientRects().length) {\n this.finishSheetClose(false);\n }\n });\n this.visibilityObserver.observe(this.el);\n }\n\n componentDidRender() {\n if (!this.dialogEl) return;\n if (this.presentation === 'sheet' && this.menuOpen && !this.dialogEl.open) {\n const initialSection = this.focusedSection;\n this.updateBrowserEdgeColor();\n this.observeBrowserEdgeTheme();\n this.dialogEl.showModal();\n this.focusSheetItem(initialSection);\n }\n if (this.sheetClosing && this.dialogEl.open && !this.closeTimer) {\n const duration = resolveMotionTimeMs(\n TOKEN_DEFAULTS.motionShort2,\n TOKEN_DEFAULTS.animationDurationShort3\n );\n if (!duration) this.finishSheetClose();\n else this.closeTimer = setTimeout(() => this.finishSheetClose(), duration);\n }\n }\n\n disconnectedCallback() {\n this.el.ownerDocument.removeEventListener('keydown', this.handleDocumentKeyDown, true);\n this.visibilityObserver?.disconnect();\n this.menuSurfaceOpen = false;\n this.finishSheetClose(false);\n }\n\n @Watch('presentation')\n handlePresentationChange() {\n this.menuSurfaceOpen = false;\n this.closeMenu();\n }\n\n @Watch('value')\n @Watch('pageLabel')\n handleContextChange() {\n this.closeMenu();\n }\n\n private finishSheetClose(restoreFocus = true) {\n if (this.closeTimer) clearTimeout(this.closeTimer);\n this.closeTimer = null;\n const wasOpen = this.dialogEl?.open;\n this.dialogEl?.close();\n this.themeObserver?.disconnect();\n this.menuOpen = false;\n this.sheetClosing = false;\n if (wasOpen && restoreFocus && this.triggerEl?.getClientRects().length) this.triggerEl.focus();\n }\n\n private updateBrowserEdgeColor = () => {\n if (!this.browserEdgeEl || !this.dialogEl) return;\n const base = getComputedStyle(this.browserEdgeEl).color;\n const shade = getComputedStyle(this.dialogEl, '::backdrop').backgroundColor;\n const colors = `${base}|${shade}`;\n if (colors === this.browserEdgeColors) return;\n // Let the browser resolve token colors, including alpha and non-sRGB syntax,\n // then flatten the shade over the bar into the opaque color Safari samples.\n const canvas = this.el.ownerDocument.createElement('canvas');\n canvas.width = canvas.height = 1;\n const context = canvas.getContext('2d');\n if (!context) return;\n context.fillStyle = base;\n context.fillRect(0, 0, 1, 1);\n context.fillStyle = shade;\n context.fillRect(0, 0, 1, 1);\n const [red, green, blue] = context.getImageData(0, 0, 1, 1).data;\n this.browserEdgeEl.style.setProperty(\n '--_mobile-section-edge-color',\n `rgb(${red}, ${green}, ${blue})`\n );\n this.browserEdgeColors = colors;\n };\n\n private observeBrowserEdgeTheme() {\n this.themeObserver ??= new MutationObserver(this.updateBrowserEdgeColor);\n // Token themes are inherited from the page or a containing theme scope.\n for (let ancestor: HTMLElement | null = this.el; ancestor; ancestor = ancestor.parentElement) {\n this.themeObserver.observe(ancestor, {\n attributes: true,\n attributeFilter: ['class', 'style', 'data-theme'],\n });\n }\n }\n\n private focusSheetItem(id: string) {\n const buttons = Array.from(this.dialogEl?.querySelectorAll<HTMLButtonElement>('button') ?? []);\n const button =\n buttons.find(item => item.value === id && !item.disabled) ??\n buttons.find(item => !item.disabled);\n if (button) {\n this.focusedSection = button.value;\n button.focus();\n } else this.dialogEl?.focus();\n }\n\n private handleSheetKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n this.closeMenu();\n return;\n }\n const sections = this.selectableSections.filter(section => !section.isInactive);\n if (!sections.length) return;\n const index = Math.max(\n 0,\n sections.findIndex(section => section.id === this.focusedSection)\n );\n let next: number;\n if (event.key === 'ArrowDown') next = (index + 1) % sections.length;\n else if (event.key === 'ArrowUp') next = (index + sections.length - 1) % sections.length;\n else if (event.key === 'Home') next = 0;\n else if (event.key === 'End') next = sections.length - 1;\n else if (event.key === 'Tab') next = index;\n else if (\n event.key.length === 1 &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey &&\n event.key !== ' '\n ) {\n const match = sections.findIndex((_, offset) =>\n sections[(index + offset + 1) % sections.length].label\n .toLowerCase()\n .startsWith(event.key.toLowerCase())\n );\n if (match < 0) return;\n next = (index + match + 1) % sections.length;\n } else return;\n event.preventDefault();\n this.initialFocusVisible = true;\n this.focusSheetItem(sections[next].id);\n };\n\n private get resolvedSections(): TabItem[] {\n return this.sections ?? [];\n }\n\n private get selectableSections(): TabItemTab[] {\n return getSelectableTabs(this.resolvedSections);\n }\n\n private get selectedIndex(): number {\n return resolveMobileSectionPosition(this.resolvedSections, this.value).selectedIndex;\n }\n\n private get selectedSection(): TabItemTab | undefined {\n return this.selectableSections[this.selectedIndex];\n }\n\n private get hasPrevious(): boolean {\n return resolveMobileSectionPosition(this.resolvedSections, this.value).hasPrevious;\n }\n\n private get hasNext(): boolean {\n return resolveMobileSectionPosition(this.resolvedSections, this.value).hasNext;\n }\n\n private get triggerAriaLabel(): string {\n return `${this.presentation === 'sheet' && this.pageLabel ? `${this.pageLabel}. ` : ''}${this.navigationLabel}. Current section: ${this.selectedSection?.label ?? ''}`;\n }\n\n private get menuSections(): MenuSection[] {\n const groups: MenuSection[] = [];\n let items: MenuItemData[] = [];\n const commit = () => {\n if (items.length) groups.push({ items });\n items = [];\n };\n\n for (const section of this.resolvedSections) {\n if (isTabDivider(section)) {\n commit();\n continue;\n }\n items.push({\n label: section.label,\n value: section.id,\n dot: section.dot,\n isSelected: section.id === this.selectedSection?.id,\n isInactive: section.isInactive,\n });\n }\n commit();\n return groups;\n }\n\n @Watch('sections')\n handleSectionsChange() {\n if (this.selectableSections.length <= 1) {\n this.closeMenu();\n this.menuSurfaceOpen = false;\n } else if (this.dialogEl?.open && !this.sheetClosing) this.focusSheetItem(this.focusedSection);\n }\n\n private toggleMenu = (event: MouseEvent) => {\n if (this.selectableSections.length <= 1) return;\n this.initialFocusVisible = event.detail === 0;\n if (this.presentation === 'sheet') {\n if (this.menuOpen) this.closeMenu();\n else {\n this.focusedSection = this.selectedSection?.id ?? '';\n this.menuOpen = true;\n }\n return;\n }\n this.menuOpen = !this.menuOpen;\n if (this.menuOpen) this.menuSurfaceOpen = true;\n };\n\n private closeMenu = () => {\n this.menuOpen = false;\n if (this.dialogEl?.open) this.sheetClosing = true;\n };\n\n private renderSheet() {\n return (\n <dialog\n id={this.menuId}\n ref={element => {\n this.dialogEl = element ?? null;\n }}\n class={{ 'mobile-section-sheet': true, 'mobile-section-sheet--closing': this.sheetClosing }}\n aria-label={this.navigationLabel}\n tabIndex={-1}\n onCancel={event => {\n event.preventDefault();\n this.closeMenu();\n }}\n onKeyDown={this.handleSheetKeyDown}\n onClick={event => {\n if (!this.dialogEl || event.target !== this.dialogEl) return;\n const rect = this.dialogEl.getBoundingClientRect();\n if (\n event.clientY < rect.top ||\n event.clientY > rect.bottom ||\n event.clientX < rect.left ||\n event.clientX > rect.right\n )\n this.closeMenu();\n }}\n >\n <div class=\"mobile-section-sheet__items\" role=\"menu\" aria-label={this.navigationLabel}>\n {this.resolvedSections.map(section =>\n isTabDivider(section) ? (\n <div class=\"mobile-section-sheet__divider\" role=\"separator\" />\n ) : (\n <button\n type=\"button\"\n role=\"menuitem\"\n value={section.id}\n disabled={section.isInactive}\n aria-current={section.id === this.selectedSection?.id ? 'page' : undefined}\n tabIndex={section.id === this.focusedSection ? 0 : -1}\n class={{\n 'mobile-section-sheet__item': true,\n 'ds-control--lg': true,\n 'ds-interaction-fill': true,\n 'ds-focus-ring-inset': true,\n 'ds-focus-ring--visible':\n this.initialFocusVisible && section.id === this.focusedSection,\n }}\n onFocus={() => {\n this.focusedSection = section.id;\n }}\n onClick={() => {\n if (this.sheetClosing || section.isInactive) return;\n this.closeMenu();\n if (section.id !== this.selectedSection?.id) this.dsChange.emit(section.id);\n }}\n >\n <ds-text\n class=\"mobile-section-sheet__label ds-interaction-fill__content\"\n as=\"span\"\n variant=\"text-body-large\"\n color=\"inherit\"\n emphasis={section.id === this.selectedSection?.id}\n lineTruncation={1}\n >\n {section.label}\n </ds-text>\n </button>\n )\n )}\n </div>\n <div\n ref={element => {\n if (this.browserEdgeEl !== element) this.browserEdgeColors = '';\n this.browserEdgeEl = element ?? null;\n }}\n class=\"mobile-section-sheet__browser-edge\"\n aria-hidden=\"true\"\n />\n </dialog>\n );\n }\n\n private handleSelect = (event: CustomEvent<MenuItemData>) => {\n const id = String(event.detail.value ?? '');\n const section = this.selectableSections.find(candidate => candidate.id === id);\n if (!section || section.isInactive) return;\n this.closeMenu();\n if (id !== this.selectedSection?.id) this.dsChange.emit(id);\n requestAnimationFrame(() => this.triggerEl?.focus());\n };\n\n render() {\n const selected = this.selectedSection;\n if (!selected) return <Host />;\n const combined = this.presentation === 'sheet' && !!this.pageLabel;\n\n return (\n <Host\n class={{ 'mobile-section-switcher--pointer-focus': this.pointerFocus }}\n onPointerDown={() => {\n this.pointerFocus = true;\n this.initialFocusVisible = false;\n }}\n >\n <button\n ref={element => {\n this.triggerEl = element ?? null;\n }}\n id={this.triggerId}\n class={{\n 'mobile-section-switcher': true,\n 'mobile-section-switcher--expanded': this.menuOpen,\n 'ds-interaction-fill--surface-open':\n this.menuSurfaceOpen || this.menuOpen || this.sheetClosing,\n 'mobile-section-switcher--sheet': this.presentation === 'sheet',\n 'mobile-section-switcher--combined': combined,\n 'ds-focus-ring-inset': true,\n 'ds-interaction-fill': true,\n }}\n type=\"button\"\n aria-haspopup={this.presentation === 'sheet' ? 'dialog' : 'menu'}\n aria-controls={this.menuId}\n aria-expanded={String(this.menuOpen)}\n aria-label={this.triggerAriaLabel}\n onClick={this.toggleMenu}\n >\n {this.presentation === 'menu' ? (\n <span\n class={{\n 'mobile-section-switcher__position': true,\n 'mobile-section-switcher__position--visible': this.hasPrevious,\n 'ds-interaction-fill__content': true,\n }}\n aria-hidden=\"true\"\n />\n ) : null}\n {combined\n ? [\n <ds-text\n class=\"mobile-section-switcher__page-label ds-interaction-fill__content\"\n as=\"span\"\n variant=\"text-body-large\"\n emphasis\n color=\"inherit\"\n lineTruncation={1}\n >\n {this.pageLabel}\n </ds-text>,\n <ds-text\n class=\"mobile-section-switcher__separator ds-interaction-fill__content\"\n as=\"span\"\n variant=\"text-body-large\"\n color=\"inherit\"\n aria-hidden=\"true\"\n >\n ·\n </ds-text>,\n ]\n : null}\n <ds-text\n class=\"mobile-section-switcher__label ds-interaction-fill__content\"\n as=\"span\"\n variant={this.presentation === 'sheet' ? 'text-body-large' : 'text-body-medium'}\n emphasis\n color=\"inherit\"\n lineTruncation={1}\n >\n {selected.label}\n </ds-text>\n {this.presentation === 'menu' ? (\n <span\n class={{\n 'mobile-section-switcher__position': true,\n 'mobile-section-switcher__position--visible': this.hasNext,\n 'ds-interaction-fill__content': true,\n }}\n aria-hidden=\"true\"\n />\n ) : null}\n </button>\n\n {this.presentation === 'sheet' || this.sheetClosing ? (\n this.renderSheet()\n ) : this.selectableSections.length > 1 ? (\n <ds-menu\n id={this.menuId}\n anchorId={this.triggerId}\n align=\"center\"\n menuLabel={this.navigationLabel}\n open={this.menuOpen}\n initialFocusVisible={this.initialFocusVisible}\n sections={this.menuSections}\n onDsClose={this.closeMenu}\n onDsAfterClose={() => {\n if (!this.menuOpen) this.menuSurfaceOpen = false;\n }}\n onDsSelect={this.handleSelect}\n />\n ) : null}\n </Host>\n );\n }\n}\n"],"mappings":"+YAUM,SAAUA,EACdC,EACAC,GAEA,MAAMC,EAAaC,EAAkBH,GACrC,MAAMI,EAAeF,EAAWG,WAAUC,GAAWA,EAAQC,KAAON,IACpE,MAAMO,EAAgBJ,GAAgB,EAAIA,EAAe,EACzD,MAAO,CACLI,gBACAC,SAAUP,EAAWM,GACrBE,YAAaF,EAAgB,EAC7BG,QAASH,EAAgBN,EAAWU,OAAS,EAEjD,CCvBA,MAAMC,EAA2B,IAAM,ispBCqBvC,IAAIC,EAA8B,E,MAOrBC,EAAqBC,EAAA,MAAAD,UAAAE,EALlC,WAAAC,CAAAC,G,+EASUC,KAAApB,SAAsB,GAEtBoB,KAAAnB,MAAgB,GAEhBmB,KAAAC,gBAA0B,sBAE1BD,KAAAE,aAAiC,OAEjCF,KAAAG,UAAoB,GAKXH,KAAAI,SAAW,MACXJ,KAAAK,gBAAkB,MAClBL,KAAAM,oBAAsB,MACtBN,KAAAO,aAAe,MACfP,KAAAQ,aAAe,MACfR,KAAAS,eAAiB,GAEjBT,KAAAU,WAAahB,IACbM,KAAAW,UAAY,sCAAsCX,KAAKU,aACvDV,KAAAY,OAAS,mCAAmCZ,KAAKU,aAC1DV,KAAAa,UAAsC,KACtCb,KAAAc,SAAqC,KACrCd,KAAAe,cAAuC,KACvCf,KAAAgB,kBAAoB,GAEpBhB,KAAAiB,WAAmD,KAG1CjB,KAAAkB,sBAAyBC,IACxC,GAAI,CAAC,QAAS,UAAW,MAAO,QAAQC,SAASD,EAAME,KAAM,OAC7DrB,KAAKO,aAAe,KAAK,EA8DnBP,KAAAsB,uBAAyB,KAC/B,IAAKtB,KAAKe,gBAAkBf,KAAKc,SAAU,OAC3C,MAAMS,EAAOC,iBAAiBxB,KAAKe,eAAeU,MAClD,MAAMC,EAAQF,iBAAiBxB,KAAKc,SAAU,cAAca,gBAC5D,MAAMC,EAAS,GAAGL,KAAQG,IAC1B,GAAIE,IAAW5B,KAAKgB,kBAAmB,OAGvC,MAAMa,EAAS7B,KAAK8B,GAAGC,cAAcC,cAAc,UACnDH,EAAOI,MAAQJ,EAAOK,OAAS,EAC/B,MAAMC,EAAUN,EAAOO,WAAW,MAClC,IAAKD,EAAS,OACdA,EAAQE,UAAYd,EACpBY,EAAQG,SAAS,EAAG,EAAG,EAAG,GAC1BH,EAAQE,UAAYX,EACpBS,EAAQG,SAAS,EAAG,EAAG,EAAG,GAC1B,MAAOC,EAAKC,EAAOC,GAAQN,EAAQO,aAAa,EAAG,EAAG,EAAG,GAAGC,KAC5D3C,KAAKe,cAAc6B,MAAMC,YACvB,+BACA,OAAON,MAAQC,MAAUC,MAE3BzC,KAAKgB,kBAAoBY,CAAM,EAyBzB5B,KAAA8C,mBAAsB3B,IAC5B,GAAIA,EAAME,MAAQ,SAAU,CAC1BF,EAAM4B,iBACN5B,EAAM6B,kBACNhD,KAAKiD,YACL,M,CAEF,MAAMrE,EAAWoB,KAAKkD,mBAAmBC,QAAOjE,IAAYA,EAAQkE,aACpE,IAAKxE,EAASY,OAAQ,OACtB,MAAM6D,EAAQC,KAAKC,IACjB,EACA3E,EAASK,WAAUC,GAAWA,EAAQC,KAAOa,KAAKS,kBAEpD,IAAI+C,EACJ,GAAIrC,EAAME,MAAQ,YAAamC,GAAQH,EAAQ,GAAKzE,EAASY,YACxD,GAAI2B,EAAME,MAAQ,UAAWmC,GAAQH,EAAQzE,EAASY,OAAS,GAAKZ,EAASY,YAC7E,GAAI2B,EAAME,MAAQ,OAAQmC,EAAO,OACjC,GAAIrC,EAAME,MAAQ,MAAOmC,EAAO5E,EAASY,OAAS,OAClD,GAAI2B,EAAME,MAAQ,MAAOmC,EAAOH,OAChC,GACHlC,EAAME,IAAI7B,SAAW,IACpB2B,EAAMsC,UACNtC,EAAMuC,UACNvC,EAAMwC,QACPxC,EAAME,MAAQ,IACd,CACA,MAAMuC,EAAQhF,EAASK,WAAU,CAAC4E,EAAGC,IACnClF,GAAUyE,EAAQS,EAAS,GAAKlF,EAASY,QAAQuE,MAC9CC,cACAC,WAAW9C,EAAME,IAAI2C,iBAE1B,GAAIJ,EAAQ,EAAG,OACfJ,GAAQH,EAAQO,EAAQ,GAAKhF,EAASY,M,MACjC,OACP2B,EAAM4B,iBACN/C,KAAKM,oBAAsB,KAC3BN,KAAKkE,eAAetF,EAAS4E,GAAMrE,GAAG,EAgEhCa,KAAAmE,WAAchD,IACpB,GAAInB,KAAKkD,mBAAmB1D,QAAU,EAAG,OACzCQ,KAAKM,oBAAsBa,EAAMiD,SAAW,EAC5C,GAAIpE,KAAKE,eAAiB,QAAS,CACjC,GAAIF,KAAKI,SAAUJ,KAAKiD,gBACnB,CACHjD,KAAKS,eAAiBT,KAAKqE,iBAAiBlF,IAAM,GAClDa,KAAKI,SAAW,I,CAElB,M,CAEFJ,KAAKI,UAAYJ,KAAKI,SACtB,GAAIJ,KAAKI,SAAUJ,KAAKK,gBAAkB,IAAI,EAGxCL,KAAAiD,UAAY,KAClBjD,KAAKI,SAAW,MAChB,GAAIJ,KAAKc,UAAUwD,KAAMtE,KAAKQ,aAAe,IAAI,EAqF3CR,KAAAuE,aAAgBpD,IACtB,MAAMhC,EAAKqF,OAAOrD,EAAMiD,OAAOvF,OAAS,IACxC,MAAMK,EAAUc,KAAKkD,mBAAmBuB,MAAKC,GAAaA,EAAUvF,KAAOA,IAC3E,IAAKD,GAAWA,EAAQkE,WAAY,OACpCpD,KAAKiD,YACL,GAAI9D,IAAOa,KAAKqE,iBAAiBlF,GAAIa,KAAK2E,SAASC,KAAKzF,GACxD0F,uBAAsB,IAAM7E,KAAKa,WAAWiE,SAAQ,CAkHvD,CA3aC,gBAAAC,GACE/E,KAAK8B,GAAGC,cAAciD,iBAAiB,UAAWhF,KAAKkB,sBAAuB,MAC9ElB,KAAKiF,mBAAqB,IAAIC,gBAAe,KAC3C,GAAIlF,KAAKc,UAAUwD,OAAStE,KAAKa,WAAWsE,iBAAiB3F,OAAQ,CACnEQ,KAAKoF,iBAAiB,M,KAG1BpF,KAAKiF,mBAAmBI,QAAQrF,KAAK8B,G,CAGvC,kBAAAwD,GACE,IAAKtF,KAAKc,SAAU,OACpB,GAAId,KAAKE,eAAiB,SAAWF,KAAKI,WAAaJ,KAAKc,SAASwD,KAAM,CACzE,MAAMiB,EAAiBvF,KAAKS,eAC5BT,KAAKsB,yBACLtB,KAAKwF,0BACLxF,KAAKc,SAAS2E,YACdzF,KAAKkE,eAAeqB,E,CAEtB,GAAIvF,KAAKQ,cAAgBR,KAAKc,SAASwD,OAAStE,KAAKiB,WAAY,CAC/D,MAAMyE,EAAWC,EACfC,EAAeC,aACfD,EAAeE,yBAEjB,IAAKJ,EAAU1F,KAAKoF,wBACfpF,KAAKiB,WAAa8E,YAAW,IAAM/F,KAAKoF,oBAAoBM,E,EAIrE,oBAAAM,GACEhG,KAAK8B,GAAGC,cAAckE,oBAAoB,UAAWjG,KAAKkB,sBAAuB,MACjFlB,KAAKiF,oBAAoBiB,aACzBlG,KAAKK,gBAAkB,MACvBL,KAAKoF,iBAAiB,M,CAIxB,wBAAAe,GACEnG,KAAKK,gBAAkB,MACvBL,KAAKiD,W,CAKP,mBAAAmD,GACEpG,KAAKiD,W,CAGC,gBAAAmC,CAAiBiB,EAAe,MACtC,GAAIrG,KAAKiB,WAAYqF,aAAatG,KAAKiB,YACvCjB,KAAKiB,WAAa,KAClB,MAAMsF,EAAUvG,KAAKc,UAAUwD,KAC/BtE,KAAKc,UAAU0F,QACfxG,KAAKyG,eAAeP,aACpBlG,KAAKI,SAAW,MAChBJ,KAAKQ,aAAe,MACpB,GAAI+F,GAAWF,GAAgBrG,KAAKa,WAAWsE,iBAAiB3F,OAAQQ,KAAKa,UAAUiE,O,CA2BjF,uBAAAU,GACNxF,KAAKyG,gBAALzG,KAAKyG,cAAkB,IAAIC,iBAAiB1G,KAAKsB,yBAEjD,IAAK,IAAIqF,EAA+B3G,KAAK8B,GAAI6E,EAAUA,EAAWA,EAASC,cAAe,CAC5F5G,KAAKyG,cAAcpB,QAAQsB,EAAU,CACnCE,WAAY,KACZC,gBAAiB,CAAC,QAAS,QAAS,e,EAKlC,cAAA5C,CAAe/E,GACrB,MAAM4H,EAAUC,MAAMC,KAAKjH,KAAKc,UAAUoG,iBAAoC,WAAa,IAC3F,MAAMC,EACJJ,EAAQtC,MAAK2C,GAAQA,EAAKvI,QAAUM,IAAOiI,EAAKC,YAChDN,EAAQtC,MAAK2C,IAASA,EAAKC,WAC7B,GAAIF,EAAQ,CACVnH,KAAKS,eAAiB0G,EAAOtI,MAC7BsI,EAAOrC,O,MACF9E,KAAKc,UAAUgE,O,CA0CxB,oBAAYwC,GACV,OAAOtH,KAAKpB,UAAY,E,CAG1B,sBAAYsE,GACV,OAAOnE,EAAkBiB,KAAKsH,iB,CAGhC,iBAAYlI,GACV,OAAOT,EAA6BqB,KAAKsH,iBAAkBtH,KAAKnB,OAAOO,a,CAGzE,mBAAYiF,GACV,OAAOrE,KAAKkD,mBAAmBlD,KAAKZ,c,CAGtC,eAAYE,GACV,OAAOX,EAA6BqB,KAAKsH,iBAAkBtH,KAAKnB,OAAOS,W,CAGzE,WAAYC,GACV,OAAOZ,EAA6BqB,KAAKsH,iBAAkBtH,KAAKnB,OAAOU,O,CAGzE,oBAAYgI,GACV,MAAO,GAAGvH,KAAKE,eAAiB,SAAWF,KAAKG,UAAY,GAAGH,KAAKG,cAAgB,KAAKH,KAAKC,qCAAqCD,KAAKqE,iBAAiBN,OAAS,I,CAGpK,gBAAYyD,GACV,MAAMC,EAAwB,GAC9B,IAAIC,EAAwB,GAC5B,MAAMC,EAAS,KACb,GAAID,EAAMlI,OAAQiI,EAAOG,KAAK,CAAEF,UAChCA,EAAQ,EAAE,EAGZ,IAAK,MAAMxI,KAAWc,KAAKsH,iBAAkB,CAC3C,GAAIO,EAAa3I,GAAU,CACzByI,IACA,Q,CAEFD,EAAME,KAAK,CACT7D,MAAO7E,EAAQ6E,MACflF,MAAOK,EAAQC,GACf2I,IAAK5I,EAAQ4I,IACbC,WAAY7I,EAAQC,KAAOa,KAAKqE,iBAAiBlF,GACjDiE,WAAYlE,EAAQkE,Y,CAGxBuE,IACA,OAAOF,C,CAIT,oBAAAO,GACE,GAAIhI,KAAKkD,mBAAmB1D,QAAU,EAAG,CACvCQ,KAAKiD,YACLjD,KAAKK,gBAAkB,K,MAClB,GAAIL,KAAKc,UAAUwD,OAAStE,KAAKQ,aAAcR,KAAKkE,eAAelE,KAAKS,e,CAuBzE,WAAAwH,GACN,OACEC,EAAA,UACE/I,GAAIa,KAAKY,OACTuH,IAAKC,IACHpI,KAAKc,SAAWsH,GAAW,IAAI,EAEjCC,MAAO,CAAE,uBAAwB,KAAM,gCAAiCrI,KAAKQ,cAAc,aAC/ER,KAAKC,gBACjBqI,UAAU,EACVC,SAAUpH,IACRA,EAAM4B,iBACN/C,KAAKiD,WAAW,EAElBuF,UAAWxI,KAAK8C,mBAChB2F,QAAStH,IACP,IAAKnB,KAAKc,UAAYK,EAAMuH,SAAW1I,KAAKc,SAAU,OACtD,MAAM6H,EAAO3I,KAAKc,SAAS8H,wBAC3B,GACEzH,EAAM0H,QAAUF,EAAKG,KACrB3H,EAAM0H,QAAUF,EAAKI,QACrB5H,EAAM6H,QAAUL,EAAKM,MACrB9H,EAAM6H,QAAUL,EAAKO,MAErBlJ,KAAKiD,WAAW,GAGpBiF,EAAA,OAAKG,MAAM,8BAA8Bc,KAAK,OAAM,aAAanJ,KAAKC,iBACnED,KAAKsH,iBAAiB8B,KAAIlK,GACzB2I,EAAa3I,GACXgJ,EAAA,OAAKG,MAAM,gCAAgCc,KAAK,cAEhDjB,EAAA,UACEmB,KAAK,SACLF,KAAK,WACLtK,MAAOK,EAAQC,GACfkI,SAAUnI,EAAQkE,WAAU,eACdlE,EAAQC,KAAOa,KAAKqE,iBAAiBlF,GAAK,OAASmK,UACjEhB,SAAUpJ,EAAQC,KAAOa,KAAKS,eAAiB,GAAI,EACnD4H,MAAO,CACL,6BAA8B,KAC9B,iBAAkB,KAClB,sBAAuB,KACvB,sBAAuB,KACvB,yBACErI,KAAKM,qBAAuBpB,EAAQC,KAAOa,KAAKS,gBAEpD8I,QAAS,KACPvJ,KAAKS,eAAiBvB,EAAQC,EAAE,EAElCsJ,QAAS,KACP,GAAIzI,KAAKQ,cAAgBtB,EAAQkE,WAAY,OAC7CpD,KAAKiD,YACL,GAAI/D,EAAQC,KAAOa,KAAKqE,iBAAiBlF,GAAIa,KAAK2E,SAASC,KAAK1F,EAAQC,GAAG,GAG7E+I,EAAA,WACEG,MAAM,2DACNmB,GAAG,OACHC,QAAQ,kBACRhI,MAAM,UACNiI,SAAUxK,EAAQC,KAAOa,KAAKqE,iBAAiBlF,GAC/CwK,eAAgB,GAEfzK,EAAQ6E,WAMnBmE,EAAA,OACEC,IAAKC,IACH,GAAIpI,KAAKe,gBAAkBqH,EAASpI,KAAKgB,kBAAoB,GAC7DhB,KAAKe,cAAgBqH,GAAW,IAAI,EAEtCC,MAAM,qCAAoC,cAC9B,S,CAepB,MAAAuB,GACE,MAAMvK,EAAWW,KAAKqE,gBACtB,IAAKhF,EAAU,OAAO6I,EAAC2B,EAAI,MAC3B,MAAMC,EAAW9J,KAAKE,eAAiB,WAAaF,KAAKG,UAEzD,OACE+H,EAAC2B,EAAI,CACHxB,MAAO,CAAE,yCAA0CrI,KAAKO,cACxDwJ,cAAe,KACb/J,KAAKO,aAAe,KACpBP,KAAKM,oBAAsB,KAAK,GAGlC4H,EAAA,UACEC,IAAKC,IACHpI,KAAKa,UAAYuH,GAAW,IAAI,EAElCjJ,GAAIa,KAAKW,UACT0H,MAAO,CACL,0BAA2B,KAC3B,oCAAqCrI,KAAKI,SAC1C,oCACEJ,KAAKK,iBAAmBL,KAAKI,UAAYJ,KAAKQ,aAChD,iCAAkCR,KAAKE,eAAiB,QACxD,oCAAqC4J,EACrC,sBAAuB,KACvB,sBAAuB,MAEzBT,KAAK,SAAQ,gBACErJ,KAAKE,eAAiB,QAAU,SAAW,OAAM,gBACjDF,KAAKY,OAAM,gBACX4D,OAAOxE,KAAKI,UAAS,aACxBJ,KAAKuH,iBACjBkB,QAASzI,KAAKmE,YAEbnE,KAAKE,eAAiB,OACrBgI,EAAA,QACEG,MAAO,CACL,oCAAqC,KACrC,6CAA8CrI,KAAKV,YACnD,+BAAgC,MACjC,cACW,SAEZ,KACHwK,EACG,CACE5B,EAAA,WACEG,MAAM,mEACNmB,GAAG,OACHC,QAAQ,kBACRC,SAAQ,KACRjI,MAAM,UACNkI,eAAgB,GAEf3J,KAAKG,WAER+H,EAAA,WACEG,MAAM,kEACNmB,GAAG,OACHC,QAAQ,kBACRhI,MAAM,UAAS,cACH,QAAM,MAKtB,KACJyG,EAAA,WACEG,MAAM,8DACNmB,GAAG,OACHC,QAASzJ,KAAKE,eAAiB,QAAU,kBAAoB,mBAC7DwJ,SAAQ,KACRjI,MAAM,UACNkI,eAAgB,GAEftK,EAAS0E,OAEX/D,KAAKE,eAAiB,OACrBgI,EAAA,QACEG,MAAO,CACL,oCAAqC,KACrC,6CAA8CrI,KAAKT,QACnD,+BAAgC,MACjC,cACW,SAEZ,MAGLS,KAAKE,eAAiB,SAAWF,KAAKQ,aACrCR,KAAKiI,cACHjI,KAAKkD,mBAAmB1D,OAAS,EACnC0I,EAAA,WACE/I,GAAIa,KAAKY,OACToJ,SAAUhK,KAAKW,UACfsJ,MAAM,SACNC,UAAWlK,KAAKC,gBAChBqE,KAAMtE,KAAKI,SACXE,oBAAqBN,KAAKM,oBAC1B1B,SAAUoB,KAAKwH,aACf2C,UAAWnK,KAAKiD,UAChBmH,eAAgB,KACd,IAAKpK,KAAKI,SAAUJ,KAAKK,gBAAkB,KAAK,EAElDgK,WAAYrK,KAAKuE,eAEjB,K","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{p as n,H as e,c as r,h as i,a as s,t as a}from"./index.js";import{d as o}from"./p-CwdRaJER.js";import{d as t}from"./p-D6FRqNhN.js";import{d}from"./p-DjkUFlDW.js";import{d as c}from"./p-0XTyQNRG.js";import{d as l}from"./p-D8OWhnID.js";import{d as f}from"./p-DIQiHX0q.js";const u=[{label:"Today",value:"today",days:1,offset:0},{label:"Yesterday",value:"yesterday",days:1,offset:-1},{label:"Last 7 days",value:"last-7-days",days:7,offset:0},{label:"Last 14 days",value:"last-14-days",days:14,offset:0},{label:"Last 30 days",value:"last-30-days",days:30,offset:0},{label:"Last 60 days",value:"last-60-days",days:60,offset:0},{label:"Last 90 days",value:"last-90-days",days:90,offset:0}];const v=/^\d{4}-\d{2}-\d{2}$/;const h=new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric",timeZone:"UTC"});function g(n){if(!v.test(n))return false;const[e,r,i]=n.split("-").map(Number);const s=new Date(Date.UTC(e,r-1,i));return s.getUTCFullYear()===e&&s.getUTCMonth()===r-1&&s.getUTCDate()===i}function m(n){if(!g(n))return"";return h.format(new Date(`${n}T00:00:00Z`))}const b=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"];function p(n){const e=n.trim();if(!e)return"";if(g(e))return e;const r=e.match(/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/);if(r){const n=`${r[3]}-${r[1].padStart(2,"0")}-${r[2].padStart(2,"0")}`;return g(n)?n:""}const i=e.match(/^([A-Za-z]{3})\s+(\d{1,2}),\s+(\d{4})$/);if(!i)return"";const s=b.indexOf(i[1].toLowerCase());if(s<0)return"";const a=`${i[3]}-${String(s+1).padStart(2,"0")}-${i[2].padStart(2,"0")}`;return g(a)?a:""}function y(n,e){if(!g(n))return"";const[r,i,s]=n.split("-").map(Number);const a=new Date(Date.UTC(r,i-1,s+e));return a.toISOString().slice(0,10)}function w(n){return`relative:${n}`}function k(n,e=n){const r=n<=e?[n,e]:[e,n];return`range:${r[0]}/${r[1]}`}function x(n){if(typeof n!=="string"||!n)return null;if(n.startsWith("relative:")){const e=n.slice("relative:".length);return u.some((n=>n.value===e))?{kind:"relative",preset:e}:null}if(n.startsWith("range:")){const[e,r,...i]=n.slice("range:".length).split("/");if(i.length||!g(e)||!g(r))return null;return e<=r?{kind:"range",start:e,end:r}:{kind:"range",start:r,end:e}}return g(n)?{kind:"range",start:n,end:n}:null}const D=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];const $=new Intl.DateTimeFormat("en-US",{month:"long",year:"numeric",timeZone:"UTC"});const T=new Intl.DateTimeFormat("en-US",{weekday:"long",month:"long",day:"numeric",year:"numeric",timeZone:"UTC"});function C(){const n=new Date;const e=n.getFullYear();const r=String(n.getMonth()+1).padStart(2,"0");const i=String(n.getDate()).padStart(2,"0");return`${e}-${r}-${i}`}function z(n){return g(n)?n.slice(0,7):C().slice(0,7)}function j(n,e){const[r,i]=n.split("-").map(Number);const s=new Date(Date.UTC(r,i-1+e,1));return`${s.getUTCFullYear()}-${String(s.getUTCMonth()+1).padStart(2,"0")}`}function E(n){const[e,r]=n.split("-").map(Number);return $.format(new Date(Date.UTC(e,r-1,1)))}function L(n){const[e,r]=n.split("-").map(Number);const i=`${e}-${String(r).padStart(2,"0")}-01`;const s=new Date(`${i}T00:00:00Z`).getUTCDay();const a=y(i,-s);return Array.from({length:42},((e,r)=>{const i=y(a,r);const s=new Date(`${i}T00:00:00Z`);return{value:i,day:s.getUTCDate(),inMonth:i.startsWith(`${n}-`),label:T.format(s)}}))}function _(n,e,r){return n?e:r}const S=()=>`.sc-ds-calendar-h,.sc-ds-calendar:where(.ds-table),.sc-ds-calendar:where(.tooltip-popup),.sc-ds-calendar: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-calendar,.ds-control--lg.sc-ds-calendar-h,.ds-control--md.sc-ds-calendar-h,.ds-control--md.sc-ds-calendar,.ds-control--sm.sc-ds-calendar-h,.ds-control--sm.sc-ds-calendar,.ds-control--xs.sc-ds-calendar-h,.ds-control--xs.sc-ds-calendar{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-calendar-h,.ds-control--lg.sc-ds-calendar{--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-calendar-h,.ds-control--md.sc-ds-calendar{--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-calendar-h,.ds-control--sm.sc-ds-calendar{--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-calendar-h,.ds-control--xs.sc-ds-calendar{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}@media (forced-colors: active){.sc-ds-calendar:root,.sc-ds-calendar-h,.ds-forced-colors-scope.sc-ds-calendar{--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-calendar-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-calendar-h,.ds-focus-ring.sc-ds-calendar,.ds-focus-ring-inset.sc-ds-calendar-h,.ds-focus-ring-inset.sc-ds-calendar{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-calendar-h:focus-visible,.ds-focus-ring.sc-ds-calendar: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-calendar-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-calendar{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-calendar-h:focus-visible,.ds-focus-ring-inset.sc-ds-calendar:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-calendar-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-calendar: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-calendar-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-calendar{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-calendar-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-calendar::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-calendar-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-calendar:root,.sc-ds-calendar-h,.ds-forced-colors-scope.sc-ds-calendar{--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-calendar-h,.ds-interaction-fill.sc-ds-calendar{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-calendar-h::before,.ds-interaction-fill.sc-ds-calendar::before,.ds-interaction-fill.sc-ds-calendar-h::after,.ds-interaction-fill.sc-ds-calendar::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-calendar-h::before,.ds-interaction-fill.sc-ds-calendar::before{z-index:1}.ds-interaction-fill.sc-ds-calendar-h::after,.ds-interaction-fill.sc-ds-calendar::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-calendar-h,.ds-interaction-fill--bordered.sc-ds-calendar{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-calendar-h::before,.ds-interaction-fill--selected.sc-ds-calendar::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-calendar-h,.ds-interaction-fill--selected.sc-ds-calendar{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-calendar-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-calendar:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-calendar-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-calendar:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-calendar-h::after,.ds-interaction-fill--grouped.sc-ds-calendar::after,.ds-interaction-fill--grouped.sc-ds-calendar-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-calendar:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-calendar-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-calendar:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-calendar-h,.ds-interaction-fill--grouped.sc-ds-calendar{--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-calendar-h>.ds-interaction-fill__content.sc-ds-calendar,.ds-interaction-fill.sc-ds-calendar>.ds-interaction-fill__content.sc-ds-calendar,.ds-interaction-fill__content.sc-ds-calendar{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-calendar-h,.ds-interaction-fill--on-faint.sc-ds-calendar{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-calendar-h,.ds-interaction-fill--on-medium.sc-ds-calendar{--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-calendar-h,.ds-interaction-fill--on-bold.sc-ds-calendar{--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-calendar-h,.ds-interaction-fill--on-strong.sc-ds-calendar{--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-calendar-h,.ds-interaction-fill--on-translucent.sc-ds-calendar{--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-calendar-h,.ds-interaction-fill--on-inverted.sc-ds-calendar{--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-calendar-h,.ds-interaction-fill--on-media.sc-ds-calendar{--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-calendar-h,.ds-interaction-fill--on-always-dark.sc-ds-calendar{--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-calendar-h,.ds-interaction-fill--on-chrome.sc-ds-calendar{--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-calendar-h,.ds-interaction-fill--on-navigation.sc-ds-calendar{--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-calendar-h:not(:disabled)::after,.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-calendar:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-calendar-h::after,.ds-interaction-fill.sc-ds-calendar::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-calendar-h:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill--surface-open.sc-ds-calendar: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-calendar-h::before,.ds-interaction-fill--selected.sc-ds-calendar::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-calendar-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-calendar: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-calendar:root,.sc-ds-calendar-h,.ds-forced-colors-scope.sc-ds-calendar{--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-calendar-h{display:flex;min-height:0;flex-direction:column}.calendar.sc-ds-calendar{display:flex;min-height:0;flex-direction:column;min-width:calc( (var(--dimension-size-400) * 7) + (var(--dimension-space-050) * 6) + (var(--dimension-space-100) * 2) );padding:var(--ds-calendar-padding, var(--dimension-space-100))}.calendar-heading.sc-ds-calendar{display:grid;grid-template-columns:var(--dimension-size-400) minmax(0, 1fr) var(--dimension-size-400);align-items:center;text-align:center}.calendar-nav--previous.sc-ds-calendar{justify-self:start}.calendar-nav--next.sc-ds-calendar{justify-self:end}.calendar-weekdays.sc-ds-calendar,.calendar-grid__row.sc-ds-calendar{display:grid;grid-template-columns:repeat(7, minmax(0, 1fr));column-gap:var(--dimension-space-050)}.calendar-grid.sc-ds-calendar{display:flex;flex-direction:column;row-gap:var(--dimension-space-050)}.calendar-weekdays.sc-ds-calendar{align-items:center;min-height:var(--dimension-size-400);margin-block-start:var(--dimension-space-050);color:var(--color-foreground-secondary);text-align:center}.calendar-day.sc-ds-calendar{appearance:none;position:relative;display:flex;align-items:center;justify-content:center;min-width:0;width:100%;height:var(--dimension-size-400);padding:0;border:0;border-radius:var(--dimension-radius-025);background:transparent;color:var(--color-foreground-primary);cursor:default}.calendar-day.sc-ds-calendar:disabled{cursor:not-allowed}.calendar-day--outside.sc-ds-calendar{color:var(--color-foreground-tertiary)}.calendar-day--in-range.sc-ds-calendar{background:var(--color-background-faint-brand);color:var(--color-foreground-primary)}.calendar-day.ds-interaction-fill.calendar-day--range-preview.sc-ds-calendar:not(:disabled)::after{background:var(--ds-interaction-hover)}.calendar-day.ds-interaction-fill.calendar-day--range-preview.sc-ds-calendar:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.calendar-day--today.sc-ds-calendar{color:var(--color-foreground-primary)}.calendar-day--range-edge.sc-ds-calendar{background:var(--color-background-bold-brand);color:var(--color-foreground-on-bold-background-primary)}@media (forced-colors: active){.calendar-day--range-edge.sc-ds-calendar{outline:var(--dimension-stroke-width-012) solid var(--ds-forced-color-content)}}`;const B=n(class n extends e{constructor(n){super();if(n!==false){this.__registerHost()}this.dsChange=r(this,"dsChange",7);this.selectionMode="single";this.value="";this.isInactive=false;this.autoFocus=false;this.month=z(C());this.pendingStart="";this.previewEnd="";this.heldRange=null;this.moveMonth=n=>{this.previewEnd="";this.month=j(this.month,n)};this.selectDate=n=>{if(this.isDisabled(n))return;this.previewEnd="";if(this.selectionMode==="single"){this.pendingStart="";this.heldRange=null;this.dsChange.emit(n);return}const e=this.pendingStart;if(e){this.pendingStart="";this.heldRange=null;this.dsChange.emit(k(e,n));return}const r=x(this.value);this.heldRange=r?.kind==="range"?{start:r.start,end:r.end}:null;this.pendingStart=n;this.dsChange.emit(k(n,n))};this.previewRange=n=>{if(!this.pendingStart||this.previewEnd===n)return;this.previewEnd=n};this.clearPreview=()=>{if(!this.previewEnd)return;this.previewEnd=""};this.handleDayKeyDown=(n,e)=>{let r=null;if(n.key==="ArrowLeft")r=-1;else if(n.key==="ArrowRight")r=1;else if(n.key==="ArrowUp")r=-7;else if(n.key==="ArrowDown")r=7;else if(n.key==="Home"){r=-new Date(`${e}T00:00:00Z`).getUTCDay()}else if(n.key==="End"){r=6-new Date(`${e}T00:00:00Z`).getUTCDay()}else if(n.key==="PageUp"||n.key==="PageDown"){const r=j(z(e),n.key==="PageUp"?-1:1);const i=`${r}-${e.slice(8,10)}`;n.preventDefault();this.focusDate(g(i)?i:`${r}-01`);return}if(r===null)return;n.preventDefault();this.focusDate(y(e,r))}}componentWillLoad(){this.month=z(this.anchorDate())}componentDidLoad(){if(this.autoFocus)void this.setFocus()}onValueChange(){this.month=z(this.anchorDate())}async setFocus(){this.el.querySelector('.calendar-day[tabindex="0"]')?.focus()}anchorDate(){if(this.selectionMode==="range"){const n=x(this.value);if(n?.kind==="range")return n.start;return C()}return g(this.value)?this.value:C()}isDisabled(n){if(this.isInactive)return true;if(this.min&&g(this.min)&&n<this.min)return true;if(this.max&&g(this.max)&&n>this.max)return true;return false}focusDate(n){this.previewRange(n);const e=z(n);if(this.month!==e)this.month=e;requestAnimationFrame((()=>{this.el.querySelector(`[data-date-option="${n}"]`)?.focus()}))}render(){const n=this.selectionMode==="range"?x(this.value):null;const e=n?.kind==="range"?n:null;const r=_(this.pendingStart,this.heldRange,e);const a=L(this.month);const o=Array.from({length:6},((n,e)=>a.slice(e*7,e*7+7)));const t=C();const d=this.pendingStart&&this.previewEnd?[this.pendingStart,this.previewEnd].sort()[0]:null;const c=this.pendingStart&&this.previewEnd?[this.pendingStart,this.previewEnd].sort()[1]:null;const l=this.selectionMode==="single"&&g(this.value)?this.value:"";const f=this.pendingStart||l||r?.end||(this.month===t.slice(0,7)?t:"");const u=a.some((n=>n.value===f))?f:a.find((n=>n.inMonth))?.value??a[0]?.value;return i(s,{key:"7ec88683cc15f2c080770ed4db5a1ef3369e8661"},i("div",{key:"08783e78daf4f59ab38fb5084c8f2806fd51b098",class:"calendar"},i("div",{key:"e1d9d2bce6eb5d38c7e1be5d795fbeb03b8317f6",class:"calendar-heading ds-control--md"},i("ds-button-unfilled",{key:"d14cd644baa8db85a26ce082669da1b25fd62387",class:"calendar-nav calendar-nav--previous",variant:"icon",icon:"ChevronLeft",size:"md",hasBorder:false,isInactive:this.isInactive,ariaLabel:"Previous month",onDsClick:()=>this.moveMonth(-1)}),i("ds-text",{key:"da200b853bfe4b9fda83ba954330d3084bdd8c13",as:"span",variant:"text-body-medium",emphasis:true,color:"primary"},E(this.month)),i("ds-button-unfilled",{key:"279c75a70d88109a81848f39f81a1bf8bf867edb",class:"calendar-nav calendar-nav--next",variant:"icon",icon:"ChevronRight",size:"md",hasBorder:false,isInactive:this.isInactive,ariaLabel:"Next month",onDsClick:()=>this.moveMonth(1)})),i("div",{key:"9c1214a47c0ecdb12a19f624794f75a66b325d20",class:"calendar-weekdays","aria-hidden":"true"},D.map((n=>i("ds-text",{as:"span",variant:"text-body-small",color:"secondary"},n)))),i("div",{key:"dc3848af14cce81ebf3ebea865abab1c3d30b501",class:"calendar-grid",role:"grid","aria-label":E(this.month),onMouseLeave:this.clearPreview},o.map(((n,s)=>i("div",{class:"calendar-grid__row",role:"row",key:`week-${s}`},n.map((n=>{const s=Boolean(e&&n.value>=e.start&&n.value<=e.end);const a=Boolean(r&&n.value>=r.start&&n.value<=r.end);const o=this.selectionMode==="range"&&Boolean(this.pendingStart)&&n.value===this.pendingStart;const f=Boolean(this.pendingStart&&d&&c&&n.value>=d&&n.value<=c&&n.value!==this.pendingStart);const v=this.selectionMode==="range"&&a;const h=Boolean(this.selectionMode==="range"&&r&&(n.value===r.start||n.value===r.end));const g=this.selectionMode==="single"&&n.value===l;const m=h?"on-bold":g||v||o||f||n.value===t?"primary":n.inMonth?"secondary":"tertiary";return i("button",{type:"button",role:"gridcell","data-date-option":n.value,class:{"calendar-day":true,"calendar-day--outside":!n.inMonth,"calendar-day--today":n.value===t,"calendar-day--in-range":v,"calendar-day--range-preview":f,"calendar-day--range-edge":h,"calendar-day--selected":g,"ds-focus-ring-inset":true,"ds-interaction-fill":true,"ds-interaction-fill--on-bold":h,"ds-interaction-fill--surface-open":o&&!this.isDisabled(n.value),"ds-interaction-fill--selected":g&&!this.isDisabled(n.value)},disabled:this.isDisabled(n.value),"aria-label":n.label,"aria-selected":s||g?"true":"false",tabIndex:n.value===u?0:-1,onMouseEnter:()=>this.previewRange(n.value),onFocus:()=>this.previewRange(n.value),onClick:()=>this.selectDate(n.value),onKeyDown:e=>this.handleDayKeyDown(e,n.value)},i("ds-text",{class:"ds-interaction-fill__content",as:"span",variant:"text-body-medium",color:m,emphasis:n.value===t},n.day))}))))))))}get el(){return this}static get watchers(){return{value:[{onValueChange:0}]}}static get style(){return S()}},[2,"ds-calendar",{selectionMode:[1,"selection-mode"],value:[1],min:[1],max:[1],isInactive:[4,"is-inactive"],autoFocus:[4,"auto-focus"],month:[32],pendingStart:[32],previewEnd:[32],heldRange:[32],setFocus:[64]},undefined,{value:[{onValueChange:0}]}]);function U(){if(typeof customElements==="undefined"){return}const n=["ds-calendar","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-text","ds-tooltip"];n.forEach((n=>{switch(n){case"ds-calendar":if(!customElements.get(a(n))){customElements.define(a(n),B)}break;case"ds-badge":if(!customElements.get(a(n))){o()}break;case"ds-button-unfilled":if(!customElements.get(a(n))){t()}break;case"ds-icon":if(!customElements.get(a(n))){d()}break;case"ds-loader":if(!customElements.get(a(n))){c()}break;case"ds-text":if(!customElements.get(a(n))){l()}break;case"ds-tooltip":if(!customElements.get(a(n))){f()}break}}))}U();export{B as C,u as D,w as a,p as b,U as d,m as f,g as i,x as p};
2
- //# sourceMappingURL=p-CUDocY23.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["DATE_FILTER_RELATIVE_PRESETS","label","value","days","offset","ISO_DATE_PATTERN","ISO_CALENDAR_DATE_LABEL","Intl","DateTimeFormat","month","day","year","timeZone","isIsoCalendarDate","test","split","map","Number","date","Date","UTC","getUTCFullYear","getUTCMonth","getUTCDate","formatIsoCalendarDateLabel","format","MONTH_LABELS","parseLooseCalendarDate","trimmed","trim","numeric","match","iso","padStart","labelled","monthIndex","indexOf","toLowerCase","String","shiftIsoCalendarDate","toISOString","slice","dateFilterRelativeValue","preset","dateFilterRangeValue","start","end","ordered","parseDateFilterValue","startsWith","length","some","candidate","kind","rest","CALENDAR_WEEKDAYS","MONTH_FORMATTER","DATE_FORMATTER","weekday","calendarToday","today","getFullYear","getMonth","getDate","calendarMonth","shiftCalendarMonth","calendarMonthLabel","calendarDays","firstOfMonth","firstWeekday","getUTCDay","gridStart","Array","from","_","index","dateValue","inMonth","calendarPaintedRange","pendingStart","heldRange","valueRange","calendarCss","Calendar","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","selectionMode","isInactive","autoFocus","previewEnd","moveMonth","selectDate","isDisabled","dsChange","emit","pending","current","previewRange","clearPreview","handleDayKeyDown","event","key","preventDefault","focusDate","componentWillLoad","anchorDate","componentDidLoad","setFocus","onValueChange","el","querySelector","focus","parsed","min","max","targetMonth","requestAnimationFrame","render","liveRange","liveRangeValue","rangeValue","weeks","previewStart","sort","previewFinish","selectedSingle","preferredFocus","find","h","Host","class","variant","icon","size","hasBorder","ariaLabel","onDsClick","as","emphasis","color","role","onMouseLeave","week","weekIndex","selectedInRange","Boolean","paintedInRange","pendingStartDay","previewInRange","inRange","rangeEdge","selected","textColor","type","disabled","tabIndex","onMouseEnter","onFocus","onClick","onKeyDown"],"sources":["src/wc/utils/date-filter-value.ts","src/wc/components/Calendar/calendar-grid.ts","src/wc/components/Calendar/Calendar.css?tag=ds-calendar&encapsulation=scoped","src/wc/components/Calendar/Calendar.tsx"],"sourcesContent":["export const DATE_FILTER_RELATIVE_PRESETS = [\n { label: 'Today', value: 'today', days: 1, offset: 0 },\n { label: 'Yesterday', value: 'yesterday', days: 1, offset: -1 },\n { label: 'Last 7 days', value: 'last-7-days', days: 7, offset: 0 },\n { label: 'Last 14 days', value: 'last-14-days', days: 14, offset: 0 },\n { label: 'Last 30 days', value: 'last-30-days', days: 30, offset: 0 },\n { label: 'Last 60 days', value: 'last-60-days', days: 60, offset: 0 },\n { label: 'Last 90 days', value: 'last-90-days', days: 90, offset: 0 },\n] as const;\n\nexport type DateFilterRelativePreset = (typeof DATE_FILTER_RELATIVE_PRESETS)[number]['value'];\nexport type DateFilterRelativeValue = `relative:${DateFilterRelativePreset}`;\nexport type DateFilterRangeValue = `range:${string}/${string}`;\nexport type DateFilterValue = DateFilterRelativeValue | DateFilterRangeValue;\n\nexport interface DateFilterRange {\n start: string;\n end: string;\n}\n\nexport type ParsedDateFilterValue =\n | { kind: 'relative'; preset: DateFilterRelativePreset }\n | ({ kind: 'range' } & DateFilterRange);\n\nconst ISO_DATE_PATTERN = /^\\d{4}-\\d{2}-\\d{2}$/;\n\nconst ISO_CALENDAR_DATE_LABEL = new Intl.DateTimeFormat('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n timeZone: 'UTC',\n});\n\nexport function isIsoCalendarDate(value: string): boolean {\n if (!ISO_DATE_PATTERN.test(value)) return false;\n const [year, month, day] = value.split('-').map(Number);\n const date = new Date(Date.UTC(year, month - 1, day));\n return (\n date.getUTCFullYear() === year && date.getUTCMonth() === month - 1 && date.getUTCDate() === day\n );\n}\n\n/** Readable calendar date for filled ISO values such as `2026-09-10` → `Sep 10, 2026`. */\nexport function formatIsoCalendarDateLabel(value: string): string {\n if (!isIsoCalendarDate(value)) return '';\n return ISO_CALENDAR_DATE_LABEL.format(new Date(`${value}T00:00:00Z`));\n}\n\nconst MONTH_LABELS = [\n 'jan',\n 'feb',\n 'mar',\n 'apr',\n 'may',\n 'jun',\n 'jul',\n 'aug',\n 'sep',\n 'oct',\n 'nov',\n 'dec',\n];\n\n/** Parse a typed calendar date: ISO, `M/D/YYYY`, or a short-month label such as `Sep 10, 2026`. */\nexport function parseLooseCalendarDate(value: string): string {\n const trimmed = value.trim();\n if (!trimmed) return '';\n if (isIsoCalendarDate(trimmed)) return trimmed;\n\n const numeric = trimmed.match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/);\n if (numeric) {\n const iso = `${numeric[3]}-${numeric[1].padStart(2, '0')}-${numeric[2].padStart(2, '0')}`;\n return isIsoCalendarDate(iso) ? iso : '';\n }\n\n const labelled = trimmed.match(/^([A-Za-z]{3})\\s+(\\d{1,2}),\\s+(\\d{4})$/);\n if (!labelled) return '';\n const monthIndex = MONTH_LABELS.indexOf(labelled[1].toLowerCase());\n if (monthIndex < 0) return '';\n const iso = `${labelled[3]}-${String(monthIndex + 1).padStart(2, '0')}-${labelled[2].padStart(2, '0')}`;\n return isIsoCalendarDate(iso) ? iso : '';\n}\n\nexport function shiftIsoCalendarDate(value: string, days: number): string {\n if (!isIsoCalendarDate(value)) return '';\n const [year, month, day] = value.split('-').map(Number);\n const date = new Date(Date.UTC(year, month - 1, day + days));\n return date.toISOString().slice(0, 10);\n}\n\nexport function dateFilterRelativeValue(preset: DateFilterRelativePreset): DateFilterRelativeValue {\n return `relative:${preset}`;\n}\n\nexport function dateFilterRangeValue(start: string, end: string = start): DateFilterRangeValue {\n const ordered = start <= end ? [start, end] : [end, start];\n return `range:${ordered[0]}/${ordered[1]}`;\n}\n\nexport function parseDateFilterValue(value: unknown): ParsedDateFilterValue | null {\n if (typeof value !== 'string' || !value) return null;\n\n if (value.startsWith('relative:')) {\n const preset = value.slice('relative:'.length) as DateFilterRelativePreset;\n return DATE_FILTER_RELATIVE_PRESETS.some(candidate => candidate.value === preset)\n ? { kind: 'relative', preset }\n : null;\n }\n\n if (value.startsWith('range:')) {\n const [start, end, ...rest] = value.slice('range:'.length).split('/');\n if (rest.length || !isIsoCalendarDate(start) || !isIsoCalendarDate(end)) return null;\n return start <= end ? { kind: 'range', start, end } : { kind: 'range', start: end, end: start };\n }\n\n // Preserve the previous single-date contract as a one-day range.\n return isIsoCalendarDate(value) ? { kind: 'range', start: value, end: value } : null;\n}\n\nexport function normalizeDateFilterValue(value: unknown): DateFilterValue | '' {\n const parsed = parseDateFilterValue(value);\n if (!parsed) return '';\n return parsed.kind === 'relative'\n ? dateFilterRelativeValue(parsed.preset)\n : dateFilterRangeValue(parsed.start, parsed.end);\n}\n\nexport function resolveDateFilterRange(\n value: unknown,\n referenceDate: string\n): DateFilterRange | null {\n if (!isIsoCalendarDate(referenceDate)) return null;\n const parsed = parseDateFilterValue(value);\n if (!parsed) return null;\n if (parsed.kind === 'range') return { start: parsed.start, end: parsed.end };\n\n const preset = DATE_FILTER_RELATIVE_PRESETS.find(candidate => candidate.value === parsed.preset);\n if (!preset) return null;\n const end = shiftIsoCalendarDate(referenceDate, preset.offset);\n return { start: shiftIsoCalendarDate(end, -(preset.days - 1)), end };\n}\n","import { isIsoCalendarDate, shiftIsoCalendarDate } from '../../utils';\n\nexport interface CalendarDateRange {\n start: string;\n end: string;\n}\n\nexport interface CalendarDay {\n value: string;\n day: number;\n inMonth: boolean;\n label: string;\n}\n\nexport const CALENDAR_WEEKDAYS = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\nconst MONTH_FORMATTER = new Intl.DateTimeFormat('en-US', {\n month: 'long',\n year: 'numeric',\n timeZone: 'UTC',\n});\nconst DATE_FORMATTER = new Intl.DateTimeFormat('en-US', {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n timeZone: 'UTC',\n});\n\nexport function calendarToday(): string {\n const today = new Date();\n const year = today.getFullYear();\n const month = String(today.getMonth() + 1).padStart(2, '0');\n const day = String(today.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}`;\n}\n\nexport function calendarMonth(value: string): string {\n return isIsoCalendarDate(value) ? value.slice(0, 7) : calendarToday().slice(0, 7);\n}\n\nexport function shiftCalendarMonth(value: string, offset: number): string {\n const [year, month] = value.split('-').map(Number);\n const date = new Date(Date.UTC(year, month - 1 + offset, 1));\n return `${date.getUTCFullYear()}-${String(date.getUTCMonth() + 1).padStart(2, '0')}`;\n}\n\nexport function calendarMonthLabel(value: string): string {\n const [year, month] = value.split('-').map(Number);\n return MONTH_FORMATTER.format(new Date(Date.UTC(year, month - 1, 1)));\n}\n\nexport function calendarDays(value: string): CalendarDay[] {\n const [year, month] = value.split('-').map(Number);\n const firstOfMonth = `${year}-${String(month).padStart(2, '0')}-01`;\n const firstWeekday = new Date(`${firstOfMonth}T00:00:00Z`).getUTCDay();\n const gridStart = shiftIsoCalendarDate(firstOfMonth, -firstWeekday);\n return Array.from({ length: 42 }, (_, index) => {\n const dateValue = shiftIsoCalendarDate(gridStart, index);\n const date = new Date(`${dateValue}T00:00:00Z`);\n return {\n value: dateValue,\n day: date.getUTCDate(),\n inMonth: dateValue.startsWith(`${value}-`),\n label: DATE_FORMATTER.format(date),\n };\n });\n}\n\n/** Keep the previous committed range visible while a replacement range is being chosen. */\nexport function calendarPaintedRange(\n pendingStart: string,\n heldRange: CalendarDateRange | null,\n valueRange: CalendarDateRange | null\n): CalendarDateRange | null {\n return pendingStart ? heldRange : valueRange;\n}\n","@import '../../utils/radius.css';\n@import '../../utils/control-density.css';\n@import '../../utils/focus-ring.css';\n@import '../../utils/interaction-fill.css';\n@import '../../utils/forced-colors.css';\n\n:host {\n display: flex;\n min-height: 0;\n flex-direction: column;\n}\n\n.calendar {\n display: flex;\n min-height: 0;\n flex-direction: column;\n min-width: calc(\n (var(--dimension-size-400) * 7) + (var(--dimension-space-050) * 6) +\n (var(--dimension-space-100) * 2)\n );\n padding: var(--ds-calendar-padding, var(--dimension-space-100));\n}\n\n.calendar-heading {\n display: grid;\n grid-template-columns: var(--dimension-size-400) minmax(0, 1fr) var(--dimension-size-400);\n align-items: center;\n text-align: center;\n}\n\n.calendar-nav--previous {\n justify-self: start;\n}\n\n.calendar-nav--next {\n justify-self: end;\n}\n\n.calendar-weekdays,\n.calendar-grid__row {\n display: grid;\n grid-template-columns: repeat(7, minmax(0, 1fr));\n column-gap: var(--dimension-space-050);\n}\n\n.calendar-grid {\n display: flex;\n flex-direction: column;\n row-gap: var(--dimension-space-050);\n}\n\n.calendar-weekdays {\n align-items: center;\n min-height: var(--dimension-size-400);\n margin-block-start: var(--dimension-space-050);\n color: var(--color-foreground-secondary);\n text-align: center;\n}\n\n.calendar-day {\n appearance: none;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n width: 100%;\n height: var(--dimension-size-400);\n padding: 0;\n border: 0;\n border-radius: var(--dimension-radius-025);\n background: transparent;\n color: var(--color-foreground-primary);\n cursor: default;\n}\n\n.calendar-day:disabled {\n cursor: not-allowed;\n}\n\n.calendar-day--outside {\n color: var(--color-foreground-tertiary);\n}\n\n.calendar-day--in-range {\n background: var(--color-background-faint-brand);\n color: var(--color-foreground-primary);\n}\n\n/* In-progress span uses the shared hover overlay; the first day keeps pressed via --surface-open. */\n.calendar-day.ds-interaction-fill.calendar-day--range-preview:not(:disabled)::after {\n background: var(--ds-interaction-hover);\n}\n\n.calendar-day.ds-interaction-fill.calendar-day--range-preview:active:not(:disabled)::after {\n background: var(--ds-interaction-pressed);\n}\n\n.calendar-day--today {\n color: var(--color-foreground-primary);\n}\n\n.calendar-day--range-edge {\n background: var(--color-background-bold-brand);\n color: var(--color-foreground-on-bold-background-primary);\n}\n\n@media (forced-colors: active) {\n .calendar-day--range-edge {\n outline: var(--dimension-stroke-width-012) solid var(--ds-forced-color-content);\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Method,\n Prop,\n State,\n Watch,\n h,\n Host,\n} from '@stencil/core';\nimport {\n dateFilterRangeValue,\n isIsoCalendarDate,\n parseDateFilterValue,\n shiftIsoCalendarDate,\n} from '../../utils';\nimport {\n CALENDAR_WEEKDAYS,\n calendarDays,\n calendarMonth,\n calendarMonthLabel,\n calendarPaintedRange,\n calendarToday,\n shiftCalendarMonth,\n type CalendarDateRange,\n} from './calendar-grid';\n\nexport type CalendarSelectionMode = 'single' | 'range';\n\n@Component({\n tag: 'ds-calendar',\n styleUrl: 'Calendar.css',\n scoped: true,\n})\nexport class Calendar {\n @Element() el!: HTMLElement;\n\n /** Single date emits YYYY-MM-DD. Range emits the shared `range:start/end` string. */\n @Prop() selectionMode: CalendarSelectionMode = 'single';\n @Prop() value: string = '';\n @Prop() min: string | undefined;\n @Prop() max: string | undefined;\n @Prop() isInactive: boolean = false;\n /** Move keyboard focus into the grid after the calendar is rendered. */\n @Prop() autoFocus: boolean = false;\n\n @Event() dsChange!: EventEmitter<string>;\n\n @State() private month = calendarMonth(calendarToday());\n @State() private pendingStart = '';\n @State() private previewEnd = '';\n @State() private heldRange: CalendarDateRange | null = null;\n\n componentWillLoad() {\n this.month = calendarMonth(this.anchorDate());\n }\n\n componentDidLoad() {\n if (this.autoFocus) void this.setFocus();\n }\n\n @Watch('value')\n onValueChange() {\n this.month = calendarMonth(this.anchorDate());\n }\n\n @Method()\n async setFocus() {\n this.el.querySelector<HTMLElement>('.calendar-day[tabindex=\"0\"]')?.focus();\n }\n\n private anchorDate(): string {\n if (this.selectionMode === 'range') {\n const parsed = parseDateFilterValue(this.value);\n if (parsed?.kind === 'range') return parsed.start;\n return calendarToday();\n }\n return isIsoCalendarDate(this.value) ? this.value : calendarToday();\n }\n\n private isDisabled(day: string): boolean {\n if (this.isInactive) return true;\n if (this.min && isIsoCalendarDate(this.min) && day < this.min) return true;\n if (this.max && isIsoCalendarDate(this.max) && day > this.max) return true;\n return false;\n }\n\n private moveMonth = (offset: number) => {\n this.previewEnd = '';\n this.month = shiftCalendarMonth(this.month, offset);\n };\n\n private selectDate = (day: string) => {\n if (this.isDisabled(day)) return;\n this.previewEnd = '';\n if (this.selectionMode === 'single') {\n this.pendingStart = '';\n this.heldRange = null;\n this.dsChange.emit(day);\n return;\n }\n const pending = this.pendingStart;\n if (pending) {\n this.pendingStart = '';\n this.heldRange = null;\n this.dsChange.emit(dateFilterRangeValue(pending, day));\n return;\n }\n const current = parseDateFilterValue(this.value);\n this.heldRange = current?.kind === 'range' ? { start: current.start, end: current.end } : null;\n this.pendingStart = day;\n this.dsChange.emit(dateFilterRangeValue(day, day));\n };\n\n private previewRange = (day: string) => {\n if (!this.pendingStart || this.previewEnd === day) return;\n this.previewEnd = day;\n };\n\n private clearPreview = () => {\n if (!this.previewEnd) return;\n this.previewEnd = '';\n };\n\n private focusDate(day: string) {\n this.previewRange(day);\n const targetMonth = calendarMonth(day);\n if (this.month !== targetMonth) this.month = targetMonth;\n requestAnimationFrame(() => {\n this.el.querySelector<HTMLElement>(`[data-date-option=\"${day}\"]`)?.focus();\n });\n }\n\n private handleDayKeyDown = (event: KeyboardEvent, day: string) => {\n let offset: number | null = null;\n if (event.key === 'ArrowLeft') offset = -1;\n else if (event.key === 'ArrowRight') offset = 1;\n else if (event.key === 'ArrowUp') offset = -7;\n else if (event.key === 'ArrowDown') offset = 7;\n else if (event.key === 'Home') {\n offset = -new Date(`${day}T00:00:00Z`).getUTCDay();\n } else if (event.key === 'End') {\n offset = 6 - new Date(`${day}T00:00:00Z`).getUTCDay();\n } else if (event.key === 'PageUp' || event.key === 'PageDown') {\n const month = shiftCalendarMonth(calendarMonth(day), event.key === 'PageUp' ? -1 : 1);\n const candidate = `${month}-${day.slice(8, 10)}`;\n event.preventDefault();\n this.focusDate(isIsoCalendarDate(candidate) ? candidate : `${month}-01`);\n return;\n }\n if (offset === null) return;\n event.preventDefault();\n this.focusDate(shiftIsoCalendarDate(day, offset));\n };\n\n render() {\n const liveRange = this.selectionMode === 'range' ? parseDateFilterValue(this.value) : null;\n const liveRangeValue = liveRange?.kind === 'range' ? liveRange : null;\n const rangeValue = calendarPaintedRange(this.pendingStart, this.heldRange, liveRangeValue);\n const days = calendarDays(this.month);\n const weeks = Array.from({ length: 6 }, (_, index) => days.slice(index * 7, index * 7 + 7));\n const today = calendarToday();\n const previewStart =\n this.pendingStart && this.previewEnd ? [this.pendingStart, this.previewEnd].sort()[0] : null;\n const previewFinish =\n this.pendingStart && this.previewEnd ? [this.pendingStart, this.previewEnd].sort()[1] : null;\n const selectedSingle =\n this.selectionMode === 'single' && isIsoCalendarDate(this.value) ? this.value : '';\n const preferredFocus =\n this.pendingStart ||\n selectedSingle ||\n rangeValue?.end ||\n (this.month === today.slice(0, 7) ? today : '');\n const focusDate = days.some(day => day.value === preferredFocus)\n ? preferredFocus\n : (days.find(day => day.inMonth)?.value ?? days[0]?.value);\n\n return (\n <Host>\n <div class=\"calendar\">\n <div class=\"calendar-heading ds-control--md\">\n <ds-button-unfilled\n class=\"calendar-nav calendar-nav--previous\"\n variant=\"icon\"\n icon=\"ChevronLeft\"\n size=\"md\"\n hasBorder={false}\n isInactive={this.isInactive}\n ariaLabel=\"Previous month\"\n onDsClick={() => this.moveMonth(-1)}\n />\n <ds-text as=\"span\" variant=\"text-body-medium\" emphasis color=\"primary\">\n {calendarMonthLabel(this.month)}\n </ds-text>\n <ds-button-unfilled\n class=\"calendar-nav calendar-nav--next\"\n variant=\"icon\"\n icon=\"ChevronRight\"\n size=\"md\"\n hasBorder={false}\n isInactive={this.isInactive}\n ariaLabel=\"Next month\"\n onDsClick={() => this.moveMonth(1)}\n />\n </div>\n <div class=\"calendar-weekdays\" aria-hidden=\"true\">\n {CALENDAR_WEEKDAYS.map(day => (\n <ds-text as=\"span\" variant=\"text-body-small\" color=\"secondary\">\n {day}\n </ds-text>\n ))}\n </div>\n <div\n class=\"calendar-grid\"\n role=\"grid\"\n aria-label={calendarMonthLabel(this.month)}\n onMouseLeave={this.clearPreview}\n >\n {weeks.map((week, weekIndex) => (\n <div class=\"calendar-grid__row\" role=\"row\" key={`week-${weekIndex}`}>\n {week.map(day => {\n const selectedInRange = Boolean(\n liveRangeValue &&\n day.value >= liveRangeValue.start &&\n day.value <= liveRangeValue.end\n );\n const paintedInRange = Boolean(\n rangeValue && day.value >= rangeValue.start && day.value <= rangeValue.end\n );\n const pendingStartDay =\n this.selectionMode === 'range' &&\n Boolean(this.pendingStart) &&\n day.value === this.pendingStart;\n const previewInRange = Boolean(\n this.pendingStart &&\n previewStart &&\n previewFinish &&\n day.value >= previewStart &&\n day.value <= previewFinish &&\n day.value !== this.pendingStart\n );\n const inRange = this.selectionMode === 'range' && paintedInRange;\n const rangeEdge = Boolean(\n this.selectionMode === 'range' &&\n rangeValue &&\n (day.value === rangeValue.start || day.value === rangeValue.end)\n );\n const selected = this.selectionMode === 'single' && day.value === selectedSingle;\n const textColor = rangeEdge\n ? 'on-bold'\n : selected ||\n inRange ||\n pendingStartDay ||\n previewInRange ||\n day.value === today\n ? 'primary'\n : day.inMonth\n ? 'secondary'\n : 'tertiary';\n return (\n <button\n type=\"button\"\n role=\"gridcell\"\n data-date-option={day.value}\n class={{\n 'calendar-day': true,\n 'calendar-day--outside': !day.inMonth,\n 'calendar-day--today': day.value === today,\n 'calendar-day--in-range': inRange,\n 'calendar-day--range-preview': previewInRange,\n 'calendar-day--range-edge': rangeEdge,\n 'calendar-day--selected': selected,\n 'ds-focus-ring-inset': true,\n 'ds-interaction-fill': true,\n 'ds-interaction-fill--on-bold': rangeEdge,\n 'ds-interaction-fill--surface-open':\n pendingStartDay && !this.isDisabled(day.value),\n 'ds-interaction-fill--selected': selected && !this.isDisabled(day.value),\n }}\n disabled={this.isDisabled(day.value)}\n aria-label={day.label}\n aria-selected={selectedInRange || selected ? 'true' : 'false'}\n tabIndex={day.value === focusDate ? 0 : -1}\n onMouseEnter={() => this.previewRange(day.value)}\n onFocus={() => this.previewRange(day.value)}\n onClick={() => this.selectDate(day.value)}\n onKeyDown={event => this.handleDayKeyDown(event, day.value)}\n >\n {/* eslint-disable compomo/no-selected-fill-emphasis-change -- Today emphasis is date-driven and remains unchanged when selection changes. */}\n <ds-text\n class=\"ds-interaction-fill__content\"\n as=\"span\"\n variant=\"text-body-medium\"\n color={textColor}\n emphasis={day.value === today}\n >\n {day.day}\n </ds-text>\n {/* eslint-enable compomo/no-selected-fill-emphasis-change */}\n </button>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{p as s,H as i,c as r,h as e,a as n,t}from"./index.js";import{g as a,i as o}from"./p-BQq26pt9.js";import{C as d,c,a as l,b as h,t as v,v as b,e as f,f as u,r as p,d as g}from"./p-BxduVc5g.js";import{d as m}from"./p-CwdRaJER.js";import{d as w}from"./p-D6FRqNhN.js";import{d as _}from"./p-DjkUFlDW.js";import{d as y}from"./p-0XTyQNRG.js";import{d as k}from"./p-Dnt5xUBD.js";import{d as x}from"./p-B9y6azEw.js";import{d as T}from"./p-Cgn-BORA.js";import{d as C}from"./p-B9TM6FqC.js";import{d as D}from"./p-D8OWhnID.js";import{d as z}from"./p-DIQiHX0q.js";function F(s,i,r){if(!s||!i){return{value:"",hideTabs:false}}if(s!==i&&!s.startsWith(`${i}/`)){return{value:"",hideTabs:false}}const e=s.slice(i.length);const n=e.startsWith("/")?e.slice(1).split("/")[0]:"";const t=a(r);if(!n){return{value:t[0]?.id??"",hideTabs:false}}const o=t.find((s=>s.id===n));if(o){return{value:o.id,hideTabs:false}}return{value:"",hideTabs:true}}function E(s,i){return s.length===0&&(i?.length??0)>0}const O=()=>`.sc-ds-bar-nav-h,.sc-ds-bar-nav:where(.ds-table),.sc-ds-bar-nav:where(.tooltip-popup),.sc-ds-bar-nav: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-bar-nav,.ds-control--lg.sc-ds-bar-nav-h,.ds-control--md.sc-ds-bar-nav-h,.ds-control--md.sc-ds-bar-nav,.ds-control--sm.sc-ds-bar-nav-h,.ds-control--sm.sc-ds-bar-nav,.ds-control--xs.sc-ds-bar-nav-h,.ds-control--xs.sc-ds-bar-nav{--ds-control-radius:var(--ds-radius-control)}.ds-control--lg.sc-ds-bar-nav-h,.ds-control--lg.sc-ds-bar-nav{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-bar-nav-h,.ds-control--md.sc-ds-bar-nav{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050)}.ds-control--sm.sc-ds-bar-nav-h,.ds-control--sm.sc-ds-bar-nav{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025)}.ds-control--xs.sc-ds-bar-nav-h,.ds-control--xs.sc-ds-bar-nav{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0}.ds-control-frame.sc-ds-bar-nav{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:var(--ds-control-padding-inline, var(--dimension-space-075));gap:var(--ds-control-gap, var(--dimension-space-050));border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.ds-control-section-heading.sc-ds-bar-nav{display:flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:calc( var(--ds-control-padding-inline, var(--dimension-space-075)) + var(--ds-control-label-inset, var(--dimension-space-025)) )}.ds-control-icon-box.sc-ds-bar-nav{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md))}.ds-control-label-box.sc-ds-bar-nav{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-label-dot.sc-ds-bar-nav{position:relative;padding-inline-end:calc( var(--ds-control-label-inset, var(--dimension-space-025)) + var(--ds-control-gap, var(--dimension-space-050)) )}.ds-control-label-dot__badge.sc-ds-bar-nav{position:absolute;inset-block-start:0;inset-inline-end:0;pointer-events:none}.ds-chrome-space--sm.sc-ds-bar-nav-h,.ds-chrome-space--sm.sc-ds-bar-nav{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-bar-nav-h,.ds-chrome-space--md.sc-ds-bar-nav{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-bar-nav-h,.ds-chrome-space--lg.sc-ds-bar-nav{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-bar-nav-h,.ds-chrome-row.sc-ds-bar-nav,.ds-chrome-column.sc-ds-bar-nav-h,.ds-chrome-column.sc-ds-bar-nav,.ds-chrome-grid.sc-ds-bar-nav-h,.ds-chrome-grid.sc-ds-bar-nav{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-bar-nav-h,.ds-chrome-row.sc-ds-bar-nav{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-bar-nav-h,.ds-chrome-column.sc-ds-bar-nav{flex-direction:column}.ds-chrome-grid.sc-ds-bar-nav-h,.ds-chrome-grid.sc-ds-bar-nav{display:grid;align-items:center}@media (forced-colors: active){.sc-ds-bar-nav:root,.sc-ds-bar-nav-h,.ds-forced-colors-scope.sc-ds-bar-nav{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.sc-ds-bar-nav-h{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}.ds-focus-ring.sc-ds-bar-nav-h,.ds-focus-ring.sc-ds-bar-nav,.ds-focus-ring-inset.sc-ds-bar-nav-h,.ds-focus-ring-inset.sc-ds-bar-nav{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-bar-nav-h:focus-visible,.ds-focus-ring.sc-ds-bar-nav:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring.ds-focus-ring--visible.sc-ds-bar-nav-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-bar-nav{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring-inset.sc-ds-bar-nav-h:focus-visible,.ds-focus-ring-inset.sc-ds-bar-nav:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-bar-nav-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-bar-nav:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-bar-nav-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-bar-nav{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-bar-nav-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-bar-nav::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}@media (forced-colors: active){.sc-ds-bar-nav-h{--ds-focus-ring-color:var(--ds-forced-color-selected)}}@media (forced-colors: active){.sc-ds-bar-nav:root,.sc-ds-bar-nav-h,.ds-forced-colors-scope.sc-ds-bar-nav{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-control-inactive.sc-ds-bar-nav-h,.ds-control-inactive.sc-ds-bar-nav{opacity:var(--effect-opacity-medium);pointer-events:none;cursor:not-allowed}@media (forced-colors: active){.ds-control-inactive.sc-ds-bar-nav-h,.ds-control-inactive.sc-ds-bar-nav{color:var(--ds-forced-color-disabled);opacity:1}}@media (forced-colors: active){.sc-ds-bar-nav:root,.sc-ds-bar-nav-h,.ds-forced-colors-scope.sc-ds-bar-nav{--ds-forced-color-surface:Canvas;--ds-forced-color-content:CanvasText;--ds-forced-color-control-boundary:ButtonText;--ds-forced-color-selected:Highlight;--ds-forced-color-on-selected:HighlightText;--ds-forced-color-disabled:GrayText}}.ds-interaction-fill.sc-ds-bar-nav-h,.ds-interaction-fill.sc-ds-bar-nav{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-bar-nav-h::before,.ds-interaction-fill.sc-ds-bar-nav::before,.ds-interaction-fill.sc-ds-bar-nav-h::after,.ds-interaction-fill.sc-ds-bar-nav::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-bar-nav-h::before,.ds-interaction-fill.sc-ds-bar-nav::before{z-index:1}.ds-interaction-fill.sc-ds-bar-nav-h::after,.ds-interaction-fill.sc-ds-bar-nav::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-bar-nav-h,.ds-interaction-fill--bordered.sc-ds-bar-nav{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-bar-nav-h::before,.ds-interaction-fill--selected.sc-ds-bar-nav::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-bar-nav-h,.ds-interaction-fill--selected.sc-ds-bar-nav{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-bar-nav-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-bar-nav:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-bar-nav-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-bar-nav:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill--grouped.sc-ds-bar-nav-h::after,.ds-interaction-fill--grouped.sc-ds-bar-nav::after,.ds-interaction-fill--grouped.sc-ds-bar-nav-h:active:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-bar-nav:active:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill--grouped.sc-ds-bar-nav-h:hover:not(:disabled)::after,.ds-interaction-fill--grouped.sc-ds-bar-nav:hover:not(:disabled)::after{background:var(--ds-interaction-group-fill, transparent)}}.ds-interaction-fill--grouped.sc-ds-bar-nav-h,.ds-interaction-fill--grouped.sc-ds-bar-nav{--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-bar-nav-h>.ds-interaction-fill__content.sc-ds-bar-nav,.ds-interaction-fill.sc-ds-bar-nav>.ds-interaction-fill__content.sc-ds-bar-nav,.ds-interaction-fill__content.sc-ds-bar-nav{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-bar-nav-h,.ds-interaction-fill--on-faint.sc-ds-bar-nav{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-bar-nav-h,.ds-interaction-fill--on-medium.sc-ds-bar-nav{--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-bar-nav-h,.ds-interaction-fill--on-bold.sc-ds-bar-nav{--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-bar-nav-h,.ds-interaction-fill--on-strong.sc-ds-bar-nav{--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-bar-nav-h,.ds-interaction-fill--on-translucent.sc-ds-bar-nav{--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-bar-nav-h,.ds-interaction-fill--on-inverted.sc-ds-bar-nav{--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-bar-nav-h,.ds-interaction-fill--on-media.sc-ds-bar-nav{--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-bar-nav-h,.ds-interaction-fill--on-always-dark.sc-ds-bar-nav{--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-bar-nav-h,.ds-interaction-fill--on-chrome.sc-ds-bar-nav{--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-bar-nav-h,.ds-interaction-fill--on-navigation.sc-ds-bar-nav{--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-bar-nav-h:not(:disabled)::after,.ds-interaction-fill.ds-interaction-fill--surface-open.sc-ds-bar-nav:not(:disabled)::after{background:var(--ds-interaction-pressed)}@media (forced-colors: active){.ds-interaction-fill.sc-ds-bar-nav-h::after,.ds-interaction-fill.sc-ds-bar-nav::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-bar-nav-h:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill--surface-open.sc-ds-bar-nav: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-bar-nav-h::before,.ds-interaction-fill--selected.sc-ds-bar-nav::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-bar-nav-h:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after,.ds-interaction-fill.sc-ds-bar-nav:hover:not(:disabled):not(:focus-visible):not(:focus-within):not(.ds-focus-ring--visible)::after{outline-color:var(--ds-forced-color-selected);outline-width:var(--dimension-stroke-width-012)}}.sc-ds-bar-nav-h{display:block}.bar-nav.sc-ds-bar-nav{position:relative;height:var(--dimension-size-600);border-bottom:var(--dimension-stroke-width-012) solid var(--_bar-nav-border);background-color:var(--_bar-nav-bg);color:var(--_bar-nav-fg-primary);-webkit-user-select:none;user-select:none;overflow:hidden;transition:background-color var(--effect-motion-short-3), border-color var(--effect-motion-short-3), color var(--effect-motion-short-3);isolation:isolate;--_bar-nav-bg:var(--color-chrome-background-theme);--_bar-nav-border:var(--color-chrome-border-tertiary);--_bar-nav-fg-primary:var(--color-chrome-foreground-primary);--_bar-nav-fg-secondary:var(--color-chrome-foreground-secondary);--_bar-nav-hover:var(--color-chrome-interaction-hover);--_bar-nav-pressed:var(--color-chrome-interaction-pressed);--_bar-nav-focus:var(--color-chrome-interaction-focus);--_bar-nav-dot:var(--color-chrome-foreground-theme);--ds-interaction-hover:var(--_bar-nav-hover);--ds-interaction-pressed:var(--_bar-nav-pressed);--ds-focus-ring-color:var(--_bar-nav-focus)}.bar-nav--dashboard.sc-ds-bar-nav,.bar-nav--settings.sc-ds-bar-nav{--_bar-nav-bg:var(--color-chrome-background-theme);--_bar-nav-border:var(--color-chrome-border-tertiary);--_bar-nav-fg-primary:var(--color-chrome-foreground-primary);--_bar-nav-fg-secondary:var(--color-chrome-foreground-secondary);--_bar-nav-hover:var(--color-chrome-interaction-hover);--_bar-nav-pressed:var(--color-chrome-interaction-pressed);--_bar-nav-focus:var(--color-chrome-interaction-focus);--_bar-nav-dot:var(--color-chrome-foreground-theme);--ds-interaction-hover:var(--_bar-nav-hover);--ds-interaction-pressed:var(--_bar-nav-pressed);--ds-focus-ring-color:var(--_bar-nav-focus)}ds-shell-app.sc-ds-bar-nav-h .bar-nav.sc-ds-bar-nav,ds-shell-app .sc-ds-bar-nav-h .bar-nav.sc-ds-bar-nav{background-color:transparent}.bar-nav.sc-ds-bar-nav>.sc-ds-bar-nav:not(.bar-nav__tabs-probe){position:relative;z-index:3}.bar-nav--tabs-collapsed.sc-ds-bar-nav{display:flex;gap:var(--dimension-space-100);align-items:center}.bar-nav__left.sc-ds-bar-nav{position:relative;flex:1 1 0%;min-width:0;width:0;display:flex;align-items:center}.bar-nav__tabs-visible.sc-ds-bar-nav{flex:1;min-width:0;width:100%}.bar-nav__tabs-probe.sc-ds-bar-nav{position:absolute;left:0;top:0;visibility:hidden;pointer-events:none;overflow:visible;width:max-content;max-width:none;z-index:-1}.bar-nav__tabs-probe.sc-ds-bar-nav>div.sc-ds-bar-nav{width:max-content}.bar-nav__tab-list.sc-ds-bar-nav{display:flex;align-items:center;gap:var(--dimension-space-050);position:relative;width:max-content}.bar-nav__tab.sc-ds-bar-nav{display:flex;align-items:center;justify-content:center;gap:var(--ds-control-gap);height:var(--ds-control-height);min-width:var(--ds-control-height);padding:0 var(--ds-control-padding-inline);box-sizing:border-box;border:none;border-radius:var(--ds-control-radius);background-color:transparent;color:var(--_bar-nav-fg-secondary);cursor:default;position:relative;flex-shrink:0;-webkit-user-select:none;user-select:none;transition:color var(--effect-motion-short-2)}.bar-nav__tab.sc-ds-bar-nav::after{content:'';position:absolute;inset:0;border-radius:var(--ds-control-radius);background:transparent;pointer-events:none;cursor:inherit}@media (hover: hover) and (pointer: fine){.bar-nav__tab.sc-ds-bar-nav:hover::after{background:var(--_bar-nav-hover)}}.bar-nav__tab.sc-ds-bar-nav:active::after{background:var(--_bar-nav-pressed)}.bar-nav__tab--selected.sc-ds-bar-nav{color:var(--_bar-nav-fg-primary)}.bar-nav__tab-label.sc-ds-bar-nav{display:inline-flex;align-items:center;white-space:nowrap}.bar-nav__tab-divider.sc-ds-bar-nav{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--dimension-space-100);height:var(--ds-control-height);padding-block:var(--ds-control-padding-inline);flex-shrink:0;pointer-events:none}.bar-nav__tab-divider-line.sc-ds-bar-nav{width:var(--dimension-stroke-width-012);align-self:stretch;background-color:var(--_bar-nav-border)}.bar-nav__tabs-pending.sc-ds-bar-nav{flex:1;min-width:0;height:var(--ds-control-height);visibility:hidden;pointer-events:none}.bar-nav__overflow-trigger.sc-ds-bar-nav{margin-left:auto}ds-text.bar-nav__heading.sc-ds-bar-nav{display:inline-flex;align-items:center;height:var(--ds-control-height);padding-inline:calc(var(--ds-control-padding-inline) + var(--ds-control-label-inset));-webkit-user-select:none;user-select:none}`;const S=s(class s extends i{constructor(s){super();if(s!==false){this.__registerHost()}this.dsTabChange=r(this,"dsTabChange",7);this.navStyle="dashboard";this.tabs=[];this.value="";this.basePath="";this.currentUrl="";this.moreTabsLabel="More tabs";this.resolvedTabs=[];this.urlDerivedValue="";this.hideTabsForDetailRoute=false;this.tabsCollapsed=false;this.menuOpen=false;this.menuTriggerActive=false;this.tabLayoutCommitted=false;this.visibleTabs=[];this.overflowTabs=[];this.menuInitialFocusVisible=false;this.overflowRovingFocused=false;this.focusedTabId="";this.headerEl=null;this.triggerEl=null;this.menuEl=null;this.visibleTabListEl=null;this.probeTabListEl=null;this.resizeObserver=null;this.intrinsicWidthRetryCount=0;this.tabLayoutPendingFrames=0;this.panelNavTransition=new d;this.panelToolsTransition=new d;this.overflowCoalescer=c((()=>{this.updateTabsCollapsed()}));this.chromeTransitionShell=null;this.committedSection="";this.pendingSection="";this.onChromeTransitionStart=s=>{const i=p(s);if(i==="panel-nav"){this.panelNavTransition.enter();return}if(i==="panel-tools"){const i=g(s)??"opening";if(i==="closing"){this.panelToolsTransition.enter()}}};this.onChromeTransitionEnd=s=>{const i=p(s);if(i==="panel-nav"){this.panelNavTransition.exit();if(!this.panelNavTransition.isActive){this.scheduleOverflowCheck()}return}if(i==="panel-tools"){this.panelToolsTransition.exit();this.scheduleOverflowCheck()}};this.handleOverflowFocus=()=>{this.overflowRovingFocused=true};this.handleOverflowBlur=()=>{this.overflowRovingFocused=false}}get effectiveValue(){if(this.currentUrl&&this.basePath){return this.urlDerivedValue}return this.value}get renderedSelectableTabs(){const s=this.hasOverflowTabs?this.visibleTabs:this.resolvedTabs;return a(s)}get hasOverflowTabs(){return this.tabLayoutCommitted&&this.tabsCollapsed&&this.overflowTabs.length>0}syncFocusedTabId(s,i){if(i.some((i=>i.id===s&&!i.isInactive))){this.focusedTabId=s;return}const r=i.find((s=>!s.isInactive));this.focusedTabId=r?.id??""}digestTabsConfig(s){return s.map((s=>o(s)?"|":s.id)).join(",")}resetTabOverflowLayout(){this.tabLayoutCommitted=false;this.tabsCollapsed=false;this.menuOpen=false;this.menuTriggerActive=false;this.menuInitialFocusVisible=false;this.intrinsicWidthRetryCount=0;this.tabLayoutPendingFrames=0;this.visibleTabs=[];this.overflowTabs=[]}onHostPropsChange(){this.applyHostProps()}onSelectionChange(){this.syncFocusedTabId(this.effectiveValue,this.renderedSelectableTabs);this.syncMenuSections();this.scheduleOverflowCheck()}onMenuOpenChange(s){if(this.menuEl){this.menuEl.open=s}}onTabsCollapsedChange(s,i){if(!s){this.menuOpen=false;this.menuTriggerActive=false;this.menuInitialFocusVisible=false;this.menuEl=null}this.scheduleOverflowCheck();if(s){requestAnimationFrame((()=>{this.scheduleOverflowCheck()}))}if(s||i===undefined||i===s)return;requestAnimationFrame((()=>this.scheduleOverflowCheck()));queueMicrotask((()=>this.focusVisibleSelectedTab()))}componentWillLoad(){this.applyHostProps();this.syncFocusedTabId(this.effectiveValue,a(this.resolvedTabs))}componentDidLoad(){this.syncHostPropsIfNeeded();this.scheduleDeferredHostPropSync();this.setupOverflowObserver();this.bindChromeTransitionListeners();this.scheduleOverflowCheck()}componentDidRender(){if(this.chromeOverflowPaused()){this.syncMenuAnchor();return}this.scheduleOverflowCheck();this.syncMenuAnchor()}disconnectedCallback(){this.resizeObserver?.disconnect();this.resizeObserver=null;this.overflowCoalescer.cancel();this.unbindChromeTransitionListeners()}bindChromeTransitionListeners(){const s=this.el.closest("ds-shell-app");if(!s)return;this.chromeTransitionShell=s;s.addEventListener(l,this.onChromeTransitionStart);s.addEventListener(h,this.onChromeTransitionEnd)}unbindChromeTransitionListeners(){if(!this.chromeTransitionShell)return;this.chromeTransitionShell.removeEventListener(l,this.onChromeTransitionStart);this.chromeTransitionShell.removeEventListener(h,this.onChromeTransitionEnd);this.chromeTransitionShell=null}chromeOverflowPaused(){return this.panelNavTransition.isActive||this.panelToolsTransition.isActive}syncHostPropsIfNeeded(){if(E(this.resolvedTabs,this.tabs)){this.applyHostProps()}else if(this.currentUrl&&this.basePath){this.syncValueFromUrl()}}scheduleDeferredHostPropSync(){let i=s.HOST_PROP_SYNC_BUDGET;const r=()=>{this.syncHostPropsIfNeeded();if(--i>0){requestAnimationFrame(r)}};queueMicrotask(r)}setupOverflowObserver(){if(typeof ResizeObserver==="undefined"||!this.headerEl)return;this.resizeObserver?.disconnect();this.resizeObserver=new ResizeObserver((()=>{if(this.chromeOverflowPaused())return;this.scheduleOverflowCheck()}));this.resizeObserver.observe(this.headerEl)}scheduleOverflowCheck(){if(this.chromeOverflowPaused())return;this.overflowCoalescer.schedule()}getLeftZoneAvailableWidth(){if(!this.headerEl)return 0;const s=getComputedStyle(this.headerEl);const i=(parseFloat(s.paddingLeft)||0)+(parseFloat(s.paddingRight)||0);return Math.max(0,this.headerEl.clientWidth-i)}getTabsIntrinsicWidth(){return this.probeTabListEl?.scrollWidth??0}getHeaderGap(){if(!this.headerEl)return 0;const s=getComputedStyle(this.headerEl);return parseFloat(s.columnGap||s.gap)||0}getOverflowTriggerReserveWidth(){if(!this.triggerEl){return 40}return this.triggerEl.getBoundingClientRect().width+this.getHeaderGap()}getProbeTabMetrics(){const s=this.probeTabListEl;if(!s)return null;const i=Array.from(s.children);const r=i.map((s=>s.getBoundingClientRect().width));if(r.length===0||r.some((s=>s===0)))return null;const e=getComputedStyle(s);const n=parseFloat(e.columnGap||e.gap)||0;const t=r.reduce(((s,i)=>s+i),0);const a=n*Math.max(0,r.length-1);const o=Math.max(0,s.scrollWidth-t-a);return{itemWidths:r,itemGap:n,listExtraWidth:o}}setOverflowTabLayout(s,i){const r=i.length>0;const e=this.digestTabsConfig(s)!==this.digestTabsConfig(this.visibleTabs);const n=this.digestTabsConfig(i)!==this.digestTabsConfig(this.overflowTabs);if(e){this.visibleTabs=s}if(n){this.overflowTabs=i}if(r!==this.tabsCollapsed){this.tabsCollapsed=r;if(!r){this.menuOpen=false;this.menuTriggerActive=false}}this.syncFocusedTabId(this.effectiveValue,a(r?s:this.resolvedTabs))}scheduleIntrinsicWidthRetry(){if(this.intrinsicWidthRetryCount>=s.INTRINSIC_WIDTH_RETRY_MAX)return;this.intrinsicWidthRetryCount++;requestAnimationFrame((()=>this.scheduleOverflowCheck()))}forceTabLayoutCommit(s){this.intrinsicWidthRetryCount=0;this.tabLayoutPendingFrames=0;this.setOverflowTabLayout(s?[]:this.resolvedTabs,s?this.resolvedTabs:[]);this.tabLayoutCommitted=true}updateTabsCollapsed(){if(!this.headerEl||this.resolvedTabs.length===0||this.hideTabsForDetailRoute){if(this.tabsCollapsed){this.setOverflowTabLayout([],[])}this.intrinsicWidthRetryCount=0;this.tabLayoutPendingFrames=0;this.tabLayoutCommitted=true;return}const i=this.getProbeTabMetrics();const r=this.getTabsIntrinsicWidth();if(!i||r===0){this.tabLayoutPendingFrames+=1;if(this.intrinsicWidthRetryCount>=s.INTRINSIC_WIDTH_RETRY_MAX){this.forceTabLayoutCommit(false)}else if(this.tabLayoutPendingFrames>=s.TAB_LAYOUT_COMMIT_MAX_FRAMES){this.forceTabLayoutCommit(false)}else{this.scheduleIntrinsicWidthRetry()}return}this.intrinsicWidthRetryCount=0;this.tabLayoutPendingFrames=0;const e=v(r,this.getLeftZoneAvailableWidth(),this.tabsCollapsed,s.OVERFLOW_HYSTERESIS_PX);if(!e){this.setOverflowTabLayout(this.resolvedTabs,[]);this.tabLayoutCommitted=true;return}const n=b(i.itemWidths,this.getLeftZoneAvailableWidth(),this.getOverflowTriggerReserveWidth(),i.itemGap,i.listExtraWidth);const t=f(this.resolvedTabs.slice(0,n));const a=this.resolvedTabs.slice(t.length);this.setOverflowTabLayout(t,a);this.tabLayoutCommitted=true}syncMenuAnchor(){if(!this.menuEl||!this.triggerEl||!this.hasOverflowTabs)return;this.menuEl.anchor=this.triggerEl;this.syncMenuSections()}handleMenuSelect(s){const i=s.detail;if(i?.value!==undefined){this.selectTab(String(i.value))}this.menuOpen=false;this.menuInitialFocusVisible=false}handleMenuClose(){this.menuOpen=false;this.menuInitialFocusVisible=false}handleMenuAfterClose(){if(!this.menuOpen)this.menuTriggerActive=false}incomingTabs(){return this.tabs??[]}applyHostProps(){const s=this.basePath;const i=s!==""&&this.committedSection!==""&&s!==this.committedSection;if(i){this.urlDerivedValue="";this.committedSection="";this.pendingSection=s;this.resolvedTabs=[];this.resetTabOverflowLayout();return}if(this.pendingSection){if(!s||s!==this.pendingSection){return}if(!this.currentUrl.startsWith(this.pendingSection)){return}const i=this.incomingTabs();if(i.length===0){return}this.pendingSection=""}const r=this.incomingTabs();const e=this.digestTabsConfig(r)!==this.digestTabsConfig(this.resolvedTabs);this.resolvedTabs=r;this.syncValueFromUrl();this.committedSection=s;if(e){this.resetTabOverflowLayout()}this.scheduleOverflowCheck()}syncMenuSections(){if(!this.menuEl)return;this.menuEl.sections=u(this.overflowTabs,this.effectiveValue)}syncValueFromUrl(){const s=this.incomingTabs();if(!this.currentUrl||!this.basePath){this.urlDerivedValue="";this.hideTabsForDetailRoute=false;return}if(!this.currentUrl.startsWith(this.basePath)){this.urlDerivedValue="";this.hideTabsForDetailRoute=false;return}const{value:i,hideTabs:r}=F(this.currentUrl,this.basePath,s);this.urlDerivedValue=i;this.hideTabsForDetailRoute=r}selectTab(s){this.value=s;this.dsTabChange.emit(s)}focusVisibleSelectedTab(){const s=this.visibleTabListEl?.querySelector(`[data-tab-id="${this.effectiveValue}"]`);s?.focus({preventScroll:true})}focusVisibleTab(s){this.focusedTabId=s;const i=this.visibleTabListEl?.querySelector(`[data-tab-id="${s}"]`);i?.focus({preventScroll:true})}focusLastVisibleTab(){const s=[...this.renderedSelectableTabs].reverse().find((s=>!s.isInactive));if(s)this.focusVisibleTab(s.id)}findEnabledVisibleTab(s,i){const r=this.renderedSelectableTabs;for(let e=s+i;e>=0&&e<r.length;e+=i){if(!r[e]?.isInactive)return e}return null}handleTabKeyDown(s){const i=this.renderedSelectableTabs;if(!i.length)return;const r=s.target?.getAttribute("data-tab-id");const e=r??this.focusedTabId;if(s.key==="Enter"||s.key===" "){const r=i.find((s=>s.id===e));if(!r||r.isInactive)return;s.preventDefault();this.selectTab(r.id);return}const n=i.findIndex((s=>s.id===e));if(n<0)return;let t;if(s.key==="ArrowRight"){t=this.findEnabledVisibleTab(n,1);if(t===null&&this.hasOverflowTabs){s.preventDefault();this.overflowRovingFocused=true;void this.triggerEl?.setFocus?.();return}}else if(s.key==="ArrowLeft"){t=this.findEnabledVisibleTab(n,-1)}else if(s.key==="Home"){t=i.findIndex((s=>!s.isInactive))}else if(s.key==="End"){const s=[...i].reverse().findIndex((s=>!s.isInactive));t=s<0?null:i.length-1-s}else{return}if(t===null||t<0||t===n)return;s.preventDefault();this.focusVisibleTab(i[t].id)}toggleTabMenu(s){if(this.menuOpen){this.menuOpen=false;this.menuInitialFocusVisible=false;return}if(this.menuEl&&this.triggerEl){this.menuEl.anchor=this.triggerEl;this.menuEl.minWidth="";this.syncMenuSections()}this.menuInitialFocusVisible=s?.focusVisible??false;this.menuTriggerActive=true;this.menuOpen=true}handleTriggerKeyDown(s){if(!this.hasOverflowTabs)return;if(!this.menuOpen){if(s.key==="ArrowLeft"){s.preventDefault();this.overflowRovingFocused=false;this.focusLastVisibleTab();return}if(s.key==="Enter"||s.key===" "){s.preventDefault();this.toggleTabMenu({focusVisible:true})}return}if(s.key==="Escape"){s.preventDefault();this.menuOpen=false;this.menuInitialFocusVisible=false;void this.triggerEl?.setFocus?.()}}renderTabList(s,i){return e("div",{role:"tablist",class:"bar-nav__tab-list","aria-label":this.heading,ref:s=>{if(i){const i=s??null;if(i===this.probeTabListEl)return;this.probeTabListEl=i;if(i){this.intrinsicWidthRetryCount=0;this.tabLayoutPendingFrames=0;this.scheduleOverflowCheck()}}else{this.visibleTabListEl=s??null}},onKeyDown:i?undefined:s=>this.handleTabKeyDown(s),onFocusin:i?undefined:()=>{this.overflowRovingFocused=false}},s.map(((s,r)=>{if(o(s)){return e("div",{class:"bar-nav__tab-divider",key:`divider-${r}`,"aria-hidden":"true"},e("div",{class:"bar-nav__tab-divider-line"}))}const n=s.id===this.effectiveValue;return e("button",{key:s.id,type:"button",role:"tab","data-tab-id":s.id,class:{"bar-nav__tab":true,"bar-nav__tab--selected":n,"ds-control--md":true,"ds-focus-ring-inset":true,"ds-interaction-fill--on-chrome":true,"ds-control-inactive":!!s.isInactive},"aria-selected":n?"true":"false","aria-disabled":s.isInactive?"true":undefined,"aria-controls":s.panelId??undefined,disabled:s.isInactive,tabIndex:!i&&!this.overflowRovingFocused&&s.id===this.focusedTabId?0:-1,onClick:()=>!i&&!s.isInactive&&this.selectTab(s.id),onFocus:()=>{if(!i)this.focusedTabId=s.id}},e("span",{class:{"bar-nav__tab-label":true,"ds-control-label-box":true,"ds-control-label-dot":!!s.dot,"bar-nav__tab-label--dot":!!s.dot}},e("ds-text",{as:"span",variant:"text-body-medium",emphasis:n,color:"inherit"},s.label),s.dot&&e("ds-badge",{class:"bar-nav__tab-dot ds-control-label-dot__badge",variant:"dot",hasRing:false,label:"","aria-hidden":"true",style:{"--_badge-bg":"var(--_bar-nav-dot)"}})))})))}render(){const s=this.basePath===""||this.committedSection===this.basePath;const i=s&&this.resolvedTabs.length>0&&!this.hideTabsForDetailRoute;const r=this.basePath||"no-section";const t=this.hasOverflowTabs?this.visibleTabs:this.resolvedTabs;return e(n,{key:"f82976dbef06a29006581d1d366c0eba887e0ffd"},e("header",{key:"0207e9a7486a53e3ecb658edef31a01c0f2f0618",class:{"bar-nav":true,"ds-control--md":true,"ds-chrome-row":true,"ds-chrome-space--md":true,"ds-interaction-fill--on-chrome":true,"bar-nav--dashboard":this.navStyle==="dashboard","bar-nav--settings":this.navStyle==="settings","bar-nav--tabs-collapsed":i&&this.hasOverflowTabs},ref:s=>{this.headerEl=s;if(s&&!this.resizeObserver){this.setupOverflowObserver()}}},i&&e("div",{key:"f10f03b47141b0f514f97073585dabef530c8306",class:"bar-nav__tabs-probe","aria-hidden":"true",inert:true},e("div",{key:`probe-${r}`},this.renderTabList(this.resolvedTabs,true))),i&&this.tabLayoutCommitted&&t.length>0&&e("div",{key:"5afbc03f2a27babb03adc4cfaa4101cb6d1de896",class:"bar-nav__left"},e("div",{key:`visible-${r}`,class:"bar-nav__tabs-visible"},this.renderTabList(t,false))),i&&!this.tabLayoutCommitted&&e("div",{key:"111699380456438fe24629ef7cfa3ba50a795e8c",class:"bar-nav__tabs-pending","aria-hidden":"true"}),!i&&this.heading&&e("ds-text",{key:"3ac17550233f44b52ab3f2003dc25273d9948cf0",class:"bar-nav__heading",lineTruncation:1,as:"span",variant:"text-body-medium",emphasis:true,color:"inherit",wrap:"nowrap"},this.heading),i&&this.hasOverflowTabs&&e("ds-button-unfilled",{key:"3e233c78694ddf4b1ff41a975a467bb70163564a",variant:"icon",class:{"bar-nav__overflow-trigger":true},icon:"ChevronDown",activeFill:false,hasBorder:false,background:"chrome",focusTabIndex:this.overflowRovingFocused?0:-1,ref:s=>{this.triggerEl=s??null},haspopup:"menu",expanded:this.menuOpen,surfaceOpen:this.menuTriggerActive,"aria-label":this.moreTabsLabel,onDsClick:()=>this.toggleTabMenu({focusVisible:false}),onFocusin:this.handleOverflowFocus,onFocusout:this.handleOverflowBlur,onKeyDown:s=>this.handleTriggerKeyDown(s)})),i&&this.hasOverflowTabs&&e("ds-menu",{key:"f174af167be64e2342689c635ab31179e6ba315d",ref:s=>{this.menuEl=s??null},open:this.menuOpen,sections:u(this.overflowTabs,this.effectiveValue),side:"bottom",align:"end",sideOffset:"calc(var(--dimension-space-100) + var(--dimension-space-050))",initialFocusVisible:this.menuInitialFocusVisible,onDsSelect:s=>this.handleMenuSelect(s),onDsClose:()=>this.handleMenuClose(),onDsAfterClose:()=>this.handleMenuAfterClose()}))}get el(){return this}static get watchers(){return{tabs:[{onHostPropsChange:0}],currentUrl:[{onHostPropsChange:0}],basePath:[{onHostPropsChange:0}],value:[{onSelectionChange:0}],urlDerivedValue:[{onSelectionChange:0}],menuOpen:[{onMenuOpenChange:0}],tabsCollapsed:[{onTabsCollapsedChange:0}]}}static get style(){return O()}},[2,"ds-bar-nav",{navStyle:[513,"nav-style"],tabs:[16],value:[1025],heading:[1],basePath:[1,"base-path"],currentUrl:[1,"current-url"],moreTabsLabel:[1,"more-tabs-label"],resolvedTabs:[32],urlDerivedValue:[32],hideTabsForDetailRoute:[32],tabsCollapsed:[32],menuOpen:[32],menuTriggerActive:[32],tabLayoutCommitted:[32],visibleTabs:[32],overflowTabs:[32],menuInitialFocusVisible:[32],overflowRovingFocused:[32],focusedTabId:[32],committedSection:[32],pendingSection:[32]},undefined,{tabs:[{onHostPropsChange:0}],currentUrl:[{onHostPropsChange:0}],basePath:[{onHostPropsChange:0}],value:[{onSelectionChange:0}],urlDerivedValue:[{onSelectionChange:0}],menuOpen:[{onMenuOpenChange:0}],tabsCollapsed:[{onTabsCollapsedChange:0}]}]);S.HOST_PROP_SYNC_BUDGET=8;S.INTRINSIC_WIDTH_RETRY_MAX=3;S.TAB_LAYOUT_COMMIT_MAX_FRAMES=16;S.OVERFLOW_HYSTERESIS_PX=8;function H(){if(typeof customElements==="undefined"){return}const s=["ds-bar-nav","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-menu","ds-swatch-picker","ds-switch","ds-tag","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-bar-nav":if(!customElements.get(t(s))){customElements.define(t(s),S)}break;case"ds-badge":if(!customElements.get(t(s))){m()}break;case"ds-button-unfilled":if(!customElements.get(t(s))){w()}break;case"ds-icon":if(!customElements.get(t(s))){_()}break;case"ds-loader":if(!customElements.get(t(s))){y()}break;case"ds-menu":if(!customElements.get(t(s))){k()}break;case"ds-swatch-picker":if(!customElements.get(t(s))){x()}break;case"ds-switch":if(!customElements.get(t(s))){T()}break;case"ds-tag":if(!customElements.get(t(s))){C()}break;case"ds-text":if(!customElements.get(t(s))){D()}break;case"ds-tooltip":if(!customElements.get(t(s))){z()}break}}))}H();export{S as B,H as d};
2
- //# sourceMappingURL=p-CX6ZxUQT.js.map