@ds-mo/ui 13.14.0 → 13.16.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 (329) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +73 -22
  3. package/dist/agent.json +300 -69
  4. package/dist/angular/ds-agent-questionnaire.d.ts +19 -0
  5. package/dist/angular/ds-agent-questionnaire.js +46 -0
  6. package/dist/angular/ds-agent-response.d.ts +1 -1
  7. package/dist/angular/ds-agent-response.js +3 -3
  8. package/dist/angular/ds-agent-source-list.d.ts +9 -2
  9. package/dist/angular/ds-agent-source-list.js +7 -3
  10. package/dist/angular/ds-agent-tool-call.d.ts +9 -2
  11. package/dist/angular/ds-agent-tool-call.js +9 -5
  12. package/dist/angular/ds-bar-title.d.ts +1 -1
  13. package/dist/angular/ds-bar-title.js +3 -3
  14. package/dist/angular/ds-checkbox.d.ts +1 -1
  15. package/dist/angular/ds-checkbox.js +3 -3
  16. package/dist/angular/ds-message-composer.d.ts +1 -1
  17. package/dist/angular/ds-message-composer.js +3 -3
  18. package/dist/angular/ds-radio.js +2 -1
  19. package/dist/angular/ds-shell-page.d.ts +1 -1
  20. package/dist/angular/ds-shell-page.js +3 -3
  21. package/dist/angular/ds-table.d.ts +1 -1
  22. package/dist/angular/ds-table.js +3 -3
  23. package/dist/angular/index.d.ts +1 -1
  24. package/dist/angular/index.js +1 -0
  25. package/dist/angular/proxies.d.ts +1 -0
  26. package/dist/angular/proxies.js +1 -0
  27. package/dist/components/ds-agent-activity.js +1 -1
  28. package/dist/components/ds-agent-questionnaire.d.ts +24 -0
  29. package/dist/components/ds-agent-questionnaire.js +2 -0
  30. package/dist/components/ds-agent-questionnaire.js.map +1 -0
  31. package/dist/components/ds-agent-response.js +1 -1
  32. package/dist/components/ds-agent-response.js.map +1 -1
  33. package/dist/components/ds-agent-source-list.js +1 -1
  34. package/dist/components/ds-agent-tool-call.js +1 -1
  35. package/dist/components/ds-attachment-list.js +1 -1
  36. package/dist/components/ds-badge.js +1 -1
  37. package/dist/components/ds-banner.js +1 -1
  38. package/dist/components/ds-bar-nav.js +1 -1
  39. package/dist/components/ds-bar-title.js +1 -1
  40. package/dist/components/ds-bar-workflow.js +1 -1
  41. package/dist/components/ds-breadcrumb.js +1 -1
  42. package/dist/components/ds-button-filled.js +1 -1
  43. package/dist/components/ds-button-unfilled.js +1 -1
  44. package/dist/components/ds-card-chart.js +1 -1
  45. package/dist/components/ds-card-overview.js +1 -1
  46. package/dist/components/ds-card-overview.js.map +1 -1
  47. package/dist/components/ds-card-setting.js +1 -1
  48. package/dist/components/ds-chart-legend.js +1 -1
  49. package/dist/components/ds-chart-legend.js.map +1 -1
  50. package/dist/components/ds-chart.js +1 -1
  51. package/dist/components/ds-chart.js.map +1 -1
  52. package/dist/components/ds-checkbox.js +1 -1
  53. package/dist/components/ds-chip.js +1 -1
  54. package/dist/components/ds-chip.js.map +1 -1
  55. package/dist/components/ds-code-block.js +1 -1
  56. package/dist/components/ds-conversation-list-item.js +1 -1
  57. package/dist/components/ds-conversation-list-item.js.map +1 -1
  58. package/dist/components/ds-conversation-list-section.js +1 -1
  59. package/dist/components/ds-conversation-list.js +1 -1
  60. package/dist/components/ds-divider.js +1 -1
  61. package/dist/components/ds-empty-state.js +1 -1
  62. package/dist/components/ds-field.js +1 -1
  63. package/dist/components/ds-input.js +1 -1
  64. package/dist/components/ds-input.js.map +1 -1
  65. package/dist/components/ds-markdown.js +1 -1
  66. package/dist/components/ds-menu.js +1 -1
  67. package/dist/components/ds-message-actions.js +1 -1
  68. package/dist/components/ds-message-bubble.js +1 -1
  69. package/dist/components/ds-message-bubble.js.map +1 -1
  70. package/dist/components/ds-message-composer.js +1 -1
  71. package/dist/components/ds-message-composer.js.map +1 -1
  72. package/dist/components/ds-message-scroller.js +1 -1
  73. package/dist/components/ds-message-scroller.js.map +1 -1
  74. package/dist/components/ds-message.js +1 -1
  75. package/dist/components/ds-mobile-bar-nav.js +1 -1
  76. package/dist/components/ds-mobile-header.js +1 -1
  77. package/dist/components/ds-mobile-section-switcher.js +1 -1
  78. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  79. package/dist/components/ds-modal.js +1 -1
  80. package/dist/components/ds-panel-nav.js +1 -1
  81. package/dist/components/ds-panel-sub-nav.js +1 -1
  82. package/dist/components/ds-panel-sub-nav.js.map +1 -1
  83. package/dist/components/ds-panel-tool-header.js +1 -1
  84. package/dist/components/ds-panel-tool-search.js +1 -1
  85. package/dist/components/ds-panel-tools.js +1 -1
  86. package/dist/components/ds-radio.js +1 -1
  87. package/dist/components/ds-radio.js.map +1 -1
  88. package/dist/components/ds-scroll-overlay.js +1 -1
  89. package/dist/components/ds-select.js +1 -1
  90. package/dist/components/ds-select.js.map +1 -1
  91. package/dist/components/ds-shell-app.js +1 -1
  92. package/dist/components/ds-shell-app.js.map +1 -1
  93. package/dist/components/ds-shell-page.js +1 -1
  94. package/dist/components/ds-shell-tools.js +1 -1
  95. package/dist/components/ds-skeleton.js +1 -1
  96. package/dist/components/ds-slider.js +1 -1
  97. package/dist/components/ds-slider.js.map +1 -1
  98. package/dist/components/ds-swatch-picker.js +1 -1
  99. package/dist/components/ds-switch.js +1 -1
  100. package/dist/components/ds-tab-group.js +1 -1
  101. package/dist/components/ds-table.js +1 -1
  102. package/dist/components/ds-table.js.map +1 -1
  103. package/dist/components/ds-tag.js +1 -1
  104. package/dist/components/ds-text.js +1 -1
  105. package/dist/components/ds-toast.js +1 -1
  106. package/dist/components/ds-tooltip-chart.js +1 -1
  107. package/dist/components/ds-tooltip.js +1 -1
  108. package/dist/components/ds-typing-indicator.js +1 -1
  109. package/dist/components/index.d.ts +10 -0
  110. package/dist/components/{p-PQgDzzn9.js → p-00or0yGw.js} +2 -2
  111. package/dist/components/p-B2SoinWf.js +2 -0
  112. package/dist/components/p-B2SoinWf.js.map +1 -0
  113. package/dist/components/{p-C5ecLNZA.js → p-B53Vpuqq.js} +2 -2
  114. package/dist/components/{p-BULWzaBs.js → p-B69Re7HW.js} +2 -2
  115. package/dist/components/{p-CeyoHpPn.js → p-B94M62Tx.js} +2 -2
  116. package/dist/components/p-BAAjiAIF.js +2 -0
  117. package/dist/components/p-BAAjiAIF.js.map +1 -0
  118. package/dist/components/p-BMAZWEDa.js +2 -0
  119. package/dist/components/p-BMAZWEDa.js.map +1 -0
  120. package/dist/components/p-BMc0DE59.js +2 -0
  121. package/dist/components/p-BMc0DE59.js.map +1 -0
  122. package/dist/components/{p-B6z51yBf.js → p-BNkU9dcc.js} +2 -2
  123. package/dist/components/p-BPbE-Kbl.js +2 -0
  124. package/dist/components/p-BPbE-Kbl.js.map +1 -0
  125. package/dist/components/{p-B6linhwY.js → p-BRze4tRe.js} +2 -2
  126. package/dist/components/p-BtUgncSJ.js +2 -0
  127. package/dist/components/p-BtUgncSJ.js.map +1 -0
  128. package/dist/components/p-BxR8omPQ.js +2 -0
  129. package/dist/components/p-BxR8omPQ.js.map +1 -0
  130. package/dist/components/p-C891ueIx.js +2 -0
  131. package/dist/components/p-C891ueIx.js.map +1 -0
  132. package/dist/components/{p-CY19gMiz.js → p-CJq3n5kA.js} +2 -2
  133. package/dist/components/p-CKo3OFG1.js +2 -0
  134. package/dist/components/p-CKo3OFG1.js.map +1 -0
  135. package/dist/components/p-CMbcRN92.js +2 -0
  136. package/dist/components/{p-cPh32CFB.js.map → p-CMbcRN92.js.map} +1 -1
  137. package/dist/components/p-CXduurfd.js.map +1 -1
  138. package/dist/components/{p-DLwM1RNL.js → p-CdKz-QT2.js} +2 -2
  139. package/dist/components/p-CdKz-QT2.js.map +1 -0
  140. package/dist/components/p-CnIvWEVm.js +2 -0
  141. package/dist/components/{p-BPS17WvI.js.map → p-CnIvWEVm.js.map} +1 -1
  142. package/dist/components/p-CnUq7E8S.js +2 -0
  143. package/dist/components/{p-DyDkQ8H9.js.map → p-CnUq7E8S.js.map} +1 -1
  144. package/dist/components/{p-C9StMCWg.js → p-Cohb8T7G.js} +2 -2
  145. package/dist/components/p-CqDJRVT8.js +2 -0
  146. package/dist/components/p-CqDJRVT8.js.map +1 -0
  147. package/dist/components/p-CsXC1cHI.js +2 -0
  148. package/dist/components/{p-DYAQVvOu.js.map → p-CsXC1cHI.js.map} +1 -1
  149. package/dist/components/p-D4j0deyd.js +2 -0
  150. package/dist/components/{p-DAM4CDXT.js.map → p-D4j0deyd.js.map} +1 -1
  151. package/dist/components/p-D5sIwLjA.js +2 -0
  152. package/dist/components/p-D5sIwLjA.js.map +1 -0
  153. package/dist/components/p-D9CDoQBx.js +2 -0
  154. package/dist/components/{p-C-aCs6ID.js.map → p-D9CDoQBx.js.map} +1 -1
  155. package/dist/components/p-D9FdOR_m.js +2 -0
  156. package/dist/components/{p-BSdAFIcG.js.map → p-D9FdOR_m.js.map} +1 -1
  157. package/dist/components/p-DStd98dM.js +2 -0
  158. package/dist/components/{p-Azjx2SsL.js.map → p-DStd98dM.js.map} +1 -1
  159. package/dist/components/p-Dbobj7DI.js +2 -0
  160. package/dist/components/p-Dbobj7DI.js.map +1 -0
  161. package/dist/components/{p-BNiIyZCn.js → p-Dhx_3_tf.js} +2 -2
  162. package/dist/components/p-Dhx_3_tf.js.map +1 -0
  163. package/dist/components/p-DrvEhJhO.js +2 -0
  164. package/dist/components/p-DrvEhJhO.js.map +1 -0
  165. package/dist/components/p-DyqLVdJp.js +2 -0
  166. package/dist/components/{p-CCYgBUUS.js.map → p-DyqLVdJp.js.map} +1 -1
  167. package/dist/components/p-GWUTrIlk.js +2 -0
  168. package/dist/components/p-GWUTrIlk.js.map +1 -0
  169. package/dist/components/p-NQOI5gN1.js +2 -0
  170. package/dist/components/p-NQOI5gN1.js.map +1 -0
  171. package/dist/components/p-Qf-os3lG.js +2 -0
  172. package/dist/components/{p-B8HG9OFh.js.map → p-Qf-os3lG.js.map} +1 -1
  173. package/dist/components/{p-DMJEOAwP.js → p-chA2WA5x.js} +2 -2
  174. package/dist/components/{p-DwKC_9u2.js → p-dEouiXJ8.js} +2 -2
  175. package/dist/components/p-m5CSrx_s.js +2 -0
  176. package/dist/components/{p-B1JB0Zn-.js.map → p-m5CSrx_s.js.map} +1 -1
  177. package/dist/docs/components.json +964 -11
  178. package/dist/lib/components/ShellApp/shell-app-types.d.ts +12 -0
  179. package/dist/lib/utils/index.js +41 -4
  180. package/dist/lib/utils/index.js.map +2 -2
  181. package/dist/lib/utils/resolve-css-length-px.d.ts +1 -1
  182. package/dist/mcp-data/registry/agent-activity.json +1 -1
  183. package/dist/mcp-data/registry/agent-questionnaire.json +273 -0
  184. package/dist/mcp-data/registry/agent-response.json +32 -11
  185. package/dist/mcp-data/registry/agent-source-list.json +33 -13
  186. package/dist/mcp-data/registry/agent-tool-call.json +59 -18
  187. package/dist/mcp-data/registry/attachment-list.json +1 -1
  188. package/dist/mcp-data/registry/avatar.json +1 -1
  189. package/dist/mcp-data/registry/badge.json +1 -1
  190. package/dist/mcp-data/registry/banner.json +1 -1
  191. package/dist/mcp-data/registry/bar-nav.json +2 -2
  192. package/dist/mcp-data/registry/bar-title.json +39 -4
  193. package/dist/mcp-data/registry/bar-workflow.json +1 -1
  194. package/dist/mcp-data/registry/breadcrumb.json +2 -2
  195. package/dist/mcp-data/registry/button-filled.json +1 -1
  196. package/dist/mcp-data/registry/button-unfilled.json +1 -1
  197. package/dist/mcp-data/registry/card-chart.json +1 -1
  198. package/dist/mcp-data/registry/card-overview.json +1 -1
  199. package/dist/mcp-data/registry/card-setting.json +1 -1
  200. package/dist/mcp-data/registry/chart-legend.json +2 -2
  201. package/dist/mcp-data/registry/chart.json +2 -2
  202. package/dist/mcp-data/registry/checkbox.json +26 -9
  203. package/dist/mcp-data/registry/chip.json +2 -2
  204. package/dist/mcp-data/registry/code-block.json +14 -6
  205. package/dist/mcp-data/registry/conversation-list-item.json +2 -2
  206. package/dist/mcp-data/registry/conversation-list-section.json +1 -1
  207. package/dist/mcp-data/registry/conversation-list.json +1 -1
  208. package/dist/mcp-data/registry/divider.json +1 -1
  209. package/dist/mcp-data/registry/empty-state.json +1 -1
  210. package/dist/mcp-data/registry/field.json +1 -1
  211. package/dist/mcp-data/registry/icon.json +1 -1
  212. package/dist/mcp-data/registry/input.json +1 -1
  213. package/dist/mcp-data/registry/loader.json +1 -1
  214. package/dist/mcp-data/registry/markdown.json +1 -1
  215. package/dist/mcp-data/registry/menu.json +2 -2
  216. package/dist/mcp-data/registry/message-actions.json +1 -1
  217. package/dist/mcp-data/registry/message-bubble.json +2 -2
  218. package/dist/mcp-data/registry/message-composer.json +30 -8
  219. package/dist/mcp-data/registry/message-scroller.json +17 -9
  220. package/dist/mcp-data/registry/message.json +1 -1
  221. package/dist/mcp-data/registry/mobile-bar-nav.json +1 -1
  222. package/dist/mcp-data/registry/mobile-header.json +1 -1
  223. package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
  224. package/dist/mcp-data/registry/mobile-sheet-nav.json +1 -1
  225. package/dist/mcp-data/registry/modal.json +1 -1
  226. package/dist/mcp-data/registry/panel-nav.json +2 -2
  227. package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
  228. package/dist/mcp-data/registry/panel-tool-header.json +1 -1
  229. package/dist/mcp-data/registry/panel-tool-search.json +1 -1
  230. package/dist/mcp-data/registry/panel-tools.json +2 -2
  231. package/dist/mcp-data/registry/radio.json +24 -11
  232. package/dist/mcp-data/registry/registry.json +303 -69
  233. package/dist/mcp-data/registry/scroll-overlay.json +1 -1
  234. package/dist/mcp-data/registry/select.json +2 -2
  235. package/dist/mcp-data/registry/shell-app.json +5 -5
  236. package/dist/mcp-data/registry/shell-page.json +78 -5
  237. package/dist/mcp-data/registry/shell-tools.json +1 -1
  238. package/dist/mcp-data/registry/skeleton.json +1 -1
  239. package/dist/mcp-data/registry/slider.json +2 -2
  240. package/dist/mcp-data/registry/swatch-picker.json +2 -2
  241. package/dist/mcp-data/registry/switch.json +2 -2
  242. package/dist/mcp-data/registry/tab-group.json +1 -1
  243. package/dist/mcp-data/registry/table.json +89 -13
  244. package/dist/mcp-data/registry/tag.json +1 -1
  245. package/dist/mcp-data/registry/text.json +2 -2
  246. package/dist/mcp-data/registry/toast.json +1 -1
  247. package/dist/mcp-data/registry/tooltip-chart.json +5 -3
  248. package/dist/mcp-data/registry/tooltip.json +1 -1
  249. package/dist/mcp-data/registry/typing-indicator.json +1 -1
  250. package/dist/react/components.d.ts +1 -0
  251. package/dist/react/components.js +1 -0
  252. package/dist/react/ds-agent-questionnaire.d.ts +13 -0
  253. package/dist/react/ds-agent-questionnaire.js +15 -0
  254. package/dist/react/ds-agent-source-list.d.ts +7 -2
  255. package/dist/react/ds-agent-source-list.js +1 -1
  256. package/dist/react/ds-agent-tool-call.d.ts +7 -2
  257. package/dist/react/ds-agent-tool-call.js +1 -1
  258. package/dist/styles/prose.css +21 -4
  259. package/dist/styles/table.css +161 -10
  260. package/dist/types/components/AgentQuestionnaire/AgentQuestionnaire.d.ts +49 -0
  261. package/dist/types/components/AgentQuestionnaire/agent-questionnaire-model.d.ts +13 -0
  262. package/dist/types/components/AgentResponse/AgentResponse.d.ts +3 -1
  263. package/dist/types/components/AgentSourceList/AgentSourceList.d.ts +5 -0
  264. package/dist/types/components/AgentToolCall/AgentToolCall.d.ts +21 -0
  265. package/dist/types/components/BarTitle/BarTitle.d.ts +5 -0
  266. package/dist/types/components/Checkbox/Checkbox.d.ts +3 -0
  267. package/dist/types/components/MessageComposer/MessageComposer.d.ts +3 -0
  268. package/dist/types/components/MessageScroller/MessageScroller.d.ts +21 -1
  269. package/dist/types/components/Radio/Radio.d.ts +4 -0
  270. package/dist/types/components/ShellApp/shell-app-types.d.ts +12 -0
  271. package/dist/types/components/ShellPage/ShellPage.d.ts +9 -0
  272. package/dist/types/components/Table/Table.d.ts +30 -0
  273. package/dist/types/components/Table/table-cell-model.d.ts +2 -0
  274. package/dist/types/components/Table/table-layout-controller.d.ts +6 -0
  275. package/dist/types/components/Table/table-types.d.ts +3 -0
  276. package/dist/types/components/Table/table-viewport-fit-controller.d.ts +53 -0
  277. package/dist/types/components/conversation-types.d.ts +51 -2
  278. package/dist/types/components.d.ts +249 -2
  279. package/dist/types/utils/resolve-css-length-px.d.ts +1 -1
  280. package/package.json +5 -3
  281. package/dist/components/p-Azjx2SsL.js +0 -2
  282. package/dist/components/p-B1JB0Zn-.js +0 -2
  283. package/dist/components/p-B2t8alvH.js +0 -2
  284. package/dist/components/p-B2t8alvH.js.map +0 -1
  285. package/dist/components/p-B8HG9OFh.js +0 -2
  286. package/dist/components/p-BJMRBHKW.js +0 -2
  287. package/dist/components/p-BJMRBHKW.js.map +0 -1
  288. package/dist/components/p-BJVzrR_P.js +0 -2
  289. package/dist/components/p-BJVzrR_P.js.map +0 -1
  290. package/dist/components/p-BL0JHLJp.js +0 -2
  291. package/dist/components/p-BL0JHLJp.js.map +0 -1
  292. package/dist/components/p-BNiIyZCn.js.map +0 -1
  293. package/dist/components/p-BPS17WvI.js +0 -2
  294. package/dist/components/p-BSdAFIcG.js +0 -2
  295. package/dist/components/p-C-aCs6ID.js +0 -2
  296. package/dist/components/p-CCYgBUUS.js +0 -2
  297. package/dist/components/p-CE82aQZr.js +0 -2
  298. package/dist/components/p-CE82aQZr.js.map +0 -1
  299. package/dist/components/p-COmqMfQo.js +0 -2
  300. package/dist/components/p-COmqMfQo.js.map +0 -1
  301. package/dist/components/p-Ch5yT3UA.js +0 -2
  302. package/dist/components/p-Ch5yT3UA.js.map +0 -1
  303. package/dist/components/p-CiUciD5Z.js +0 -2
  304. package/dist/components/p-CiUciD5Z.js.map +0 -1
  305. package/dist/components/p-D6g070eY.js +0 -2
  306. package/dist/components/p-D6g070eY.js.map +0 -1
  307. package/dist/components/p-DAM4CDXT.js +0 -2
  308. package/dist/components/p-DLwM1RNL.js.map +0 -1
  309. package/dist/components/p-DYAQVvOu.js +0 -2
  310. package/dist/components/p-DmblUQ4D.js +0 -2
  311. package/dist/components/p-DmblUQ4D.js.map +0 -1
  312. package/dist/components/p-DyDkQ8H9.js +0 -2
  313. package/dist/components/p-Dz3Ufmr4.js +0 -2
  314. package/dist/components/p-Dz3Ufmr4.js.map +0 -1
  315. package/dist/components/p-cPh32CFB.js +0 -2
  316. package/dist/components/p-fkQhr5s9.js +0 -2
  317. package/dist/components/p-fkQhr5s9.js.map +0 -1
  318. package/dist/components/p-oOKTL-yx.js +0 -2
  319. package/dist/components/p-oOKTL-yx.js.map +0 -1
  320. /package/dist/components/{p-PQgDzzn9.js.map → p-00or0yGw.js.map} +0 -0
  321. /package/dist/components/{p-C5ecLNZA.js.map → p-B53Vpuqq.js.map} +0 -0
  322. /package/dist/components/{p-BULWzaBs.js.map → p-B69Re7HW.js.map} +0 -0
  323. /package/dist/components/{p-CeyoHpPn.js.map → p-B94M62Tx.js.map} +0 -0
  324. /package/dist/components/{p-B6z51yBf.js.map → p-BNkU9dcc.js.map} +0 -0
  325. /package/dist/components/{p-B6linhwY.js.map → p-BRze4tRe.js.map} +0 -0
  326. /package/dist/components/{p-CY19gMiz.js.map → p-CJq3n5kA.js.map} +0 -0
  327. /package/dist/components/{p-C9StMCWg.js.map → p-Cohb8T7G.js.map} +0 -0
  328. /package/dist/components/{p-DMJEOAwP.js.map → p-chA2WA5x.js.map} +0 -0
  329. /package/dist/components/{p-DwKC_9u2.js.map → p-dEouiXJ8.js.map} +0 -0
@@ -1 +1 @@
1
- {"schemaVersion":1,"package":"@ds-mo/ui","version":"13.14.0","components":66,"digest":"09d9df9310c46e04ea473cb773aa9b27d777c2c11523c37fa3f5d7e7a3863cea","completedAt":"2026-08-12T04:49:31.606Z"}
1
+ {"schemaVersion":1,"package":"@ds-mo/ui","version":"13.16.0","components":67,"digest":"55fed7e47f4c13794943756d36dadf566a3d4c505a7f1fde06e6595a0fd383da","completedAt":"2026-08-13T00:16:44.079Z"}
@@ -1,40 +1,55 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "package": "@ds-mo/ui",
4
- "packageVersion": "13.14.0",
4
+ "packageVersion": "13.16.0",
5
5
  "kind": "patterns",
6
6
  "entries": [
7
7
  {
8
8
  "id": "pattern:agent-chat",
9
9
  "status": "experimental",
10
- "summary": "Extend the generic conversation pattern with ordered agent response parts while keeping transport and product behavior outside the design system.",
10
+ "summary": "Compose provider-neutral agent turns from serializable or slotted response content, normalized tool lifecycle, pending human input, inline sources, and reader-respecting transcript movement.",
11
11
  "useWhen": [
12
- "A chat presents rich agent output including Markdown, safe activity, display-only tool calls, attachments, or sources."
12
+ "A conversation presents rich agent output and may pause for structured participant input before the agent continues."
13
13
  ],
14
14
  "avoidWhen": [
15
- "The channel is person-to-person or the component would be expected to execute models, tools, approvals, or persistence."
15
+ "The channel is person-to-person or the design-system layer would be expected to own models, provider schemas, transport, persistence, tool execution, approval consequences, or private reasoning."
16
16
  ],
17
17
  "components": [
18
18
  {
19
19
  "component": "component:ds-message-scroller",
20
- "role": "Provides generic transcript movement and live-edge behavior.",
20
+ "role": "Positions new turn anchors, preserves reader-controlled live-edge behavior, and measures pending interaction with composer clearance.",
21
21
  "required": true
22
22
  },
23
23
  {
24
24
  "component": "component:ds-message",
25
- "role": "Renders participant turns with channel-neutral semantics.",
25
+ "role": "Renders participant turns with channel-neutral semantics and marks application-owned outgoing turn anchors.",
26
26
  "required": true
27
27
  },
28
28
  {
29
29
  "component": "component:ds-message-bubble",
30
- "role": "Renders user-sent prompts with the shared body-medium regular message baseline and secondary foreground.",
30
+ "role": "Renders user-sent prompts with the shared message baseline.",
31
31
  "required": true
32
32
  },
33
33
  {
34
34
  "component": "component:ds-agent-response",
35
- "role": "Renders ordered normalized agent response parts.",
35
+ "role": "Renders ordered normalized parts or an application-composed ordered response body.",
36
36
  "required": true
37
37
  },
38
+ {
39
+ "component": "component:ds-agent-tool-call",
40
+ "role": "Presents a normalized provider-neutral tool lifecycle and optional custom result or diagnostic detail.",
41
+ "required": false
42
+ },
43
+ {
44
+ "component": "component:ds-agent-questionnaire",
45
+ "role": "Collects a temporary local answer draft above the composer and renders a quiet answered history record.",
46
+ "required": false
47
+ },
48
+ {
49
+ "component": "component:ds-agent-source-list",
50
+ "role": "Presents stable deduplicated sources inline after discovery is complete.",
51
+ "required": false
52
+ },
38
53
  {
39
54
  "component": "component:ds-message-actions",
40
55
  "role": "Provides completed-response Copy and controlled feedback without owning response data or consequences.",
@@ -42,31 +57,61 @@
42
57
  },
43
58
  {
44
59
  "component": "component:ds-message-composer",
45
- "role": "Emits participant submission and stop intent.",
60
+ "role": "Emits participant submission and stop intent while keeping visible recoverable submission errors adjacent to the draft.",
46
61
  "required": true
47
62
  }
48
63
  ],
49
64
  "stateOwnership": [
50
- "The application owns scripted or real transport, immutable response parts, retry, stop, generated titles, and persistence.",
51
- "User-sent prompts use MessageBubble's user variant and body-medium regular default with secondary foreground; the application does not promote ordinary sent-message copy to body-large.",
52
- "AgentResponse renders directly in Message without a MessageBubble surface, owns ordered display only, and never reveals private reasoning.",
53
- "MessageActions may copy application-authored response text and emit controlled feedback intent; the application owns serialization, persistence, submission, permissions, analytics, and model consequences.",
54
- "Markdown parsing and safe node creation belong to the renderer; the renderer-neutral @ds-mo/ui/prose.css surface owns only semantic-tree styling.",
55
- "Tool-call components display execution state but do not request participant approval."
65
+ "The application normalizes every provider-specific tool and human-input state before rendering, and owns transport, immutable response parts, stop, retry, persistence, generated titles, permissions, and consequences.",
66
+ "Pending questionnaires render through the scroller interaction surface; the questionnaire owns only its current step and unsaved draft, while the application submits answers, resumes the agent, preserves failures, and replaces a successful interaction with an answered response record.",
67
+ "Tool calls display lifecycle only. Custom summary, result, and detail content must remain user-safe; execution, approval, retry, and authorization stay application-owned.",
68
+ "Choose response parts when ordered content must be serializable and registry-friendly. Choose composed mode when application-specific components must interleave with CompoMo primitives; the application owns that slotted content and its serialization.",
69
+ "Applications append stable deduplicated sources once retrieval settles. Active source discovery is an activity or tool state rather than a changing source list.",
70
+ "Applications mark only outgoing prompts that begin new turns as turn anchors. Saved transcript entry points may independently choose the last stored anchor.",
71
+ "Composer error actions are application-owned. The component presents failure above the editable box as one attached, measured support unit, and recovery never discards the participant draft.",
72
+ "Prompt suggestions and model selection are optional product composition. Suggestion selection normally fills and focuses the draft; model selection remains an application-owned tool-region control.",
73
+ "Markdown parsing and safe node creation belong to the renderer; the renderer-neutral public prose stylesheet owns semantic-tree styling and text measure without owning response ordering or streaming state.",
74
+ "TokoMo owns the semantic interface and code font-family tokens, CompoMo assigns text or diagnostic-code intent, and the application loads Inter and Fira Code assets once at its root; agent components never fetch font assets.",
75
+ "Agent activity is concise user-safe progress and never reveals private model reasoning or chain-of-thought."
56
76
  ],
57
77
  "accessibility": [
58
- "Agent activity must be concise user-safe summaries, never hidden chain-of-thought.",
59
- "Sources use descriptive external links and unsafe schemes remain non-interactive.",
60
- "Streaming and tool states remain available as text without relying on animation."
78
+ "Tool lifecycle, questionnaire progress and validation, composer failure, and streaming state remain meaningful as text without relying on motion or color.",
79
+ "Applications move focus into a pending questionnaire only when context makes that shift appropriate; the component never steals focus on mount.",
80
+ "Source links use descriptive external-link names, derived hostnames, and noninteractive rendering for malformed or unsafe schemes.",
81
+ "Reader wheel, touch, keyboard, selection, and jump actions release live-edge following until Scroll to latest explicitly restores it."
61
82
  ],
62
83
  "responsiveBehavior": [
63
- "Let AgentResponse use the available transcript width while retaining readable text measure and horizontal scrolling for code or tables."
84
+ "Let structured response content use the available lane while direct prose uses its readable measure, code and tables retain local overflow, questionnaire actions stack on narrow screens, and the combined interaction and composer stack remains fully measured."
64
85
  ],
65
86
  "implementations": {
66
87
  "customElements": {
67
- "status": "planned",
88
+ "status": "verified",
89
+ "recipes": [
90
+ {
91
+ "id": "pending-questionnaire",
92
+ "title": "Pending questionnaire above a conversation composer",
93
+ "summary": "Mark the outgoing turn, normalize the paused tool state, place temporary human input in the interaction surface, and keep submission transport in application code.",
94
+ "files": [
95
+ {
96
+ "path": "agent-conversation.html",
97
+ "language": "html",
98
+ "content": "<ds-message-scroller messages-label=\"Agent conversation\" default-position=\"end\">\n <ds-message message-id=\"turn-1\" direction=\"outgoing\" scroll-anchor>\n <ds-message-bubble variant=\"user\">Prepare the maintenance follow-up.</ds-message-bubble>\n </ds-message>\n <ds-agent-response message-id=\"answer-1\" render-mode=\"composed\">\n <ds-agent-tool-call name=\"work.prepare\" label=\"Choose the first follow-up\" state=\"waiting-for-user\"></ds-agent-tool-call>\n </ds-agent-response>\n <div slot=\"interaction\">\n <ds-agent-questionnaire request-id=\"request-1\"></ds-agent-questionnaire>\n </div>\n <div slot=\"overlay\">\n <ds-message-composer label=\"Message agent\"></ds-message-composer>\n </div>\n</ds-message-scroller>"
99
+ },
100
+ {
101
+ "path": "agent-conversation.ts",
102
+ "language": "typescript",
103
+ "content": "const questionnaire = document.querySelector('ds-agent-questionnaire')!;\nquestionnaire.questions = [{\n id: 'priority',\n type: 'single',\n question: 'Which issue should be first?',\n required: true,\n choices: [\n { value: 'battery', label: 'Repeated battery failures' },\n { value: 'tires', label: 'Overdue tire inspections' },\n ],\n}];\nquestionnaire.addEventListener('dsAnswer', async event => {\n questionnaire.status = 'submitting';\n try {\n await submitAgentAnswers(event.detail);\n questionnaire.status = 'answered';\n } catch {\n questionnaire.status = 'error';\n questionnaire.errorMessage = 'Your answers could not be sent. Try again.';\n }\n});\n\ndeclare function submitAgentAnswers(detail: { requestId: string; answers: unknown[] }): Promise<void>;"
104
+ }
105
+ ],
106
+ "notes": [
107
+ "On successful transport, remove the pending interaction and append an answered questionnaire response part to durable history rather than leaving the interactive surface in place."
108
+ ]
109
+ }
110
+ ],
68
111
  "references": [
69
- "src/wc/components/MessageScroller/MessageScroller.stories.ts"
112
+ "src/wc/components/MessageScroller/AgentChatReview.stories.ts",
113
+ "src/wc/components/MessageScroller/MessageScroller.stories.ts",
114
+ "src/docs/AgentConversations.mdx"
70
115
  ]
71
116
  },
72
117
  "react": {
@@ -84,6 +129,8 @@
84
129
  },
85
130
  "references": [
86
131
  "agent/patterns/conversation/pattern.agent.json",
132
+ "src/docs/AgentConversations.mdx",
133
+ "src/wc/components/MessageScroller/AgentChatReview.stories.ts",
87
134
  "src/wc/components/AgentResponse/AgentResponse.tsx"
88
135
  ]
89
136
  },
@@ -150,6 +197,7 @@
150
197
  "ShellApp owns responsive mode, PanelNav presentation, tool open state, active tool, mobile Inbox grouping, Menu state, fullscreen presentation, focus restoration, and breakpoint state preservation.",
151
198
  "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.",
152
199
  "The application owns account menus, tool product data, page actions, and the consequences of every emitted intent event.",
200
+ "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.",
153
201
  "The application resolves competing global messages to one Banner and owns its actions, controlled open state, orientation for the available shell capacity, dismissal persistence, and removal after exit motion.",
154
202
  "Use composition=\"slotted\" only when a team intentionally needs to assemble the public lower-level chrome components itself."
155
203
  ],
@@ -164,6 +212,8 @@
164
212
  "ShellApp automatically resolves desktop at 1200px and wider, tablet from 768px through 1199px, and mobile below 768px.",
165
213
  "Desktop and tablet use PanelNav, BarNav, PanelTools through ShellTools, and ShellPage chrome.",
166
214
  "Mobile uses MobileSheetNav, MobileBarNav, MobileHeader, ShellTools mobile presentation, and the same routed content owner. MobileBarNav paints its primary surface through the bottom safe-area inset so light browser chrome and application chrome meet without a secondary-surface seam.",
215
+ "Below 768px the application root owns a 100dvh fixed stage with a 100vh fallback while ShellApp continues to fill its owner with height 100%; JavaScript viewport measurement synchronizes only the chrome wash and does not own layout height.",
216
+ "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.",
167
217
  "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.",
168
218
  "Switching breakpoints changes presentation and inert state without recreating route or tool elements.",
169
219
  "Messages uses its own mobile destination; Stacks and Activity use explicit mobile Inbox grouping metadata."
@@ -551,7 +601,7 @@
551
601
  }
552
602
  ],
553
603
  "stateOwnership": [
554
- "The router owns heading copy, selected section, depth, available actions, content inset, content surface, route data, and product outcomes.",
604
+ "The router owns heading copy, selected section, depth, available actions, content inset, divider visibility, scroll-compaction policy, content surface, route data, and product outcomes.",
555
605
  "The application replaces pageChrome from completed route state and handles ShellApp page intent events.",
556
606
  "ShellApp owns ShellPage, BarTitle, MobileHeader, the content scroller, sticky presentation, and responsive switching.",
557
607
  "The default slot contains application-owned routed content and is not recreated for header compaction or breakpoint changes.",
@@ -567,6 +617,7 @@
567
617
  "ShellApp derives the desktop BarTitle and mobile MobileHeader from the same pageChrome object.",
568
618
  "Route-level sections remain pageChrome tabs; subordinate local views use subsections.",
569
619
  "Use contentInset none only for deliberately full-bleed products such as maps and canvases.",
620
+ "Table pages can retain responsive inline and bottom gutters while tuning their roomy and compact block-start seams; set scrollCompaction false when their roomy title must stay pinned, and let shell capacity continue to compact it for tools or tablet layouts.",
570
621
  "Choose contentSurface independently: primary and secondary canvases both support default responsive gutters or full-bleed content.",
571
622
  "Desktop and tablet BarTitle presentations match a secondary page canvas across expanded, compact, and constrained variants; the separate mobile header remains primary.",
572
623
  "ShellPage keeps its scroll-compaction spacer on the selected content surface so the routed canvas remains continuous.",