@ds-mo/ui 14.17.1 → 14.18.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 (251) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +6 -6
  3. package/dist/agent.json +60 -32
  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-mobile-bar-nav.d.ts +1 -1
  9. package/dist/angular/ds-mobile-bar-nav.js +3 -3
  10. package/dist/components/ds-agent-activity.js +1 -1
  11. package/dist/components/ds-agent-questionnaire.js +1 -1
  12. package/dist/components/ds-agent-response.js +1 -1
  13. package/dist/components/ds-agent-source-list.js +1 -1
  14. package/dist/components/ds-agent-tool-call.js +1 -1
  15. package/dist/components/ds-attachment-list.js +1 -1
  16. package/dist/components/ds-badge.js +1 -1
  17. package/dist/components/ds-banner.js +1 -1
  18. package/dist/components/ds-bar-action.js +1 -1
  19. package/dist/components/ds-bar-nav.js +1 -1
  20. package/dist/components/ds-bar-title.js +1 -1
  21. package/dist/components/ds-bar-workflow.js +1 -1
  22. package/dist/components/ds-bar-workflow.js.map +1 -1
  23. package/dist/components/ds-breadcrumb.js +1 -1
  24. package/dist/components/ds-button-filled.js +1 -1
  25. package/dist/components/ds-button-unfilled.js +1 -1
  26. package/dist/components/ds-card-chart.js +1 -1
  27. package/dist/components/ds-card-chart.js.map +1 -1
  28. package/dist/components/ds-card-overview.js +1 -1
  29. package/dist/components/ds-card-setting.js +1 -1
  30. package/dist/components/ds-card-setting.js.map +1 -1
  31. package/dist/components/ds-chart-legend.js +1 -1
  32. package/dist/components/ds-chart.js +1 -1
  33. package/dist/components/ds-checkbox.js +1 -1
  34. package/dist/components/ds-chip.js +1 -1
  35. package/dist/components/ds-code-block.js +1 -1
  36. package/dist/components/ds-conversation-list-item.js +1 -1
  37. package/dist/components/ds-conversation-list-section.js +1 -1
  38. package/dist/components/ds-conversation-list.js +1 -1
  39. package/dist/components/ds-divider.js +1 -1
  40. package/dist/components/ds-empty-state.js +1 -1
  41. package/dist/components/ds-field.js +1 -1
  42. package/dist/components/ds-filter-menu.js +1 -1
  43. package/dist/components/ds-input.js +1 -1
  44. package/dist/components/ds-markdown.js +1 -1
  45. package/dist/components/ds-menu.js +1 -1
  46. package/dist/components/ds-message-actions.js +1 -1
  47. package/dist/components/ds-message-actions.js.map +1 -1
  48. package/dist/components/ds-message-bubble.js +1 -1
  49. package/dist/components/ds-message-composer.js +1 -1
  50. package/dist/components/ds-message-scroller.js +1 -1
  51. package/dist/components/ds-message.js +1 -1
  52. package/dist/components/ds-mobile-bar-nav.js +1 -1
  53. package/dist/components/ds-mobile-header.js +1 -1
  54. package/dist/components/ds-mobile-section-switcher.js +1 -1
  55. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  56. package/dist/components/ds-modal.js +1 -1
  57. package/dist/components/ds-pagination.js +1 -1
  58. package/dist/components/ds-panel-nav.js +1 -1
  59. package/dist/components/ds-panel-sub-nav.js +1 -1
  60. package/dist/components/ds-panel-tool-header.js +1 -1
  61. package/dist/components/ds-panel-tool-search.js +1 -1
  62. package/dist/components/ds-panel-tools.js +1 -1
  63. package/dist/components/ds-paper-texture.js +1 -1
  64. package/dist/components/ds-radio.js +1 -1
  65. package/dist/components/ds-scroll-overlay.js +1 -1
  66. package/dist/components/ds-select.js +1 -1
  67. package/dist/components/ds-shell-app.js +1 -1
  68. package/dist/components/ds-shell-app.js.map +1 -1
  69. package/dist/components/ds-shell-page.js +1 -1
  70. package/dist/components/ds-shell-tools.js +1 -1
  71. package/dist/components/ds-skeleton.js +1 -1
  72. package/dist/components/ds-slider.js +1 -1
  73. package/dist/components/ds-swatch-picker.js +1 -1
  74. package/dist/components/ds-switch.js +1 -1
  75. package/dist/components/ds-tab-group.js +1 -1
  76. package/dist/components/ds-table-filter.js +1 -1
  77. package/dist/components/ds-table-filter.js.map +1 -1
  78. package/dist/components/ds-table-saved-views.js +1 -1
  79. package/dist/components/ds-table-sort.js +1 -1
  80. package/dist/components/ds-table-sort.js.map +1 -1
  81. package/dist/components/ds-table-toolbar.js +1 -1
  82. package/dist/components/ds-table-toolbar.js.map +1 -1
  83. package/dist/components/ds-table.js +1 -1
  84. package/dist/components/ds-table.js.map +1 -1
  85. package/dist/components/ds-tag.js +1 -1
  86. package/dist/components/ds-text.js +1 -1
  87. package/dist/components/ds-toast.js +1 -1
  88. package/dist/components/ds-toast.js.map +1 -1
  89. package/dist/components/ds-tooltip-chart.js +1 -1
  90. package/dist/components/ds-tooltip.js +1 -1
  91. package/dist/components/ds-typing-indicator.js +1 -1
  92. package/dist/components/{p-y4jhIkRc.js → p-3WlVHGUe.js} +2 -2
  93. package/dist/components/{p-DAqSoyd4.js → p-9EQ3xLI1.js} +2 -2
  94. package/dist/components/p-9GuNIXuz.js +2 -0
  95. package/dist/components/{p-B0PEg5RF.js.map → p-9GuNIXuz.js.map} +1 -1
  96. package/dist/components/p-B0Byw6OX.js +2 -0
  97. package/dist/components/p-B0Byw6OX.js.map +1 -0
  98. package/dist/components/{p-DSIOINBK.js → p-B145kX-i.js} +2 -2
  99. package/dist/components/{p-DZ55e3j9.js → p-B9ZfoprK.js} +2 -2
  100. package/dist/components/{p-DNJTN_s0.js → p-BBmRD_S0.js} +2 -2
  101. package/dist/components/{p-C4TgWJi9.js → p-BKx2ihnG.js} +2 -2
  102. package/dist/components/{p-Be1sY58w.js → p-BTTxl3ro.js} +2 -2
  103. package/dist/components/p-Ba7DaFkb.js +2 -0
  104. package/dist/components/{p-DEjh3klB.js.map → p-Ba7DaFkb.js.map} +1 -1
  105. package/dist/components/{p-CKmfuK7k.js → p-BcNYvLMi.js} +2 -2
  106. package/dist/components/p-BcNYvLMi.js.map +1 -0
  107. package/dist/components/{p-rrFMAZkj.js → p-BdgoB2ef.js} +2 -2
  108. package/dist/components/{p-U8JIZzI2.js → p-Be-vZpWx.js} +2 -2
  109. package/dist/components/p-Be-vZpWx.js.map +1 -0
  110. package/dist/components/{p-DQqOzDEq.js → p-BiBXCjjo.js} +2 -2
  111. package/dist/components/{p-D1YhYulL.js → p-C6yLERx6.js} +2 -2
  112. package/dist/components/{p-Dg9qiMDa.js → p-C9StMCWg.js} +2 -2
  113. package/dist/components/{p-7tZx4ukz.js → p-CAJIARNW.js} +2 -2
  114. package/dist/components/{p-BVlfQ8xZ.js → p-CBa_6lqj.js} +2 -2
  115. package/dist/components/p-CBa_6lqj.js.map +1 -0
  116. package/dist/components/{p-D2z2DgtX.js → p-CHEt4mW8.js} +2 -2
  117. package/dist/components/p-CI5Ce8VF.js +2 -0
  118. package/dist/components/p-CI5Ce8VF.js.map +1 -0
  119. package/dist/components/{p-BHz78C8h.js → p-CbZ0RU2c.js} +2 -2
  120. package/dist/components/{p-BFSLT0yc.js → p-Cgm7YMLw.js} +2 -2
  121. package/dist/components/{p-BFSLT0yc.js.map → p-Cgm7YMLw.js.map} +1 -1
  122. package/dist/components/{p-Bn8NryHK.js → p-CihNoe1M.js} +2 -2
  123. package/dist/components/{p-D4K9CE8a.js → p-Cj5Hkt6Y.js} +2 -2
  124. package/dist/components/{p-ruPTIV6t.js → p-D6P_1YrL.js} +2 -2
  125. package/dist/components/p-DC_8dK55.js +2 -0
  126. package/dist/components/p-DC_8dK55.js.map +1 -0
  127. package/dist/components/p-DHzn7INS.js +2 -0
  128. package/dist/components/{p-DIEK54fV.js.map → p-DHzn7INS.js.map} +1 -1
  129. package/dist/components/{p-BNkU9dcc.js → p-DJ0GCCFa.js} +2 -2
  130. package/dist/components/p-DKY3IJqt.js +2 -0
  131. package/dist/components/p-DKY3IJqt.js.map +1 -0
  132. package/dist/components/{p-DsJW5W3W.js → p-DMaQkEYP.js} +2 -2
  133. package/dist/components/p-DNpLDbWY.js +2 -0
  134. package/dist/components/p-DNpLDbWY.js.map +1 -0
  135. package/dist/components/{p-PD1Vfg0t.js → p-DPR0TGGJ.js} +2 -2
  136. package/dist/components/{p-CMFvaY05.js → p-DPpHSIzS.js} +2 -2
  137. package/dist/components/p-DQyvAN44.js +2 -0
  138. package/dist/components/p-DQyvAN44.js.map +1 -0
  139. package/dist/components/p-DaxKVtZG.js +2 -0
  140. package/dist/components/p-DaxKVtZG.js.map +1 -0
  141. package/dist/components/{p-a6qP60zb.js → p-DbJahF86.js} +2 -2
  142. package/dist/components/{p-D8Qd6gkf.js → p-Dd8VKdAO.js} +2 -2
  143. package/dist/components/{p-C0X2zKbB.js → p-Dginv8PT.js} +2 -2
  144. package/dist/components/{p-BHDkJmrC.js → p-Dl3gciej.js} +2 -2
  145. package/dist/components/p-Drcl4zS9.js +2 -0
  146. package/dist/components/p-DzPw6aDK.js +2 -0
  147. package/dist/components/p-DzPw6aDK.js.map +1 -0
  148. package/dist/components/{p-BhYWdbEp.js → p-HZz5aJKz.js} +2 -2
  149. package/dist/components/{p-BGXqFq2C.js → p-LHzBS95u.js} +2 -2
  150. package/dist/components/{p-DHuyj-9J.js → p-hp_2W2Qy.js} +2 -2
  151. package/dist/components/p-jk2-y5dH.js +2 -0
  152. package/dist/components/p-jk2-y5dH.js.map +1 -0
  153. package/dist/components/{p-CzcWZiH-.js → p-oCc3mz_c.js} +2 -2
  154. package/dist/docs/components.json +234 -19
  155. package/dist/lib/components/ButtonFilled/ButtonFilled.d.ts +2 -0
  156. package/dist/lib/components/PanelTools/panel-tools-types.d.ts +2 -2
  157. package/dist/lib/shell/index.js +17 -25
  158. package/dist/lib/shell/index.js.map +2 -2
  159. package/dist/lib/shell/shell-responsive.d.ts +6 -1
  160. package/dist/lib/utils/anchored-position.d.ts +2 -0
  161. package/dist/lib/utils/button-render.d.ts +1 -0
  162. package/dist/mcp-data/registry/button-filled.json +20 -1
  163. package/dist/mcp-data/registry/button-unfilled.json +23 -3
  164. package/dist/mcp-data/registry/filter-menu.json +2 -2
  165. package/dist/mcp-data/registry/input.json +2 -2
  166. package/dist/mcp-data/registry/menu.json +2 -1
  167. package/dist/mcp-data/registry/mobile-bar-nav.json +57 -6
  168. package/dist/mcp-data/registry/pagination.json +5 -4
  169. package/dist/mcp-data/registry/panel-tools.json +4 -4
  170. package/dist/mcp-data/registry/registry.json +59 -31
  171. package/dist/mcp-data/registry/select.json +2 -2
  172. package/dist/mcp-data/registry/shell-app.json +5 -5
  173. package/dist/mcp-data/registry/shell-tools.json +4 -4
  174. package/dist/mcp-data/registry/table-filter.json +3 -3
  175. package/dist/mcp-data/registry/table-sort.json +5 -4
  176. package/dist/mcp-data/registry/table-toolbar.json +10 -9
  177. package/dist/mcp-data/registry/table.json +4 -4
  178. package/dist/styles/table.css +30 -10
  179. package/dist/types/components/ButtonFilled/ButtonFilled.d.ts +2 -0
  180. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +2 -0
  181. package/dist/types/components/Menu/Menu.d.ts +1 -0
  182. package/dist/types/components/MobileBarNav/MobileBarNav.d.ts +4 -0
  183. package/dist/types/components/Pagination/Pagination.d.ts +8 -0
  184. package/dist/types/components/PanelTools/panel-tools-types.d.ts +2 -2
  185. package/dist/types/components/Table/Table.d.ts +1 -0
  186. package/dist/types/components/TableToolbar/TableToolbar.d.ts +5 -0
  187. package/dist/types/components.d.ts +51 -0
  188. package/dist/types/shell/shell-responsive.d.ts +6 -1
  189. package/dist/types/utils/anchored-position.d.ts +2 -0
  190. package/dist/types/utils/button-render.d.ts +1 -0
  191. package/dist/vue/ds-button-filled.js +1 -0
  192. package/dist/vue/ds-button-unfilled.js +1 -0
  193. package/dist/vue/ds-mobile-bar-nav.js +3 -0
  194. package/package.json +1 -1
  195. package/dist/components/p-23u3lIr1.js +0 -2
  196. package/dist/components/p-Asi9h3pa.js +0 -2
  197. package/dist/components/p-Asi9h3pa.js.map +0 -1
  198. package/dist/components/p-B0PEg5RF.js +0 -2
  199. package/dist/components/p-BBxcMVqk.js +0 -2
  200. package/dist/components/p-BBxcMVqk.js.map +0 -1
  201. package/dist/components/p-BEvBJ65v.js +0 -2
  202. package/dist/components/p-BEvBJ65v.js.map +0 -1
  203. package/dist/components/p-BVlfQ8xZ.js.map +0 -1
  204. package/dist/components/p-BX0BMhgz.js +0 -2
  205. package/dist/components/p-BX0BMhgz.js.map +0 -1
  206. package/dist/components/p-Bh67XbfB.js +0 -2
  207. package/dist/components/p-Bh67XbfB.js.map +0 -1
  208. package/dist/components/p-CKmfuK7k.js.map +0 -1
  209. package/dist/components/p-DEjh3klB.js +0 -2
  210. package/dist/components/p-DIEK54fV.js +0 -2
  211. package/dist/components/p-DOqnJVos.js +0 -2
  212. package/dist/components/p-DOqnJVos.js.map +0 -1
  213. package/dist/components/p-Dr4AgJbV.js +0 -2
  214. package/dist/components/p-Dr4AgJbV.js.map +0 -1
  215. package/dist/components/p-NzGRAPcF.js +0 -2
  216. package/dist/components/p-NzGRAPcF.js.map +0 -1
  217. package/dist/components/p-U8JIZzI2.js.map +0 -1
  218. package/dist/components/p-ZZzC52Ea.js +0 -2
  219. package/dist/components/p-ZZzC52Ea.js.map +0 -1
  220. package/dist/components/p-__lNIImO.js +0 -2
  221. package/dist/components/p-__lNIImO.js.map +0 -1
  222. /package/dist/components/{p-y4jhIkRc.js.map → p-3WlVHGUe.js.map} +0 -0
  223. /package/dist/components/{p-DAqSoyd4.js.map → p-9EQ3xLI1.js.map} +0 -0
  224. /package/dist/components/{p-DSIOINBK.js.map → p-B145kX-i.js.map} +0 -0
  225. /package/dist/components/{p-DZ55e3j9.js.map → p-B9ZfoprK.js.map} +0 -0
  226. /package/dist/components/{p-DNJTN_s0.js.map → p-BBmRD_S0.js.map} +0 -0
  227. /package/dist/components/{p-C4TgWJi9.js.map → p-BKx2ihnG.js.map} +0 -0
  228. /package/dist/components/{p-Be1sY58w.js.map → p-BTTxl3ro.js.map} +0 -0
  229. /package/dist/components/{p-rrFMAZkj.js.map → p-BdgoB2ef.js.map} +0 -0
  230. /package/dist/components/{p-DQqOzDEq.js.map → p-BiBXCjjo.js.map} +0 -0
  231. /package/dist/components/{p-D1YhYulL.js.map → p-C6yLERx6.js.map} +0 -0
  232. /package/dist/components/{p-Dg9qiMDa.js.map → p-C9StMCWg.js.map} +0 -0
  233. /package/dist/components/{p-7tZx4ukz.js.map → p-CAJIARNW.js.map} +0 -0
  234. /package/dist/components/{p-D2z2DgtX.js.map → p-CHEt4mW8.js.map} +0 -0
  235. /package/dist/components/{p-BHz78C8h.js.map → p-CbZ0RU2c.js.map} +0 -0
  236. /package/dist/components/{p-Bn8NryHK.js.map → p-CihNoe1M.js.map} +0 -0
  237. /package/dist/components/{p-D4K9CE8a.js.map → p-Cj5Hkt6Y.js.map} +0 -0
  238. /package/dist/components/{p-ruPTIV6t.js.map → p-D6P_1YrL.js.map} +0 -0
  239. /package/dist/components/{p-BNkU9dcc.js.map → p-DJ0GCCFa.js.map} +0 -0
  240. /package/dist/components/{p-DsJW5W3W.js.map → p-DMaQkEYP.js.map} +0 -0
  241. /package/dist/components/{p-PD1Vfg0t.js.map → p-DPR0TGGJ.js.map} +0 -0
  242. /package/dist/components/{p-CMFvaY05.js.map → p-DPpHSIzS.js.map} +0 -0
  243. /package/dist/components/{p-a6qP60zb.js.map → p-DbJahF86.js.map} +0 -0
  244. /package/dist/components/{p-D8Qd6gkf.js.map → p-Dd8VKdAO.js.map} +0 -0
  245. /package/dist/components/{p-C0X2zKbB.js.map → p-Dginv8PT.js.map} +0 -0
  246. /package/dist/components/{p-BHDkJmrC.js.map → p-Dl3gciej.js.map} +0 -0
  247. /package/dist/components/{p-23u3lIr1.js.map → p-Drcl4zS9.js.map} +0 -0
  248. /package/dist/components/{p-BhYWdbEp.js.map → p-HZz5aJKz.js.map} +0 -0
  249. /package/dist/components/{p-BGXqFq2C.js.map → p-LHzBS95u.js.map} +0 -0
  250. /package/dist/components/{p-DHuyj-9J.js.map → p-hp_2W2Qy.js.map} +0 -0
  251. /package/dist/components/{p-CzcWZiH-.js.map → p-oCc3mz_c.js.map} +0 -0
@@ -1 +1 @@
1
- {"schemaVersion":1,"package":"@ds-mo/ui","version":"14.17.1","components":75,"digest":"8eb90c122e4876b8113eabacc841fb1dcfd71b10b594c1526aca0060228ba168","completedAt":"2026-08-25T16:56:49.434Z"}
1
+ {"schemaVersion":1,"package":"@ds-mo/ui","version":"14.18.0","components":75,"digest":"2e8656f6e4602cef10de5adfc1d720b29f0bd0a375203eee324483d113159afb","completedAt":"2026-08-25T22:11:10.796Z"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "package": "@ds-mo/ui",
4
- "packageVersion": "14.17.1",
4
+ "packageVersion": "14.18.0",
5
5
  "kind": "patterns",
6
6
  "entries": [
7
7
  {
@@ -187,7 +187,7 @@
187
187
  },
188
188
  {
189
189
  "component": "component:ds-mobile-bar-nav",
190
- "role": "Managed persistent mobile destinations for Menu, current area, Search, Inbox, Messages, Agents, and Help.",
190
+ "role": "Managed persistent mobile destinations for Menu, current area, Search, Activity, Messages, Agents, and Help, with optional Inbox grouping.",
191
191
  "required": false
192
192
  },
193
193
  {
@@ -200,7 +200,7 @@
200
200
  "Lab or the consuming application supplies navigation, pageChrome, and tools objects to managed ShellApp.",
201
201
  "The application router owns authorization, current URLs, history, route changes, and the routed content placed in ShellApp's default slot.",
202
202
  "ShellApp emits stable navigation and page intent events; it never mutates router history.",
203
- "ShellApp owns responsive mode, PanelNav presentation, tool open state, active tool, mobile Inbox grouping, Menu state, fullscreen presentation, focus restoration, and breakpoint state preservation.",
203
+ "ShellApp owns responsive mode, PanelNav presentation, tool open state, active tool, direct mobile destinations, optional Inbox grouping, Menu state, fullscreen presentation, focus restoration, and breakpoint state preservation.",
204
204
  "Tool products and routed content are instantiated once by the application in named tool-view and default slots; ShellApp changes presentation without recreating those owners.",
205
205
  "The application owns account menus, tool product data, page actions, and the consequences of every emitted intent event.",
206
206
  "The application owns viewport and theme-color metadata, the dynamic-viewport framework root, and containing document overscroll so body never becomes a second application scroller; ShellApp fills that owner and keeps its existing internal scrollers.",
@@ -211,7 +211,7 @@
211
211
  "Render exactly one managed ShellApp and one active routed main landmark.",
212
212
  "Provide visible labels and accessible names in navigation, pageChrome, and tool definitions before passing them to ShellApp.",
213
213
  "Handle ShellApp intent events without replacing focusable owners during responsive or fullscreen transitions.",
214
- "Keep the canonical Search and Help tools available and preserve Inbox unread state when Stacks and Activity are grouped on mobile; Messages remains directly reachable.",
214
+ "Keep the canonical Agents and Help tools available; expose Activity directly on mobile unless the product explicitly opts into grouped Inbox behavior.",
215
215
  "Do not override browser keyboard chords when enabling shell shortcuts."
216
216
  ],
217
217
  "responsiveBehavior": [
@@ -222,7 +222,7 @@
222
222
  "With viewport-fit=cover, ShellApp consumes the shared top safe-area inset once and MobileBarNav consumes the persistent bottom inset; nested routed, tool, sheet, and consumer headers do not duplicate either inset.",
223
223
  "An optional Banner spans the complete application above desktop navigation, workspace, tools, and mobile global surfaces while remaining below the operating-system top safe area.",
224
224
  "Switching breakpoints changes presentation and inert state without recreating route or tool elements.",
225
- "Messages uses its own mobile destination; Stacks and Activity use explicit mobile Inbox grouping metadata."
225
+ "Search, Activity, Messages, and Agents use direct mobile destinations; products may explicitly group review tools under Inbox instead."
226
226
  ],
227
227
  "implementations": {
228
228
  "customElements": {
@@ -236,7 +236,7 @@
236
236
  {
237
237
  "path": "app-shell.html",
238
238
  "language": "html",
239
- "content": "<ds-shell-app id=\"shell\">\n <app-search slot=\"search-view\"></app-search>\n <app-agents slot=\"agents-view\"></app-agents>\n <app-messages slot=\"messages-view\"></app-messages>\n <app-stacks slot=\"stacks-view\"></app-stacks>\n <app-activity slot=\"activity-view\"></app-activity>\n <app-help slot=\"help-view\"></app-help>\n <app-route-content><!-- router-owned page --></app-route-content>\n</ds-shell-app>"
239
+ "content": "<ds-shell-app id=\"shell\">\n <app-agents slot=\"agents-view\"></app-agents>\n <app-messages slot=\"messages-view\"></app-messages>\n <app-activity slot=\"activity-view\"></app-activity>\n <app-search slot=\"search-view\"></app-search>\n <app-help slot=\"help-view\"></app-help>\n <app-route-content><!-- router-owned page --></app-route-content>\n</ds-shell-app>"
240
240
  },
241
241
  {
242
242
  "path": "app-shell.ts",
package/dist/agent.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "package": "@ds-mo/ui",
4
- "packageVersion": "14.17.1",
4
+ "packageVersion": "14.18.0",
5
5
  "kind": "components",
6
6
  "entries": [
7
7
  {
@@ -1776,6 +1776,7 @@
1776
1776
  "Loading prevents duplicate activation without applying inactive opacity or removing the current keyboard focus.",
1777
1777
  "Icon and icon-label loading replace the icon in place. Label-only loading centers the loader while preserving the button's measured width.",
1778
1778
  "Physical press scaling is on by default. Disable it only when an owning composite must keep child or background geometry fixed; hover and pressed interaction washes remain available.",
1779
+ "Visible labels are emphasized by default. Set labelEmphasis to false when a composed surface deliberately needs the button label to match adjacent regular-weight control labels; this does not change the action hierarchy, foreground, icon, or interaction states.",
1779
1780
  "ButtonFilled has no active, pressed, or selected state; a filled action is a command, not a toggle or a persistent selection.",
1780
1781
  "An open popup is a transient pressed state instead. While expanded is true the pressed wash is held for the popup's complete rendered lifecycle and survives hover, so the trigger reads as held open without introducing a selected treatment.",
1781
1782
  "hasMenu supports only the label and icon-label variants. The chevron is what communicates that a menu will open, so an icon-only filled menu button would leave the affordance unstated."
@@ -1863,6 +1864,10 @@
1863
1864
  "type": "string",
1864
1865
  "required": false
1865
1866
  },
1867
+ "labelEmphasis": {
1868
+ "type": "boolean",
1869
+ "required": false
1870
+ },
1866
1871
  "pressScale": {
1867
1872
  "type": "boolean",
1868
1873
  "required": false
@@ -1984,6 +1989,7 @@
1984
1989
  "Loading prevents duplicate activation without applying inactive opacity or removing the current keyboard focus.",
1985
1990
  "Rounded changes only the control radius to the half-radius treatment; it does not change hierarchy, size, variant, or interaction semantics.",
1986
1991
  "Physical press scaling is on by default. Disable it only when an owning composite must keep child or background geometry fixed; hover and pressed interaction washes remain available.",
1992
+ "Visible labels are emphasized by default. Set labelEmphasis to false when a composed surface deliberately needs the button label to match adjacent regular-weight control labels; this does not change active state, foreground, icon, chevron, or interaction fills.",
1987
1993
  "Icon and icon-label loading replace the icon in place. Label-only loading centers the loader while preserving the button's measured width.",
1988
1994
  "hasMenu covers two distinct menu-button shapes and the variant selects between them. With label or icon-label the action has a menu, and a trailing chevron carries the affordance. With icon the button is a menu and no chevron is added.",
1989
1995
  "Because the icon-only shape has no chevron, its glyph must convey the menu on its own. Use Ellipses for a generic more-options or overflow control. Use a specific icon when the menu has a named purpose, such as Table for Customize table.",
@@ -1991,7 +1997,7 @@
1991
1997
  ],
1992
1998
  "responsiveBehavior": [
1993
1999
  "The consuming layout decides when an icon-label action becomes icon-only and must provide an explicit accessible name after changing variants. Table caption Customize is one such layout: below 900px it uses the icon shape while keeping the same neutral resting foreground regardless of the controlled column configuration.",
1994
- "When collapseLabel is set inside a named ds-table container narrower than 900px, an icon-label caption action omits its label and chevron and becomes icon-only while keeping its accessible name. An active control then promotes the icon to primary.",
2000
+ "When collapseLabel is set inside a named ds-table container narrower than 900px, an icon-label caption action omits its label and chevron and becomes icon-only while keeping its accessible name and exposing its label through a hover and keyboard-focus tooltip. An active control then promotes the icon to primary.",
1995
2001
  "Use fill width only when the parent layout requires a full-width secondary action."
1996
2002
  ],
1997
2003
  "frameworkCaveats": {
@@ -2087,6 +2093,10 @@
2087
2093
  "type": "string",
2088
2094
  "required": false
2089
2095
  },
2096
+ "labelEmphasis": {
2097
+ "type": "boolean",
2098
+ "required": false
2099
+ },
2090
2100
  "pressScale": {
2091
2101
  "type": "boolean",
2092
2102
  "required": false
@@ -2143,7 +2153,8 @@
2143
2153
  "badge",
2144
2154
  "icon",
2145
2155
  "loader",
2146
- "text"
2156
+ "text",
2157
+ "tooltip"
2147
2158
  ]
2148
2159
  },
2149
2160
  {
@@ -3836,7 +3847,7 @@
3836
3847
  ],
3837
3848
  "responsiveBehavior": [
3838
3849
  "The popup defaults to the large menu-width token and clamps to the viewport.",
3839
- "When collapseLabel is set inside a named ds-table container narrower than 900px, the trigger omits its label and chevron and becomes icon-only. Active criteria promote the prefix icon to primary.",
3850
+ "When collapseLabel is set inside a named ds-table container narrower than 900px, the trigger omits its label and chevron, becomes icon-only, and exposes its label through a hover and keyboard-focus tooltip. Active criteria promote the prefix icon to primary.",
3840
3851
  "Both panes remain visible at narrow widths, with a smaller category minimum and reduced option-pane padding.",
3841
3852
  "Treat side as preferred placement; the popup flips and clamps when viewport collision requires it."
3842
3853
  ],
@@ -4180,7 +4191,7 @@
4180
4191
  "states": [
4181
4192
  "Every size applies one complete control-density recipe across frame height, inline padding, icon zones, text-container inset, gap, and radius; supporting error content follows the shared 4px field flow.",
4182
4193
  "The normal field boundary uses the shared secondary inset border. Focus promotes it to the thicker bold-brand inset stroke, while error uses the thicker bold-negative inset stroke without changing geometry. Set hasBorder to false only in chrome that supplies enough surrounding structure; the control then remains borderless at rest, while focused, and while invalid, with semantics and supporting error copy unchanged.",
4183
- "Placeholder text is secondary at rest and quaternary while the editable field is focused because it becomes decorative once typing begins.",
4194
+ "Placeholder text is secondary at rest and quaternary while the editable field is focused because it becomes decorative once typing begins. Single-line placeholder and entered value text truncate with an ellipsis when the field is narrower than its content.",
4184
4195
  "Entered values use the parent surface's primary foreground; prefix icons, suffix content, and resting placeholder text use its secondary foreground.",
4185
4196
  "Search fields show a standard borderless CrossCircle icon action only while they contain a value. Clearing emits the empty value and restores focus to the native field.",
4186
4197
  "The suffix slot is for compact units or decorations. The optional leading icon is decorative and does not replace the field label.",
@@ -4620,6 +4631,7 @@
4620
4631
  "responsiveBehavior": [
4621
4632
  "Keep the default choice-cell anchor alignment so the first or last interactive row edge aligns with its trigger, matching Select; use popup-frame only for deliberate custom frame geometry.",
4622
4633
  "Treat side as the preferred placement. When the popup cannot fit there and the opposite side offers more room, Menu flips on that main axis before clamping the final position to the viewport.",
4634
+ "Cap the popup to the vertical room available on its resolved side. When content is taller, the choice list scrolls internally and keyboard focus scrolls the active row into view.",
4623
4635
  "Avoid fixed widths that exceed narrow viewports."
4624
4636
  ],
4625
4637
  "frameworkCaveats": {
@@ -5236,12 +5248,12 @@
5236
5248
  "tag": "ds-mobile-bar-nav",
5237
5249
  "name": "mobile-bar-nav",
5238
5250
  "title": "MobileBarNav",
5239
- "summary": "Persistent mobile shell navigation for Menu, the router-derived current area, Search, Inbox, Messages, and Agents.",
5251
+ "summary": "Persistent mobile shell navigation for Menu, the router-derived current area, Search, Activity, Messages, and Agents, with optional Inbox grouping.",
5240
5252
  "intentStatus": "complete",
5241
5253
  "intent": {
5242
5254
  "audience": "specialized",
5243
5255
  "status": "experimental",
5244
- "summary": "Persistent mobile shell navigation for Menu, the router-derived current area, Search, Inbox, Messages, and Agents.",
5256
+ "summary": "Persistent mobile shell navigation for Menu, the router-derived current area, Search, Activity, Messages, and Agents, with optional Inbox grouping.",
5245
5257
  "useWhen": [
5246
5258
  "ShellApp is rendering its dedicated below-768px application composition."
5247
5259
  ],
@@ -5260,7 +5272,8 @@
5260
5272
  "Only the active destination exposes aria-current; Menu exposes its controlled pane through aria-expanded."
5261
5273
  ],
5262
5274
  "states": [
5263
- "The fixed groups are Menu plus current area, followed by Search, Inbox, Messages, and Agents.",
5275
+ "The fixed groups are Menu plus current area, followed by Search, Activity, Messages, and Agents.",
5276
+ "Consumers that intentionally group multiple review tools can replace the Activity destination with Inbox.",
5264
5277
  "Selection promotes foreground to primary without painting a selected fill; unselected destinations use tertiary foreground.",
5265
5278
  "Opening Mobile Sheet Nav replaces the Menu glyph with Cross while preserving its accessible name.",
5266
5279
  "Reselecting an active destination does not reset its nested state.",
@@ -5284,6 +5297,18 @@
5284
5297
  "type": "MobileDestination",
5285
5298
  "required": false
5286
5299
  },
5300
+ "activityDot": {
5301
+ "type": "boolean",
5302
+ "required": false
5303
+ },
5304
+ "activityLabel": {
5305
+ "type": "string",
5306
+ "required": false
5307
+ },
5308
+ "activityMode": {
5309
+ "type": "'direct' | 'inbox'",
5310
+ "required": false
5311
+ },
5287
5312
  "agentsDot": {
5288
5313
  "type": "boolean",
5289
5314
  "required": false
@@ -5891,7 +5916,7 @@
5891
5916
  ],
5892
5917
  "accessibility": [
5893
5918
  "The component renders a named navigation region, gives its compact page-size noun a complete accessible label, and gives every icon-only boundary control an explicit page action name.",
5894
- "The visible page-size cluster states the localized noun, selected size, and total, for example Rows: 25 of 500. The page position uses compact ‘of’ phrasing, for example 1 of 20. A polite atomic status update retains the complete current range and ‘Page’ phrasing with the localized item noun.",
5919
+ "The visible page-size cluster states the localized noun, selected size, and current-page count of total, for example Rows: [25] 25 of 500. The page position uses compact ‘of’ phrasing, for example 1 of 20. A polite atomic status update retains the complete current range and ‘Page’ phrasing with the localized item noun.",
5895
5920
  "Left and Right Arrow request the adjacent page while focus is within pagination navigation controls. The page-size combobox retains its own arrow-key behavior.",
5896
5921
  "Inactive boundary controls and every control during loading remain non-interactive while retaining their accessible names."
5897
5922
  ],
@@ -5903,7 +5928,8 @@
5903
5928
  "fitToPage appends a Fit to page choice. fitPageSize supplies its effective whole-item capacity; the closed trigger says Fit while the range continues to expose the resulting count. fitToPageInactive keeps that choice visible but unavailable when fitting is not meaningful for the current data shape. Pagination does not measure layouts itself."
5904
5929
  ],
5905
5930
  "responsiveBehavior": [
5906
- "The compact controls remain on one line with noun, selected size, total, a vertical divider, and page position. When inline space is still insufficient, the pagination surface scrolls horizontally rather than wrapping labels away from their controls."
5931
+ "The full-width controls remain on one line with noun, selected size, current-page count of total, a vertical divider, page position, and first, previous, next, and last navigation.",
5932
+ "Inside a ds-table container narrower than 900px, pagination hides the visible current-page count and first/last boundary controls while retaining the page-size noun and selector plus previous, page position, and next. The complete current range remains available to assistive technology."
5907
5933
  ],
5908
5934
  "frameworkCaveats": {
5909
5935
  "customElements": [
@@ -6686,7 +6712,7 @@
6686
6712
  ],
6687
6713
  "accessibility": [
6688
6714
  "Provide localized accessible labels for the rail, shortcut group, and every rendered tool.",
6689
- "Use the canonical default recipe when the product needs Search first and Help last; custom recipes must preserve a deliberate keyboard and visual order.",
6715
+ "Use the canonical default recipe when the product needs Agents pinned first and Help pinned last; custom recipes must preserve a deliberate keyboard and visual order.",
6690
6716
  "Keep focus on the selected rail action when opening a drawer and allow normal Tab navigation into its content.",
6691
6717
  "When the shortcut rail overflows, its labeled body becomes a keyboard-focusable scroll region without changing the rail action order.",
6692
6718
  "Do not trigger global shortcuts while focus is in an editable control.",
@@ -6696,7 +6722,7 @@
6696
6722
  "states": [
6697
6723
  "Every tool has a stable explicit id and accessible label. The application filters definitions for authorization and entitlement.",
6698
6724
  "Tool order, header or footer rail placement, shortcut, and mobile grouping come from explicit item metadata rather than id-based layout assumptions.",
6699
- "PANEL_TOOLS_DEFAULT_ITEMS is the canonical Lab recipe: Search pinned first, Messages before Agents, Help pinned last, current shortcuts, and only Stacks and Activity grouped under mobile Inbox.",
6725
+ "PANEL_TOOLS_DEFAULT_ITEMS is the canonical Lab recipe: Agents pinned first; Messages, Activity, then Search in the body; Help pinned last; Activity directly reachable on mobile; and Stacks omitted.",
6700
6726
  "Only one drawer is open at a time; selecting another tool switches directly and selecting the active tool closes to rail-only mode.",
6701
6727
  "The drawer starts closed, remains open across ordinary route changes, and retains every mounted tool's independent conversation, query, scroll, and work state.",
6702
6728
  "When storageKey is set, persist only the last active tool in this browser and still restore the drawer closed after reload.",
@@ -7237,7 +7263,7 @@
7237
7263
  ],
7238
7264
  "responsiveBehavior": [
7239
7265
  "Use width fill for form fields and width hug for compact filter bars. Override those defaults only when the owning layout has a clear constraint.",
7240
- "When collapseLabel is set inside a named ds-table container narrower than 900px, the trigger omits its label and chevron and becomes icon-only. A selected value promotes the prefix icon to primary.",
7266
+ "When collapseLabel is set inside a named ds-table container narrower than 900px, the trigger omits its label and chevron, becomes icon-only, and exposes its label through a hover and keyboard-focus tooltip. A selected value promotes the prefix icon to primary.",
7241
7267
  "The popup matches the trigger minimum width, may grow for content, and clamps to the viewport.",
7242
7268
  "Keep popupAlign at start for ordinary fields and filters. Use end when a control sits against a right layout edge and the popup should grow inward.",
7243
7269
  "Long option collections scroll inside the popup; virtualization and remote search are not part of this component."
@@ -7516,14 +7542,14 @@
7516
7542
  "Keep the shell-owned routed-content scroller keyboard-focusable while its page landmark retains content semantics. Do not paint a control focus ring around that scroller; it is a layout region, and a page-column outline looks like a selected card.",
7517
7543
  "Keep the managed desktop/tablet and mobile presentations available without conditionally recreating routed or tool content.",
7518
7544
  "Do not override browser keyboard chords when enabling shell shortcuts.",
7519
- "Require Search and Help as the minimum PanelTools actions and provide accessible labels for every tool.",
7545
+ "Require Agents and Help as the minimum pinned PanelTools actions and provide accessible labels for every tool.",
7520
7546
  "Preserve focus and accessible names across navigation, collapse, overflow, and responsive presentation changes."
7521
7547
  ],
7522
7548
  "states": [
7523
7549
  "Render exactly one ShellApp as the workspace root and never nest it.",
7524
7550
  "Managed composition is the standard. Supply navigation, pageChrome, and tools objects plus named tool-view and default page-content slots.",
7525
7551
  "The application router owns the current route, authorization filtering, Dashboard or Settings context, destination collections, section collections, and localized content labels.",
7526
- "ShellApp renders the lower-level desktop, tablet, and mobile chrome, coordinates layout, gradient alignment, transitions, shortcuts, global surfaces, Inbox state, focus restoration, and mobile-stage visibility.",
7552
+ "ShellApp renders the lower-level desktop, tablet, and mobile chrome, coordinates layout, gradient alignment, transitions, shortcuts, global surfaces, optional Inbox state, focus restoration, and mobile-stage visibility.",
7527
7553
  "The application router owns authorization, current URLs, history, and route execution; ShellApp forwards navigation and page intent events without routing.",
7528
7554
  "The application supplies each routed content owner and tool view once. ShellApp changes visibility, inert state, and presentation without recreating those nodes.",
7529
7555
  "The optional banner slot accepts one application-owned ds-banner above the complete shell row. The application owns its open state, orientation for the current shell capacity, action consequences, dismissal persistence, and resolution when several messages compete.",
@@ -7919,17 +7945,17 @@
7919
7945
  "accessibility": [
7920
7946
  "Only the active mobile tool view participates in focus or the accessibility tree.",
7921
7947
  "Header Back and application-owned header actions preserve the PanelTools event contract.",
7922
- "Mobile Inbox uses a named label-only TabGroup for Stacks and Activity; Messages remains a direct mobile destination."
7948
+ "A direct Activity destination renders its own named tool view; an explicitly grouped Inbox uses a named label-only TabGroup."
7923
7949
  ],
7924
7950
  "states": [
7925
7951
  "The application owns open and activeTool and replaces headers when tool depth changes.",
7926
- "Items with mobileDestination inbox map to one mobile Inbox destination while retaining the actual active tool id; the canonical recipe groups Stacks and Activity, while Messages remains a separate destination.",
7952
+ "Items with mobileDestination inbox map to one mobile Inbox destination while retaining the actual active tool id; the canonical recipe exposes Activity directly and keeps Inbox grouping opt-in.",
7927
7953
  "Stable tool ids own named slots; label, order, rail placement, shortcut, and mobile destination are explicit item data.",
7928
7954
  "Switching responsive mode must not recreate application-owned slotted product elements."
7929
7955
  ],
7930
7956
  "responsiveBehavior": [
7931
7957
  "Desktop and tablet compose PanelTools-compatible rail and drawer chrome.",
7932
- "Mobile renders one centered MobileHeader for every tool; Stacks and Activity use the large segmented Inbox control, while Messages remains a direct tool destination."
7958
+ "Mobile renders one centered MobileHeader for every direct tool; explicitly grouped Inbox tools use the large segmented section control."
7933
7959
  ],
7934
7960
  "frameworkCaveats": {
7935
7961
  "customElements": [
@@ -8867,7 +8893,7 @@
8867
8893
  "pattern:menu-trigger"
8868
8894
  ],
8869
8895
  "accessibility": [
8870
- "The rendered structure uses a native table, caption, column headers, row groups, and data cells; keep the caption non-empty. The native caption remains visually hidden as the table's accessible name. When caption visibility is enabled, a 48px header bar renders as component chrome outside the horizontal scrollport. It defaults to a presentational caption title that does not duplicate the accessible name. Application-owned labeled controls supplied through the single named header slot replace that fallback and occupy the leading content width inside the component-owned 8px inset. When columnCustomizer is enabled, the table adds a trailing Customize control named Customize table. Its label and resting foreground remain neutral when hidden or reordered columns differ from the catalog default. The control is icon-label at typical widths and the icon-only Table menu button below 900px. Otherwise the header slot receives the complete content width.",
8896
+ "The rendered structure uses a native table, caption, column headers, row groups, and data cells; keep the caption non-empty. The native caption remains visually hidden as the table's accessible name. When caption visibility is enabled, a 48px header bar renders as component chrome outside the data scrollport. It defaults to a presentational caption title that does not duplicate the accessible name. Application-owned labeled controls supplied through the single named header slot replace that fallback and share one horizontal caption overflow row with table-owned actions inside the component-owned 8px inset. Table caption buttons keep pressed interaction paint without physically scaling. When columnCustomizer is enabled, the table adds a trailing Customize control named Customize table. Its label uses regular weight and its resting foreground remains neutral when hidden or reordered columns differ from the catalog default. The control is icon-label at typical widths and the icon-only Table menu button below 900px, where a tooltip preserves the Customize label. The always-icon-only table-variant control also exposes its label through a tooltip. Otherwise the header slot receives the complete content width.",
8871
8897
  "The data-mode switcher is the shared Menu of the table's supported infinite, pagination, and virtual modes. It uses an Ellipses trigger. The switcher is the final caption-bar action; when the column customizer is also present, a decorative vertical divider separates the two controls. dataMode remains controlled, and the application responds to change intent by supplying the matching records, pagination state, loading behavior, and query consequences. Escape, dismissal, and selection return focus to the trigger.",
8872
8898
  "The column customizer is the shared Menu of switch rows, not a table-owned dialog. Data columns can be shown, hidden, and reordered. Action columns and the selection checkbox never appear in the menu. The last remaining visible data column cannot be hidden, but it stays focusable so it can still be reordered. Escape and outside click restore focus to the trigger. Persistence stays in the application.",
8873
8899
  "Sorting controls remain buttons inside column headers and expose the table's one controlled member-row sort through aria-sort. ds-table-sort in the toolbar trailing cluster is the matching menu of Data and Direction sections; it emits the same dsSortChange shape so header clicks and menu choices stay in sync. Grouping never adds a second sort indicator or header control; the application supplies groups in its fixed product order. Optional column help underlines the header label with the shared dotted decoration and shows ds-tooltip from that label; it does not add a second header control or replace the column name.",
@@ -8893,7 +8919,7 @@
8893
8919
  ],
8894
8920
  "responsiveBehavior": [
8895
8921
  "The table keeps native semantics at narrow widths and scrolls horizontally instead of transforming into cards.",
8896
- "Inside the named ds-table container, caption Filter, Group, and Sort controls that opt into collapseLabel become icon-only below 900px by omitting their labels and chevrons. Active filtering or grouping promotes the visible icon to primary. Sort keeps resting secondary chrome because its selection lives in the menu and headers. Customize switches to the icon-only Table menu button below 900px and keeps its neutral resting foreground regardless of the controlled column configuration.",
8922
+ "Inside the named ds-table container, caption Search retains its standard maximum width and flexes smaller only when the complete row needs space. Filter, Group, and Sort controls that opt into collapseLabel become icon-only below 900px by omitting their labels and chevrons. Active filtering or grouping promotes the visible icon to primary. Sort keeps resting secondary chrome because its selection lives in the menu and headers. Customize switches to the icon-only Table menu button below 900px and keeps its neutral resting foreground regardless of the controlled column configuration. The caption, frame, and footer remain within the table host at every width. The complete caption row scrolls together only when those compact controls no longer fit, while data columns scroll inside the viewport; table-owned trailing actions never stay pinned over the scrolling toolbar.",
8897
8923
  "stickyHeader follows the active vertical scroll owner: a maxHeight, height, or fitViewport table keeps its native header and group sections inside one bounded table scrollport, while a document-flow table retains a semantic native header and renders a sticky control header whose columns follow the body's native inline scroll timeline. Consumers set --ds-table-sticky-header-offset when page chrome occupies an unbounded document scrollport edge. When the 48px table header bar is visible, it sticks at that external offset and the column header stacks immediately below it.",
8898
8924
  "fitViewport uses viewportInsetBlockStart and viewportInsetBlockEnd to describe compact surrounding chrome and page gutters relative to the nearest vertical scroll owner. Before the table reaches that compact position, its host reserves the eventual height while the visible composition grows and vertical input remains owned by the outer page. Once settled, the internal table viewport becomes the vertical scroll owner. Bounded grouped tables use browser-native sticky section rows inside real block row-group boundaries, so scroll and resize do not run component JavaScript or trigger reactive section swaps. Document-flow tables retain the synchronized visual lane required by their separate horizontal scrollport.",
8899
8925
  "Without maxHeight the table grows the document and automatic lazy loading observes the browser viewport. Horizontal scrolling chains vertical wheel and trackpad movement to the page instead of trapping it.",
@@ -9279,7 +9305,7 @@
9279
9305
  ],
9280
9306
  "accessibility": [
9281
9307
  "The trigger is an icon-label combobox named Filter table unless a product aria-label supplies the table context. Compact caption widths preserve that accessible name after the visible label and chevron are omitted.",
9282
- "The popup retains ds-filter-menu category navigation, option semantics, focus entry, dismissal, and focus return.",
9308
+ "The popup retains ds-filter-menu category navigation, option semantics, focus entry, dismissal, and focus return, and aligns its start edge with the trigger.",
9283
9309
  "Localize label, menuLabel, categoriesLabel, and clearLabel together so visible and accessible wording remains consistent."
9284
9310
  ],
9285
9311
  "states": [
@@ -9289,7 +9315,7 @@
9289
9315
  ],
9290
9316
  "responsiveBehavior": [
9291
9317
  "Place the control in the trailing region of ds-table-toolbar.",
9292
- "Inside a named ds-table container narrower than 900px, the trigger becomes icon-only and active criteria promote the Filters icon to primary."
9318
+ "Inside a named ds-table container narrower than 900px, the trigger becomes icon-only, exposes its visible label through a hover and keyboard-focus tooltip, and active criteria promote the Filters icon to primary."
9293
9319
  ],
9294
9320
  "frameworkCaveats": {
9295
9321
  "customElements": [
@@ -9582,18 +9608,19 @@
9582
9608
  ],
9583
9609
  "accessibility": [
9584
9610
  "The trigger is an icon-label menu button named Sort table unless a product aria-label is supplied. Compact caption widths keep that accessible name after the visible label is omitted.",
9585
- "The menu has two sections, Data and Direction. Each section presents one selected row through isSelected; the menu is not a single radio group because field and direction are independent.",
9611
+ "The start-aligned menu has two sections, Data and Direction. Each section presents one selected row through isSelected; the menu is not a single radio group because field and direction are independent.",
9586
9612
  "Choosing a row applies immediately and keeps the menu open so the other section can be changed. Escape and outside activation close the menu and restore trigger focus."
9587
9613
  ],
9588
9614
  "states": [
9589
9615
  "columns and sort are controlled. dsSortChange reports the next TableSortState and never mutates those inputs. The same sort object is what column headers emit through the table.",
9590
9616
  "Selecting a different data field keeps the current direction, or starts ascending when no sort exists. Selecting a direction applies it to the current field, or to the first sortable field when no sort exists. Selecting the already-active field or direction is a no-op and does not toggle the way a header click does.",
9591
- "The trigger stays Sort in resting secondary chrome. Field and direction selection live in the menu and on column headers, so the trigger never uses active primary emphasis.",
9617
+ "The trigger stays Sort in regular-weight resting secondary chrome. Field and direction selection live in the menu and on column headers, so the trigger never uses active primary emphasis. It keeps pressed interaction paint without physically scaling inside the stable table caption row.",
9592
9618
  "Compound sortable headers contribute one Data row per segment. Action columns never appear."
9593
9619
  ],
9594
9620
  "responsiveBehavior": [
9595
9621
  "Place the control in the trailing region of ds-table-toolbar with Filter and Group.",
9596
- "Inside a named ds-table container narrower than 900px, the trigger omits its label and chevron and becomes icon-only. The icon keeps the resting secondary foreground."
9622
+ "Inside a named ds-table container narrower than 900px, the trigger omits its label and chevron and becomes icon-only. A hover and keyboard-focus tooltip preserves the label, and the icon keeps the resting secondary foreground.",
9623
+ "Long sortable-field catalogs inherit Menu's collision-aware height cap and internal choice scrolling instead of extending beyond the available viewport space."
9597
9624
  ],
9598
9625
  "frameworkCaveats": {
9599
9626
  "customElements": [
@@ -9660,12 +9687,12 @@
9660
9687
  "tag": "ds-table-toolbar",
9661
9688
  "name": "table-toolbar",
9662
9689
  "title": "TableToolbar",
9663
- "summary": "Data-agnostic companion layout for application-owned table caption controls, with a start cluster, optional search, trailing Filter/Group/Sort, and narrow-width horizontal overflow.",
9690
+ "summary": "Data-agnostic companion layout for application-owned table caption controls, with a start cluster, optional search, trailing Filter/Sort/Group, and narrow-width horizontal overflow.",
9664
9691
  "intentStatus": "complete",
9665
9692
  "intent": {
9666
9693
  "audience": "general",
9667
9694
  "status": "stable",
9668
- "summary": "Data-agnostic companion layout for application-owned table caption controls, with a start cluster, optional search, trailing Filter/Group/Sort, and narrow-width horizontal overflow.",
9695
+ "summary": "Data-agnostic companion layout for application-owned table caption controls, with a start cluster, optional search, trailing Filter/Sort/Group, and narrow-width horizontal overflow.",
9669
9696
  "useWhen": [
9670
9697
  "Several table pages repeat the same saved-view cluster, middle discovery and result-shaping controls, and table-owned caption actions.",
9671
9698
  "A ds-table header slot needs consistent control spacing, alignment, grouping, and narrow-width overflow without moving product behavior into the table."
@@ -9688,17 +9715,18 @@
9688
9715
  "patterns": [],
9689
9716
  "accessibility": [
9690
9717
  "The component exposes a named toolbar while each slotted control retains its own accessible name and native keyboard behavior.",
9691
- "Use the start slot for saved views. Use search for the optional discovery field, leading for any additional left-side middle controls, and trailing for Filter, Group, and Sort. Table-owned column customizer and data-mode actions remain in the table caption trailing cluster.",
9718
+ "Use the start slot for saved views. Use search for the optional discovery field, leading for any additional left-side middle controls, and trailing for Filter, Sort, and Group. Table-owned column customizer and data-mode actions remain in the table caption trailing cluster and participate in the same caption overflow row.",
9692
9719
  "Tab order follows authored DOM order. The toolbar does not add roving focus because it may contain heterogeneous form and popup controls."
9693
9720
  ],
9694
9721
  "states": [
9695
9722
  "The component owns layout only. It never mutates slotted control props, values, menus, loading, persistence, or consequences. Use ds-table-saved-views and ds-table-filter when those interactions need the shared CompoMo behavior while application data and persistence remain external.",
9696
- "The start cluster is followed by a decorative vertical divider, then the spanning middle region. The start cluster and divider hide when nothing is projected. Search is a dedicated slot that hides when nothing is projected. Empty leading or trailing clusters add no placeholder chrome. The middle region occupies remaining width so trailing controls stay at its inline end.",
9697
- "Column customizer and data-mode switching stay table-owned caption actions. Do not recreate those menus in the toolbar."
9723
+ "Buttons in the toolbar keep their hover and pressed interaction paint without physically scaling, so pointer feedback does not disturb the stable caption geometry.",
9724
+ "The start cluster is followed by a decorative vertical divider, then Search, optional leading controls, and one trailing action cluster. The start cluster and divider hide when nothing is projected. Search is a dedicated slot that hides when nothing is projected. Empty leading or trailing clusters add no placeholder chrome. Search is the only toolbar region that shrinks; all action controls retain their control geometry and align directly before the table-owned actions.",
9725
+ "Column customizer and data-mode switching stay table-owned caption actions. Do not recreate those menus in the toolbar. When slotted into a table header, the table caption owns overflow for the complete toolbar and table-owned action row."
9698
9726
  ],
9699
9727
  "responsiveBehavior": [
9700
- "The start cluster, search, trailing Filter/Group/Sort, and table caption trailing actions stay on one line. Saved views hug their current trigger content up to the compact menu-width token rather than reserving that full width; long names truncate while the dirty dot stays visible. Filter, Group, and Sort triggers cap at the same token, and Group and Sort popups keep that compact menu-width floor. The toolbar horizontally scrolls when its complete controls no longer fit.",
9701
- "Inside a named ds-table container narrower than 900px, ds-table-filter and ds-table-sort omit their labels and chevrons and become icon-only. Group controls explicitly opt into the same treatment with collapseLabel. Active filtering or grouping promotes the prefix icon to primary. Sort keeps resting secondary chrome. Table-owned Customize also becomes the icon-only Table menu button at that width.",
9728
+ "The start cluster, search, trailing Filter/Sort/Group, and table caption trailing actions stay on one line. Saved views hug their current trigger content up to the compact menu-width token rather than reserving that full width; long names truncate while the dirty dot stays visible. Filter, Sort, and Group triggers cap at the same token, and Sort and Group popups keep that compact menu-width floor. A standalone toolbar owns its horizontal scrolling; inside a table, the complete caption row is the single overflow owner so table-owned actions never remain pinned over scrolling toolbar controls.",
9729
+ "Inside a named ds-table container narrower than 900px, Search retains its standard maximum width and flexes smaller only when the complete row needs space. ds-table-filter and ds-table-sort omit their labels and chevrons, and Group controls explicitly opted into collapseLabel become icon-only; each exposes its label through a hover and keyboard-focus tooltip. Empty leading and trailing slot groups do not add spacing. Active filtering or grouping promotes the prefix icon to primary. Sort keeps resting secondary chrome. Table-owned Customize also becomes the icon-only Table menu button at that width with the same tooltip behavior.",
9702
9730
  "The scrollbar is visually suppressed without removing touch, trackpad, mouse-wheel, or keyboard scrolling from the overflow container.",
9703
9731
  "Trailing controls remain grouped after leading controls; the toolbar does not collapse controls into an application-specific overflow menu."
9704
9732
  ],
@@ -8,7 +8,7 @@ export declare class DsButtonFilled {
8
8
  dsClick: EventEmitter<DsButtonFilledCustomEvent<MouseEvent>>;
9
9
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<DsButtonFilled, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<DsButtonFilled, "ds-button-filled", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "background": { "alias": "background"; "required": false; }; "contrast": { "alias": "contrast"; "required": false; }; "controls": { "alias": "controls"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "hasBorder": { "alias": "hasBorder"; "required": false; }; "hasMenu": { "alias": "hasMenu"; "required": false; }; "haspopup": { "alias": "haspopup"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "insetDepth": { "alias": "insetDepth"; "required": false; }; "intent": { "alias": "intent"; "required": false; }; "isInactive": { "alias": "isInactive"; "required": false; }; "isInset": { "alias": "isInset"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "label": { "alias": "label"; "required": false; }; "pressScale": { "alias": "pressScale"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, { "dsClick": "dsClick"; }, never, ["*"], true, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<DsButtonFilled, "ds-button-filled", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "background": { "alias": "background"; "required": false; }; "contrast": { "alias": "contrast"; "required": false; }; "controls": { "alias": "controls"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "hasBorder": { "alias": "hasBorder"; "required": false; }; "hasMenu": { "alias": "hasMenu"; "required": false; }; "haspopup": { "alias": "haspopup"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "insetDepth": { "alias": "insetDepth"; "required": false; }; "intent": { "alias": "intent"; "required": false; }; "isInactive": { "alias": "isInactive"; "required": false; }; "isInset": { "alias": "isInset"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "label": { "alias": "label"; "required": false; }; "labelEmphasis": { "alias": "labelEmphasis"; "required": false; }; "pressScale": { "alias": "pressScale"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, { "dsClick": "dsClick"; }, never, ["*"], true, never>;
12
12
  }
13
13
  export declare interface DsButtonFilled extends Components.DsButtonFilled {
14
14
  dsClick: EventEmitter<DsButtonFilledCustomEvent<MouseEvent>>;
@@ -18,12 +18,12 @@ let DsButtonFilled = class DsButtonFilled {
18
18
  this.el = r.nativeElement;
19
19
  }
20
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DsButtonFilled, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsButtonFilled, isStandalone: true, selector: "ds-button-filled", inputs: { ariaLabel: "ariaLabel", background: "background", contrast: "contrast", controls: "controls", expanded: "expanded", hasBorder: "hasBorder", hasMenu: "hasMenu", haspopup: "haspopup", icon: "icon", insetDepth: "insetDepth", intent: "intent", isInactive: "isInactive", isInset: "isInset", isLoading: "isLoading", label: "label", pressScale: "pressScale", rounded: "rounded", size: "size", type: "type", variant: "variant", width: "width" }, outputs: { dsClick: "dsClick" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsButtonFilled, isStandalone: true, selector: "ds-button-filled", inputs: { ariaLabel: "ariaLabel", background: "background", contrast: "contrast", controls: "controls", expanded: "expanded", hasBorder: "hasBorder", hasMenu: "hasMenu", haspopup: "haspopup", icon: "icon", insetDepth: "insetDepth", intent: "intent", isInactive: "isInactive", isInset: "isInset", isLoading: "isLoading", label: "label", labelEmphasis: "labelEmphasis", pressScale: "pressScale", rounded: "rounded", size: "size", type: "type", variant: "variant", width: "width" }, outputs: { dsClick: "dsClick" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
22
  };
23
23
  DsButtonFilled = __decorate([
24
24
  ProxyCmp({
25
25
  defineCustomElementFn: defineDsButtonFilled,
26
- inputs: ['ariaLabel', 'background', 'contrast', 'controls', 'expanded', 'hasBorder', 'hasMenu', 'haspopup', 'icon', 'insetDepth', 'intent', 'isInactive', 'isInset', 'isLoading', 'label', 'pressScale', 'rounded', 'size', 'type', 'variant', 'width'],
26
+ inputs: ['ariaLabel', 'background', 'contrast', 'controls', 'expanded', 'hasBorder', 'hasMenu', 'haspopup', 'icon', 'insetDepth', 'intent', 'isInactive', 'isInset', 'isLoading', 'label', 'labelEmphasis', 'pressScale', 'rounded', 'size', 'type', 'variant', 'width'],
27
27
  methods: ['setFocus']
28
28
  })
29
29
  ], DsButtonFilled);
@@ -35,7 +35,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
35
35
  changeDetection: ChangeDetectionStrategy.OnPush,
36
36
  template: '<ng-content></ng-content>',
37
37
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
38
- inputs: ['ariaLabel', 'background', 'contrast', 'controls', 'expanded', 'hasBorder', 'hasMenu', 'haspopup', 'icon', 'insetDepth', 'intent', 'isInactive', 'isInset', 'isLoading', 'label', 'pressScale', 'rounded', 'size', 'type', 'variant', 'width'],
38
+ inputs: ['ariaLabel', 'background', 'contrast', 'controls', 'expanded', 'hasBorder', 'hasMenu', 'haspopup', 'icon', 'insetDepth', 'intent', 'isInactive', 'isInset', 'isLoading', 'label', 'labelEmphasis', 'pressScale', 'rounded', 'size', 'type', 'variant', 'width'],
39
39
  outputs: ['dsClick'],
40
40
  }]
41
41
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dsClick: [{
@@ -9,7 +9,7 @@ export declare class DsButtonUnfilled {
9
9
  dsChange: EventEmitter<DsButtonUnfilledCustomEvent<boolean>>;
10
10
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<DsButtonUnfilled, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<DsButtonUnfilled, "ds-button-unfilled", never, { "activeFill": { "alias": "activeFill"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "background": { "alias": "background"; "required": false; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; }; "controls": { "alias": "controls"; "required": false; }; "dot": { "alias": "dot"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "focusTabIndex": { "alias": "focusTabIndex"; "required": false; }; "hasBorder": { "alias": "hasBorder"; "required": false; }; "hasMenu": { "alias": "hasMenu"; "required": false; }; "haspopup": { "alias": "haspopup"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "insetDepth": { "alias": "insetDepth"; "required": false; }; "isActive": { "alias": "isActive"; "required": false; }; "isInactive": { "alias": "isInactive"; "required": false; }; "isInset": { "alias": "isInset"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "label": { "alias": "label"; "required": false; }; "pressScale": { "alias": "pressScale"; "required": false; }; "pressed": { "alias": "pressed"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, { "dsClick": "dsClick"; "dsChange": "dsChange"; }, never, ["*"], true, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<DsButtonUnfilled, "ds-button-unfilled", never, { "activeFill": { "alias": "activeFill"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "background": { "alias": "background"; "required": false; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; }; "controls": { "alias": "controls"; "required": false; }; "dot": { "alias": "dot"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "focusTabIndex": { "alias": "focusTabIndex"; "required": false; }; "hasBorder": { "alias": "hasBorder"; "required": false; }; "hasMenu": { "alias": "hasMenu"; "required": false; }; "haspopup": { "alias": "haspopup"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "insetDepth": { "alias": "insetDepth"; "required": false; }; "isActive": { "alias": "isActive"; "required": false; }; "isInactive": { "alias": "isInactive"; "required": false; }; "isInset": { "alias": "isInset"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "label": { "alias": "label"; "required": false; }; "labelEmphasis": { "alias": "labelEmphasis"; "required": false; }; "pressScale": { "alias": "pressScale"; "required": false; }; "pressed": { "alias": "pressed"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, { "dsClick": "dsClick"; "dsChange": "dsChange"; }, never, ["*"], true, never>;
13
13
  }
14
14
  export declare interface DsButtonUnfilled extends Components.DsButtonUnfilled {
15
15
  dsClick: EventEmitter<DsButtonUnfilledCustomEvent<MouseEvent>>;
@@ -19,12 +19,12 @@ let DsButtonUnfilled = class DsButtonUnfilled {
19
19
  this.el = r.nativeElement;
20
20
  }
21
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DsButtonUnfilled, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsButtonUnfilled, isStandalone: true, selector: "ds-button-unfilled", inputs: { activeFill: "activeFill", ariaLabel: "ariaLabel", background: "background", collapseLabel: "collapseLabel", controls: "controls", dot: "dot", expanded: "expanded", focusTabIndex: "focusTabIndex", hasBorder: "hasBorder", hasMenu: "hasMenu", haspopup: "haspopup", icon: "icon", insetDepth: "insetDepth", isActive: "isActive", isInactive: "isInactive", isInset: "isInset", isLoading: "isLoading", label: "label", pressScale: "pressScale", pressed: "pressed", rounded: "rounded", size: "size", type: "type", variant: "variant", width: "width" }, outputs: { dsClick: "dsClick", dsChange: "dsChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsButtonUnfilled, isStandalone: true, selector: "ds-button-unfilled", inputs: { activeFill: "activeFill", ariaLabel: "ariaLabel", background: "background", collapseLabel: "collapseLabel", controls: "controls", dot: "dot", expanded: "expanded", focusTabIndex: "focusTabIndex", hasBorder: "hasBorder", hasMenu: "hasMenu", haspopup: "haspopup", icon: "icon", insetDepth: "insetDepth", isActive: "isActive", isInactive: "isInactive", isInset: "isInset", isLoading: "isLoading", label: "label", labelEmphasis: "labelEmphasis", pressScale: "pressScale", pressed: "pressed", rounded: "rounded", size: "size", type: "type", variant: "variant", width: "width" }, outputs: { dsClick: "dsClick", dsChange: "dsChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
23
23
  };
24
24
  DsButtonUnfilled = __decorate([
25
25
  ProxyCmp({
26
26
  defineCustomElementFn: defineDsButtonUnfilled,
27
- inputs: ['activeFill', 'ariaLabel', 'background', 'collapseLabel', 'controls', 'dot', 'expanded', 'focusTabIndex', 'hasBorder', 'hasMenu', 'haspopup', 'icon', 'insetDepth', 'isActive', 'isInactive', 'isInset', 'isLoading', 'label', 'pressScale', 'pressed', 'rounded', 'size', 'type', 'variant', 'width'],
27
+ inputs: ['activeFill', 'ariaLabel', 'background', 'collapseLabel', 'controls', 'dot', 'expanded', 'focusTabIndex', 'hasBorder', 'hasMenu', 'haspopup', 'icon', 'insetDepth', 'isActive', 'isInactive', 'isInset', 'isLoading', 'label', 'labelEmphasis', 'pressScale', 'pressed', 'rounded', 'size', 'type', 'variant', 'width'],
28
28
  methods: ['setFocus']
29
29
  })
30
30
  ], DsButtonUnfilled);
@@ -36,7 +36,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
36
36
  changeDetection: ChangeDetectionStrategy.OnPush,
37
37
  template: '<ng-content></ng-content>',
38
38
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
39
- inputs: ['activeFill', 'ariaLabel', 'background', 'collapseLabel', 'controls', 'dot', 'expanded', 'focusTabIndex', 'hasBorder', 'hasMenu', 'haspopup', 'icon', 'insetDepth', 'isActive', 'isInactive', 'isInset', 'isLoading', 'label', 'pressScale', 'pressed', 'rounded', 'size', 'type', 'variant', 'width'],
39
+ inputs: ['activeFill', 'ariaLabel', 'background', 'collapseLabel', 'controls', 'dot', 'expanded', 'focusTabIndex', 'hasBorder', 'hasMenu', 'haspopup', 'icon', 'insetDepth', 'isActive', 'isInactive', 'isInset', 'isLoading', 'label', 'labelEmphasis', 'pressScale', 'pressed', 'rounded', 'size', 'type', 'variant', 'width'],
40
40
  outputs: ['dsClick', 'dsChange'],
41
41
  }]
42
42
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dsClick: [{
@@ -10,7 +10,7 @@ export declare class DsMobileBarNav {
10
10
  dsDestinationChange: EventEmitter<DsMobileBarNavCustomEvent<IDsMobileBarNavMobileBarNavDestinationDetail>>;
11
11
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<DsMobileBarNav, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<DsMobileBarNav, "ds-mobile-bar-nav", never, { "activeDestination": { "alias": "activeDestination"; "required": false; }; "agentsDot": { "alias": "agentsDot"; "required": false; }; "agentsLabel": { "alias": "agentsLabel"; "required": false; }; "currentArea": { "alias": "currentArea"; "required": false; }; "helpLabel": { "alias": "helpLabel"; "required": false; }; "inboxDot": { "alias": "inboxDot"; "required": false; }; "inboxLabel": { "alias": "inboxLabel"; "required": false; }; "menuLabel": { "alias": "menuLabel"; "required": false; }; "messagesDot": { "alias": "messagesDot"; "required": false; }; "messagesLabel": { "alias": "messagesLabel"; "required": false; }; "searchDot": { "alias": "searchDot"; "required": false; }; "searchLabel": { "alias": "searchLabel"; "required": false; }; "sheetNavExpanded": { "alias": "sheetNavExpanded"; "required": false; }; }, { "dsSheetNavToggle": "dsSheetNavToggle"; "dsDestinationChange": "dsDestinationChange"; }, never, ["*"], true, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<DsMobileBarNav, "ds-mobile-bar-nav", never, { "activeDestination": { "alias": "activeDestination"; "required": false; }; "activityDot": { "alias": "activityDot"; "required": false; }; "activityLabel": { "alias": "activityLabel"; "required": false; }; "activityMode": { "alias": "activityMode"; "required": false; }; "agentsDot": { "alias": "agentsDot"; "required": false; }; "agentsLabel": { "alias": "agentsLabel"; "required": false; }; "currentArea": { "alias": "currentArea"; "required": false; }; "helpLabel": { "alias": "helpLabel"; "required": false; }; "inboxDot": { "alias": "inboxDot"; "required": false; }; "inboxLabel": { "alias": "inboxLabel"; "required": false; }; "menuLabel": { "alias": "menuLabel"; "required": false; }; "messagesDot": { "alias": "messagesDot"; "required": false; }; "messagesLabel": { "alias": "messagesLabel"; "required": false; }; "searchDot": { "alias": "searchDot"; "required": false; }; "searchLabel": { "alias": "searchLabel"; "required": false; }; "sheetNavExpanded": { "alias": "sheetNavExpanded"; "required": false; }; }, { "dsSheetNavToggle": "dsSheetNavToggle"; "dsDestinationChange": "dsDestinationChange"; }, never, ["*"], true, never>;
14
14
  }
15
15
  export declare interface DsMobileBarNav extends Components.DsMobileBarNav {
16
16
  dsSheetNavToggle: EventEmitter<DsMobileBarNavCustomEvent<boolean>>;
@@ -19,12 +19,12 @@ let DsMobileBarNav = class DsMobileBarNav {
19
19
  this.el = r.nativeElement;
20
20
  }
21
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DsMobileBarNav, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsMobileBarNav, isStandalone: true, selector: "ds-mobile-bar-nav", inputs: { activeDestination: "activeDestination", agentsDot: "agentsDot", agentsLabel: "agentsLabel", currentArea: "currentArea", helpLabel: "helpLabel", inboxDot: "inboxDot", inboxLabel: "inboxLabel", menuLabel: "menuLabel", messagesDot: "messagesDot", messagesLabel: "messagesLabel", searchDot: "searchDot", searchLabel: "searchLabel", sheetNavExpanded: "sheetNavExpanded" }, outputs: { dsSheetNavToggle: "dsSheetNavToggle", dsDestinationChange: "dsDestinationChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsMobileBarNav, isStandalone: true, selector: "ds-mobile-bar-nav", inputs: { activeDestination: "activeDestination", activityDot: "activityDot", activityLabel: "activityLabel", activityMode: "activityMode", agentsDot: "agentsDot", agentsLabel: "agentsLabel", currentArea: "currentArea", helpLabel: "helpLabel", inboxDot: "inboxDot", inboxLabel: "inboxLabel", menuLabel: "menuLabel", messagesDot: "messagesDot", messagesLabel: "messagesLabel", searchDot: "searchDot", searchLabel: "searchLabel", sheetNavExpanded: "sheetNavExpanded" }, outputs: { dsSheetNavToggle: "dsSheetNavToggle", dsDestinationChange: "dsDestinationChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
23
23
  };
24
24
  DsMobileBarNav = __decorate([
25
25
  ProxyCmp({
26
26
  defineCustomElementFn: defineDsMobileBarNav,
27
- inputs: ['activeDestination', 'agentsDot', 'agentsLabel', 'currentArea', 'helpLabel', 'inboxDot', 'inboxLabel', 'menuLabel', 'messagesDot', 'messagesLabel', 'searchDot', 'searchLabel', 'sheetNavExpanded'],
27
+ inputs: ['activeDestination', 'activityDot', 'activityLabel', 'activityMode', 'agentsDot', 'agentsLabel', 'currentArea', 'helpLabel', 'inboxDot', 'inboxLabel', 'menuLabel', 'messagesDot', 'messagesLabel', 'searchDot', 'searchLabel', 'sheetNavExpanded'],
28
28
  methods: ['focusDestination']
29
29
  })
30
30
  ], DsMobileBarNav);
@@ -36,7 +36,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
36
36
  changeDetection: ChangeDetectionStrategy.OnPush,
37
37
  template: '<ng-content></ng-content>',
38
38
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
39
- inputs: ['activeDestination', 'agentsDot', 'agentsLabel', 'currentArea', 'helpLabel', 'inboxDot', 'inboxLabel', 'menuLabel', 'messagesDot', 'messagesLabel', 'searchDot', 'searchLabel', 'sheetNavExpanded'],
39
+ inputs: ['activeDestination', 'activityDot', 'activityLabel', 'activityMode', 'agentsDot', 'agentsLabel', 'currentArea', 'helpLabel', 'inboxDot', 'inboxLabel', 'menuLabel', 'messagesDot', 'messagesLabel', 'searchDot', 'searchLabel', 'sheetNavExpanded'],
40
40
  outputs: ['dsSheetNavToggle', 'dsDestinationChange'],
41
41
  }]
42
42
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dsSheetNavToggle: [{
@@ -1,2 +1,2 @@
1
- import{A as s,d as o}from"./p-DNJTN_s0.js";const t=s;const p=o;export{t as DsAgentActivity,p as defineCustomElement};
1
+ import{A as o,d as s}from"./p-BBmRD_S0.js";const t=o;const m=s;export{t as DsAgentActivity,m as defineCustomElement};
2
2
  //# sourceMappingURL=ds-agent-activity.js.map
@@ -1,2 +1,2 @@
1
- import{A as o,d as s}from"./p-ruPTIV6t.js";const t=o;const r=s;export{t as DsAgentQuestionnaire,r as defineCustomElement};
1
+ import{A as o,d as s}from"./p-D6P_1YrL.js";const r=o;const t=s;export{r as DsAgentQuestionnaire,t as defineCustomElement};
2
2
  //# sourceMappingURL=ds-agent-questionnaire.js.map