@ds-mo/ui 13.14.0 → 13.15.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 (300) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +71 -21
  3. package/dist/agent.json +242 -58
  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-checkbox.d.ts +1 -1
  13. package/dist/angular/ds-checkbox.js +3 -3
  14. package/dist/angular/ds-message-composer.d.ts +1 -1
  15. package/dist/angular/ds-message-composer.js +3 -3
  16. package/dist/angular/ds-radio.js +2 -1
  17. package/dist/angular/index.d.ts +1 -1
  18. package/dist/angular/index.js +1 -0
  19. package/dist/angular/proxies.d.ts +1 -0
  20. package/dist/angular/proxies.js +1 -0
  21. package/dist/components/ds-agent-activity.js +1 -1
  22. package/dist/components/ds-agent-questionnaire.d.ts +24 -0
  23. package/dist/components/ds-agent-questionnaire.js +2 -0
  24. package/dist/components/ds-agent-questionnaire.js.map +1 -0
  25. package/dist/components/ds-agent-response.js +1 -1
  26. package/dist/components/ds-agent-response.js.map +1 -1
  27. package/dist/components/ds-agent-source-list.js +1 -1
  28. package/dist/components/ds-agent-tool-call.js +1 -1
  29. package/dist/components/ds-attachment-list.js +1 -1
  30. package/dist/components/ds-badge.js +1 -1
  31. package/dist/components/ds-banner.js +1 -1
  32. package/dist/components/ds-bar-nav.js +1 -1
  33. package/dist/components/ds-bar-title.js +1 -1
  34. package/dist/components/ds-bar-workflow.js +1 -1
  35. package/dist/components/ds-breadcrumb.js +1 -1
  36. package/dist/components/ds-button-filled.js +1 -1
  37. package/dist/components/ds-button-unfilled.js +1 -1
  38. package/dist/components/ds-card-chart.js +1 -1
  39. package/dist/components/ds-card-overview.js +1 -1
  40. package/dist/components/ds-card-overview.js.map +1 -1
  41. package/dist/components/ds-card-setting.js +1 -1
  42. package/dist/components/ds-chart-legend.js +1 -1
  43. package/dist/components/ds-chart-legend.js.map +1 -1
  44. package/dist/components/ds-chart.js +1 -1
  45. package/dist/components/ds-chart.js.map +1 -1
  46. package/dist/components/ds-checkbox.js +1 -1
  47. package/dist/components/ds-chip.js +1 -1
  48. package/dist/components/ds-chip.js.map +1 -1
  49. package/dist/components/ds-code-block.js +1 -1
  50. package/dist/components/ds-conversation-list-item.js +1 -1
  51. package/dist/components/ds-conversation-list-item.js.map +1 -1
  52. package/dist/components/ds-conversation-list-section.js +1 -1
  53. package/dist/components/ds-conversation-list.js +1 -1
  54. package/dist/components/ds-divider.js +1 -1
  55. package/dist/components/ds-empty-state.js +1 -1
  56. package/dist/components/ds-field.js +1 -1
  57. package/dist/components/ds-input.js +1 -1
  58. package/dist/components/ds-input.js.map +1 -1
  59. package/dist/components/ds-markdown.js +1 -1
  60. package/dist/components/ds-menu.js +1 -1
  61. package/dist/components/ds-message-actions.js +1 -1
  62. package/dist/components/ds-message-bubble.js +1 -1
  63. package/dist/components/ds-message-bubble.js.map +1 -1
  64. package/dist/components/ds-message-composer.js +1 -1
  65. package/dist/components/ds-message-composer.js.map +1 -1
  66. package/dist/components/ds-message-scroller.js +1 -1
  67. package/dist/components/ds-message-scroller.js.map +1 -1
  68. package/dist/components/ds-message.js +1 -1
  69. package/dist/components/ds-mobile-bar-nav.js +1 -1
  70. package/dist/components/ds-mobile-header.js +1 -1
  71. package/dist/components/ds-mobile-section-switcher.js +1 -1
  72. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  73. package/dist/components/ds-modal.js +1 -1
  74. package/dist/components/ds-panel-nav.js +1 -1
  75. package/dist/components/ds-panel-sub-nav.js +1 -1
  76. package/dist/components/ds-panel-sub-nav.js.map +1 -1
  77. package/dist/components/ds-panel-tool-header.js +1 -1
  78. package/dist/components/ds-panel-tool-search.js +1 -1
  79. package/dist/components/ds-panel-tools.js +1 -1
  80. package/dist/components/ds-radio.js +1 -1
  81. package/dist/components/ds-radio.js.map +1 -1
  82. package/dist/components/ds-scroll-overlay.js +1 -1
  83. package/dist/components/ds-select.js +1 -1
  84. package/dist/components/ds-select.js.map +1 -1
  85. package/dist/components/ds-shell-app.js +1 -1
  86. package/dist/components/ds-shell-app.js.map +1 -1
  87. package/dist/components/ds-shell-page.js +1 -1
  88. package/dist/components/ds-shell-tools.js +1 -1
  89. package/dist/components/ds-skeleton.js +1 -1
  90. package/dist/components/ds-slider.js +1 -1
  91. package/dist/components/ds-slider.js.map +1 -1
  92. package/dist/components/ds-swatch-picker.js +1 -1
  93. package/dist/components/ds-switch.js +1 -1
  94. package/dist/components/ds-tab-group.js +1 -1
  95. package/dist/components/ds-table.js +1 -1
  96. package/dist/components/ds-table.js.map +1 -1
  97. package/dist/components/ds-tag.js +1 -1
  98. package/dist/components/ds-text.js +1 -1
  99. package/dist/components/ds-toast.js +1 -1
  100. package/dist/components/ds-tooltip-chart.js +1 -1
  101. package/dist/components/ds-tooltip.js +1 -1
  102. package/dist/components/ds-typing-indicator.js +1 -1
  103. package/dist/components/index.d.ts +10 -0
  104. package/dist/components/{p-PQgDzzn9.js → p-00or0yGw.js} +2 -2
  105. package/dist/components/p-B2SoinWf.js +2 -0
  106. package/dist/components/p-B2SoinWf.js.map +1 -0
  107. package/dist/components/{p-BULWzaBs.js → p-B69Re7HW.js} +2 -2
  108. package/dist/components/p-BH_lVRgp.js +2 -0
  109. package/dist/components/{p-CCYgBUUS.js.map → p-BH_lVRgp.js.map} +1 -1
  110. package/dist/components/{p-C-aCs6ID.js → p-BLaqjUWu.js} +2 -2
  111. package/dist/components/{p-B6z51yBf.js → p-BNkU9dcc.js} +2 -2
  112. package/dist/components/{p-B6linhwY.js → p-BRze4tRe.js} +2 -2
  113. package/dist/components/p-BtUgncSJ.js +2 -0
  114. package/dist/components/p-BtUgncSJ.js.map +1 -0
  115. package/dist/components/p-C891ueIx.js +2 -0
  116. package/dist/components/p-C891ueIx.js.map +1 -0
  117. package/dist/components/p-CCkptWPj.js +2 -0
  118. package/dist/components/p-CCkptWPj.js.map +1 -0
  119. package/dist/components/p-CKo3OFG1.js +2 -0
  120. package/dist/components/p-CKo3OFG1.js.map +1 -0
  121. package/dist/components/p-CXduurfd.js.map +1 -1
  122. package/dist/components/{p-DLwM1RNL.js → p-CdKz-QT2.js} +2 -2
  123. package/dist/components/p-CdKz-QT2.js.map +1 -0
  124. package/dist/components/p-CekGwihQ.js +2 -0
  125. package/dist/components/{p-BSdAFIcG.js.map → p-CekGwihQ.js.map} +1 -1
  126. package/dist/components/p-ClHpIZg0.js +2 -0
  127. package/dist/components/p-ClHpIZg0.js.map +1 -0
  128. package/dist/components/p-CnUq7E8S.js +2 -0
  129. package/dist/components/{p-DyDkQ8H9.js.map → p-CnUq7E8S.js.map} +1 -1
  130. package/dist/components/{p-C9StMCWg.js → p-Cohb8T7G.js} +2 -2
  131. package/dist/components/p-CqDJRVT8.js +2 -0
  132. package/dist/components/p-CqDJRVT8.js.map +1 -0
  133. package/dist/components/p-CsXC1cHI.js +2 -0
  134. package/dist/components/{p-DYAQVvOu.js.map → p-CsXC1cHI.js.map} +1 -1
  135. package/dist/components/p-D4j0deyd.js +2 -0
  136. package/dist/components/{p-DAM4CDXT.js.map → p-D4j0deyd.js.map} +1 -1
  137. package/dist/components/p-D5aUkdTw.js +2 -0
  138. package/dist/components/p-D5aUkdTw.js.map +1 -0
  139. package/dist/components/p-DQXzTV8N.js +2 -0
  140. package/dist/components/p-DQXzTV8N.js.map +1 -0
  141. package/dist/components/p-DStd98dM.js +2 -0
  142. package/dist/components/{p-Azjx2SsL.js.map → p-DStd98dM.js.map} +1 -1
  143. package/dist/components/p-DWNhyLp2.js +2 -0
  144. package/dist/components/{p-B1JB0Zn-.js.map → p-DWNhyLp2.js.map} +1 -1
  145. package/dist/components/p-DWjE0VNn.js +2 -0
  146. package/dist/components/p-DWjE0VNn.js.map +1 -0
  147. package/dist/components/{p-C5ecLNZA.js → p-DgIRyJoc.js} +2 -2
  148. package/dist/components/{p-BNiIyZCn.js → p-Dhx_3_tf.js} +2 -2
  149. package/dist/components/p-Dhx_3_tf.js.map +1 -0
  150. package/dist/components/{p-CE82aQZr.js → p-DyVAWGL9.js} +2 -2
  151. package/dist/components/p-GSnB-sa7.js +2 -0
  152. package/dist/components/p-GSnB-sa7.js.map +1 -0
  153. package/dist/components/p-GWUTrIlk.js +2 -0
  154. package/dist/components/p-GWUTrIlk.js.map +1 -0
  155. package/dist/components/p-IhToA4m4.js +2 -0
  156. package/dist/components/{p-cPh32CFB.js.map → p-IhToA4m4.js.map} +1 -1
  157. package/dist/components/p-NQOI5gN1.js +2 -0
  158. package/dist/components/p-NQOI5gN1.js.map +1 -0
  159. package/dist/components/p-QDcUAz9m.js +2 -0
  160. package/dist/components/{p-BPS17WvI.js.map → p-QDcUAz9m.js.map} +1 -1
  161. package/dist/components/p-Qf-os3lG.js +2 -0
  162. package/dist/components/{p-B8HG9OFh.js.map → p-Qf-os3lG.js.map} +1 -1
  163. package/dist/components/{p-DMJEOAwP.js → p-chA2WA5x.js} +2 -2
  164. package/dist/components/{p-DwKC_9u2.js → p-dEouiXJ8.js} +2 -2
  165. package/dist/components/{p-CeyoHpPn.js → p-fKwbYrhi.js} +2 -2
  166. package/dist/docs/components.json +664 -10
  167. package/dist/mcp-data/registry/agent-activity.json +1 -1
  168. package/dist/mcp-data/registry/agent-questionnaire.json +273 -0
  169. package/dist/mcp-data/registry/agent-response.json +32 -11
  170. package/dist/mcp-data/registry/agent-source-list.json +33 -13
  171. package/dist/mcp-data/registry/agent-tool-call.json +59 -18
  172. package/dist/mcp-data/registry/attachment-list.json +1 -1
  173. package/dist/mcp-data/registry/avatar.json +1 -1
  174. package/dist/mcp-data/registry/badge.json +1 -1
  175. package/dist/mcp-data/registry/banner.json +1 -1
  176. package/dist/mcp-data/registry/bar-nav.json +2 -2
  177. package/dist/mcp-data/registry/bar-title.json +2 -2
  178. package/dist/mcp-data/registry/bar-workflow.json +1 -1
  179. package/dist/mcp-data/registry/breadcrumb.json +2 -2
  180. package/dist/mcp-data/registry/button-filled.json +1 -1
  181. package/dist/mcp-data/registry/button-unfilled.json +1 -1
  182. package/dist/mcp-data/registry/card-chart.json +1 -1
  183. package/dist/mcp-data/registry/card-overview.json +1 -1
  184. package/dist/mcp-data/registry/card-setting.json +1 -1
  185. package/dist/mcp-data/registry/chart-legend.json +2 -2
  186. package/dist/mcp-data/registry/chart.json +2 -2
  187. package/dist/mcp-data/registry/checkbox.json +26 -9
  188. package/dist/mcp-data/registry/chip.json +2 -2
  189. package/dist/mcp-data/registry/code-block.json +14 -6
  190. package/dist/mcp-data/registry/conversation-list-item.json +2 -2
  191. package/dist/mcp-data/registry/conversation-list-section.json +1 -1
  192. package/dist/mcp-data/registry/conversation-list.json +1 -1
  193. package/dist/mcp-data/registry/divider.json +1 -1
  194. package/dist/mcp-data/registry/empty-state.json +1 -1
  195. package/dist/mcp-data/registry/field.json +1 -1
  196. package/dist/mcp-data/registry/icon.json +1 -1
  197. package/dist/mcp-data/registry/input.json +1 -1
  198. package/dist/mcp-data/registry/loader.json +1 -1
  199. package/dist/mcp-data/registry/markdown.json +1 -1
  200. package/dist/mcp-data/registry/menu.json +2 -2
  201. package/dist/mcp-data/registry/message-actions.json +1 -1
  202. package/dist/mcp-data/registry/message-bubble.json +2 -2
  203. package/dist/mcp-data/registry/message-composer.json +30 -8
  204. package/dist/mcp-data/registry/message-scroller.json +17 -9
  205. package/dist/mcp-data/registry/message.json +1 -1
  206. package/dist/mcp-data/registry/mobile-bar-nav.json +1 -1
  207. package/dist/mcp-data/registry/mobile-header.json +1 -1
  208. package/dist/mcp-data/registry/mobile-section-switcher.json +1 -1
  209. package/dist/mcp-data/registry/mobile-sheet-nav.json +1 -1
  210. package/dist/mcp-data/registry/modal.json +1 -1
  211. package/dist/mcp-data/registry/panel-nav.json +2 -2
  212. package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
  213. package/dist/mcp-data/registry/panel-tool-header.json +1 -1
  214. package/dist/mcp-data/registry/panel-tool-search.json +1 -1
  215. package/dist/mcp-data/registry/panel-tools.json +2 -2
  216. package/dist/mcp-data/registry/radio.json +24 -11
  217. package/dist/mcp-data/registry/registry.json +245 -58
  218. package/dist/mcp-data/registry/scroll-overlay.json +1 -1
  219. package/dist/mcp-data/registry/select.json +2 -2
  220. package/dist/mcp-data/registry/shell-app.json +2 -2
  221. package/dist/mcp-data/registry/shell-page.json +1 -1
  222. package/dist/mcp-data/registry/shell-tools.json +1 -1
  223. package/dist/mcp-data/registry/skeleton.json +1 -1
  224. package/dist/mcp-data/registry/slider.json +2 -2
  225. package/dist/mcp-data/registry/swatch-picker.json +2 -2
  226. package/dist/mcp-data/registry/switch.json +2 -2
  227. package/dist/mcp-data/registry/tab-group.json +1 -1
  228. package/dist/mcp-data/registry/table.json +1 -1
  229. package/dist/mcp-data/registry/tag.json +1 -1
  230. package/dist/mcp-data/registry/text.json +2 -2
  231. package/dist/mcp-data/registry/toast.json +1 -1
  232. package/dist/mcp-data/registry/tooltip-chart.json +5 -3
  233. package/dist/mcp-data/registry/tooltip.json +1 -1
  234. package/dist/mcp-data/registry/typing-indicator.json +1 -1
  235. package/dist/react/components.d.ts +1 -0
  236. package/dist/react/components.js +1 -0
  237. package/dist/react/ds-agent-questionnaire.d.ts +13 -0
  238. package/dist/react/ds-agent-questionnaire.js +15 -0
  239. package/dist/react/ds-agent-source-list.d.ts +7 -2
  240. package/dist/react/ds-agent-source-list.js +1 -1
  241. package/dist/react/ds-agent-tool-call.d.ts +7 -2
  242. package/dist/react/ds-agent-tool-call.js +1 -1
  243. package/dist/styles/prose.css +21 -4
  244. package/dist/types/components/AgentQuestionnaire/AgentQuestionnaire.d.ts +49 -0
  245. package/dist/types/components/AgentQuestionnaire/agent-questionnaire-model.d.ts +13 -0
  246. package/dist/types/components/AgentResponse/AgentResponse.d.ts +3 -1
  247. package/dist/types/components/AgentSourceList/AgentSourceList.d.ts +5 -0
  248. package/dist/types/components/AgentToolCall/AgentToolCall.d.ts +21 -0
  249. package/dist/types/components/Checkbox/Checkbox.d.ts +3 -0
  250. package/dist/types/components/MessageComposer/MessageComposer.d.ts +3 -0
  251. package/dist/types/components/MessageScroller/MessageScroller.d.ts +21 -1
  252. package/dist/types/components/Radio/Radio.d.ts +4 -0
  253. package/dist/types/components/conversation-types.d.ts +51 -2
  254. package/dist/types/components.d.ts +147 -2
  255. package/package.json +5 -3
  256. package/dist/components/p-Azjx2SsL.js +0 -2
  257. package/dist/components/p-B1JB0Zn-.js +0 -2
  258. package/dist/components/p-B2t8alvH.js +0 -2
  259. package/dist/components/p-B2t8alvH.js.map +0 -1
  260. package/dist/components/p-B8HG9OFh.js +0 -2
  261. package/dist/components/p-BJVzrR_P.js +0 -2
  262. package/dist/components/p-BJVzrR_P.js.map +0 -1
  263. package/dist/components/p-BL0JHLJp.js +0 -2
  264. package/dist/components/p-BL0JHLJp.js.map +0 -1
  265. package/dist/components/p-BNiIyZCn.js.map +0 -1
  266. package/dist/components/p-BPS17WvI.js +0 -2
  267. package/dist/components/p-BSdAFIcG.js +0 -2
  268. package/dist/components/p-CCYgBUUS.js +0 -2
  269. package/dist/components/p-COmqMfQo.js +0 -2
  270. package/dist/components/p-COmqMfQo.js.map +0 -1
  271. package/dist/components/p-Ch5yT3UA.js +0 -2
  272. package/dist/components/p-Ch5yT3UA.js.map +0 -1
  273. package/dist/components/p-CiUciD5Z.js +0 -2
  274. package/dist/components/p-CiUciD5Z.js.map +0 -1
  275. package/dist/components/p-D6g070eY.js +0 -2
  276. package/dist/components/p-D6g070eY.js.map +0 -1
  277. package/dist/components/p-DAM4CDXT.js +0 -2
  278. package/dist/components/p-DLwM1RNL.js.map +0 -1
  279. package/dist/components/p-DYAQVvOu.js +0 -2
  280. package/dist/components/p-DmblUQ4D.js +0 -2
  281. package/dist/components/p-DmblUQ4D.js.map +0 -1
  282. package/dist/components/p-DyDkQ8H9.js +0 -2
  283. package/dist/components/p-Dz3Ufmr4.js +0 -2
  284. package/dist/components/p-Dz3Ufmr4.js.map +0 -1
  285. package/dist/components/p-cPh32CFB.js +0 -2
  286. package/dist/components/p-fkQhr5s9.js +0 -2
  287. package/dist/components/p-fkQhr5s9.js.map +0 -1
  288. package/dist/components/p-oOKTL-yx.js +0 -2
  289. package/dist/components/p-oOKTL-yx.js.map +0 -1
  290. /package/dist/components/{p-PQgDzzn9.js.map → p-00or0yGw.js.map} +0 -0
  291. /package/dist/components/{p-BULWzaBs.js.map → p-B69Re7HW.js.map} +0 -0
  292. /package/dist/components/{p-C-aCs6ID.js.map → p-BLaqjUWu.js.map} +0 -0
  293. /package/dist/components/{p-B6z51yBf.js.map → p-BNkU9dcc.js.map} +0 -0
  294. /package/dist/components/{p-B6linhwY.js.map → p-BRze4tRe.js.map} +0 -0
  295. /package/dist/components/{p-C9StMCWg.js.map → p-Cohb8T7G.js.map} +0 -0
  296. /package/dist/components/{p-C5ecLNZA.js.map → p-DgIRyJoc.js.map} +0 -0
  297. /package/dist/components/{p-CE82aQZr.js.map → p-DyVAWGL9.js.map} +0 -0
  298. /package/dist/components/{p-DMJEOAwP.js.map → p-chA2WA5x.js.map} +0 -0
  299. /package/dist/components/{p-DwKC_9u2.js.map → p-dEouiXJ8.js.map} +0 -0
  300. /package/dist/components/{p-CeyoHpPn.js.map → p-fKwbYrhi.js.map} +0 -0
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": "13.14.0",
4
+ "packageVersion": "13.15.0",
5
5
  "kind": "components",
6
6
  "entries": [
7
7
  {
@@ -80,19 +80,138 @@
80
80
  "text"
81
81
  ]
82
82
  },
83
+ {
84
+ "id": "component:ds-agent-questionnaire",
85
+ "tag": "ds-agent-questionnaire",
86
+ "name": "agent-questionnaire",
87
+ "title": "AgentQuestionnaire",
88
+ "summary": "Temporary multi-step work surface for provider-neutral agent clarification questions and durable read-only answer records.",
89
+ "intentStatus": "complete",
90
+ "intent": {
91
+ "audience": "specialized",
92
+ "status": "experimental",
93
+ "summary": "Temporary multi-step work surface for provider-neutral agent clarification questions and durable read-only answer records.",
94
+ "useWhen": [
95
+ "An agent turn pauses for one or more structured single-choice, multiple-choice, or free-text answers."
96
+ ],
97
+ "avoidWhen": [
98
+ "The interaction is a conventional application form, a tool authorization policy, or an application-owned approval with consequences beyond collecting answers."
99
+ ],
100
+ "commonlyComposedWith": [
101
+ "component:ds-message-scroller",
102
+ "component:ds-message-composer",
103
+ "component:ds-agent-response",
104
+ "component:ds-radio",
105
+ "component:ds-checkbox",
106
+ "component:ds-button-filled",
107
+ "component:ds-button-unfilled"
108
+ ],
109
+ "patterns": [
110
+ "pattern:agent-chat"
111
+ ],
112
+ "accessibility": [
113
+ "Radio and checkbox primitives own choice semantics, target density, keyboard interaction, and selected or disabled presentation; progress, validation relationships, static answered summaries, and every action remain available without relying on color or visual position.",
114
+ "The component never takes focus when it mounts; the application calls setFocus only when shifting focus is appropriate.",
115
+ "Choice rows use large Radio and Checkbox targets, while every navigation action uses a small Button primitive and Cancel is an icon-only Cross with localized tooltip and accessible name.",
116
+ "Selection primitives preserve focus, selected, invalid, and disabled distinctions in forced colors."
117
+ ],
118
+ "states": [
119
+ "The component owns only the current step, validation, and unsaved in-progress draft; the application owns the request, submission, transport, resume operation, persistence, and transcript replacement.",
120
+ "Preparing communicates that questions are being assembled, submitting locks editing without clearing the draft, error retains it with application feedback, and answered is a quiet noninteractive record.",
121
+ "A changed request identifier resets to the first question and seeds a fresh local draft from the supplied answers.",
122
+ "Questionnaire selection primitives are isolated from ancestor forms; only dsAnswer emits the normalized ordered answer collection."
123
+ ],
124
+ "responsiveBehavior": [
125
+ "Descriptive choices remain full-row targets, while actions collapse into a single-column layout at narrow widths."
126
+ ],
127
+ "references": [
128
+ {
129
+ "label": "Questionnaire state stories",
130
+ "path": "src/wc/components/AgentQuestionnaire/AgentQuestionnaire.stories.ts"
131
+ },
132
+ {
133
+ "label": "Agent chat composition",
134
+ "path": "agent/patterns/agent-chat/pattern.agent.json"
135
+ }
136
+ ]
137
+ },
138
+ "api": {
139
+ "props": {
140
+ "allowCancel": {
141
+ "type": "boolean",
142
+ "required": false
143
+ },
144
+ "answers": {
145
+ "type": "AgentQuestionAnswer[]",
146
+ "required": false
147
+ },
148
+ "errorMessage": {
149
+ "type": "string",
150
+ "required": false
151
+ },
152
+ "labels": {
153
+ "type": "Partial<AgentQuestionnaireLabels>",
154
+ "required": false
155
+ },
156
+ "questions": {
157
+ "type": "AgentQuestion[]",
158
+ "required": true
159
+ },
160
+ "requestId": {
161
+ "type": "string",
162
+ "required": true
163
+ },
164
+ "status": {
165
+ "type": "AgentQuestionnaireStatus",
166
+ "required": false
167
+ }
168
+ },
169
+ "events": [
170
+ {
171
+ "name": "dsAnswer",
172
+ "detail": "AgentQuestionnaireAnswerEventDetail"
173
+ },
174
+ {
175
+ "name": "dsCancel",
176
+ "detail": "AgentQuestionnaireCancelEventDetail"
177
+ }
178
+ ],
179
+ "slots": []
180
+ },
181
+ "exports": {
182
+ "customElement": "ds-agent-questionnaire",
183
+ "react": "DsAgentQuestionnaire",
184
+ "angular": "DsAgentQuestionnaire"
185
+ },
186
+ "dependencies": [
187
+ "@ds-mo/ui",
188
+ "@ds-mo/tokens",
189
+ "@ds-mo/icons"
190
+ ],
191
+ "componentDependencies": [
192
+ "button-filled",
193
+ "button-unfilled",
194
+ "checkbox",
195
+ "icon",
196
+ "loader",
197
+ "radio",
198
+ "text",
199
+ "tooltip"
200
+ ]
201
+ },
83
202
  {
84
203
  "id": "component:ds-agent-response",
85
204
  "tag": "ds-agent-response",
86
205
  "name": "agent-response",
87
206
  "title": "AgentResponse",
88
- "summary": "Ordered renderer for normalized immutable agent response parts inside a generic incoming message.",
207
+ "summary": "Ordered renderer for normalized immutable agent response parts or an application-composed response body inside a generic incoming message.",
89
208
  "intentStatus": "complete",
90
209
  "intent": {
91
210
  "audience": "specialized",
92
211
  "status": "experimental",
93
- "summary": "Ordered renderer for normalized immutable agent response parts inside a generic incoming message.",
212
+ "summary": "Ordered renderer for normalized immutable agent response parts or an application-composed response body inside a generic incoming message.",
94
213
  "useWhen": [
95
- "An agent response combines Markdown, user-safe activity, display-only tools, attachments, and sources in authored order."
214
+ "An agent response combines Markdown, user-safe activity, display-only tools, attachments, answered questionnaires, sources, or application-specific content in authored order."
96
215
  ],
97
216
  "avoidWhen": [
98
217
  "The component would be expected to own a model, transport, persistence, title generation, approval policy, or private reasoning."
@@ -103,28 +222,30 @@
103
222
  "component:ds-markdown",
104
223
  "component:ds-agent-activity",
105
224
  "component:ds-agent-tool-call",
106
- "component:ds-agent-source-list"
225
+ "component:ds-agent-source-list",
226
+ "component:ds-agent-questionnaire"
107
227
  ],
108
228
  "patterns": [
109
229
  "pattern:agent-chat"
110
230
  ],
111
231
  "accessibility": [
112
- "Part order matches authored reading order and remains inside generic message semantics.",
232
+ "Part or composed-slot order matches authored reading order and remains inside generic message semantics.",
113
233
  "Streaming state supplements rather than replaces meaningful textual status.",
114
234
  "Forwarded metadata actions retain Message ordering, keyboard reveal, and touch visibility."
115
235
  ],
116
236
  "states": [
117
237
  "The owner replaces immutable part arrays as scripted or live output changes.",
238
+ "Parts mode remains the compatibility default for serializable content; composed mode ignores parts and gives the default slot ownership of the complete ordered response body.",
118
239
  "AgentResponse renders directly in Message without borrowing a plain MessageBubble surface.",
119
- "Markdown parts use the optional safe renderer; prose CSS owns only semantic-tree styling and never response ordering or streaming state.",
240
+ "Markdown parts use the optional safe renderer; the response sets the public prose text measure while code, tables, tools, sources, attachments, and other structured parts retain the full lane.",
120
241
  "The application may compose MessageActions for completed-response Copy and controlled feedback while retaining persistent retry or recovery controls in the separate actions slot."
121
242
  ],
122
243
  "responsiveBehavior": [
123
- "Rich content uses the available transcript width while respecting readable measure and local overflow constraints."
244
+ "Direct prose blocks use a readable text measure within the available transcript width, while narrow lanes and structured content retain their available width and local overflow constraints."
124
245
  ],
125
246
  "references": [
126
247
  {
127
- "label": "Representative streamed response",
248
+ "label": "Response modes and representative flow",
128
249
  "path": "src/wc/components/AgentResponse/AgentResponse.stories.ts"
129
250
  },
130
251
  {
@@ -151,6 +272,10 @@
151
272
  "type": "AgentResponsePart[]",
152
273
  "required": false
153
274
  },
275
+ "renderMode": {
276
+ "type": "AgentResponseRenderMode",
277
+ "required": false
278
+ },
154
279
  "showAuthor": {
155
280
  "type": "boolean",
156
281
  "required": false
@@ -178,6 +303,7 @@
178
303
  ],
179
304
  "componentDependencies": [
180
305
  "agent-activity",
306
+ "agent-questionnaire",
181
307
  "agent-source-list",
182
308
  "agent-tool-call",
183
309
  "attachment-list",
@@ -190,17 +316,17 @@
190
316
  "tag": "ds-agent-source-list",
191
317
  "name": "agent-source-list",
192
318
  "title": "AgentSourceList",
193
- "summary": "Collapsible list of agent response sources with title, description, and validated external links.",
319
+ "summary": "Inline collapsible agent-source list with safe external links, derived hostnames, optional descriptions, and observable disclosure state.",
194
320
  "intentStatus": "complete",
195
321
  "intent": {
196
322
  "audience": "specialized",
197
323
  "status": "experimental",
198
- "summary": "Collapsible list of agent response sources with title, description, and validated external links.",
324
+ "summary": "Inline collapsible agent-source list with safe external links, derived hostnames, optional descriptions, and observable disclosure state.",
199
325
  "useWhen": [
200
- "An agent response cites external material readers may inspect."
326
+ "A stable agent response cites external material readers may inspect inline."
201
327
  ],
202
328
  "avoidWhen": [
203
- "The links are ordinary body links or are not sources for the response."
329
+ "The links are ordinary body links, source discovery is still active, or the application expects a source drawer or deduplication behavior."
204
330
  ],
205
331
  "commonlyComposedWith": [
206
332
  "component:ds-agent-response",
@@ -210,16 +336,20 @@
210
336
  "pattern:agent-chat"
211
337
  ],
212
338
  "accessibility": [
213
- "Each source uses descriptive linked text and visible supporting context.",
214
- "Unsafe link schemes remain non-interactive text."
339
+ "Each interactive source uses descriptive linked text, a visible hostname, supporting context, and an external-link indication.",
340
+ "Malformed and unsafe schemes remain non-interactive text rather than producing executable links.",
341
+ "The native disclosure exposes keyboard and expanded-state semantics, while open-change events let applications observe participant intent."
342
+ ],
343
+ "states": [
344
+ "Applications collect and deduplicate sources, then append the stable list once; active discovery remains an activity or tool state."
215
345
  ],
216
346
  "responsiveBehavior": [
217
- "Source titles and descriptions wrap within the response width."
347
+ "Source titles, hostnames, and descriptions wrap within the response width."
218
348
  ],
219
349
  "references": [
220
350
  {
221
- "label": "Storybook examples",
222
- "path": "src/wc/components/MessageScroller/MessageScroller.stories.ts"
351
+ "label": "Source safety and disclosure stories",
352
+ "path": "src/wc/components/AgentSourceList/AgentSourceList.stories.ts"
223
353
  }
224
354
  ]
225
355
  },
@@ -238,7 +368,12 @@
238
368
  "required": false
239
369
  }
240
370
  },
241
- "events": [],
371
+ "events": [
372
+ {
373
+ "name": "dsOpenChange",
374
+ "detail": "{ open: boolean }"
375
+ }
376
+ ],
242
377
  "slots": []
243
378
  },
244
379
  "exports": {
@@ -261,39 +396,50 @@
261
396
  "tag": "ds-agent-tool-call",
262
397
  "name": "agent-tool-call",
263
398
  "title": "AgentToolCall",
264
- "summary": "Display-only disclosure for an agent tool call, its safe input or output, and execution status.",
399
+ "summary": "Compact display-only status row for a provider-neutral agent tool lifecycle with optional custom result and diagnostic disclosure surfaces.",
265
400
  "intentStatus": "complete",
266
401
  "intent": {
267
402
  "audience": "specialized",
268
403
  "status": "experimental",
269
- "summary": "Display-only disclosure for an agent tool call, its safe input or output, and execution status.",
404
+ "summary": "Compact display-only status row for a provider-neutral agent tool lifecycle with optional custom result and diagnostic disclosure surfaces.",
270
405
  "useWhen": [
271
- "A prototype or agent product needs to expose user-safe tool execution detail."
406
+ "An agent product needs to expose user-safe tool preparation, queueing, execution, participant wait, completion, failure, denial, or cancellation state."
272
407
  ],
273
408
  "avoidWhen": [
274
- "A participant must approve, deny, edit, or retry the tool call; those are product controls outside this component."
409
+ "A participant must approve, deny, edit, retry, or execute the tool call; those product controls and consequences remain outside this component."
275
410
  ],
276
411
  "commonlyComposedWith": [
277
412
  "component:ds-agent-response",
278
- "component:ds-code-block"
413
+ "component:ds-code-block",
414
+ "component:ds-text"
279
415
  ],
280
416
  "patterns": [
281
417
  "pattern:agent-chat"
282
418
  ],
283
419
  "accessibility": [
284
- "Queued, running, success, error, and denied states are available as text.",
285
- "The disclosure uses native keyboard and expanded-state semantics."
420
+ "Every lifecycle state remains visible as text and error or denied meaning does not depend on color.",
421
+ "A disclosure is rendered only when details exist and uses native keyboard and expanded-state semantics.",
422
+ "Structured input, output, and error details use the semantic code-family fallback and optional ligature override."
286
423
  ],
287
424
  "states": [
288
- "This component presents state but never executes a tool or owns approval policy."
425
+ "Applications normalize provider-specific tool states and may localize the visible status label before rendering.",
426
+ "A custom summary replaces the generated name, a custom result owns the primary result surface, and custom details replace generic input, output, and error diagnostics.",
427
+ "An ordinary text-only custom result inherits the body-medium interface-text baseline; structured result components retain ownership of their own layout and typography.",
428
+ "Compose semantic links around ds-text when a custom result is navigational so anchor semantics and design-system typography each have one owner.",
429
+ "Applications load font assets once at their root; tool details and results never fetch or package a font.",
430
+ "This component presents state but never executes a tool or owns approval, retry, authorization, transport, or consequence policy."
289
431
  ],
290
432
  "responsiveBehavior": [
291
- "Structured detail wraps and scrolls without widening the transcript."
433
+ "Long names and state labels wrap inside the compact row while custom results and structured diagnostics remain within the transcript lane without widening it."
292
434
  ],
293
435
  "references": [
294
436
  {
295
- "label": "Storybook examples",
296
- "path": "src/wc/components/MessageScroller/MessageScroller.stories.ts"
437
+ "label": "Lifecycle and slot stories",
438
+ "path": "src/wc/components/AgentToolCall/AgentToolCall.stories.ts"
439
+ },
440
+ {
441
+ "label": "Font ownership and loading",
442
+ "path": "docs/font-ownership.md"
297
443
  }
298
444
  ]
299
445
  },
@@ -326,9 +472,18 @@
326
472
  "state": {
327
473
  "type": "AgentToolState",
328
474
  "required": false
475
+ },
476
+ "statusLabel": {
477
+ "type": "string",
478
+ "required": false
329
479
  }
330
480
  },
331
- "events": [],
481
+ "events": [
482
+ {
483
+ "name": "dsOpenChange",
484
+ "detail": "{ open: boolean }"
485
+ }
486
+ ],
332
487
  "slots": []
333
488
  },
334
489
  "exports": {
@@ -2518,12 +2673,12 @@
2518
2673
  "tag": "ds-checkbox",
2519
2674
  "name": "checkbox",
2520
2675
  "title": "Checkbox",
2521
- "summary": "Form-associated checkbox for independent choices, acknowledgment, or consent, with checked, unchecked, mixed, and four density states.",
2676
+ "summary": "Form-associated checkbox for independent choices, acknowledgment, or consent, with optional supporting description, checked, unchecked, mixed, and four density states.",
2522
2677
  "intentStatus": "complete",
2523
2678
  "intent": {
2524
2679
  "audience": "general",
2525
2680
  "status": "stable",
2526
- "summary": "Form-associated checkbox for independent choices, acknowledgment, or consent, with checked, unchecked, mixed, and four density states.",
2681
+ "summary": "Form-associated checkbox for independent choices, acknowledgment, or consent, with optional supporting description, checked, unchecked, mixed, and four density states.",
2527
2682
  "useWhen": [
2528
2683
  "A user may independently select zero or more choices.",
2529
2684
  "A form requires acknowledgment, consent, or an opt-in value before submission.",
@@ -2557,7 +2712,7 @@
2557
2712
  "component:ds-text"
2558
2713
  ],
2559
2714
  "accessibility": [
2560
- "Every interactive checkbox requires a visible label that provides its accessible name.",
2715
+ "Every interactive checkbox requires a visible label that provides its accessible name; an optional visible description is associated as supporting context.",
2561
2716
  "Enter and Space activate the checkbox; checked and mixed state are exposed through aria-checked.",
2562
2717
  "Disabled and inactive checkboxes leave the tab order and are omitted from form submission.",
2563
2718
  "Use presentation mode only inside a composite option that owns selection semantics, focus, and interaction."
@@ -2567,16 +2722,17 @@
2567
2722
  "Activating an indeterminate checkbox clears the mixed state, toggles checked, and emits dsChange with the resulting boolean.",
2568
2723
  "The initial checked and indeterminate values are restored by native form reset; checked values submit under name and unchecked values submit nothing.",
2569
2724
  "Sizes are lg with a 20px box in a 24px placement, md with a 16px box in a 20px placement, sm with a 12px box in a 16px placement, and xs with an 8px box in a 12px placement.",
2570
- "Presentation mode removes checkbox semantics, focus, interaction, label rendering, and form submission while preserving the visual state."
2725
+ "Presentation mode removes checkbox semantics, focus, interaction, label rendering, description rendering, and form submission while preserving the visual state.",
2726
+ "Description-rich checkboxes grow beyond the fixed density height while retaining its minimum target size and primitive-owned selection anatomy."
2571
2727
  ],
2572
2728
  "responsiveBehavior": [
2573
- "Choose size from the density of the containing row; labels may wrap while the placement box stays fixed.",
2729
+ "Choose size from the density of the containing row; labels and descriptions may wrap while the placement box stays fixed.",
2574
2730
  "Use the same density as the shared option icon zone in multi-select rows."
2575
2731
  ],
2576
2732
  "frameworkCaveats": {
2577
2733
  "customElements": [
2578
2734
  "Bind checked and indeterminate as properties for application state updates and listen for dsChange.",
2579
- "Use the form attribute on the host when associating a checkbox rendered outside its owning form."
2735
+ "Use the form attribute on the host when associating a checkbox rendered outside its owning form or isolating it from an ancestor form."
2580
2736
  ],
2581
2737
  "react": [
2582
2738
  "Use DsCheckbox and handle onDsChange; checked and indeterminate are mutable and update after user activation."
@@ -2602,6 +2758,10 @@
2602
2758
  "type": "boolean",
2603
2759
  "required": false
2604
2760
  },
2761
+ "description": {
2762
+ "type": "string",
2763
+ "required": false
2764
+ },
2605
2765
  "disabled": {
2606
2766
  "type": "boolean",
2607
2767
  "required": false
@@ -2801,12 +2961,12 @@
2801
2961
  "tag": "ds-code-block",
2802
2962
  "name": "code-block",
2803
2963
  "title": "CodeBlock",
2804
- "summary": "Scrollable monospace code surface with optional language or filename context and copy action.",
2964
+ "summary": "Scrollable code surface with optional language or filename context and copy action.",
2805
2965
  "intentStatus": "complete",
2806
2966
  "intent": {
2807
2967
  "audience": "general",
2808
2968
  "status": "experimental",
2809
- "summary": "Scrollable monospace code surface with optional language or filename context and copy action.",
2969
+ "summary": "Scrollable code surface with optional language or filename context and copy action.",
2810
2970
  "useWhen": [
2811
2971
  "A message or document displays fenced code that readers may copy."
2812
2972
  ],
@@ -2819,7 +2979,11 @@
2819
2979
  ],
2820
2980
  "accessibility": [
2821
2981
  "The copy action has matching accessible-name and visible-tooltip status wording, and the code remains selectable text.",
2822
- "Language and filename labels supplement rather than replace the code content."
2982
+ "Language and filename labels supplement rather than replace the code content.",
2983
+ "The semantic code-family token retains a system-monospace fallback when an application does not load Fira Code; applications may disable programming ligatures through the shared code-surface custom property."
2984
+ ],
2985
+ "states": [
2986
+ "Applications load font assets once at their root. The component consumes --typography-font-family-code and never fetches or packages a font."
2823
2987
  ],
2824
2988
  "responsiveBehavior": [
2825
2989
  "Long lines scroll horizontally and do not widen the owning transcript."
@@ -2827,7 +2991,11 @@
2827
2991
  "references": [
2828
2992
  {
2829
2993
  "label": "Storybook examples",
2830
- "path": "src/wc/components/MessageScroller/MessageScroller.stories.ts"
2994
+ "path": "src/wc/components/CodeBlock/CodeBlock.stories.ts"
2995
+ },
2996
+ {
2997
+ "label": "Font ownership and loading",
2998
+ "path": "docs/font-ownership.md"
2831
2999
  }
2832
3000
  ]
2833
3001
  },
@@ -4426,12 +4594,12 @@
4426
4594
  "tag": "ds-message-composer",
4427
4595
  "name": "message-composer",
4428
4596
  "title": "MessageComposer",
4429
- "summary": "Two-line auto-growing conversation textarea with submit, stop, error, and extensible leading-tool or trailing-action regions.",
4597
+ "summary": "Two-line auto-growing conversation textarea with submit, stop, an attached submission-error support surface, and extensible tool, action, and error-recovery regions.",
4430
4598
  "intentStatus": "complete",
4431
4599
  "intent": {
4432
4600
  "audience": "general",
4433
4601
  "status": "experimental",
4434
- "summary": "Two-line auto-growing conversation textarea with submit, stop, error, and extensible leading-tool or trailing-action regions.",
4602
+ "summary": "Two-line auto-growing conversation textarea with submit, stop, an attached submission-error support surface, and extensible tool, action, and error-recovery regions.",
4435
4603
  "useWhen": [
4436
4604
  "A conversation accepts multi-line text and needs Enter-to-submit with a streaming stop action."
4437
4605
  ],
@@ -4449,14 +4617,17 @@
4449
4617
  "accessibility": [
4450
4618
  "Always provide a localized textarea label and submit or stop action names; the built-in icon action exposes the same name in its tooltip.",
4451
4619
  "Shift plus Enter inserts a newline while Enter submits non-empty content.",
4452
- "Streaming and error states remain perceivable without relying on icon shape alone."
4620
+ "Submission errors remain visible and announced above the editable box as part of one attached composer unit, and the editable control references their text while the error state is active.",
4621
+ "Streaming and error states remain perceivable without relying on icon shape or color alone."
4453
4622
  ],
4454
4623
  "states": [
4455
4624
  "The owner controls draft value and transport state; the composer emits intent without performing transport.",
4625
+ "Error status never clears or disables the draft; the application supplies recovery actions through error-actions and owns retry semantics. The negative support surface appears above and attached to the composer box, within the component's measured ownership.",
4456
4626
  "Use the tools slot for leading actions such as add and the actions slot for trailing actions such as dictation; the built-in submit or stop action remains last with an 8px gap from the preceding action. These icon buttons use the standard non-rounded control radius, and the application supplies tooltips for slotted icon actions.",
4457
4627
  "The composer surface uses the 10px --dimension-radius-125 token.",
4458
4628
  "Mouse or keyboard focus on the textarea gives the complete composer surface the same bold-brand inset stroke width and color as an active Input; the native textarea never draws a separate outline.",
4459
- "The empty or otherwise inactive submit action is a disabled bordered ButtonUnfilled. Ready submit actions use submitIntent, while the streaming stop action remains a bold-brand ButtonFilled."
4629
+ "The empty or otherwise inactive submit action is a disabled bordered ButtonUnfilled. Ready submit actions use submitIntent, while the streaming stop action remains a bold-brand ButtonFilled.",
4630
+ "The attached error unit keeps a real boundary in forced colors and lets message text and application-owned recovery actions wrap at narrow widths."
4460
4631
  ],
4461
4632
  "responsiveBehavior": [
4462
4633
  "The textarea begins at two body-medium lines, grows one line at a time through six lines, and then scrolls internally."
@@ -4474,6 +4645,10 @@
4474
4645
  },
4475
4646
  "api": {
4476
4647
  "props": {
4648
+ "errorMessage": {
4649
+ "type": "string",
4650
+ "required": false
4651
+ },
4477
4652
  "isInactive": {
4478
4653
  "type": "boolean",
4479
4654
  "required": false
@@ -4522,11 +4697,14 @@
4522
4697
  },
4523
4698
  "dependencies": [
4524
4699
  "@ds-mo/ui",
4525
- "@ds-mo/tokens"
4700
+ "@ds-mo/tokens",
4701
+ "@ds-mo/icons"
4526
4702
  ],
4527
4703
  "componentDependencies": [
4528
4704
  "button-filled",
4529
4705
  "button-unfilled",
4706
+ "icon",
4707
+ "text",
4530
4708
  "tooltip"
4531
4709
  ]
4532
4710
  },
@@ -4535,12 +4713,12 @@
4535
4713
  "tag": "ds-message-scroller",
4536
4714
  "name": "message-scroller",
4537
4715
  "title": "MessageScroller",
4538
- "summary": "Focusable transcript scroller that follows the live edge only while the reader remains there.",
4716
+ "summary": "Focusable transcript scroller with turn anchoring, reader-controlled live-edge following, and a measured interaction-plus-composer overlay stack.",
4539
4717
  "intentStatus": "complete",
4540
4718
  "intent": {
4541
4719
  "audience": "general",
4542
4720
  "status": "experimental",
4543
- "summary": "Focusable transcript scroller that follows the live edge only while the reader remains there.",
4721
+ "summary": "Focusable transcript scroller with turn anchoring, reader-controlled live-edge following, and a measured interaction-plus-composer overlay stack.",
4544
4722
  "useWhen": [
4545
4723
  "Messages can append or stream and transcript position must remain respectful of reader intent."
4546
4724
  ],
@@ -4549,10 +4727,12 @@
4549
4727
  ],
4550
4728
  "commonlyComposedWith": [
4551
4729
  "component:ds-message",
4552
- "component:ds-message-composer"
4730
+ "component:ds-message-composer",
4731
+ "component:ds-agent-questionnaire"
4553
4732
  ],
4554
4733
  "patterns": [
4555
- "pattern:conversation"
4734
+ "pattern:conversation",
4735
+ "pattern:agent-chat"
4556
4736
  ],
4557
4737
  "accessibility": [
4558
4738
  "Give each transcript a concise localized label.",
@@ -4560,11 +4740,12 @@
4560
4740
  "The scroll-to-latest control remains keyboard accessible when follow behavior is released and exposes its action name in a tooltip."
4561
4741
  ],
4562
4742
  "states": [
4563
- "Selection and transcript interaction release automatic following.",
4743
+ "Wheel, touch, keyboard navigation, selection, and transcript interaction release automatic following; Scroll to latest explicitly restores it.",
4744
+ "A newly appended outgoing Message marked scroll-anchor starts a turn near the top with the configurable previous-turn peek; mutations inside existing messages and prepended history do not re-anchor.",
4564
4745
  "Opening saved history, message jumps, and prepended history preserve deliberate position.",
4565
4746
  "The scroll-to-latest action is absent at the live edge, appears only after the reader moves away, and disappears again after returning to the newest message.",
4566
4747
  "Scroll to latest uses the shared md control-elevation wrapper with a pointer-transparent top highlight, preserving its transparent backdrop blur and borderless unfilled action while the press-scale modifier moves the complete elevated surface.",
4567
- "Place a composer container with 8px padding on every side in the overlay slot so messages scroll behind it; the shared scroll-overlay controller tracks every composer growth step, reserves matching transcript clearance, begins the fade 8px before the visible composer, and keeps scroll-to-latest above it."
4748
+ "Place a pending human-input surface in interaction and a composer container with 8px padding on every side in overlay; the shared scroll-overlay controller measures them as one stack, tracks every growth step, reserves matching transcript clearance, begins the fade before the stack, and keeps scroll-to-latest above it."
4568
4749
  ],
4569
4750
  "responsiveBehavior": [
4570
4751
  "Transcript width is readable while the scroll region fills available height.",
@@ -6062,12 +6243,12 @@
6062
6243
  "tag": "ds-radio",
6063
6244
  "name": "radio",
6064
6245
  "title": "Radio",
6065
- "summary": "Form-associated one-of-many radio selection set with vertical or horizontal layout, four densities, per-option inactive state, and roving keyboard focus.",
6246
+ "summary": "Form-associated one-of-many radio selection set with vertical or horizontal layout, optional per-option descriptions, four densities, per-option inactive state, and roving keyboard focus.",
6066
6247
  "intentStatus": "complete",
6067
6248
  "intent": {
6068
6249
  "audience": "general",
6069
6250
  "status": "stable",
6070
- "summary": "Form-associated one-of-many radio selection set with vertical or horizontal layout, four densities, per-option inactive state, and roving keyboard focus.",
6251
+ "summary": "Form-associated one-of-many radio selection set with vertical or horizontal layout, optional per-option descriptions, four densities, per-option inactive state, and roving keyboard focus.",
6071
6252
  "useWhen": [
6072
6253
  "A user must select exactly one visible option from a small set.",
6073
6254
  "All available choices should remain visible for comparison.",
@@ -6101,19 +6282,20 @@
6101
6282
  ],
6102
6283
  "accessibility": [
6103
6284
  "The host exposes radiogroup semantics and requires an accessible group name from aria-label or aria-labelledby.",
6104
- "Each visible option exposes radio semantics, its checked state, its label text, and any inactive state.",
6285
+ "Each visible option exposes radio semantics, its checked state, its label text, optional supporting description, and any inactive state.",
6105
6286
  "Arrow keys move and select through active options; Home and End select the first and last active options; Space and Enter select the focused option.",
6106
- "Roving tabindex keeps one active option in the tab order, preferring the selected option."
6287
+ "Roving tabindex keeps one active option in the tab order, preferring the selected option; setFocus uses that same public focus target."
6107
6288
  ],
6108
6289
  "states": [
6109
6290
  "Unchecked circles use a tertiary-foreground inset stroke: 1.5px at lg, 1.25px at md, 1px at sm, and 0.75px at xs.",
6110
6291
  "Selected circles remove the border, use a brand fill, and draw a centered on-bold foreground dot sized 10px at lg, 8px at md, 6px at sm, and 4px at xs.",
6111
6292
  "Sizes are lg with a 20px circle in a 24px placement, md with a 16px circle in a 20px placement, sm with a 12px circle in a 16px placement, and xs with an 8px circle in a 12px placement.",
6112
- "The initial value is restored by native form reset; the selected value submits under name and a required set is invalid until one active option is selected."
6293
+ "The initial value is restored by native form reset; the selected value submits under name and a required set is invalid until one active option is selected.",
6294
+ "Description-rich options grow beyond the fixed density height while retaining its minimum target size and primitive-owned selection anatomy."
6113
6295
  ],
6114
6296
  "responsiveBehavior": [
6115
6297
  "Choose size from the density of the containing form or settings row.",
6116
- "Prefer vertical layout when labels may wrap or horizontal space is constrained; horizontal layout is appropriate for short labels in a small set."
6298
+ "Prefer vertical layout when labels or descriptions may wrap or horizontal space is constrained; horizontal layout is appropriate for short labels in a small set."
6117
6299
  ],
6118
6300
  "frameworkCaveats": {
6119
6301
  "customElements": [
@@ -8818,6 +9000,8 @@
8818
9000
  "The owning chart mounts the callout when a local interaction starts and unmounts it when that interaction ends.",
8819
9001
  "Coordinate updates track within one mounted interaction session without restarting the show delay.",
8820
9002
  "Placement flips horizontally or vertically when the rendered callout approaches a viewport edge.",
9003
+ "The heading and rows use the same medium-density section-heading and control-frame anatomy as menu-style choice content.",
9004
+ "When any grouped row supplies a swatch, every row reserves the shared leading icon zone so mixed-swatch labels and trailing values stay aligned.",
8821
9005
  "Placement is chosen as a quadrant rather than computed as coordinates: the component measures its own rendered rect and flips its side and align props, which CSS consumes. It therefore does not use the shared anchored-position utilities, which resolve an anchor element into x and y.",
8822
9006
  "This separation is deliberate. The callout follows the pointer instead of an element, so it has no anchor rect to resolve; adopting the shared geometry would mean rewriting its CSS to consume coordinates for no behavioral gain.",
8823
9007
  "Reduced motion preserves the final visible state without an opacity transition."
@@ -0,0 +1,19 @@
1
+ import { ChangeDetectorRef, ElementRef, NgZone, EventEmitter } from '@angular/core';
2
+ import type { Components } from '@ds-mo/ui/components';
3
+ import type { DsAgentQuestionnaireCustomEvent } from '@ds-mo/ui/components';
4
+ import type { AgentQuestionnaireAnswerEventDetail as IDsAgentQuestionnaireAgentQuestionnaireAnswerEventDetail } from '@ds-mo/ui/components';
5
+ import type { AgentQuestionnaireCancelEventDetail as IDsAgentQuestionnaireAgentQuestionnaireCancelEventDetail } from '@ds-mo/ui/components';
6
+ import * as i0 from "@angular/core";
7
+ export declare class DsAgentQuestionnaire {
8
+ protected z: NgZone;
9
+ protected el: HTMLDsAgentQuestionnaireElement;
10
+ dsAnswer: EventEmitter<DsAgentQuestionnaireCustomEvent<IDsAgentQuestionnaireAgentQuestionnaireAnswerEventDetail>>;
11
+ dsCancel: EventEmitter<DsAgentQuestionnaireCustomEvent<IDsAgentQuestionnaireAgentQuestionnaireCancelEventDetail>>;
12
+ constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<DsAgentQuestionnaire, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<DsAgentQuestionnaire, "ds-agent-questionnaire", never, { "allowCancel": { "alias": "allowCancel"; "required": false; }; "answers": { "alias": "answers"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "questions": { "alias": "questions"; "required": true; }; "requestId": { "alias": "requestId"; "required": true; }; "status": { "alias": "status"; "required": false; }; }, { "dsAnswer": "dsAnswer"; "dsCancel": "dsCancel"; }, never, ["*"], true, never>;
15
+ }
16
+ export declare interface DsAgentQuestionnaire extends Components.DsAgentQuestionnaire {
17
+ dsAnswer: EventEmitter<DsAgentQuestionnaireCustomEvent<IDsAgentQuestionnaireAgentQuestionnaireAnswerEventDetail>>;
18
+ dsCancel: EventEmitter<DsAgentQuestionnaireCustomEvent<IDsAgentQuestionnaireAgentQuestionnaireCancelEventDetail>>;
19
+ }