@ds-mo/ui 13.2.0 → 13.4.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 (433) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +14 -1
  3. package/dist/agent.json +108 -8
  4. package/dist/angular/boolean-value-accessor.js +3 -3
  5. package/dist/angular/ds-agent-activity.js +3 -3
  6. package/dist/angular/ds-agent-response.d.ts +1 -1
  7. package/dist/angular/ds-agent-response.js +5 -5
  8. package/dist/angular/ds-agent-source-list.js +3 -3
  9. package/dist/angular/ds-agent-tool-call.js +3 -3
  10. package/dist/angular/ds-attachment-list.js +3 -3
  11. package/dist/angular/ds-avatar.js +3 -3
  12. package/dist/angular/ds-badge.js +3 -3
  13. package/dist/angular/ds-bar-nav.js +3 -3
  14. package/dist/angular/ds-bar-title.js +3 -3
  15. package/dist/angular/ds-bar-workflow.js +3 -3
  16. package/dist/angular/ds-breadcrumb.js +3 -3
  17. package/dist/angular/ds-button-filled.js +3 -3
  18. package/dist/angular/ds-button-unfilled.js +3 -3
  19. package/dist/angular/ds-card-data-viz.js +3 -3
  20. package/dist/angular/ds-card-overview.js +3 -3
  21. package/dist/angular/ds-card-setting.js +3 -3
  22. package/dist/angular/ds-chart-bar.js +3 -3
  23. package/dist/angular/ds-chart-donut.js +3 -3
  24. package/dist/angular/ds-chart-legend.js +3 -3
  25. package/dist/angular/ds-chart-line.js +3 -3
  26. package/dist/angular/ds-checkbox.js +3 -3
  27. package/dist/angular/ds-chip.js +3 -3
  28. package/dist/angular/ds-code-block.js +3 -3
  29. package/dist/angular/ds-conversation-list-item.js +3 -3
  30. package/dist/angular/ds-conversation-list-section.js +3 -3
  31. package/dist/angular/ds-conversation-list.js +3 -3
  32. package/dist/angular/ds-divider.js +3 -3
  33. package/dist/angular/ds-empty-state.js +3 -3
  34. package/dist/angular/ds-field.js +3 -3
  35. package/dist/angular/ds-icon.js +3 -3
  36. package/dist/angular/ds-input.js +3 -3
  37. package/dist/angular/ds-loader.js +3 -3
  38. package/dist/angular/ds-markdown.js +3 -3
  39. package/dist/angular/ds-menu.js +3 -3
  40. package/dist/angular/ds-message-actions.d.ts +19 -0
  41. package/dist/angular/ds-message-actions.js +45 -0
  42. package/dist/angular/ds-message-bubble.js +3 -3
  43. package/dist/angular/ds-message-composer.js +3 -3
  44. package/dist/angular/ds-message-scroller.js +3 -3
  45. package/dist/angular/ds-message.d.ts +1 -1
  46. package/dist/angular/ds-message.js +5 -5
  47. package/dist/angular/ds-mobile-bar-nav.js +3 -3
  48. package/dist/angular/ds-mobile-header.js +3 -3
  49. package/dist/angular/ds-mobile-section-switcher.js +3 -3
  50. package/dist/angular/ds-mobile-sheet-nav.js +3 -3
  51. package/dist/angular/ds-modal.js +3 -3
  52. package/dist/angular/ds-panel-nav.js +3 -3
  53. package/dist/angular/ds-panel-sub-nav.js +3 -3
  54. package/dist/angular/ds-panel-tool-header.js +3 -3
  55. package/dist/angular/ds-panel-tool-search.js +3 -3
  56. package/dist/angular/ds-panel-tools.js +3 -3
  57. package/dist/angular/ds-radio.js +3 -3
  58. package/dist/angular/ds-scroll-overlay.js +3 -3
  59. package/dist/angular/ds-select.js +3 -3
  60. package/dist/angular/ds-shell-app.js +3 -3
  61. package/dist/angular/ds-shell-page.js +3 -3
  62. package/dist/angular/ds-shell-tools.js +3 -3
  63. package/dist/angular/ds-skeleton.js +3 -3
  64. package/dist/angular/ds-slider.js +3 -3
  65. package/dist/angular/ds-swatch-picker.js +3 -3
  66. package/dist/angular/ds-switch.js +3 -3
  67. package/dist/angular/ds-tab-group.js +3 -3
  68. package/dist/angular/ds-tag.js +3 -3
  69. package/dist/angular/ds-text.js +3 -3
  70. package/dist/angular/ds-toast.js +3 -3
  71. package/dist/angular/ds-tooltip-data-viz.js +3 -3
  72. package/dist/angular/ds-tooltip.js +3 -3
  73. package/dist/angular/ds-typing-indicator.js +3 -3
  74. package/dist/angular/index.d.ts +1 -1
  75. package/dist/angular/index.js +1 -0
  76. package/dist/angular/proxies.d.ts +1 -0
  77. package/dist/angular/proxies.js +1 -0
  78. package/dist/angular/radio-value-accessor.js +3 -3
  79. package/dist/angular/select-value-accessor.js +3 -3
  80. package/dist/angular/text-value-accessor.js +3 -3
  81. package/dist/angular/value-accessor.js +3 -3
  82. package/dist/components/ds-agent-activity.js +1 -1
  83. package/dist/components/ds-agent-response.js +1 -1
  84. package/dist/components/ds-agent-response.js.map +1 -1
  85. package/dist/components/ds-agent-source-list.js +1 -1
  86. package/dist/components/ds-agent-tool-call.js +1 -1
  87. package/dist/components/ds-attachment-list.js +1 -1
  88. package/dist/components/ds-badge.js +1 -1
  89. package/dist/components/ds-bar-nav.js +1 -1
  90. package/dist/components/ds-bar-title.js +1 -1
  91. package/dist/components/ds-bar-workflow.js +1 -1
  92. package/dist/components/ds-breadcrumb.js +1 -1
  93. package/dist/components/ds-button-filled.js +1 -1
  94. package/dist/components/ds-button-unfilled.js +1 -1
  95. package/dist/components/ds-card-data-viz.js +1 -1
  96. package/dist/components/ds-card-data-viz.js.map +1 -1
  97. package/dist/components/ds-card-overview.js +1 -1
  98. package/dist/components/ds-card-overview.js.map +1 -1
  99. package/dist/components/ds-card-setting.js +1 -1
  100. package/dist/components/ds-chart-bar.js +1 -1
  101. package/dist/components/ds-chart-bar.js.map +1 -1
  102. package/dist/components/ds-chart-donut.js +1 -1
  103. package/dist/components/ds-chart-donut.js.map +1 -1
  104. package/dist/components/ds-chart-legend.js +1 -1
  105. package/dist/components/ds-chart-legend.js.map +1 -1
  106. package/dist/components/ds-chart-line.js +1 -1
  107. package/dist/components/ds-chart-line.js.map +1 -1
  108. package/dist/components/ds-checkbox.js +1 -1
  109. package/dist/components/ds-chip.js +1 -1
  110. package/dist/components/ds-chip.js.map +1 -1
  111. package/dist/components/ds-code-block.js +1 -1
  112. package/dist/components/ds-conversation-list-item.js +1 -1
  113. package/dist/components/ds-conversation-list-item.js.map +1 -1
  114. package/dist/components/ds-conversation-list-section.js +1 -1
  115. package/dist/components/ds-divider.js +1 -1
  116. package/dist/components/ds-empty-state.js +1 -1
  117. package/dist/components/ds-field.js +1 -1
  118. package/dist/components/ds-input.js +1 -1
  119. package/dist/components/ds-input.js.map +1 -1
  120. package/dist/components/ds-markdown.js +1 -1
  121. package/dist/components/ds-menu.js +1 -1
  122. package/dist/components/ds-message-actions.d.ts +11 -0
  123. package/dist/components/ds-message-actions.js +2 -0
  124. package/dist/components/ds-message-actions.js.map +1 -0
  125. package/dist/components/ds-message-composer.js +1 -1
  126. package/dist/components/ds-message-scroller.js +1 -1
  127. package/dist/components/ds-message.js +1 -1
  128. package/dist/components/ds-mobile-bar-nav.js +1 -1
  129. package/dist/components/ds-mobile-header.js +1 -1
  130. package/dist/components/ds-mobile-section-switcher.js +1 -1
  131. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  132. package/dist/components/ds-modal.js +1 -1
  133. package/dist/components/ds-modal.js.map +1 -1
  134. package/dist/components/ds-panel-nav.js +1 -1
  135. package/dist/components/ds-panel-sub-nav.js +1 -1
  136. package/dist/components/ds-panel-sub-nav.js.map +1 -1
  137. package/dist/components/ds-panel-tool-header.js +1 -1
  138. package/dist/components/ds-panel-tool-search.js +1 -1
  139. package/dist/components/ds-panel-tools.js +1 -1
  140. package/dist/components/ds-radio.js +1 -1
  141. package/dist/components/ds-radio.js.map +1 -1
  142. package/dist/components/ds-select.js +1 -1
  143. package/dist/components/ds-select.js.map +1 -1
  144. package/dist/components/ds-shell-app.js +1 -1
  145. package/dist/components/ds-shell-page.js +1 -1
  146. package/dist/components/ds-shell-tools.js +1 -1
  147. package/dist/components/ds-skeleton.js +1 -1
  148. package/dist/components/ds-slider.js +1 -1
  149. package/dist/components/ds-slider.js.map +1 -1
  150. package/dist/components/ds-swatch-picker.js +1 -1
  151. package/dist/components/ds-switch.js +1 -1
  152. package/dist/components/ds-tab-group.js +1 -1
  153. package/dist/components/ds-tag.js +1 -1
  154. package/dist/components/ds-tag.js.map +1 -1
  155. package/dist/components/ds-text.js +1 -1
  156. package/dist/components/ds-toast.js +1 -1
  157. package/dist/components/ds-toast.js.map +1 -1
  158. package/dist/components/ds-tooltip-data-viz.js +1 -1
  159. package/dist/components/ds-tooltip.js +1 -1
  160. package/dist/components/ds-typing-indicator.js +1 -1
  161. package/dist/components/index.d.ts +3 -0
  162. package/dist/components/{p-DEaszb15.js → p-1moOgMI-.js} +2 -2
  163. package/dist/components/p-4scN0Mgn.js +2 -0
  164. package/dist/components/{p-B1XW4VSn.js → p-B3PdrMP0.js} +2 -2
  165. package/dist/components/{p-B-qDb_Zo.js → p-B5snQKiP.js} +2 -2
  166. package/dist/components/p-BApNi_xA.js +2 -0
  167. package/dist/components/p-BApNi_xA.js.map +1 -0
  168. package/dist/components/p-BN9FZESH.js +2 -0
  169. package/dist/components/{p-BBFEhNzM.js.map → p-BN9FZESH.js.map} +1 -1
  170. package/dist/components/{p-C-kzknkR.js → p-BQTJ7ePr.js} +2 -2
  171. package/dist/components/{p-CHuh71-U.js → p-BSocHH2X.js} +2 -2
  172. package/dist/components/p-BgASe-BH.js +2 -0
  173. package/dist/components/p-BgASe-BH.js.map +1 -0
  174. package/dist/components/p-Bgh0uG51.js +2 -0
  175. package/dist/components/{p-eAfNzlMa.js.map → p-Bgh0uG51.js.map} +1 -1
  176. package/dist/components/p-BgjtMMye.js +2 -0
  177. package/dist/components/p-BgjtMMye.js.map +1 -0
  178. package/dist/components/p-BnhGV__o.js +2 -0
  179. package/dist/components/p-BnhGV__o.js.map +1 -0
  180. package/dist/components/p-BxEOlO5k.js +2 -0
  181. package/dist/components/p-BxEOlO5k.js.map +1 -0
  182. package/dist/components/p-CBiAsFAZ.js +2 -0
  183. package/dist/components/{p-DbQr7Kwr.js.map → p-CBiAsFAZ.js.map} +1 -1
  184. package/dist/components/p-CGwVooB6.js +2 -0
  185. package/dist/components/p-CGwVooB6.js.map +1 -0
  186. package/dist/components/p-CIgag7g2.js +2 -0
  187. package/dist/components/{p-CH9yArA1.js.map → p-CIgag7g2.js.map} +1 -1
  188. package/dist/components/p-CQ4vAZ9j.js +2 -0
  189. package/dist/components/{p-gZni7A2L.js.map → p-CQ4vAZ9j.js.map} +1 -1
  190. package/dist/components/{p-bxoryr-3.js → p-CUSz0JFa.js} +2 -2
  191. package/dist/components/{p-BnbbnuVC.js → p-CWItD0gL.js} +2 -2
  192. package/dist/components/p-CWKrq35a.js +2 -0
  193. package/dist/components/p-CWKrq35a.js.map +1 -0
  194. package/dist/components/p-C_3mZMFK.js +2 -0
  195. package/dist/components/{p-CHpNyAo1.js.map → p-C_3mZMFK.js.map} +1 -1
  196. package/dist/components/p-CmMfRM1s.js +2 -0
  197. package/dist/components/{p-BGUK8-Qm.js.map → p-CmMfRM1s.js.map} +1 -1
  198. package/dist/components/p-CmUGA_q4.js +2 -0
  199. package/dist/components/{p-C-aCzwhA.js.map → p-CmUGA_q4.js.map} +1 -1
  200. package/dist/components/p-CqOswTy8.js +2 -0
  201. package/dist/components/{p-CJDTh9Tg.js.map → p-CqOswTy8.js.map} +1 -1
  202. package/dist/components/p-D4bVE7e4.js +2 -0
  203. package/dist/components/{p-CJbLY1tu.js.map → p-D4bVE7e4.js.map} +1 -1
  204. package/dist/components/{p-DhEdICfD.js → p-D5PN6zdD.js} +2 -2
  205. package/dist/components/p-DHAuidt1.js +2 -0
  206. package/dist/components/{p-BUZXuod2.js.map → p-DHAuidt1.js.map} +1 -1
  207. package/dist/components/{p-Df17mJqI.js → p-DXGKfXTh.js} +2 -2
  208. package/dist/components/p-DoNdiEly.js +2 -0
  209. package/dist/components/p-DoNdiEly.js.map +1 -0
  210. package/dist/components/p-DtV263qO.js +2 -0
  211. package/dist/components/{p-Cvxm1OZB.js.map → p-DtV263qO.js.map} +1 -1
  212. package/dist/components/p-RT1mts9U.js +2 -0
  213. package/dist/components/p-RT1mts9U.js.map +1 -0
  214. package/dist/components/p-UtfErnpX.js +2 -0
  215. package/dist/components/p-UtfErnpX.js.map +1 -0
  216. package/dist/components/p-a6cnCKWk.js +2 -0
  217. package/dist/components/{p-BbMJTilO.js.map → p-a6cnCKWk.js.map} +1 -1
  218. package/dist/components/p-w2kKeG_h.js +2 -0
  219. package/dist/components/{p-Ay1AX7Ql.js.map → p-w2kKeG_h.js.map} +1 -1
  220. package/dist/docs/components.json +282 -1
  221. package/dist/mcp-data/registry/agent-response.json +24 -3
  222. package/dist/mcp-data/registry/avatar.json +1 -1
  223. package/dist/mcp-data/registry/badge.json +1 -1
  224. package/dist/mcp-data/registry/card-data-viz.json +1 -1
  225. package/dist/mcp-data/registry/card-overview.json +2 -2
  226. package/dist/mcp-data/registry/chart-bar.json +1 -1
  227. package/dist/mcp-data/registry/chart-donut.json +1 -1
  228. package/dist/mcp-data/registry/chart-legend.json +1 -1
  229. package/dist/mcp-data/registry/chart-line.json +1 -1
  230. package/dist/mcp-data/registry/checkbox.json +1 -1
  231. package/dist/mcp-data/registry/code-block.json +1 -1
  232. package/dist/mcp-data/registry/divider.json +1 -1
  233. package/dist/mcp-data/registry/input.json +1 -1
  234. package/dist/mcp-data/registry/message-actions.json +186 -0
  235. package/dist/mcp-data/registry/message.json +27 -6
  236. package/dist/mcp-data/registry/modal.json +1 -1
  237. package/dist/mcp-data/registry/radio.json +1 -1
  238. package/dist/mcp-data/registry/registry.json +110 -7
  239. package/dist/mcp-data/registry/skeleton.json +1 -1
  240. package/dist/mcp-data/registry/slider.json +1 -1
  241. package/dist/mcp-data/registry/swatch-picker.json +1 -1
  242. package/dist/mcp-data/registry/switch.json +1 -1
  243. package/dist/mcp-data/registry/toast.json +1 -1
  244. package/dist/mcp-data/registry/tooltip-data-viz.json +1 -1
  245. package/dist/mcp-data/registry/tooltip.json +2 -2
  246. package/dist/react/components.d.ts +1 -0
  247. package/dist/react/components.js +1 -0
  248. package/dist/react/ds-agent-activity.d.ts +1 -1
  249. package/dist/react/ds-agent-activity.js +1 -1
  250. package/dist/react/ds-agent-response.d.ts +1 -1
  251. package/dist/react/ds-agent-response.js +1 -1
  252. package/dist/react/ds-agent-source-list.d.ts +1 -1
  253. package/dist/react/ds-agent-source-list.js +1 -1
  254. package/dist/react/ds-agent-tool-call.d.ts +1 -1
  255. package/dist/react/ds-agent-tool-call.js +1 -1
  256. package/dist/react/ds-attachment-list.d.ts +1 -1
  257. package/dist/react/ds-attachment-list.js +1 -1
  258. package/dist/react/ds-avatar.d.ts +1 -1
  259. package/dist/react/ds-avatar.js +1 -1
  260. package/dist/react/ds-badge.d.ts +1 -1
  261. package/dist/react/ds-badge.js +1 -1
  262. package/dist/react/ds-bar-nav.d.ts +1 -1
  263. package/dist/react/ds-bar-nav.js +1 -1
  264. package/dist/react/ds-bar-title.d.ts +1 -1
  265. package/dist/react/ds-bar-title.js +1 -1
  266. package/dist/react/ds-bar-workflow.d.ts +1 -1
  267. package/dist/react/ds-bar-workflow.js +1 -1
  268. package/dist/react/ds-breadcrumb.d.ts +1 -1
  269. package/dist/react/ds-breadcrumb.js +1 -1
  270. package/dist/react/ds-button-filled.d.ts +1 -1
  271. package/dist/react/ds-button-filled.js +1 -1
  272. package/dist/react/ds-button-unfilled.d.ts +1 -1
  273. package/dist/react/ds-button-unfilled.js +1 -1
  274. package/dist/react/ds-card-data-viz.d.ts +1 -1
  275. package/dist/react/ds-card-data-viz.js +1 -1
  276. package/dist/react/ds-card-overview.d.ts +1 -1
  277. package/dist/react/ds-card-overview.js +1 -1
  278. package/dist/react/ds-card-setting.d.ts +1 -1
  279. package/dist/react/ds-card-setting.js +1 -1
  280. package/dist/react/ds-chart-bar.d.ts +1 -1
  281. package/dist/react/ds-chart-bar.js +1 -1
  282. package/dist/react/ds-chart-donut.d.ts +1 -1
  283. package/dist/react/ds-chart-donut.js +1 -1
  284. package/dist/react/ds-chart-legend.d.ts +1 -1
  285. package/dist/react/ds-chart-legend.js +1 -1
  286. package/dist/react/ds-chart-line.d.ts +1 -1
  287. package/dist/react/ds-chart-line.js +1 -1
  288. package/dist/react/ds-checkbox.d.ts +1 -1
  289. package/dist/react/ds-checkbox.js +1 -1
  290. package/dist/react/ds-chip.d.ts +1 -1
  291. package/dist/react/ds-chip.js +1 -1
  292. package/dist/react/ds-code-block.d.ts +1 -1
  293. package/dist/react/ds-code-block.js +1 -1
  294. package/dist/react/ds-conversation-list-item.d.ts +1 -1
  295. package/dist/react/ds-conversation-list-item.js +1 -1
  296. package/dist/react/ds-conversation-list-section.d.ts +1 -1
  297. package/dist/react/ds-conversation-list-section.js +1 -1
  298. package/dist/react/ds-conversation-list.d.ts +1 -1
  299. package/dist/react/ds-conversation-list.js +1 -1
  300. package/dist/react/ds-divider.d.ts +1 -1
  301. package/dist/react/ds-divider.js +1 -1
  302. package/dist/react/ds-empty-state.d.ts +1 -1
  303. package/dist/react/ds-empty-state.js +1 -1
  304. package/dist/react/ds-field.d.ts +1 -1
  305. package/dist/react/ds-field.js +1 -1
  306. package/dist/react/ds-icon.d.ts +1 -1
  307. package/dist/react/ds-icon.js +1 -1
  308. package/dist/react/ds-input.d.ts +1 -1
  309. package/dist/react/ds-input.js +1 -1
  310. package/dist/react/ds-loader.d.ts +1 -1
  311. package/dist/react/ds-loader.js +1 -1
  312. package/dist/react/ds-markdown.d.ts +1 -1
  313. package/dist/react/ds-markdown.js +1 -1
  314. package/dist/react/ds-menu.d.ts +1 -1
  315. package/dist/react/ds-menu.js +1 -1
  316. package/dist/react/ds-message-actions.d.ts +13 -0
  317. package/dist/react/ds-message-actions.js +15 -0
  318. package/dist/react/ds-message-bubble.d.ts +1 -1
  319. package/dist/react/ds-message-bubble.js +1 -1
  320. package/dist/react/ds-message-composer.d.ts +1 -1
  321. package/dist/react/ds-message-composer.js +1 -1
  322. package/dist/react/ds-message-scroller.d.ts +1 -1
  323. package/dist/react/ds-message-scroller.js +1 -1
  324. package/dist/react/ds-message.d.ts +1 -1
  325. package/dist/react/ds-message.js +1 -1
  326. package/dist/react/ds-mobile-bar-nav.d.ts +1 -1
  327. package/dist/react/ds-mobile-bar-nav.js +1 -1
  328. package/dist/react/ds-mobile-header.d.ts +1 -1
  329. package/dist/react/ds-mobile-header.js +1 -1
  330. package/dist/react/ds-mobile-section-switcher.d.ts +1 -1
  331. package/dist/react/ds-mobile-section-switcher.js +1 -1
  332. package/dist/react/ds-mobile-sheet-nav.d.ts +1 -1
  333. package/dist/react/ds-mobile-sheet-nav.js +1 -1
  334. package/dist/react/ds-modal.d.ts +1 -1
  335. package/dist/react/ds-modal.js +1 -1
  336. package/dist/react/ds-panel-nav.d.ts +1 -1
  337. package/dist/react/ds-panel-nav.js +1 -1
  338. package/dist/react/ds-panel-sub-nav.d.ts +1 -1
  339. package/dist/react/ds-panel-sub-nav.js +1 -1
  340. package/dist/react/ds-panel-tool-header.d.ts +1 -1
  341. package/dist/react/ds-panel-tool-header.js +1 -1
  342. package/dist/react/ds-panel-tool-search.d.ts +1 -1
  343. package/dist/react/ds-panel-tool-search.js +1 -1
  344. package/dist/react/ds-panel-tools.d.ts +1 -1
  345. package/dist/react/ds-panel-tools.js +1 -1
  346. package/dist/react/ds-radio.d.ts +1 -1
  347. package/dist/react/ds-radio.js +1 -1
  348. package/dist/react/ds-scroll-overlay.d.ts +1 -1
  349. package/dist/react/ds-scroll-overlay.js +1 -1
  350. package/dist/react/ds-select.d.ts +1 -1
  351. package/dist/react/ds-select.js +1 -1
  352. package/dist/react/ds-shell-app.d.ts +1 -1
  353. package/dist/react/ds-shell-app.js +1 -1
  354. package/dist/react/ds-shell-page.d.ts +1 -1
  355. package/dist/react/ds-shell-page.js +1 -1
  356. package/dist/react/ds-shell-tools.d.ts +1 -1
  357. package/dist/react/ds-shell-tools.js +1 -1
  358. package/dist/react/ds-skeleton.d.ts +1 -1
  359. package/dist/react/ds-skeleton.js +1 -1
  360. package/dist/react/ds-slider.d.ts +1 -1
  361. package/dist/react/ds-slider.js +1 -1
  362. package/dist/react/ds-swatch-picker.d.ts +1 -1
  363. package/dist/react/ds-swatch-picker.js +1 -1
  364. package/dist/react/ds-switch.d.ts +1 -1
  365. package/dist/react/ds-switch.js +1 -1
  366. package/dist/react/ds-tab-group.d.ts +1 -1
  367. package/dist/react/ds-tab-group.js +1 -1
  368. package/dist/react/ds-tag.d.ts +1 -1
  369. package/dist/react/ds-tag.js +1 -1
  370. package/dist/react/ds-text.d.ts +1 -1
  371. package/dist/react/ds-text.js +1 -1
  372. package/dist/react/ds-toast.d.ts +1 -1
  373. package/dist/react/ds-toast.js +1 -1
  374. package/dist/react/ds-tooltip-data-viz.d.ts +1 -1
  375. package/dist/react/ds-tooltip-data-viz.js +1 -1
  376. package/dist/react/ds-tooltip.d.ts +1 -1
  377. package/dist/react/ds-tooltip.js +1 -1
  378. package/dist/react/ds-typing-indicator.d.ts +1 -1
  379. package/dist/react/ds-typing-indicator.js +1 -1
  380. package/dist/react/react-runtime.d.ts +17 -0
  381. package/dist/react/react-runtime.js +13 -0
  382. package/dist/types/components/AgentResponse/AgentResponse.d.ts +3 -1
  383. package/dist/types/components/CardOverview/CardOverview.d.ts +1 -1
  384. package/dist/types/components/CodeBlock/CodeBlock.d.ts +3 -1
  385. package/dist/types/components/Message/Message.d.ts +4 -1
  386. package/dist/types/components/MessageActions/MessageActions.d.ts +18 -0
  387. package/dist/types/components/conversation-types.d.ts +5 -0
  388. package/dist/types/components.d.ts +72 -2
  389. package/dist/types/utils/clipboard.d.ts +31 -0
  390. package/package.json +3 -6
  391. package/dist/components/p-6qXDqCj_.js +0 -2
  392. package/dist/components/p-6qXDqCj_.js.map +0 -1
  393. package/dist/components/p-Ay1AX7Ql.js +0 -2
  394. package/dist/components/p-B9p6w-_T.js +0 -2
  395. package/dist/components/p-B9p6w-_T.js.map +0 -1
  396. package/dist/components/p-BBFEhNzM.js +0 -2
  397. package/dist/components/p-BGUK8-Qm.js +0 -2
  398. package/dist/components/p-BO4cj3iX.js +0 -2
  399. package/dist/components/p-BO4cj3iX.js.map +0 -1
  400. package/dist/components/p-BUZXuod2.js +0 -2
  401. package/dist/components/p-BYWkksDO.js +0 -2
  402. package/dist/components/p-BYWkksDO.js.map +0 -1
  403. package/dist/components/p-BbMJTilO.js +0 -2
  404. package/dist/components/p-BcTYhmku.js +0 -2
  405. package/dist/components/p-BcTYhmku.js.map +0 -1
  406. package/dist/components/p-BroVnDzE.js +0 -2
  407. package/dist/components/p-BroVnDzE.js.map +0 -1
  408. package/dist/components/p-BsoqsbBh.js +0 -2
  409. package/dist/components/p-BsoqsbBh.js.map +0 -1
  410. package/dist/components/p-C-aCzwhA.js +0 -2
  411. package/dist/components/p-CBazaRlE.js +0 -2
  412. package/dist/components/p-CH9yArA1.js +0 -2
  413. package/dist/components/p-CHpNyAo1.js +0 -2
  414. package/dist/components/p-CJDTh9Tg.js +0 -2
  415. package/dist/components/p-CJbLY1tu.js +0 -2
  416. package/dist/components/p-CreGah0j.js +0 -2
  417. package/dist/components/p-CreGah0j.js.map +0 -1
  418. package/dist/components/p-Cvxm1OZB.js +0 -2
  419. package/dist/components/p-DbQr7Kwr.js +0 -2
  420. package/dist/components/p-eAfNzlMa.js +0 -2
  421. package/dist/components/p-gZni7A2L.js +0 -2
  422. package/dist/components/p-ohsLFap_.js +0 -2
  423. package/dist/components/p-ohsLFap_.js.map +0 -1
  424. /package/dist/components/{p-DEaszb15.js.map → p-1moOgMI-.js.map} +0 -0
  425. /package/dist/components/{p-CBazaRlE.js.map → p-4scN0Mgn.js.map} +0 -0
  426. /package/dist/components/{p-B1XW4VSn.js.map → p-B3PdrMP0.js.map} +0 -0
  427. /package/dist/components/{p-B-qDb_Zo.js.map → p-B5snQKiP.js.map} +0 -0
  428. /package/dist/components/{p-C-kzknkR.js.map → p-BQTJ7ePr.js.map} +0 -0
  429. /package/dist/components/{p-CHuh71-U.js.map → p-BSocHH2X.js.map} +0 -0
  430. /package/dist/components/{p-bxoryr-3.js.map → p-CUSz0JFa.js.map} +0 -0
  431. /package/dist/components/{p-BnbbnuVC.js.map → p-CWItD0gL.js.map} +0 -0
  432. /package/dist/components/{p-DhEdICfD.js.map → p-D5PN6zdD.js.map} +0 -0
  433. /package/dist/components/{p-Df17mJqI.js.map → p-DXGKfXTh.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["MODIFIER_GLYPHS","Set","MODIFIER_LABELS","alt","cmd","command","control","ctrl","option","shift","canonicalKeyLabel","label","toLowerCase","shortcutKeyLabels","shortcut","normalized","trim","includes","split","map","part","filter","Boolean","test","characters","Array","from","labels","length","has","push","join","tooltipCss","FALLBACK_HEIGHT","md","TOKEN_DEFAULTS","size400","sm","size300","xs","size200","lastDismissedAt","tooltipIdCounter","activeTooltip","createDsText","opts","el","document","createElement","as","variant","emphasis","color","wrap","textContent","text","styleTooltipLabel","style","flexShrink","minWidth","maxWidth","padding","Tooltip","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","size","side","align","sideOffset","TOKEN_CSS_LENGTHS","space050","alignOffset","delay","animationDelayMedium3","shortcutKeyPosition","tooltipId","delayTimer","closeTimer","anchor","popupEl","anchorObserver","position","AnchoredPositionController","getAnchor","getPopup","measure","tip","anchorRect","getBoundingClientRect","popupWidth","offsetWidth","tooltipFallbackWidthPx","popupHeight","offsetHeight","tooltipFallbackHeightPx","sideOffsetPx","alignOffsetPx","viewportPadPx","viewportWidth","window","innerWidth","viewportHeight","innerHeight","apply","x","y","resolvedSide","dataset","transform","Math","round","liveUpdate","observeResize","skipEnterAnimation","isOpen","lastInteractionWasKeyboard","pointerEnterHandler","event","pointerType","show","pointerLeaveHandler","hide","pointerDownHandler","hideInstant","keyDownHandler","focusHandler","matches","blurHandler","e","next","relatedTarget","contains","escapeHandler","key","preventDefault","handleSlotChange","slot","querySelector","assignedElements","firstElementChild","unbindAnchor","bindAnchor","componentDidLoad","MutationObserver","observe","childList","disconnectedCallback","disconnect","clearTimers","destroyPopup","onContentOrPositionChange","renderPopupContent","schedulePosition","resolveCssLengthPx","hoverDelayMs","resolveCssTimeMs","instantReopenMs","animationDurationMedium1","fadeOutMs","resolveMotionTimeMs","motionShort3","animationDurationShort3","tooltipFallbackWidth","token","slotted","child","addEventListener","unlinkDescribedBy","removeEventListener","linkDescribedBy","ids","getAttribute","add","setAttribute","id","removeAttribute","clearTimeout","setupOpenListeners","teardownOpenListeners","unobserve","remove","reapplyLabelStyles","requestAnimationFrame","update","observeResizeTargets","Date","now","instant","mountPopup","setTimeout","classList","className","Object","assign","left","top","zIndex","pointerEvents","body","appendChild","toggle","textVariant","CONTROL_TEXT_VARIANT","density","sc","inner","appendShortcut","shortcutKey","group","hint","wide","replaceChildren","render","h","Host","display","onSlotchange"],"sources":["src/wc/utils/shortcut-key.ts","src/wc/components/Tooltip/Tooltip.css?tag=ds-tooltip&encapsulation=scoped","src/wc/components/Tooltip/Tooltip.tsx"],"sourcesContent":["const MODIFIER_GLYPHS = new Set(['⌘', '⇧', '⌥', '⌃']);\nconst MODIFIER_LABELS: Readonly<Record<string, string>> = {\n alt: '⌥',\n cmd: '⌘',\n command: '⌘',\n control: '⌃',\n ctrl: '⌃',\n option: '⌥',\n shift: '⇧',\n};\n\nfunction canonicalKeyLabel(label: string): string {\n return MODIFIER_LABELS[label.toLowerCase()] ?? label;\n}\n\n/** Split a shortcut chord into the labels rendered on individual keycaps. */\nexport function shortcutKeyLabels(shortcut: string): string[] {\n const normalized = shortcut.trim();\n if (!normalized) return [];\n\n if (normalized.includes('+')) {\n return normalized.split('+').map(part => part.trim()).filter(Boolean).map(canonicalKeyLabel);\n }\n\n if (/\\s/.test(normalized)) {\n return normalized.split(/\\s+/).filter(Boolean).map(canonicalKeyLabel);\n }\n\n const characters = Array.from(normalized);\n const labels: string[] = [];\n while (characters.length > 1 && MODIFIER_GLYPHS.has(characters[0])) {\n labels.push(characters.shift()!);\n }\n labels.push(characters.join(''));\n return labels;\n}\n","@import '../../utils/control-density.css';\n@import '../../utils/key-hint.css';\n\n.tooltip-popup {\n box-sizing: border-box;\n background-color: var(--color-background-primary);\n border-radius: var(--ds-control-radius, var(--dimension-radius-025));\n box-shadow: var(--effect-elevation-elevated-floating);\n white-space: nowrap;\n pointer-events: none;\n animation: tooltipFadeIn var(--effect-motion-short-2) forwards;\n will-change: transform;\n backface-visibility: hidden;\n}\n\n/* Warm handoff between nearby triggers — no enter fade (avoids 20–100ms lag). */\n.tooltip-popup--instant {\n animation: none;\n opacity: 1;\n}\n\n.tooltip-popup--closing {\n animation: tooltipFadeOut var(--effect-motion-short-3) forwards;\n}\n\n/* Density: md / sm / xs via `.ds-control--*` on `.tooltip-inner`. */\n.tooltip-inner {\n box-sizing: border-box;\n height: var(--ds-control-height, var(--dimension-size-400));\n display: flex;\n align-items: center;\n gap: var(--ds-control-gap, var(--dimension-space-050));\n padding: 0 var(--ds-control-padding-inline, var(--dimension-space-075));\n}\n\n/*\n * Label layout lives on ds-text (metric-box + control label-inset).\n * NOTE: Stencil scopes this to `ds-text.sc-ds-tooltip`, but portaled\n * createElement ds-text loses that class when Text's <Host class> renders.\n * `renderPopupContent` therefore also sets these as inline styles.\n */\n.tooltip-inner > ds-text {\n flex-shrink: 0;\n min-width: max-content;\n max-width: none;\n padding: 0 var(--ds-control-label-inset, var(--dimension-space-025));\n color: var(--color-foreground-primary);\n}\n\n@keyframes tooltipFadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes tooltipFadeOut {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .tooltip-popup,\n .tooltip-popup--instant {\n animation: none;\n opacity: 1;\n }\n\n .tooltip-popup--closing {\n animation: none;\n opacity: 0;\n }\n}\n","import { Component, Prop, Element, Watch, h, Host } from '@stencil/core';\nimport {\n CONTROL_TEXT_VARIANT,\n resolveCssLengthPx,\n resolveCssTimeMs,\n resolveMotionTimeMs,\n TOKEN_CSS_LENGTHS,\n TOKEN_DEFAULTS,\n} from '../../utils';\nimport type { TextVariant } from '../Text/text-types';\nimport { shortcutKeyLabels } from '../../utils/shortcut-key';\nimport { AnchoredPositionController } from '../../utils/anchored-position-controller';\n// Side-effect: register `ds-text` — the portal builds it via createElement, not JSX.\nimport '../Text/Text';\n\nexport type TooltipSide = 'top' | 'right' | 'bottom' | 'left';\nexport type TooltipAlign = 'start' | 'center' | 'end';\nexport type TooltipSize = 'md' | 'sm' | 'xs';\n\nconst FALLBACK_HEIGHT: Record<TooltipSize, string> = {\n md: TOKEN_DEFAULTS.size400,\n sm: TOKEN_DEFAULTS.size300,\n xs: TOKEN_DEFAULTS.size200,\n};\n\nlet lastDismissedAt = 0;\nlet tooltipIdCounter = 0;\n/** Currently open tooltip — force-cleared on warm handoff so tips don't cross-fade. */\nlet activeTooltip: Tooltip | null = null;\n\ntype DsTextEl = HTMLElement & {\n as: string;\n variant: TextVariant;\n emphasis: boolean;\n color: string;\n wrap: string;\n};\n\nfunction createDsText(opts: {\n variant: TextVariant;\n emphasis?: boolean;\n color?: string;\n wrap?: 'wrap' | 'nowrap' | 'balance' | 'pretty';\n text: string;\n}): DsTextEl {\n const el = document.createElement('ds-text') as DsTextEl;\n el.as = 'span';\n el.variant = opts.variant;\n el.emphasis = opts.emphasis ?? false;\n el.color = opts.color ?? 'inherit';\n if (opts.wrap) el.wrap = opts.wrap;\n el.textContent = opts.text;\n return el;\n}\n\n/**\n * Control-density label styles for portaled ds-text.\n * Scoped CSS requires `sc-ds-tooltip` on the host, but Text's `<Host class>`\n * overwrites imperative className — so these must be inline to stick.\n */\nfunction styleTooltipLabel(el: HTMLElement) {\n el.style.flexShrink = '0';\n el.style.minWidth = 'max-content';\n el.style.maxWidth = 'none';\n el.style.padding = '0 var(--ds-control-label-inset, var(--dimension-space-025))';\n el.style.color = 'var(--color-foreground-primary)';\n}\n\n/**\n * Imperative body portal for the popup.\n * Stencil must not own the portaled node — moving a VDOM child to `document.body`\n * causes recreate → re-portal → @State loops that freeze the page.\n */\n@Component({\n tag: 'ds-tooltip',\n styleUrl: 'Tooltip.css',\n scoped: true,\n})\nexport class Tooltip {\n @Element() el!: HTMLElement;\n\n /**\n * Tooltip text. Empty/whitespace skips show — useful when the wrapper must stay\n * mounted for layout/animation stability (e.g. PanelNav expand/collapse).\n */\n @Prop() label!: string;\n\n /** Control density (height, padding, type). */\n @Prop() size: TooltipSize = 'md';\n\n @Prop() side: TooltipSide = 'top';\n @Prop() align: TooltipAlign = 'center';\n /** Gap between anchor and tooltip — number (px) or TokoMo length. */\n @Prop() sideOffset: number | string = TOKEN_CSS_LENGTHS.space050;\n /** Cross-axis offset — number (px) or TokoMo length. */\n @Prop() alignOffset: number | string = 0;\n /**\n * Hover show delay before the tooltip appears.\n * Default: `--effect-animation-delay-medium-3` (1000ms). Accepts a number (ms)\n * or a TokoMo time token / `var(--effect-animation-delay-*)`. Applies to the\n * initial hover/focus show only — after a recent dismiss, reopen is instant.\n * Prefer the default; override only for denser chrome or rare/destructive actions.\n */\n @Prop() delay: number | string = TOKEN_DEFAULTS.animationDelayMedium3;\n @Prop() shortcutKey: string | undefined;\n @Prop() shortcutKeyPosition: 'start' | 'end' = 'end';\n\n private tooltipId = `ds-tooltip-${++tooltipIdCounter}`;\n private delayTimer: ReturnType<typeof setTimeout> | null = null;\n private closeTimer: ReturnType<typeof setTimeout> | null = null;\n private anchor: HTMLElement | null = null;\n private popupEl: HTMLElement | null = null;\n private anchorObserver: MutationObserver | null = null;\n private readonly position = new AnchoredPositionController({\n getAnchor: () => this.anchor,\n getPopup: () => this.popupEl,\n measure: (anchor, tip) => ({\n anchorRect: anchor.getBoundingClientRect(),\n // Fall back to token metrics until `ds-text` upgrades and reports a width.\n popupWidth: tip.offsetWidth || this.tooltipFallbackWidthPx,\n popupHeight: tip.offsetHeight || this.tooltipFallbackHeightPx,\n side: this.side,\n align: this.align,\n sideOffsetPx: this.sideOffsetPx,\n alignOffsetPx: this.alignOffsetPx,\n viewportPadPx: this.viewportPadPx,\n viewportWidth: window.innerWidth,\n viewportHeight: window.innerHeight,\n }),\n apply: ({ x, y, resolvedSide }) => {\n if (!this.popupEl) return;\n this.popupEl.dataset.side = resolvedSide;\n this.popupEl.style.transform = `translate(${Math.round(x)}px, ${Math.round(y)}px)`;\n },\n liveUpdate: 'frame',\n observeResize: true,\n });\n private skipEnterAnimation = false;\n private isOpen = false;\n private lastInteractionWasKeyboard = false;\n private pointerEnterHandler = (event: PointerEvent) => {\n if (event.pointerType === 'touch') return;\n this.show();\n };\n private pointerLeaveHandler = (event: PointerEvent) => {\n if (event.pointerType === 'touch') return;\n this.hide();\n };\n private pointerDownHandler = (event: PointerEvent) => {\n this.lastInteractionWasKeyboard = false;\n if (event.pointerType === 'touch' && (this.isOpen || this.popupEl)) this.hideInstant();\n };\n private keyDownHandler = () => {\n this.lastInteractionWasKeyboard = true;\n };\n /** focusin/focusout so nested focus targets (e.g. ds-button-* inner button) still open the tip. */\n private focusHandler = () => {\n if (this.lastInteractionWasKeyboard || this.anchor?.matches(':focus-visible')) this.show();\n };\n private blurHandler: (e: FocusEvent) => void = (e) => {\n const next = e.relatedTarget as Node | null;\n if (next && this.anchor?.contains(next)) return;\n this.hide();\n };\n private escapeHandler = (event: KeyboardEvent) => {\n if (event.key !== 'Escape' || !this.isOpen) return;\n event.preventDefault();\n this.hide();\n };\n\n componentDidLoad() {\n this.bindAnchor();\n this.anchorObserver = new MutationObserver(() => this.handleSlotChange());\n this.anchorObserver.observe(this.el, { childList: true });\n }\n\n disconnectedCallback() {\n if (activeTooltip === this) activeTooltip = null;\n this.anchorObserver?.disconnect();\n this.anchorObserver = null;\n this.unbindAnchor();\n this.clearTimers();\n this.destroyPopup();\n }\n\n @Watch('label')\n @Watch('size')\n @Watch('side')\n @Watch('align')\n @Watch('sideOffset')\n @Watch('alignOffset')\n @Watch('shortcutKey')\n @Watch('shortcutKeyPosition')\n onContentOrPositionChange() {\n if (!this.label?.trim()) {\n if (this.isOpen || this.popupEl) this.hideInstant();\n return;\n }\n if (!this.popupEl || !this.isOpen) return;\n this.renderPopupContent();\n this.schedulePosition();\n }\n\n private get viewportPadPx(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);\n }\n\n private get sideOffsetPx(): number {\n return resolveCssLengthPx(this.sideOffset, TOKEN_DEFAULTS.space050);\n }\n\n private get alignOffsetPx(): number {\n return resolveCssLengthPx(this.alignOffset, 0);\n }\n\n private get hoverDelayMs(): number {\n return resolveCssTimeMs(this.delay, TOKEN_DEFAULTS.animationDelayMedium3);\n }\n\n private get instantReopenMs(): number {\n return resolveCssTimeMs(\n TOKEN_DEFAULTS.animationDurationMedium1,\n TOKEN_DEFAULTS.animationDurationMedium1,\n );\n }\n\n private get fadeOutMs(): number {\n return resolveMotionTimeMs(TOKEN_DEFAULTS.motionShort3, TOKEN_DEFAULTS.animationDurationShort3);\n }\n\n private get tooltipFallbackWidthPx(): number {\n return resolveCssLengthPx(TOKEN_DEFAULTS.tooltipFallbackWidth, TOKEN_DEFAULTS.tooltipFallbackWidth);\n }\n\n private get tooltipFallbackHeightPx(): number {\n const token = FALLBACK_HEIGHT[this.size];\n return resolveCssLengthPx(token, token);\n }\n\n private bindAnchor() {\n const slot = this.el.querySelector('slot') as HTMLSlotElement | null;\n const slotted = slot?.assignedElements?.() ?? [];\n const child = (slotted[0] ?? this.el.firstElementChild) as HTMLElement | null;\n if (!child || child === this.anchor) return;\n this.anchor = child;\n child.addEventListener('pointerenter', this.pointerEnterHandler);\n child.addEventListener('pointerleave', this.pointerLeaveHandler);\n child.addEventListener('pointerdown', this.pointerDownHandler);\n child.addEventListener('keydown', this.keyDownHandler);\n child.addEventListener('focusin', this.focusHandler);\n child.addEventListener('focusout', this.blurHandler);\n }\n\n private unbindAnchor() {\n if (!this.anchor) return;\n this.unlinkDescribedBy();\n this.anchor.removeEventListener('pointerenter', this.pointerEnterHandler);\n this.anchor.removeEventListener('pointerleave', this.pointerLeaveHandler);\n this.anchor.removeEventListener('pointerdown', this.pointerDownHandler);\n this.anchor.removeEventListener('keydown', this.keyDownHandler);\n this.anchor.removeEventListener('focusin', this.focusHandler);\n this.anchor.removeEventListener('focusout', this.blurHandler);\n this.anchor = null;\n }\n\n private linkDescribedBy() {\n if (!this.anchor || !this.popupEl) return;\n const ids = new Set((this.anchor.getAttribute('aria-describedby') ?? '').split(/\\s+/).filter(Boolean));\n ids.add(this.tooltipId);\n this.anchor.setAttribute('aria-describedby', Array.from(ids).join(' '));\n }\n\n private unlinkDescribedBy() {\n if (!this.anchor) return;\n const ids = (this.anchor.getAttribute('aria-describedby') ?? '')\n .split(/\\s+/)\n .filter(id => id && id !== this.tooltipId);\n if (ids.length) this.anchor.setAttribute('aria-describedby', ids.join(' '));\n else this.anchor.removeAttribute('aria-describedby');\n }\n\n private handleSlotChange = () => {\n const slot = this.el.querySelector('slot') as HTMLSlotElement | null;\n const next = (slot?.assignedElements?.()[0] ?? this.el.firstElementChild) as HTMLElement | null;\n if (next === this.anchor) return;\n if (this.isOpen || this.popupEl) this.hideInstant();\n this.unbindAnchor();\n this.bindAnchor();\n };\n\n private clearTimers() {\n if (this.delayTimer) { clearTimeout(this.delayTimer); this.delayTimer = null; }\n if (this.closeTimer) { clearTimeout(this.closeTimer); this.closeTimer = null; }\n }\n\n private setupOpenListeners() {\n // Binds scroll/resize + the resize observer; placement itself is scheduled\n // by schedulePosition() so the label restyle stays interleaved.\n this.position.observe();\n document.addEventListener('keydown', this.escapeHandler);\n }\n\n private teardownOpenListeners() {\n this.position.unobserve();\n document.removeEventListener('keydown', this.escapeHandler);\n }\n\n private destroyPopup() {\n this.teardownOpenListeners();\n this.unlinkDescribedBy();\n if (!this.popupEl) return;\n this.popupEl.remove();\n this.popupEl = null;\n }\n\n /**\n * Position after `ds-text` upgrades and lays out. Measuring synchronously in\n * `mountPopup` reads a collapsed/fallback width and places left/right tips wrong.\n */\n private schedulePosition() {\n if (!this.popupEl) return;\n\n const reapplyLabelStyles = () => {\n const label = this.popupEl?.querySelector(':scope > .tooltip-inner > ds-text');\n if (label instanceof HTMLElement) styleTooltipLabel(label);\n };\n\n requestAnimationFrame(() => {\n reapplyLabelStyles();\n this.position.update();\n requestAnimationFrame(() => {\n reapplyLabelStyles();\n this.position.update();\n });\n });\n\n // The popup remounts on every show, so re-target the observer bound in start().\n this.position.observeResizeTargets();\n }\n\n /** Drop the open tip immediately (warm handoff to another tooltip). */\n private hideInstant() {\n this.clearTimers();\n lastDismissedAt = Date.now();\n if (activeTooltip === this) activeTooltip = null;\n this.destroyPopup();\n this.isOpen = false;\n this.skipEnterAnimation = false;\n }\n\n private show() {\n // Empty label = wrapper present for DOM stability (e.g. PanelNav expand/collapse)\n // but no tip should appear.\n if (!this.label?.trim()) return;\n this.clearTimers();\n let instant = Date.now() - lastDismissedAt < this.instantReopenMs;\n if (activeTooltip && activeTooltip !== this) {\n activeTooltip.hideInstant();\n instant = true;\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias -- module singleton tracks the active instance\n activeTooltip = this;\n this.skipEnterAnimation = instant;\n if (instant) {\n this.mountPopup();\n return;\n }\n this.delayTimer = setTimeout(() => {\n this.delayTimer = null;\n if (!this.label?.trim()) return;\n this.mountPopup();\n }, this.hoverDelayMs);\n }\n\n private hide() {\n this.clearTimers();\n if (!this.popupEl && !this.isOpen) return;\n lastDismissedAt = Date.now();\n if (!this.popupEl) {\n this.isOpen = false;\n return;\n }\n this.popupEl.classList.remove('tooltip-popup--instant');\n this.popupEl.classList.add('tooltip-popup--closing');\n if (this.fadeOutMs === 0) {\n if (activeTooltip === this) activeTooltip = null;\n this.destroyPopup();\n this.isOpen = false;\n this.skipEnterAnimation = false;\n return;\n }\n this.closeTimer = setTimeout(() => {\n this.closeTimer = null;\n if (activeTooltip === this) activeTooltip = null;\n this.destroyPopup();\n this.isOpen = false;\n this.skipEnterAnimation = false;\n }, this.fadeOutMs);\n }\n\n private mountPopup() {\n if (!this.popupEl) {\n const tip = document.createElement('div');\n tip.id = this.tooltipId;\n tip.setAttribute('role', 'tooltip');\n // `sc-ds-tooltip` is required for Stencil scoped CSS to match outside the host.\n tip.className = 'tooltip-popup sc-ds-tooltip';\n Object.assign(tip.style, {\n position: 'fixed',\n left: '0',\n top: '0',\n zIndex: 'var(--dimension-z-index-tooltip)',\n pointerEvents: 'none',\n });\n document.body.appendChild(tip);\n this.popupEl = tip;\n }\n\n this.setupOpenListeners();\n this.linkDescribedBy();\n this.popupEl.classList.toggle('tooltip-popup--instant', this.skipEnterAnimation);\n this.popupEl.classList.remove('tooltip-popup--closing');\n this.renderPopupContent();\n this.schedulePosition();\n this.isOpen = true;\n }\n\n private renderPopupContent() {\n if (!this.popupEl) return;\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const density =\n this.size === 'md' ? 'ds-control--md' : this.size === 'sm' ? 'ds-control--sm' : 'ds-control--xs';\n // Every layout node needs `sc-ds-tooltip` so scoped selectors (`.foo.sc-ds-tooltip`) match.\n const sc = 'sc-ds-tooltip';\n\n const inner = document.createElement('div');\n inner.className = `tooltip-inner ${density} ${sc}`;\n\n const appendShortcut = (position: 'start' | 'end') => {\n if (!this.shortcutKey || this.shortcutKeyPosition !== position) return;\n const group = document.createElement('span');\n group.className = `key-hint-group ${sc}`;\n group.setAttribute('aria-hidden', 'true');\n\n for (const label of shortcutKeyLabels(this.shortcutKey)) {\n const hint = document.createElement('span');\n const wide = Array.from(label).length > 1 ? ' key-hint--wide' : '';\n hint.className = `key-hint${wide} ${sc}`;\n const text = document.createElement('span');\n text.className = `key-hint__label ${sc}`;\n text.textContent = label;\n hint.appendChild(text);\n group.appendChild(hint);\n }\n inner.appendChild(group);\n };\n\n appendShortcut('start');\n\n // ds-text is the layout box (metric-box + 2px control label-inset).\n // Inline styles required — see styleTooltipLabel.\n const label = createDsText({ variant: textVariant, wrap: 'nowrap', text: this.label });\n styleTooltipLabel(label);\n inner.appendChild(label);\n\n appendShortcut('end');\n\n this.popupEl.replaceChildren(inner);\n }\n\n render() {\n return (\n <Host style={{ display: 'contents' }}>\n <slot onSlotchange={this.handleSlotChange} />\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}