@ds-mo/ui 14.27.1 → 14.29.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 (338) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +28 -18
  3. package/dist/agent.json +436 -33
  4. package/dist/angular/ds-button-filled.d.ts +1 -1
  5. package/dist/angular/ds-button-filled.js +3 -3
  6. package/dist/angular/ds-button-unfilled.d.ts +1 -1
  7. package/dist/angular/ds-button-unfilled.js +3 -3
  8. package/dist/angular/ds-card-navigation.d.ts +20 -0
  9. package/dist/angular/ds-card-navigation.js +42 -0
  10. package/dist/angular/ds-card-settings-scope.d.ts +19 -0
  11. package/dist/angular/ds-card-settings-scope.js +42 -0
  12. package/dist/angular/ds-menu.d.ts +1 -1
  13. package/dist/angular/ds-menu.js +3 -3
  14. package/dist/angular/ds-mobile-bar-nav.d.ts +1 -1
  15. package/dist/angular/ds-mobile-bar-nav.js +3 -3
  16. package/dist/angular/ds-mobile-header.d.ts +1 -1
  17. package/dist/angular/ds-mobile-header.js +3 -3
  18. package/dist/angular/ds-mobile-section-switcher.d.ts +1 -1
  19. package/dist/angular/ds-mobile-section-switcher.js +3 -3
  20. package/dist/angular/ds-mobile-sheet-nav.d.ts +7 -1
  21. package/dist/angular/ds-mobile-sheet-nav.js +7 -4
  22. package/dist/angular/ds-panel-nav.d.ts +1 -1
  23. package/dist/angular/ds-panel-nav.js +3 -3
  24. package/dist/angular/ds-panel-tool-header.d.ts +1 -1
  25. package/dist/angular/ds-panel-tool-header.js +3 -3
  26. package/dist/angular/ds-panel-tool-search.d.ts +1 -1
  27. package/dist/angular/ds-panel-tool-search.js +3 -3
  28. package/dist/angular/ds-table.d.ts +1 -1
  29. package/dist/angular/ds-table.js +3 -3
  30. package/dist/angular/ds-tag.d.ts +1 -1
  31. package/dist/angular/ds-tag.js +3 -3
  32. package/dist/angular/index.d.ts +1 -1
  33. package/dist/angular/index.js +2 -0
  34. package/dist/angular/proxies.d.ts +2 -0
  35. package/dist/angular/proxies.js +2 -0
  36. package/dist/components/ds-agent-activity.js +1 -1
  37. package/dist/components/ds-agent-questionnaire.js +1 -1
  38. package/dist/components/ds-agent-response.js +1 -1
  39. package/dist/components/ds-agent-source-list.js +1 -1
  40. package/dist/components/ds-agent-tool-call.js +1 -1
  41. package/dist/components/ds-attachment-list.js +1 -1
  42. package/dist/components/ds-badge.js +1 -1
  43. package/dist/components/ds-banner.js +1 -1
  44. package/dist/components/ds-bar-action.js +1 -1
  45. package/dist/components/ds-bar-nav.js +1 -1
  46. package/dist/components/ds-bar-title.js +1 -1
  47. package/dist/components/ds-bar-workflow.js +1 -1
  48. package/dist/components/ds-breadcrumb.js +1 -1
  49. package/dist/components/ds-button-filled.js +1 -1
  50. package/dist/components/ds-button-unfilled.js +1 -1
  51. package/dist/components/ds-card-chart.js +1 -1
  52. package/dist/components/ds-card-navigation.d.ts +11 -0
  53. package/dist/components/ds-card-navigation.js +2 -0
  54. package/dist/components/ds-card-navigation.js.map +1 -0
  55. package/dist/components/ds-card-overview.js +1 -1
  56. package/dist/components/ds-card-overview.js.map +1 -1
  57. package/dist/components/ds-card-setting.js +1 -1
  58. package/dist/components/ds-card-settings-scope.d.ts +11 -0
  59. package/dist/components/ds-card-settings-scope.js +2 -0
  60. package/dist/components/ds-card-settings-scope.js.map +1 -0
  61. package/dist/components/ds-chart-legend.js +1 -1
  62. package/dist/components/ds-chart-legend.js.map +1 -1
  63. package/dist/components/ds-chart.js +1 -1
  64. package/dist/components/ds-checkbox.js +1 -1
  65. package/dist/components/ds-chip.js +1 -1
  66. package/dist/components/ds-code-block.js +1 -1
  67. package/dist/components/ds-conversation-list-item.js +1 -1
  68. package/dist/components/ds-conversation-list-item.js.map +1 -1
  69. package/dist/components/ds-conversation-list-section.js +1 -1
  70. package/dist/components/ds-conversation-list.js +1 -1
  71. package/dist/components/ds-divider.js +1 -1
  72. package/dist/components/ds-empty-state.js +1 -1
  73. package/dist/components/ds-field.js +1 -1
  74. package/dist/components/ds-filter-menu.js +1 -1
  75. package/dist/components/ds-input.js +1 -1
  76. package/dist/components/ds-markdown.js +1 -1
  77. package/dist/components/ds-menu.js +1 -1
  78. package/dist/components/ds-message-actions.js +1 -1
  79. package/dist/components/ds-message-bubble.js +1 -1
  80. package/dist/components/ds-message-composer.js +1 -1
  81. package/dist/components/ds-message-scroller.js +1 -1
  82. package/dist/components/ds-message.js +1 -1
  83. package/dist/components/ds-mobile-bar-nav.js +1 -1
  84. package/dist/components/ds-mobile-header.js +1 -1
  85. package/dist/components/ds-mobile-section-switcher.js +1 -1
  86. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  87. package/dist/components/ds-modal.js +1 -1
  88. package/dist/components/ds-pagination.js +1 -1
  89. package/dist/components/ds-panel-nav.js +1 -1
  90. package/dist/components/ds-panel-sub-nav.js +1 -1
  91. package/dist/components/ds-panel-sub-nav.js.map +1 -1
  92. package/dist/components/ds-panel-tool-header.js +1 -1
  93. package/dist/components/ds-panel-tool-search.js +1 -1
  94. package/dist/components/ds-panel-tool-search.js.map +1 -1
  95. package/dist/components/ds-panel-tools.js +1 -1
  96. package/dist/components/ds-paper-texture.js +1 -1
  97. package/dist/components/ds-radio.js +1 -1
  98. package/dist/components/ds-score.js +1 -1
  99. package/dist/components/ds-scroll-overlay.js +1 -1
  100. package/dist/components/ds-select.js +1 -1
  101. package/dist/components/ds-shell-app.js +1 -1
  102. package/dist/components/ds-shell-app.js.map +1 -1
  103. package/dist/components/ds-shell-page.js +1 -1
  104. package/dist/components/ds-shell-tools.js +1 -1
  105. package/dist/components/ds-skeleton.js +1 -1
  106. package/dist/components/ds-slider.js +1 -1
  107. package/dist/components/ds-swatch-picker.js +1 -1
  108. package/dist/components/ds-switch.js +1 -1
  109. package/dist/components/ds-tab-group.js +1 -1
  110. package/dist/components/ds-table-filter.js +1 -1
  111. package/dist/components/ds-table-group.js +1 -1
  112. package/dist/components/ds-table-group.js.map +1 -1
  113. package/dist/components/ds-table-saved-views.js +1 -1
  114. package/dist/components/ds-table-saved-views.js.map +1 -1
  115. package/dist/components/ds-table-search.js +1 -1
  116. package/dist/components/ds-table-search.js.map +1 -1
  117. package/dist/components/ds-table-sort.js +1 -1
  118. package/dist/components/ds-table-sort.js.map +1 -1
  119. package/dist/components/ds-table-toolbar.js +1 -1
  120. package/dist/components/ds-table.js +1 -1
  121. package/dist/components/ds-table.js.map +1 -1
  122. package/dist/components/ds-tag.js +1 -1
  123. package/dist/components/ds-text.js +1 -1
  124. package/dist/components/ds-textarea.js +1 -1
  125. package/dist/components/ds-textarea.js.map +1 -1
  126. package/dist/components/ds-toast.js +1 -1
  127. package/dist/components/ds-tooltip-chart.js +1 -1
  128. package/dist/components/ds-tooltip.js +1 -1
  129. package/dist/components/ds-typing-indicator.js +1 -1
  130. package/dist/components/p--yvQzZoO.js +2 -0
  131. package/dist/components/p--yvQzZoO.js.map +1 -0
  132. package/dist/components/{p-Is1lFmwp.js → p-1gt8QlyW.js} +2 -2
  133. package/dist/components/p-B5AZd41L.js +2 -0
  134. package/dist/components/p-B5AZd41L.js.map +1 -0
  135. package/dist/components/p-B5eMVBlz.js +2 -0
  136. package/dist/components/p-B5eMVBlz.js.map +1 -0
  137. package/dist/components/{p-Q7AOgrg5.js → p-BCFpqnAg.js} +2 -2
  138. package/dist/components/p-BFHWoNH3.js +2 -0
  139. package/dist/components/{p-BVz-r3g0.js.map → p-BFHWoNH3.js.map} +1 -1
  140. package/dist/components/p-BGnRFtBa.js +2 -0
  141. package/dist/components/p-BGnRFtBa.js.map +1 -0
  142. package/dist/components/p-BIDGQ4tc.js +2 -0
  143. package/dist/components/p-BIDGQ4tc.js.map +1 -0
  144. package/dist/components/{p-Ctnm9NJP.js → p-BLTHIBsE.js} +2 -2
  145. package/dist/components/{p-C68oSTb1.js → p-BXT2opmZ.js} +2 -2
  146. package/dist/components/p-BZDQLjE0.js +2 -0
  147. package/dist/components/p-BZDQLjE0.js.map +1 -0
  148. package/dist/components/{p-Q0dkeoJ6.js → p-BdC7wxhu.js} +2 -2
  149. package/dist/components/{p-Q0dkeoJ6.js.map → p-BdC7wxhu.js.map} +1 -1
  150. package/dist/components/p-BfVlFinS.js +2 -0
  151. package/dist/components/{p-CQjUOHiN.js.map → p-BfVlFinS.js.map} +1 -1
  152. package/dist/components/{p-DGkn8FwV.js → p-Bl5wd3v3.js} +2 -2
  153. package/dist/components/p-BmRHJ_jo.js +2 -0
  154. package/dist/components/p-BmRHJ_jo.js.map +1 -0
  155. package/dist/components/{p-Bb9dA7sl.js → p-BpB2EF9g.js} +2 -2
  156. package/dist/components/{p-2wIPUcSL.js → p-BwAWZAHk.js} +2 -2
  157. package/dist/components/{p-B3sRZBZk.js → p-By5TDnbF.js} +2 -2
  158. package/dist/components/{p-BVpn_e-r.js → p-CDXcINTO.js} +2 -2
  159. package/dist/components/p-CDXcINTO.js.map +1 -0
  160. package/dist/components/{p-B3Z5sQin.js → p-CE8gsv7V.js} +2 -2
  161. package/dist/components/p-CLcwh1kq.js +2 -0
  162. package/dist/components/p-CLcwh1kq.js.map +1 -0
  163. package/dist/components/{p-DW8ssbfI.js → p-CN8PQLZu.js} +2 -2
  164. package/dist/components/p-CcK3UiTu.js +2 -0
  165. package/dist/components/{p-1604KY3B.js.map → p-CcK3UiTu.js.map} +1 -1
  166. package/dist/components/{p-CaF5WCci.js → p-Cocq-utR.js} +2 -2
  167. package/dist/components/p-Cr5vn5JO.js +2 -0
  168. package/dist/components/{p-to8BxxgT.js.map → p-Cr5vn5JO.js.map} +1 -1
  169. package/dist/components/{p-Cf5Ai4xx.js → p-Crd3PEUx.js} +2 -2
  170. package/dist/components/{p-Cf5Ai4xx.js.map → p-Crd3PEUx.js.map} +1 -1
  171. package/dist/components/{p-BZiGtBBk.js → p-Ct90k-nz.js} +2 -2
  172. package/dist/components/p-Cx2dWjaW.js +2 -0
  173. package/dist/components/p-Cx2dWjaW.js.map +1 -0
  174. package/dist/components/p-CyoLh8su.js +2 -0
  175. package/dist/components/p-CyoLh8su.js.map +1 -0
  176. package/dist/components/{p-BXDLR072.js → p-CysCSinT.js} +2 -2
  177. package/dist/components/{p-BXDLR072.js.map → p-CysCSinT.js.map} +1 -1
  178. package/dist/components/p-CzbsTZt7.js.map +1 -1
  179. package/dist/components/p-D1pPq-y0.js +2 -0
  180. package/dist/components/p-D1pPq-y0.js.map +1 -0
  181. package/dist/components/{p-VT-5XDkB.js → p-DDOuPq-N.js} +2 -2
  182. package/dist/components/{p-DkxOEFHN.js → p-DF8W85Tz.js} +2 -2
  183. package/dist/components/{p-DDqRCDXh.js → p-DSJSnQ1U.js} +2 -2
  184. package/dist/components/{p-Cr6pDY-e.js → p-DYK0slTb.js} +2 -2
  185. package/dist/components/{p-D9wZlB_N.js → p-D_QtZZR8.js} +2 -2
  186. package/dist/components/{p-Bv6FSDPR.js → p-DbDYEEWq.js} +2 -2
  187. package/dist/components/{p-BEXkJ9lg.js → p-DnQN0pLp.js} +2 -2
  188. package/dist/components/{p-DIqAdmui.js → p-FiM3rF7B.js} +2 -2
  189. package/dist/components/p-GbtafFds.js +2 -0
  190. package/dist/components/p-GbtafFds.js.map +1 -0
  191. package/dist/components/{p-WFo1x6dN.js → p-Hzz2j1Je.js} +2 -2
  192. package/dist/components/{p-B9esvbYk.js → p-K39w53Bw.js} +2 -2
  193. package/dist/components/p-K39w53Bw.js.map +1 -0
  194. package/dist/components/{p-DQQsS9Rx.js → p-aMyflqva.js} +2 -2
  195. package/dist/components/{p-DZcIt_JJ.js → p-dgep63_i.js} +2 -2
  196. package/dist/components/p-frKsmPQn.js +2 -0
  197. package/dist/components/p-frKsmPQn.js.map +1 -0
  198. package/dist/components/{p-BMzn2Cmw.js → p-rSC7ZUpy.js} +2 -2
  199. package/dist/docs/components.json +1025 -44
  200. package/dist/lib/components/ButtonFilled/ButtonFilled.d.ts +11 -3
  201. package/dist/lib/components/PanelTools/panel-tools-types.d.ts +2 -0
  202. package/dist/lib/components/ShellApp/shell-app-types.d.ts +2 -0
  203. package/dist/lib/shell/index.js.map +1 -1
  204. package/dist/lib/utils/choice-list.d.ts +2 -0
  205. package/dist/mcp-data/registry/bar-nav.json +7 -2
  206. package/dist/mcp-data/registry/bar-title.json +8 -3
  207. package/dist/mcp-data/registry/button-filled.json +26 -5
  208. package/dist/mcp-data/registry/button-unfilled.json +27 -6
  209. package/dist/mcp-data/registry/card-navigation.json +255 -0
  210. package/dist/mcp-data/registry/card-settings-scope.json +314 -0
  211. package/dist/mcp-data/registry/filter-menu.json +7 -2
  212. package/dist/mcp-data/registry/menu.json +21 -2
  213. package/dist/mcp-data/registry/mobile-bar-nav.json +20 -1
  214. package/dist/mcp-data/registry/mobile-header.json +23 -3
  215. package/dist/mcp-data/registry/mobile-section-switcher.json +50 -6
  216. package/dist/mcp-data/registry/mobile-sheet-nav.json +40 -3
  217. package/dist/mcp-data/registry/panel-nav.json +27 -6
  218. package/dist/mcp-data/registry/panel-tool-header.json +23 -2
  219. package/dist/mcp-data/registry/panel-tool-search.json +23 -2
  220. package/dist/mcp-data/registry/panel-tools.json +7 -2
  221. package/dist/mcp-data/registry/registry.json +441 -32
  222. package/dist/mcp-data/registry/select.json +8 -3
  223. package/dist/mcp-data/registry/shell-app.json +14 -8
  224. package/dist/mcp-data/registry/shell-tools.json +7 -2
  225. package/dist/mcp-data/registry/table-group.json +7 -2
  226. package/dist/mcp-data/registry/table-saved-views.json +7 -2
  227. package/dist/mcp-data/registry/table-search.json +7 -2
  228. package/dist/mcp-data/registry/table-sort.json +7 -2
  229. package/dist/mcp-data/registry/table.json +24 -3
  230. package/dist/mcp-data/registry/tag.json +24 -3
  231. package/dist/react/components.d.ts +2 -0
  232. package/dist/react/components.js +2 -0
  233. package/dist/react/ds-card-navigation.d.ts +12 -0
  234. package/dist/react/ds-card-navigation.js +12 -0
  235. package/dist/react/ds-card-settings-scope.d.ts +12 -0
  236. package/dist/react/ds-card-settings-scope.js +12 -0
  237. package/dist/react/ds-mobile-sheet-nav.d.ts +2 -1
  238. package/dist/react/ds-mobile-sheet-nav.js +1 -0
  239. package/dist/styles/table.css +1 -0
  240. package/dist/types/components/BarTitle/BarTitle.d.ts +3 -0
  241. package/dist/types/components/ButtonFilled/ButtonFilled.d.ts +11 -3
  242. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +11 -5
  243. package/dist/types/components/CardNavigation/CardNavigation.d.ts +31 -0
  244. package/dist/types/components/CardNavigation/index.d.ts +2 -0
  245. package/dist/types/components/CardSettingsScope/CardSettingsScope.d.ts +33 -0
  246. package/dist/types/components/CardSettingsScope/index.d.ts +2 -0
  247. package/dist/types/components/Menu/Menu.d.ts +4 -0
  248. package/dist/types/components/MobileBarNav/MobileBarNav.d.ts +2 -0
  249. package/dist/types/components/MobileHeader/MobileHeader.d.ts +3 -0
  250. package/dist/types/components/MobileSectionSwitcher/MobileSectionSwitcher.d.ts +19 -0
  251. package/dist/types/components/MobileSheetNav/MobileSheetNav.d.ts +15 -2
  252. package/dist/types/components/PanelNav/PanelNav.d.ts +4 -1
  253. package/dist/types/components/PanelToolHeader/PanelToolHeader.d.ts +2 -0
  254. package/dist/types/components/PanelToolSearch/PanelToolSearch.d.ts +2 -0
  255. package/dist/types/components/PanelTools/panel-tools-types.d.ts +2 -0
  256. package/dist/types/components/ShellApp/ShellApp.d.ts +5 -2
  257. package/dist/types/components/ShellApp/shell-app-types.d.ts +2 -0
  258. package/dist/types/components/Table/Table.d.ts +10 -0
  259. package/dist/types/components/Table/table-row-view.d.ts +6 -1
  260. package/dist/types/components/TableSort/TableSort.d.ts +1 -0
  261. package/dist/types/components/Tag/Tag.d.ts +3 -0
  262. package/dist/types/components.d.ts +369 -8
  263. package/dist/types/utils/choice-list.d.ts +2 -0
  264. package/dist/vue/components.d.ts +2 -0
  265. package/dist/vue/components.js +2 -0
  266. package/dist/vue/ds-button-filled.js +1 -0
  267. package/dist/vue/ds-button-unfilled.js +1 -0
  268. package/dist/vue/ds-card-navigation.d.ts +3 -0
  269. package/dist/vue/ds-card-navigation.js +15 -0
  270. package/dist/vue/ds-card-settings-scope.d.ts +3 -0
  271. package/dist/vue/ds-card-settings-scope.js +20 -0
  272. package/dist/vue/ds-menu.js +1 -0
  273. package/dist/vue/ds-mobile-bar-nav.js +1 -0
  274. package/dist/vue/ds-mobile-header.js +1 -0
  275. package/dist/vue/ds-mobile-section-switcher.js +2 -0
  276. package/dist/vue/ds-mobile-sheet-nav.js +3 -0
  277. package/dist/vue/ds-panel-nav.js +1 -0
  278. package/dist/vue/ds-panel-tool-header.js +1 -0
  279. package/dist/vue/ds-panel-tool-search.js +1 -0
  280. package/dist/vue/ds-table.js +1 -0
  281. package/dist/vue/ds-tag.js +1 -0
  282. package/package.json +1 -1
  283. package/dist/components/p-1604KY3B.js +0 -2
  284. package/dist/components/p-537t6oRD.js +0 -2
  285. package/dist/components/p-537t6oRD.js.map +0 -1
  286. package/dist/components/p-6_CNVbqa.js +0 -2
  287. package/dist/components/p-6_CNVbqa.js.map +0 -1
  288. package/dist/components/p-B9esvbYk.js.map +0 -1
  289. package/dist/components/p-BIGpc__9.js +0 -2
  290. package/dist/components/p-BIGpc__9.js.map +0 -1
  291. package/dist/components/p-BRLDf-NK.js +0 -2
  292. package/dist/components/p-BRLDf-NK.js.map +0 -1
  293. package/dist/components/p-BUh2GkPJ.js +0 -2
  294. package/dist/components/p-BUh2GkPJ.js.map +0 -1
  295. package/dist/components/p-BVpn_e-r.js.map +0 -1
  296. package/dist/components/p-BVz-r3g0.js +0 -2
  297. package/dist/components/p-Bjt_8sLe.js +0 -2
  298. package/dist/components/p-Bjt_8sLe.js.map +0 -1
  299. package/dist/components/p-BssZ4SbT.js +0 -2
  300. package/dist/components/p-BssZ4SbT.js.map +0 -1
  301. package/dist/components/p-CGQnHNuW.js +0 -2
  302. package/dist/components/p-CGQnHNuW.js.map +0 -1
  303. package/dist/components/p-CQjUOHiN.js +0 -2
  304. package/dist/components/p-Cy1oWIaV.js +0 -2
  305. package/dist/components/p-Cy1oWIaV.js.map +0 -1
  306. package/dist/components/p-DQsFmleZ.js +0 -2
  307. package/dist/components/p-DQsFmleZ.js.map +0 -1
  308. package/dist/components/p-DlbhmXjH.js +0 -2
  309. package/dist/components/p-DlbhmXjH.js.map +0 -1
  310. package/dist/components/p-GEi3hDJQ.js +0 -2
  311. package/dist/components/p-GEi3hDJQ.js.map +0 -1
  312. package/dist/components/p-LMmrjmI_.js +0 -2
  313. package/dist/components/p-LMmrjmI_.js.map +0 -1
  314. package/dist/components/p-to8BxxgT.js +0 -2
  315. /package/dist/components/{p-Is1lFmwp.js.map → p-1gt8QlyW.js.map} +0 -0
  316. /package/dist/components/{p-Q7AOgrg5.js.map → p-BCFpqnAg.js.map} +0 -0
  317. /package/dist/components/{p-Ctnm9NJP.js.map → p-BLTHIBsE.js.map} +0 -0
  318. /package/dist/components/{p-C68oSTb1.js.map → p-BXT2opmZ.js.map} +0 -0
  319. /package/dist/components/{p-DGkn8FwV.js.map → p-Bl5wd3v3.js.map} +0 -0
  320. /package/dist/components/{p-Bb9dA7sl.js.map → p-BpB2EF9g.js.map} +0 -0
  321. /package/dist/components/{p-2wIPUcSL.js.map → p-BwAWZAHk.js.map} +0 -0
  322. /package/dist/components/{p-B3sRZBZk.js.map → p-By5TDnbF.js.map} +0 -0
  323. /package/dist/components/{p-B3Z5sQin.js.map → p-CE8gsv7V.js.map} +0 -0
  324. /package/dist/components/{p-DW8ssbfI.js.map → p-CN8PQLZu.js.map} +0 -0
  325. /package/dist/components/{p-CaF5WCci.js.map → p-Cocq-utR.js.map} +0 -0
  326. /package/dist/components/{p-BZiGtBBk.js.map → p-Ct90k-nz.js.map} +0 -0
  327. /package/dist/components/{p-VT-5XDkB.js.map → p-DDOuPq-N.js.map} +0 -0
  328. /package/dist/components/{p-DkxOEFHN.js.map → p-DF8W85Tz.js.map} +0 -0
  329. /package/dist/components/{p-DDqRCDXh.js.map → p-DSJSnQ1U.js.map} +0 -0
  330. /package/dist/components/{p-Cr6pDY-e.js.map → p-DYK0slTb.js.map} +0 -0
  331. /package/dist/components/{p-D9wZlB_N.js.map → p-D_QtZZR8.js.map} +0 -0
  332. /package/dist/components/{p-Bv6FSDPR.js.map → p-DbDYEEWq.js.map} +0 -0
  333. /package/dist/components/{p-BEXkJ9lg.js.map → p-DnQN0pLp.js.map} +0 -0
  334. /package/dist/components/{p-DIqAdmui.js.map → p-FiM3rF7B.js.map} +0 -0
  335. /package/dist/components/{p-WFo1x6dN.js.map → p-Hzz2j1Je.js.map} +0 -0
  336. /package/dist/components/{p-DQQsS9Rx.js.map → p-aMyflqva.js.map} +0 -0
  337. /package/dist/components/{p-DZcIt_JJ.js.map → p-dgep63_i.js.map} +0 -0
  338. /package/dist/components/{p-BMzn2Cmw.js.map → p-rSC7ZUpy.js.map} +0 -0
@@ -66,7 +66,8 @@
66
66
  "isInset opts into reduced outer geometry only when Tag is nested inside a control of the same density. The default single inset removes 4px overall; insetDepth double removes 8px overall and falls back to single at xs to protect minimum icon geometry. Semantic styling, typography, icons, gaps, radius, and interaction remain unchanged.",
67
67
  "Labels stay on one line and truncate only when the owner supplies a maximum width.",
68
68
  "Omitted interactive renders static metadata with no focus, event, or suffix. Interactive adds the fixed ChevronUpDown suffix and emits dsClick without toggling expanded internally.",
69
- "isInactive disables only the interactive button and applies the shared inactive treatment."
69
+ "isInactive disables only the interactive button and applies the shared inactive treatment.",
70
+ "Interactive tags use surfaceOpen for the associated menu lifecycle, including exit motion. This holds the shared pressed wash without changing the intent that describes the metadata value. Static tags never acquire surface ownership."
70
71
  ],
71
72
  "responsiveBehavior": [
72
73
  "The owner selects md, sm, or xs density to match its local layout and owns collection wrapping, overflow, and condensation. Use isInset only for same-density control nesting.",
@@ -87,6 +88,10 @@
87
88
  {
88
89
  "label": "Storybook examples",
89
90
  "path": "src/wc/components/Tag/Tag.stories.ts"
91
+ },
92
+ {
93
+ "label": "Surface ownership and trigger state",
94
+ "path": "src/docs/SurfaceOwnership.mdx"
90
95
  }
91
96
  ]
92
97
  },
@@ -199,6 +204,14 @@
199
204
  "default": "'md'",
200
205
  "required": false,
201
206
  "mutable": false
207
+ },
208
+ "surfaceOpen": {
209
+ "type": "boolean | undefined",
210
+ "resolvedType": "boolean | undefined",
211
+ "attribute": "surface-open",
212
+ "required": false,
213
+ "mutable": false,
214
+ "description": "Associated menu remains visible, including exit motion. Omission preserves\nthe deprecated expanded-derived wash; explicit false suppresses it."
202
215
  }
203
216
  },
204
217
  "events": [
@@ -322,6 +335,14 @@
322
335
  "default": "'md'",
323
336
  "required": false,
324
337
  "mutable": false
338
+ },
339
+ "surfaceOpen": {
340
+ "type": "boolean | undefined",
341
+ "resolvedType": "boolean | undefined",
342
+ "attribute": "surface-open",
343
+ "required": false,
344
+ "mutable": false,
345
+ "description": "Associated menu remains visible, including exit motion. Omission preserves\nthe deprecated expanded-derived wash; explicit false suppresses it."
325
346
  }
326
347
  },
327
348
  "events": [
@@ -382,12 +403,12 @@
382
403
  "files": [
383
404
  {
384
405
  "path": "src/wc/components/Tag/Tag.css",
385
- "content": "@import '../../utils/tag-chip.css';\n@import '../../utils/control-density-inset.css';\n\n/* A one-character rounded Tag resolves to a circle at every density. */\n:host {\n min-inline-size: var(--ds-control-height);\n}\n\n/* ── Intent × Contrast — strong ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-strong) {\n background-color: var(--color-background-strong-neutral);\n color: var(--color-foreground-medium-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-strong) {\n background-color: var(--color-background-strong-brand);\n color: var(--color-foreground-on-strong-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-strong) {\n background-color: var(--color-background-strong-ai);\n color: var(--color-foreground-medium-ai);\n}\n:host(.tag--intent-negative.tag--contrast-strong) {\n background-color: var(--color-background-strong-negative);\n color: var(--color-foreground-medium-negative);\n}\n:host(.tag--intent-warning.tag--contrast-strong) {\n background-color: var(--color-background-strong-warning);\n color: var(--color-foreground-medium-warning);\n}\n:host(.tag--intent-caution.tag--contrast-strong) {\n background-color: var(--color-background-strong-caution);\n color: var(--color-foreground-medium-caution);\n}\n:host(.tag--intent-positive.tag--contrast-strong) {\n background-color: var(--color-background-strong-positive);\n color: var(--color-foreground-medium-positive);\n}\n\n/* ── Intent × Contrast — bold ───────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-bold) {\n background-color: var(--color-background-bold-neutral);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-brand.tag--contrast-bold) {\n background-color: var(--color-background-bold-brand);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-bold) {\n background-color: var(--color-background-bold-ai);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-negative.tag--contrast-bold) {\n background-color: var(--color-background-bold-negative);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-warning.tag--contrast-bold) {\n background-color: var(--color-background-bold-warning);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-caution.tag--contrast-bold) {\n background-color: var(--color-background-bold-caution);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-positive.tag--contrast-bold) {\n background-color: var(--color-background-bold-positive);\n color: var(--color-foreground-on-bold-background-primary);\n}\n\n/* ── Intent × Contrast — medium ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-medium) {\n background-color: var(--color-background-medium-neutral);\n color: var(--color-foreground-strong-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-medium) {\n background-color: var(--color-background-medium-brand);\n color: var(--color-foreground-on-medium-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-medium) {\n background-color: var(--color-background-medium-ai);\n color: var(--color-foreground-strong-ai);\n}\n:host(.tag--intent-negative.tag--contrast-medium) {\n background-color: var(--color-background-medium-negative);\n color: var(--color-foreground-strong-negative);\n}\n:host(.tag--intent-warning.tag--contrast-medium) {\n background-color: var(--color-background-medium-warning);\n color: var(--color-foreground-strong-warning);\n}\n:host(.tag--intent-caution.tag--contrast-medium) {\n background-color: var(--color-background-medium-caution);\n color: var(--color-foreground-strong-caution);\n}\n:host(.tag--intent-positive.tag--contrast-medium) {\n background-color: var(--color-background-medium-positive);\n color: var(--color-foreground-strong-positive);\n}\n\n/* ── Intent × Contrast — faint ──────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-faint) {\n background-color: var(--color-background-faint-neutral);\n color: var(--color-foreground-bold-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-faint) {\n background-color: var(--color-background-faint-brand);\n color: var(--color-foreground-bold-brand);\n}\n:host(.tag--intent-ai.tag--contrast-faint) {\n background-color: var(--color-background-faint-ai);\n color: var(--color-foreground-bold-ai);\n}\n:host(.tag--intent-negative.tag--contrast-faint) {\n background-color: var(--color-background-faint-negative);\n color: var(--color-foreground-bold-negative);\n}\n:host(.tag--intent-warning.tag--contrast-faint) {\n background-color: var(--color-background-faint-warning);\n color: var(--color-foreground-bold-warning);\n}\n:host(.tag--intent-caution.tag--contrast-faint) {\n background-color: var(--color-background-faint-caution);\n color: var(--color-foreground-bold-caution);\n}\n:host(.tag--intent-positive.tag--contrast-faint) {\n background-color: var(--color-background-faint-positive);\n color: var(--color-foreground-bold-positive);\n}\n\n/* ── Interactive menu trigger ───────────────────────────────────────────── */\n\n:host(.tag--interactive) {\n padding: 0;\n gap: 0;\n}\n\n.tag__button {\n all: unset;\n position: relative;\n z-index: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 0;\n max-width: 100%;\n height: 100%;\n padding: 0 var(--ds-control-padding-inline);\n gap: var(--ds-control-gap);\n border-radius: inherit;\n color: inherit;\n cursor: default;\n}\n\n.tag__button:disabled {\n cursor: not-allowed;\n}\n\n.tag__button--expanded::after {\n background: var(--ds-interaction-pressed);\n}\n\n/* Hover/press wash stays above the Tag's semantic background. */\n\n/* ── Icons ──────────────────────────────────────────────────────────────── */\n\n.tag__prefix-icon,\n.tag__suffix-icon {\n position: relative;\n z-index: 2;\n display: inline-flex;\n flex-shrink: 0;\n width: var(--ds-control-icon);\n height: var(--ds-control-icon);\n}\n",
406
+ "content": "@import '../../utils/tag-chip.css';\n@import '../../utils/control-density-inset.css';\n\n/* A one-character rounded Tag resolves to a circle at every density. */\n:host {\n min-inline-size: var(--ds-control-height);\n}\n\n/* ── Intent × Contrast — strong ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-strong) {\n background-color: var(--color-background-strong-neutral);\n color: var(--color-foreground-medium-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-strong) {\n background-color: var(--color-background-strong-brand);\n color: var(--color-foreground-on-strong-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-strong) {\n background-color: var(--color-background-strong-ai);\n color: var(--color-foreground-medium-ai);\n}\n:host(.tag--intent-negative.tag--contrast-strong) {\n background-color: var(--color-background-strong-negative);\n color: var(--color-foreground-medium-negative);\n}\n:host(.tag--intent-warning.tag--contrast-strong) {\n background-color: var(--color-background-strong-warning);\n color: var(--color-foreground-medium-warning);\n}\n:host(.tag--intent-caution.tag--contrast-strong) {\n background-color: var(--color-background-strong-caution);\n color: var(--color-foreground-medium-caution);\n}\n:host(.tag--intent-positive.tag--contrast-strong) {\n background-color: var(--color-background-strong-positive);\n color: var(--color-foreground-medium-positive);\n}\n\n/* ── Intent × Contrast — bold ───────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-bold) {\n background-color: var(--color-background-bold-neutral);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-brand.tag--contrast-bold) {\n background-color: var(--color-background-bold-brand);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-bold) {\n background-color: var(--color-background-bold-ai);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-negative.tag--contrast-bold) {\n background-color: var(--color-background-bold-negative);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-warning.tag--contrast-bold) {\n background-color: var(--color-background-bold-warning);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-caution.tag--contrast-bold) {\n background-color: var(--color-background-bold-caution);\n color: var(--color-foreground-on-bold-background-primary);\n}\n:host(.tag--intent-positive.tag--contrast-bold) {\n background-color: var(--color-background-bold-positive);\n color: var(--color-foreground-on-bold-background-primary);\n}\n\n/* ── Intent × Contrast — medium ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-medium) {\n background-color: var(--color-background-medium-neutral);\n color: var(--color-foreground-strong-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-medium) {\n background-color: var(--color-background-medium-brand);\n color: var(--color-foreground-on-medium-background-primary);\n}\n:host(.tag--intent-ai.tag--contrast-medium) {\n background-color: var(--color-background-medium-ai);\n color: var(--color-foreground-strong-ai);\n}\n:host(.tag--intent-negative.tag--contrast-medium) {\n background-color: var(--color-background-medium-negative);\n color: var(--color-foreground-strong-negative);\n}\n:host(.tag--intent-warning.tag--contrast-medium) {\n background-color: var(--color-background-medium-warning);\n color: var(--color-foreground-strong-warning);\n}\n:host(.tag--intent-caution.tag--contrast-medium) {\n background-color: var(--color-background-medium-caution);\n color: var(--color-foreground-strong-caution);\n}\n:host(.tag--intent-positive.tag--contrast-medium) {\n background-color: var(--color-background-medium-positive);\n color: var(--color-foreground-strong-positive);\n}\n\n/* ── Intent × Contrast — faint ──────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-faint) {\n background-color: var(--color-background-faint-neutral);\n color: var(--color-foreground-bold-neutral);\n}\n:host(.tag--intent-brand.tag--contrast-faint) {\n background-color: var(--color-background-faint-brand);\n color: var(--color-foreground-bold-brand);\n}\n:host(.tag--intent-ai.tag--contrast-faint) {\n background-color: var(--color-background-faint-ai);\n color: var(--color-foreground-bold-ai);\n}\n:host(.tag--intent-negative.tag--contrast-faint) {\n background-color: var(--color-background-faint-negative);\n color: var(--color-foreground-bold-negative);\n}\n:host(.tag--intent-warning.tag--contrast-faint) {\n background-color: var(--color-background-faint-warning);\n color: var(--color-foreground-bold-warning);\n}\n:host(.tag--intent-caution.tag--contrast-faint) {\n background-color: var(--color-background-faint-caution);\n color: var(--color-foreground-bold-caution);\n}\n:host(.tag--intent-positive.tag--contrast-faint) {\n background-color: var(--color-background-faint-positive);\n color: var(--color-foreground-bold-positive);\n}\n\n/* ── Interactive menu trigger ───────────────────────────────────────────── */\n\n:host(.tag--interactive) {\n padding: 0;\n gap: 0;\n}\n\n.tag__button {\n all: unset;\n position: relative;\n z-index: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 0;\n max-width: 100%;\n height: 100%;\n padding: 0 var(--ds-control-padding-inline);\n gap: var(--ds-control-gap);\n border-radius: inherit;\n color: inherit;\n cursor: default;\n}\n\n.tag__button:disabled {\n cursor: not-allowed;\n}\n\n/* Hover/press wash stays above the Tag's semantic background. */\n\n/* ── Icons ──────────────────────────────────────────────────────────────── */\n\n.tag__prefix-icon,\n.tag__suffix-icon {\n position: relative;\n z-index: 2;\n display: inline-flex;\n flex-shrink: 0;\n width: var(--ds-control-icon);\n height: var(--ds-control-icon);\n}\n",
386
407
  "type": "registry:ui"
387
408
  },
388
409
  {
389
410
  "path": "src/wc/components/Tag/Tag.tsx",
390
- "content": "import { Component, Event, EventEmitter, Prop, h, Host } from '@stencil/core';\nimport { CONTROL_TEXT_VARIANT, type ControlInsetDepth } from '../../utils';\n\nexport type TagIntent =\n | 'neutral'\n | 'brand'\n | 'ai'\n | 'negative'\n | 'warning'\n | 'caution'\n | 'positive';\nexport type TagContrast = 'strong' | 'bold' | 'medium' | 'faint';\nexport type TagSize = 'md' | 'sm' | 'xs';\n\n/**\n * `ds-icon` size prop matching control-density icon metrics\n * (md→20 / sm→16 / xs→12 via `--dimension-iconography-*`).\n */\nconst ICON_SIZE: Record<TagSize, 'md' | 'sm' | 'xs'> = {\n md: 'md',\n sm: 'sm',\n xs: 'xs',\n};\n\n@Component({\n tag: 'ds-tag',\n styleUrl: 'Tag.css',\n scoped: true,\n})\nexport class Tag {\n @Prop() label!: string;\n /** Canonical icon name rendered before the visible label. */\n @Prop() icon: string = '';\n @Prop() intent: TagIntent = 'neutral';\n @Prop() contrast: TagContrast = 'faint';\n @Prop() size: TagSize = 'md';\n /** Use the reduced outer geometry when nested inside a control of the same size. */\n @Prop() isInset: boolean = false;\n /** Single removes 4px overall; double removes 8px overall (xs stays single). */\n @Prop() insetDepth: ControlInsetDepth = 'single';\n @Prop() rounded: boolean = false;\n @Prop() maxWidth: string | number | undefined;\n /** Render a menu-trigger button with a fixed ChevronUpDown suffix. */\n @Prop() interactive: boolean = false;\n /** Controlled open state for the menu triggered by an interactive Tag. */\n @Prop() expanded: boolean = false;\n /** ID of the menu controlled by an interactive Tag. */\n @Prop() ariaControls: string | undefined;\n /** Disable an interactive Tag and apply the shared inactive treatment. */\n @Prop() isInactive: boolean = false;\n\n /** Fired when the interactive Tag button is activated. */\n @Event() dsClick!: EventEmitter<MouseEvent>;\n\n private handleClick = (event: MouseEvent) => {\n if (!this.interactive || this.isInactive) return;\n this.dsClick.emit(event);\n };\n\n render() {\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const iconSize = ICON_SIZE[this.size];\n const doubleInset = this.isInset && this.insetDepth === 'double' && this.size !== 'xs';\n\n const maxWidthStyle =\n this.maxWidth != null\n ? { maxWidth: typeof this.maxWidth === 'number' ? `${this.maxWidth}px` : this.maxWidth }\n : undefined;\n const hostClass = {\n tag: true,\n [`tag--intent-${this.intent}`]: true,\n [`tag--contrast-${this.contrast}`]: true,\n [`tag--size-${this.size}`]: true,\n 'ds-control--md': this.size === 'md',\n 'ds-control--sm': this.size === 'sm',\n 'ds-control--xs': this.size === 'xs',\n 'ds-control--inset': this.isInset && !doubleInset,\n 'ds-control--inset-double': doubleInset,\n 'tag--rounded': this.rounded,\n 'tag--interactive': this.interactive,\n 'ds-control-inactive': this.interactive && this.isInactive,\n };\n const content = [\n this.icon && (\n <ds-icon\n class=\"tag__prefix-icon\"\n name={this.icon}\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n ),\n <ds-text class=\"tag__label\" as=\"span\" variant={textVariant} color=\"inherit\">\n {this.label}\n </ds-text>,\n ];\n\n if (!this.interactive) {\n return (\n <Host class={hostClass} style={maxWidthStyle}>\n {content}\n </Host>\n );\n }\n\n return (\n <Host class={hostClass} style={maxWidthStyle}>\n <button\n type=\"button\"\n class={{\n tag__button: true,\n 'tag__button--expanded': this.expanded,\n 'ds-interaction-fill': true,\n 'ds-focus-ring-inset': true,\n }}\n aria-haspopup=\"menu\"\n aria-expanded={this.expanded ? 'true' : 'false'}\n aria-controls={this.ariaControls}\n disabled={this.isInactive || undefined}\n onClick={this.handleClick}\n >\n {content}\n <ds-icon\n class=\"tag__suffix-icon\"\n name=\"ChevronUpDown\"\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n </button>\n </Host>\n );\n }\n}\n",
411
+ "content": "import { Component, Event, EventEmitter, Prop, h, Host } from '@stencil/core';\nimport { CONTROL_TEXT_VARIANT, type ControlInsetDepth } from '../../utils';\n\nexport type TagIntent =\n | 'neutral'\n | 'brand'\n | 'ai'\n | 'negative'\n | 'warning'\n | 'caution'\n | 'positive';\nexport type TagContrast = 'strong' | 'bold' | 'medium' | 'faint';\nexport type TagSize = 'md' | 'sm' | 'xs';\n\n/**\n * `ds-icon` size prop matching control-density icon metrics\n * (md→20 / sm→16 / xs→12 via `--dimension-iconography-*`).\n */\nconst ICON_SIZE: Record<TagSize, 'md' | 'sm' | 'xs'> = {\n md: 'md',\n sm: 'sm',\n xs: 'xs',\n};\n\n@Component({\n tag: 'ds-tag',\n styleUrl: 'Tag.css',\n scoped: true,\n})\nexport class Tag {\n @Prop() label!: string;\n /** Canonical icon name rendered before the visible label. */\n @Prop() icon: string = '';\n @Prop() intent: TagIntent = 'neutral';\n @Prop() contrast: TagContrast = 'faint';\n @Prop() size: TagSize = 'md';\n /** Use the reduced outer geometry when nested inside a control of the same size. */\n @Prop() isInset: boolean = false;\n /** Single removes 4px overall; double removes 8px overall (xs stays single). */\n @Prop() insetDepth: ControlInsetDepth = 'single';\n @Prop() rounded: boolean = false;\n @Prop() maxWidth: string | number | undefined;\n /** Render a menu-trigger button with a fixed ChevronUpDown suffix. */\n @Prop() interactive: boolean = false;\n /** Controlled open state for the menu triggered by an interactive Tag. */\n @Prop() expanded: boolean = false;\n /** Associated menu remains visible, including exit motion. Omission preserves\n * the deprecated expanded-derived wash; explicit false suppresses it. */\n @Prop() surfaceOpen: boolean | undefined;\n /** ID of the menu controlled by an interactive Tag. */\n @Prop() ariaControls: string | undefined;\n /** Disable an interactive Tag and apply the shared inactive treatment. */\n @Prop() isInactive: boolean = false;\n\n /** Fired when the interactive Tag button is activated. */\n @Event() dsClick!: EventEmitter<MouseEvent>;\n\n private handleClick = (event: MouseEvent) => {\n if (!this.interactive || this.isInactive) return;\n this.dsClick.emit(event);\n };\n\n render() {\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const iconSize = ICON_SIZE[this.size];\n const doubleInset = this.isInset && this.insetDepth === 'double' && this.size !== 'xs';\n\n const maxWidthStyle =\n this.maxWidth != null\n ? { maxWidth: typeof this.maxWidth === 'number' ? `${this.maxWidth}px` : this.maxWidth }\n : undefined;\n const hostClass = {\n tag: true,\n [`tag--intent-${this.intent}`]: true,\n [`tag--contrast-${this.contrast}`]: true,\n [`tag--size-${this.size}`]: true,\n 'ds-control--md': this.size === 'md',\n 'ds-control--sm': this.size === 'sm',\n 'ds-control--xs': this.size === 'xs',\n 'ds-control--inset': this.isInset && !doubleInset,\n 'ds-control--inset-double': doubleInset,\n 'tag--rounded': this.rounded,\n 'tag--interactive': this.interactive,\n 'ds-control-inactive': this.interactive && this.isInactive,\n };\n const content = [\n this.icon && (\n <ds-icon\n class=\"tag__prefix-icon\"\n name={this.icon}\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n ),\n <ds-text class=\"tag__label\" as=\"span\" variant={textVariant} color=\"inherit\">\n {this.label}\n </ds-text>,\n ];\n\n if (!this.interactive) {\n return (\n <Host class={hostClass} style={maxWidthStyle}>\n {content}\n </Host>\n );\n }\n\n return (\n <Host class={hostClass} style={maxWidthStyle}>\n <button\n type=\"button\"\n class={{\n tag__button: true,\n 'tag__button--expanded': this.expanded,\n 'ds-interaction-fill--surface-open':\n (this.surfaceOpen ?? this.expanded) && !this.isInactive,\n 'ds-interaction-fill': true,\n 'ds-focus-ring-inset': true,\n }}\n aria-haspopup=\"menu\"\n aria-expanded={this.expanded ? 'true' : 'false'}\n aria-controls={this.ariaControls}\n disabled={this.isInactive || undefined}\n onClick={this.handleClick}\n >\n {content}\n <ds-icon\n class=\"tag__suffix-icon\"\n name=\"ChevronUpDown\"\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n </button>\n </Host>\n );\n }\n}\n",
391
412
  "type": "registry:ui"
392
413
  }
393
414
  ]
@@ -19,8 +19,10 @@ export { DsBreadcrumb } from "./ds-breadcrumb.js";
19
19
  export { DsButtonFilled } from "./ds-button-filled.js";
20
20
  export { DsButtonUnfilled } from "./ds-button-unfilled.js";
21
21
  export { DsCardChart } from "./ds-card-chart.js";
22
+ export { DsCardNavigation } from "./ds-card-navigation.js";
22
23
  export { DsCardOverview } from "./ds-card-overview.js";
23
24
  export { DsCardSetting } from "./ds-card-setting.js";
25
+ export { DsCardSettingsScope } from "./ds-card-settings-scope.js";
24
26
  export { DsChartLegend } from "./ds-chart-legend.js";
25
27
  export { DsChart } from "./ds-chart.js";
26
28
  export { DsCheckbox } from "./ds-checkbox.js";
@@ -20,8 +20,10 @@ export { DsBreadcrumb } from "./ds-breadcrumb.js";
20
20
  export { DsButtonFilled } from "./ds-button-filled.js";
21
21
  export { DsButtonUnfilled } from "./ds-button-unfilled.js";
22
22
  export { DsCardChart } from "./ds-card-chart.js";
23
+ export { DsCardNavigation } from "./ds-card-navigation.js";
23
24
  export { DsCardOverview } from "./ds-card-overview.js";
24
25
  export { DsCardSetting } from "./ds-card-setting.js";
26
+ export { DsCardSettingsScope } from "./ds-card-settings-scope.js";
25
27
  export { DsChartLegend } from "./ds-chart-legend.js";
26
28
  export { DsChart } from "./ds-chart.js";
27
29
  export { DsCheckbox } from "./ds-checkbox.js";
@@ -0,0 +1,12 @@
1
+ /**
2
+ * This file was automatically generated by the Stencil React Output Target.
3
+ * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
4
+ */
5
+ import type { EventName, StencilReactComponent } from './react-runtime.js';
6
+ import { type CardNavigationDetail, type DsCardNavigationCustomEvent } from "@ds-mo/ui";
7
+ import type { Components } from "@ds-mo/ui/dist/components";
8
+ import { DsCardNavigation as DsCardNavigationElement } from "@ds-mo/ui/dist/components/ds-card-navigation.js";
9
+ export type DsCardNavigationEvents = {
10
+ onDsNavigate: EventName<DsCardNavigationCustomEvent<CardNavigationDetail>>;
11
+ };
12
+ export declare const DsCardNavigation: StencilReactComponent<DsCardNavigationElement, DsCardNavigationEvents, Components.DsCardNavigation, 'href' | 'heading'>;
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ import { createComponent } from './react-runtime.js';
3
+ import React from 'react';
4
+ import { DsCardNavigation as DsCardNavigationElement, defineCustomElement as defineDsCardNavigation } from "@ds-mo/ui/dist/components/ds-card-navigation.js";
5
+ export const DsCardNavigation = /*@__PURE__*/ createComponent({
6
+ tagName: 'ds-card-navigation',
7
+ elementClass: DsCardNavigationElement,
8
+ // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
9
+ react: React,
10
+ events: { onDsNavigate: 'dsNavigate' },
11
+ defineCustomElement: defineDsCardNavigation
12
+ });
@@ -0,0 +1,12 @@
1
+ /**
2
+ * This file was automatically generated by the Stencil React Output Target.
3
+ * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
4
+ */
5
+ import type { EventName, StencilReactComponent } from './react-runtime.js';
6
+ import { type DsCardSettingsScopeCustomEvent, type SettingsScopeRequest } from "@ds-mo/ui";
7
+ import type { Components } from "@ds-mo/ui/dist/components";
8
+ import { DsCardSettingsScope as DsCardSettingsScopeElement } from "@ds-mo/ui/dist/components/ds-card-settings-scope.js";
9
+ export type DsCardSettingsScopeEvents = {
10
+ onDsScopeRequest: EventName<DsCardSettingsScopeCustomEvent<SettingsScopeRequest>>;
11
+ };
12
+ export declare const DsCardSettingsScope: StencilReactComponent<DsCardSettingsScopeElement, DsCardSettingsScopeEvents, Components.DsCardSettingsScope>;
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ import { createComponent } from './react-runtime.js';
3
+ import React from 'react';
4
+ import { DsCardSettingsScope as DsCardSettingsScopeElement, defineCustomElement as defineDsCardSettingsScope } from "@ds-mo/ui/dist/components/ds-card-settings-scope.js";
5
+ export const DsCardSettingsScope = /*@__PURE__*/ createComponent({
6
+ tagName: 'ds-card-settings-scope',
7
+ elementClass: DsCardSettingsScopeElement,
8
+ // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
9
+ react: React,
10
+ events: { onDsScopeRequest: 'dsScopeRequest' },
11
+ defineCustomElement: defineDsCardSettingsScope
12
+ });
@@ -3,11 +3,12 @@
3
3
  * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
4
4
  */
5
5
  import type { EventName, StencilReactComponent } from './react-runtime.js';
6
- import { type DsMobileSheetNavCustomEvent, type NavChromeStyle } from "@ds-mo/ui";
6
+ import { type DsMobileSheetNavCustomEvent, type NavChromeStyle, type PanelNavChildSelectDetail } from "@ds-mo/ui";
7
7
  import type { Components } from "@ds-mo/ui/dist/components";
8
8
  import { DsMobileSheetNav as DsMobileSheetNavElement } from "@ds-mo/ui/dist/components/ds-mobile-sheet-nav.js";
9
9
  export type DsMobileSheetNavEvents = {
10
10
  onDsAreaSelect: EventName<DsMobileSheetNavCustomEvent<string>>;
11
+ onDsNavChildSelect: EventName<DsMobileSheetNavCustomEvent<PanelNavChildSelectDetail>>;
11
12
  onDsBrowseContextChange: EventName<DsMobileSheetNavCustomEvent<NavChromeStyle>>;
12
13
  onDsClose: EventName<DsMobileSheetNavCustomEvent<void>>;
13
14
  };
@@ -9,6 +9,7 @@ export const DsMobileSheetNav = /*@__PURE__*/ createComponent({
9
9
  react: React,
10
10
  events: {
11
11
  onDsAreaSelect: 'dsAreaSelect',
12
+ onDsNavChildSelect: 'dsNavChildSelect',
12
13
  onDsBrowseContextChange: 'dsBrowseContextChange',
13
14
  onDsClose: 'dsClose'
14
15
  },
@@ -1206,6 +1206,7 @@
1206
1206
 
1207
1207
  :where(.ds-table__row > .ds-table__cell.ds-interaction-fill) {
1208
1208
  --ds-interaction-active: var(--_table-row-selected);
1209
+ --ds-interaction-pressed: var(--_table-row-pressed);
1209
1210
  --ds-interaction-group-fill: transparent;
1210
1211
  }
1211
1212
 
@@ -52,6 +52,8 @@ export declare class BarTitle {
52
52
  dsAction: EventEmitter<string>;
53
53
  private sectionMenuOpen;
54
54
  private openActionMenuId;
55
+ private surfaceActionMenuId;
56
+ private sectionSurfaceOpen;
55
57
  private sectionMenuInitialFocusVisible;
56
58
  private actionMenuInitialFocusVisible;
57
59
  private readonly instanceId;
@@ -92,6 +94,7 @@ export declare class BarTitle {
92
94
  private closeSectionMenu;
93
95
  private handleSectionSelect;
94
96
  private toggleActionMenu;
97
+ private finishActionMenuClose;
95
98
  private closeActionMenu;
96
99
  private handleActionSelect;
97
100
  private renderSectionSelector;
@@ -62,11 +62,18 @@ export declare class ButtonFilled {
62
62
  /** ID of the popup this button controls. */
63
63
  controls: string | undefined;
64
64
  /**
65
- * Controlled open state of the popup this button triggers. Holds the pressed
66
- * wash for the popup's rendered lifecycle. ButtonFilled has no selected state,
67
- * so an open popup never promotes to an active treatment.
65
+ * Controlled disclosure state forwarded to aria-expanded.
66
+ * Using expanded alone for surface-open styling is deprecated; set surfaceOpen
67
+ * explicitly to separate the rendered surface lifecycle from disclosure state.
68
68
  */
69
69
  expanded: boolean | undefined;
70
+ /**
71
+ * The associated menu, picker, or panel is visible, including its exit motion.
72
+ * Holds only the pressed wash; does not set ARIA, selection, or press scaling.
73
+ * In split mode this applies only to the menu segment. Explicit false disables
74
+ * the legacy expanded-derived wash; omission preserves that compatibility path.
75
+ */
76
+ surfaceOpen: boolean | undefined;
70
77
  /** Popup type exposed to assistive technology. */
71
78
  haspopup: ButtonFilledPopup | undefined;
72
79
  /**
@@ -95,6 +102,7 @@ export declare class ButtonFilled {
95
102
  private handleClick;
96
103
  private handleMenuClick;
97
104
  private get resolvedHaspopup();
105
+ private get resolvedSurfaceOpen();
98
106
  private get accessibleName();
99
107
  private get doubleInset();
100
108
  private buttonClass;
@@ -61,11 +61,18 @@ export declare class ButtonUnfilled {
61
61
  ariaLabel: string | null;
62
62
  controls: string | undefined;
63
63
  /**
64
- * Controlled disclosure or popup state forwarded to `aria-expanded`.
65
- * Popup triggers hold only the pressed wash while open; their resting
66
- * foreground is unchanged. Ordinary disclosures remain visually neutral.
64
+ * Controlled disclosure state forwarded to aria-expanded.
65
+ * Using expanded alone for surface-open styling is deprecated; set surfaceOpen
66
+ * explicitly to separate the rendered surface lifecycle from disclosure state.
67
67
  */
68
68
  expanded: boolean | undefined;
69
+ /**
70
+ * The associated menu, picker, or panel is visible, including its exit motion.
71
+ * Holds only the pressed wash; does not set ARIA, selection, or press scaling.
72
+ * In split mode this applies only to the menu segment. Explicit false disables
73
+ * the legacy expanded-derived wash; omission preserves that compatibility path.
74
+ */
75
+ surfaceOpen: boolean | undefined;
69
76
  haspopup: ButtonUnfilledPopup | undefined;
70
77
  /**
71
78
  * Append a separate ChevronDown menu segment while preserving this button's
@@ -126,8 +133,7 @@ export declare class ButtonUnfilled {
126
133
  private disconnectCaptionCompactObserver;
127
134
  private get resolvedHaspopup();
128
135
  private get doubleInset();
129
- /** Only popup triggers hold a pressed visual while expanded. */
130
- private get expandedPopup();
136
+ private get resolvedSurfaceOpen();
131
137
  private get visuallyActive();
132
138
  /** Knock-out ring: selected fill → active wash; otherwise surface token. */
133
139
  private get dotRing();
@@ -0,0 +1,31 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ export type CardNavigationWidth = 'sm' | 'md' | 'lg';
3
+ export type CardNavigationVariant = 'navigation-only' | 'content';
4
+ export interface CardNavigationDetail {
5
+ href: string;
6
+ originalEvent: MouseEvent;
7
+ }
8
+ export declare class CardNavigation {
9
+ /** Destination for the card's native link. */
10
+ href: string;
11
+ /** Section or destination heading shown in the card header. */
12
+ heading: string;
13
+ /** Optional supporting copy shown below the heading. */
14
+ description: string | undefined;
15
+ /**
16
+ * `navigation-only` makes the complete card the link. `content` keeps the
17
+ * header as the link and exposes a non-interactive body slot below it.
18
+ */
19
+ variant: CardNavigationVariant;
20
+ /** Card width token (`sm` / `md` / `lg`). */
21
+ cardWidth: CardNavigationWidth;
22
+ /**
23
+ * Emits before native navigation. Prevent this event to take over routing;
24
+ * the component will then prevent the original link navigation.
25
+ */
26
+ dsNavigate: EventEmitter<CardNavigationDetail>;
27
+ private handleNavigation;
28
+ private renderHeader;
29
+ render(): any;
30
+ }
31
+ //# sourceMappingURL=CardNavigation.d.ts.map
@@ -0,0 +1,2 @@
1
+ export type { CardNavigationDetail, CardNavigationVariant, CardNavigationWidth, } from './CardNavigation';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,33 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ export interface SettingsScopeRequest {
3
+ scope: 'area' | 'profile';
4
+ anchor: HTMLButtonElement;
5
+ originalEvent: MouseEvent;
6
+ }
7
+ export declare class CardSettingsScope {
8
+ /** Current product area or the label for the combined settings view. */
9
+ areaLabel: string;
10
+ /** Current organization or settings profile. */
11
+ profileLabel: string;
12
+ /** Sentence prefix, supplied separately for localization. */
13
+ managingLabel: string;
14
+ /** Sentence connector, supplied separately for localization. */
15
+ forLabel: string;
16
+ /** Accessible name for this context region. */
17
+ scopeLabel: string;
18
+ /** ID of the application-owned product-area menu. */
19
+ areaControls: string | undefined;
20
+ /** ID of the application-owned profiles popup. */
21
+ profileControls: string | undefined;
22
+ /** Whether the product-area menu is open. */
23
+ areaExpanded: boolean;
24
+ /** Whether the profiles popup is open. */
25
+ profileExpanded: boolean;
26
+ /** Empty informational profile popups use dialog semantics instead of a menu. */
27
+ profilePopup: 'menu' | 'dialog';
28
+ /** Requests a popup; the owner supplies choices, open state, and selection. */
29
+ dsScopeRequest: EventEmitter<SettingsScopeRequest>;
30
+ private request;
31
+ render(): any;
32
+ }
33
+ //# sourceMappingURL=CardSettingsScope.d.ts.map
@@ -0,0 +1,2 @@
1
+ export type { SettingsScopeRequest } from './CardSettingsScope';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -34,6 +34,8 @@ export declare class Menu {
34
34
  initialFocusVisible: boolean;
35
35
  /** Accessible name for the popup menu. */
36
36
  menuLabel: string;
37
+ /** Informational message shown when there are no choices. Uses a non-modal dialog, not a fake menu item. */
38
+ emptyMessage: string;
37
39
  private shouldRender;
38
40
  private closing;
39
41
  private pos;
@@ -66,6 +68,8 @@ export declare class Menu {
66
68
  /** Last content actually painted while open; retained unchanged through exit motion. */
67
69
  private lastRenderedSections;
68
70
  private closingSections;
71
+ private readonly emptyMessageId;
72
+ private lastRenderedEmptyMessage;
69
73
  componentDidLoad(): void;
70
74
  disconnectedCallback(): void;
71
75
  onOpenChange(isOpen: boolean): void;
@@ -5,6 +5,8 @@ import type { MobileBarNavDestinationDetail } from './mobile-bar-nav-types';
5
5
  export declare class MobileBarNav {
6
6
  el: HTMLElement;
7
7
  activeDestination: MobileDestination;
8
+ /** Context destination retained while a different global tool is active. */
9
+ primaryDestination: 'area' | 'help';
8
10
  currentArea: PanelNavItem;
9
11
  sheetNavExpanded: boolean;
10
12
  menuLabel: string;
@@ -23,6 +23,8 @@ export declare class MobileHeader {
23
23
  subvalue: string;
24
24
  /** Accessible name for the child-section chooser. */
25
25
  subsectionsAriaLabel: string;
26
+ /** Place local sections below, beside, or combined with the page title in one sheet trigger. */
27
+ subsectionsPlacement: 'below' | 'inline' | 'combined';
26
28
  /** Default page chrome or bold-brand workflow chrome. */
27
29
  tone: MobileHeaderTone;
28
30
  /** Section selection intent. */
@@ -35,5 +37,6 @@ export declare class MobileHeader {
35
37
  private handleSectionChange;
36
38
  private handleSubsectionChange;
37
39
  render(): any;
40
+ private renderSubsections;
38
41
  }
39
42
  //# sourceMappingURL=MobileHeader.d.ts.map
@@ -8,14 +8,32 @@ export declare class MobileSectionSwitcher {
8
8
  value: string;
9
9
  /** Accessible name for the section chooser. */
10
10
  navigationLabel: string;
11
+ /** Anchored local-view menu or viewport-edge sheet for primary page sections. */
12
+ presentation: 'menu' | 'sheet';
13
+ /** Stable page identity shown before the selected section in a sheet trigger. */
14
+ pageLabel: string;
11
15
  /** Selection intent. The route, tool, or workflow owner updates `value`. */
12
16
  dsChange: EventEmitter<string>;
13
17
  private menuOpen;
18
+ private menuSurfaceOpen;
14
19
  private initialFocusVisible;
20
+ private sheetClosing;
21
+ private focusedSection;
15
22
  private readonly instanceId;
16
23
  private readonly triggerId;
17
24
  private readonly menuId;
18
25
  private triggerEl;
26
+ private dialogEl;
27
+ private closeTimer;
28
+ private visibilityObserver?;
29
+ componentDidLoad(): void;
30
+ componentDidRender(): void;
31
+ disconnectedCallback(): void;
32
+ handlePresentationChange(): void;
33
+ handleContextChange(): void;
34
+ private finishSheetClose;
35
+ private focusSheetItem;
36
+ private handleSheetKeyDown;
19
37
  private get resolvedSections();
20
38
  private get selectableSections();
21
39
  private get selectedIndex();
@@ -27,6 +45,7 @@ export declare class MobileSectionSwitcher {
27
45
  handleSectionsChange(): void;
28
46
  private toggleMenu;
29
47
  private closeMenu;
48
+ private renderSheet;
30
49
  private handleSelect;
31
50
  render(): any;
32
51
  }
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
2
  import type { NavChromeStyle } from '../../shell/nav-chrome';
3
- import type { PanelNavGroup } from '../PanelNav/panel-nav-types';
3
+ import type { PanelNavChildSelectDetail, PanelNavGroup, PanelNavPresentation } from '../PanelNav/panel-nav-types';
4
4
  export declare class MobileSheetNav {
5
5
  el: HTMLElement;
6
6
  open: boolean;
@@ -8,6 +8,8 @@ export declare class MobileSheetNav {
8
8
  dashboardGroups: PanelNavGroup[];
9
9
  settingsGroups: PanelNavGroup[];
10
10
  currentUrl: string;
11
+ /** Flat area navigation or inline disclosure of each area's child routes. */
12
+ presentation: PanelNavPresentation;
11
13
  /** Whether the router-derived current area owns the active mobile stage. */
12
14
  routeSelectionActive: boolean;
13
15
  navigationLabel: string;
@@ -18,14 +20,25 @@ export declare class MobileSheetNav {
18
20
  /** Show the optional Account shortcut in the sheet header. */
19
21
  showAccount: boolean;
20
22
  dsAreaSelect: EventEmitter<string>;
23
+ /** Selecting a child requests routing; expanding its parent never navigates. */
24
+ dsNavChildSelect: EventEmitter<PanelNavChildSelectDetail>;
21
25
  dsBrowseContextChange: EventEmitter<NavChromeStyle>;
22
26
  dsClose: EventEmitter<void>;
27
+ private expandedParentId;
28
+ private readonly instanceId;
23
29
  private get groups();
24
- private get activeId();
30
+ private get selection();
31
+ componentWillLoad(): void;
32
+ syncExpandedParent(): void;
25
33
  handleOpenChange(open: boolean): void;
26
34
  handleKeyDown(event: KeyboardEvent): void;
27
35
  private handleContextChange;
28
36
  private renderItem;
37
+ private parentId;
38
+ private childrenId;
39
+ private renderChild;
40
+ private renderBranchDivider;
41
+ private renderBranch;
29
42
  private renderLogo;
30
43
  private renderHeaderDestination;
31
44
  render(): any;
@@ -40,8 +40,11 @@ export declare class PanelNav {
40
40
  dashboardLabel: string;
41
41
  settingsLabel: string;
42
42
  accountLabel: string;
43
- /** Keep the account-menu trigger visually pressed while its popup is open or closing. */
43
+ /** Account disclosure state. Expanded-derived styling is deprecated; use accountMenuSurfaceOpen for the rendered lifetime. */
44
44
  accountMenuExpanded: boolean;
45
+ /** External account surface is visible, including exit motion. Omission
46
+ * preserves the deprecated accountMenuExpanded-derived wash. */
47
+ accountMenuSurfaceOpen: boolean | undefined;
45
48
  dashboardNavigationLabel: string;
46
49
  settingsNavigationLabel: string;
47
50
  expandNavigationLabel: string;
@@ -20,6 +20,8 @@ export declare class PanelToolHeader {
20
20
  menuControls: string | undefined;
21
21
  /** Whether the controlled menu is open. */
22
22
  menuExpanded: boolean;
23
+ /** Associated menu surface is visible, including exit motion. */
24
+ menuSurfaceOpen: boolean | undefined;
23
25
  /** Trailing application-owned icon actions. When present, these replace the legacy menu action. */
24
26
  actions: PanelToolsHeaderAction[];
25
27
  dsBack: EventEmitter<MouseEvent>;
@@ -21,6 +21,8 @@ export declare class PanelToolSearch {
21
21
  filterControls: string | undefined;
22
22
  /** Whether the controlled filter menu is open. */
23
23
  filterExpanded: boolean;
24
+ /** Associated filter surface is visible, including exit motion. */
25
+ filterSurfaceOpen: boolean | undefined;
24
26
  /** Promote the trigger foreground when one or more filters are applied. */
25
27
  filterActive: boolean;
26
28
  dsChange: EventEmitter<string>;
@@ -113,6 +113,8 @@ export interface PanelToolsHeaderAction {
113
113
  triggerId?: string;
114
114
  controls?: string;
115
115
  expanded?: boolean;
116
+ /** Associated surface remains visible, including exit motion. */
117
+ surfaceOpen?: boolean;
116
118
  haspopup?: 'menu' | 'dialog' | 'listbox' | 'tree' | 'grid';
117
119
  pressed?: boolean;
118
120
  isInactive?: boolean;
@@ -14,7 +14,7 @@ export declare class ShellApp {
14
14
  composition: ShellAppComposition;
15
15
  /** Router-owned navigation data used by managed composition. */
16
16
  navigation: ShellNavigationConfig;
17
- /** Desktop/tablet route sections in BarNav, or nested beneath PanelNav parents. */
17
+ /** Route sections in bar/header pickers, or nested beneath desktop and mobile menu parents. */
18
18
  sectionNavigation: ShellSectionNavigation;
19
19
  /** Route-owned page title and section data used by managed composition. */
20
20
  pageChrome: ShellPageChromeConfig;
@@ -86,10 +86,12 @@ export declare class ShellApp {
86
86
  private managedActiveTool;
87
87
  private managedToolPresentation;
88
88
  private managedMobileDestination;
89
+ private managedMobilePrimaryDestination;
89
90
  private managedMobileSheetNavOpen;
90
91
  private managedInboxTool;
91
92
  private managedBrowseContext;
92
93
  private mobileActionMenuOpen;
94
+ private mobileActionSurfaceOpen;
93
95
  private mobileActionMenuInitialFocusVisible;
94
96
  private readonly instanceId;
95
97
  private readonly mobileActionMenuTriggerId;
@@ -119,7 +121,7 @@ export declare class ShellApp {
119
121
  }>): void;
120
122
  disconnectedCallback(): void;
121
123
  onShellPropsChange(): void;
122
- handleNavigationChange(): void;
124
+ handleNavigationChange(next: ShellNavigationConfig, previous: ShellNavigationConfig): void;
123
125
  handlePageChromeChange(): void;
124
126
  handleToolsChange(): void;
125
127
  onMobileStateChange(_next: unknown, previous: unknown): void;
@@ -173,6 +175,7 @@ export declare class ShellApp {
173
175
  private activateManagedMobileTool;
174
176
  private handleManagedMobileDestination;
175
177
  private handleManagedAreaSelect;
178
+ private handleManagedMobileChildSelect;
176
179
  private handleManagedBrowseContext;
177
180
  private handleManagedSheetClose;
178
181
  private handleManagedNavFooterAction;
@@ -32,6 +32,8 @@ export interface ShellNavigationConfig {
32
32
  userName?: string;
33
33
  userInitial?: string;
34
34
  accountMenuExpanded?: boolean;
35
+ /** Associated account surface remains visible, including exit motion. */
36
+ accountMenuSurfaceOpen?: boolean;
35
37
  dashboardLabel?: string;
36
38
  settingsLabel?: string;
37
39
  accountLabel?: string;