@ds-mo/ui 9.2.0 → 10.0.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 (331) hide show
  1. package/README.md +2 -81
  2. package/dist/.build-stamp +1 -1
  3. package/dist/agent-patterns.json +1 -1
  4. package/dist/agent.json +400 -135
  5. package/dist/angular/boolean-value-accessor.js +3 -3
  6. package/dist/angular/ds-agent-activity.js +3 -3
  7. package/dist/angular/ds-agent-response.js +3 -3
  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-app-shell.js +3 -3
  11. package/dist/angular/ds-attachment-list.js +3 -3
  12. package/dist/angular/ds-avatar.d.ts +1 -1
  13. package/dist/angular/ds-avatar.js +5 -5
  14. package/dist/angular/ds-badge.js +3 -3
  15. package/dist/angular/ds-bar-nav.js +3 -3
  16. package/dist/angular/ds-button-filled.js +3 -3
  17. package/dist/angular/ds-button-unfilled.js +3 -3
  18. package/dist/angular/ds-card-data-viz-donut.js +3 -3
  19. package/dist/angular/ds-card-setting.d.ts +5 -4
  20. package/dist/angular/ds-card-setting.js +6 -6
  21. package/dist/angular/ds-card-shell-data-viz.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.d.ts +1 -1
  30. package/dist/angular/ds-conversation-list-item.js +5 -5
  31. package/dist/angular/ds-conversation-list-section.js +3 -3
  32. package/dist/angular/ds-conversation-list.js +3 -3
  33. package/dist/angular/ds-divider.js +3 -3
  34. package/dist/angular/ds-empty-state.js +3 -3
  35. package/dist/angular/ds-field.js +3 -3
  36. package/dist/angular/ds-icon.js +3 -3
  37. package/dist/angular/ds-input.js +3 -3
  38. package/dist/angular/ds-loader.js +3 -3
  39. package/dist/angular/ds-markdown.js +3 -3
  40. package/dist/angular/ds-menu.d.ts +6 -1
  41. package/dist/angular/ds-menu.js +7 -4
  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.js +3 -3
  46. package/dist/angular/ds-modal.d.ts +12 -3
  47. package/dist/angular/ds-modal.js +9 -6
  48. package/dist/angular/ds-panel-nav.d.ts +1 -1
  49. package/dist/angular/ds-panel-nav.js +5 -5
  50. package/dist/angular/ds-panel-sub-nav.js +3 -3
  51. package/dist/angular/ds-panel-tool-header.js +3 -3
  52. package/dist/angular/ds-panel-tool-search.js +3 -3
  53. package/dist/angular/ds-panel-tools.js +3 -3
  54. package/dist/angular/ds-radio.js +3 -3
  55. package/dist/angular/ds-select-multi.js +3 -3
  56. package/dist/angular/ds-select.js +3 -3
  57. package/dist/angular/ds-shell-gradient-picker.js +3 -3
  58. package/dist/angular/ds-shell-gradient-swatch.js +3 -3
  59. package/dist/angular/ds-skeleton.js +3 -3
  60. package/dist/angular/ds-slider.js +3 -3
  61. package/dist/angular/ds-swatch-picker.js +3 -3
  62. package/dist/angular/ds-switch.js +3 -3
  63. package/dist/angular/ds-tab-group.js +3 -3
  64. package/dist/angular/ds-tag.js +3 -3
  65. package/dist/angular/ds-text.js +3 -3
  66. package/dist/angular/ds-toast.d.ts +22 -0
  67. package/dist/angular/{ds-banner.js → ds-toast.js} +21 -15
  68. package/dist/angular/ds-tooltip-data-viz.js +3 -3
  69. package/dist/angular/ds-tooltip.js +3 -3
  70. package/dist/angular/index.d.ts +1 -1
  71. package/dist/angular/index.js +1 -2
  72. package/dist/angular/proxies.d.ts +1 -2
  73. package/dist/angular/proxies.js +1 -2
  74. package/dist/angular/radio-value-accessor.js +3 -3
  75. package/dist/angular/select-value-accessor.js +3 -3
  76. package/dist/angular/text-value-accessor.js +3 -3
  77. package/dist/angular/value-accessor.js +3 -3
  78. package/dist/components/ds-agent-activity.js +1 -1
  79. package/dist/components/ds-agent-response.js +1 -1
  80. package/dist/components/ds-agent-response.js.map +1 -1
  81. package/dist/components/ds-agent-source-list.js +1 -1
  82. package/dist/components/ds-agent-tool-call.js +1 -1
  83. package/dist/components/ds-app-shell.js +1 -1
  84. package/dist/components/ds-attachment-list.js +1 -1
  85. package/dist/components/ds-avatar.js +1 -1
  86. package/dist/components/ds-avatar.js.map +1 -1
  87. package/dist/components/ds-badge.js +1 -1
  88. package/dist/components/ds-bar-nav.js +1 -1
  89. package/dist/components/ds-bar-nav.js.map +1 -1
  90. package/dist/components/ds-button-filled.js +1 -1
  91. package/dist/components/ds-button-unfilled.js +1 -1
  92. package/dist/components/ds-card-data-viz-donut.js +1 -1
  93. package/dist/components/ds-card-data-viz-donut.js.map +1 -1
  94. package/dist/components/ds-card-setting.js +1 -1
  95. package/dist/components/ds-card-setting.js.map +1 -1
  96. package/dist/components/ds-card-shell-data-viz.js +1 -1
  97. package/dist/components/ds-chart-bar.js +1 -1
  98. package/dist/components/ds-chart-donut.js +1 -1
  99. package/dist/components/ds-chart-legend.js +1 -1
  100. package/dist/components/ds-chart-line.js +1 -1
  101. package/dist/components/ds-checkbox.js +1 -1
  102. package/dist/components/ds-chip.js +1 -1
  103. package/dist/components/ds-code-block.js +1 -1
  104. package/dist/components/ds-conversation-list-item.js +1 -1
  105. package/dist/components/ds-conversation-list-item.js.map +1 -1
  106. package/dist/components/ds-conversation-list-section.js +1 -1
  107. package/dist/components/ds-conversation-list-section.js.map +1 -1
  108. package/dist/components/ds-conversation-list.js +1 -1
  109. package/dist/components/ds-conversation-list.js.map +1 -1
  110. package/dist/components/ds-divider.js +1 -1
  111. package/dist/components/ds-empty-state.js +1 -1
  112. package/dist/components/ds-field.js +1 -1
  113. package/dist/components/ds-icon.js +1 -1
  114. package/dist/components/ds-input.js +1 -1
  115. package/dist/components/ds-markdown.js +1 -1
  116. package/dist/components/ds-menu.js +1 -1
  117. package/dist/components/ds-message-bubble.js +1 -1
  118. package/dist/components/ds-message-composer.js +1 -1
  119. package/dist/components/ds-message-composer.js.map +1 -1
  120. package/dist/components/ds-message-scroller.js +1 -1
  121. package/dist/components/ds-message-scroller.js.map +1 -1
  122. package/dist/components/ds-message.js +1 -1
  123. package/dist/components/ds-modal.js +1 -1
  124. package/dist/components/ds-modal.js.map +1 -1
  125. package/dist/components/ds-panel-nav.js +1 -1
  126. package/dist/components/ds-panel-nav.js.map +1 -1
  127. package/dist/components/ds-panel-sub-nav.js +1 -1
  128. package/dist/components/ds-panel-tool-header.js +1 -1
  129. package/dist/components/ds-panel-tool-search.js +1 -1
  130. package/dist/components/ds-panel-tools.js +1 -1
  131. package/dist/components/ds-panel-tools.js.map +1 -1
  132. package/dist/components/ds-radio.js +1 -1
  133. package/dist/components/ds-select-multi.js +1 -1
  134. package/dist/components/ds-select.js +1 -1
  135. package/dist/components/ds-shell-gradient-picker.js +1 -1
  136. package/dist/components/ds-shell-gradient-picker.js.map +1 -1
  137. package/dist/components/ds-shell-gradient-swatch.js +1 -1
  138. package/dist/components/ds-skeleton.js +1 -1
  139. package/dist/components/ds-slider.js +1 -1
  140. package/dist/components/ds-slider.js.map +1 -1
  141. package/dist/components/ds-swatch-picker.js +1 -1
  142. package/dist/components/ds-switch.js +1 -1
  143. package/dist/components/ds-tab-group.js +1 -1
  144. package/dist/components/ds-tag.js +1 -1
  145. package/dist/components/ds-tag.js.map +1 -1
  146. package/dist/components/ds-text.js +1 -1
  147. package/dist/components/{ds-card.d.ts → ds-toast.d.ts} +4 -4
  148. package/dist/components/ds-toast.js +2 -0
  149. package/dist/components/ds-toast.js.map +1 -0
  150. package/dist/components/ds-tooltip-data-viz.js +1 -1
  151. package/dist/components/ds-tooltip.js +1 -1
  152. package/dist/components/{p-Bo5wikia.js → p-0kEg-Z4f.js} +2 -2
  153. package/dist/components/p-B4RQoNmL.js +2 -0
  154. package/dist/components/p-B4RQoNmL.js.map +1 -0
  155. package/dist/components/p-B8C_yfLQ.js +2 -0
  156. package/dist/components/p-B8C_yfLQ.js.map +1 -0
  157. package/dist/components/{p-Di-ThR90.js → p-BJUcsBHt.js} +2 -2
  158. package/dist/components/p-BJUcsBHt.js.map +1 -0
  159. package/dist/components/{p-C0sq948W.js → p-BTo4pNdp.js} +2 -2
  160. package/dist/components/p-Bet_UjML.js +2 -0
  161. package/dist/components/{p-BFWC17em.js.map → p-Bet_UjML.js.map} +1 -1
  162. package/dist/components/{p-2br9YDbG.js → p-BkwBtZs3.js} +2 -2
  163. package/dist/components/{p-CZMEhdlA.js → p-CKnoWZd9.js} +2 -2
  164. package/dist/components/p-CKnoWZd9.js.map +1 -0
  165. package/dist/components/p-CLn7QnE0.js +2 -0
  166. package/dist/components/p-CLn7QnE0.js.map +1 -0
  167. package/dist/components/{p-Bx1G7P6W.js → p-CPPAndX2.js} +2 -2
  168. package/dist/components/{p-Di4HBckb.js → p-CS12e52R.js} +2 -2
  169. package/dist/components/{p-BSOZXagj.js → p-CZZYGqKz.js} +2 -2
  170. package/dist/components/p-C_0Q8Cnp.js +2 -0
  171. package/dist/components/p-C_0Q8Cnp.js.map +1 -0
  172. package/dist/components/{p-t9Ei1kHP.js → p-CxyjoTN1.js} +2 -2
  173. package/dist/components/p-CyoHRqy6.js +2 -0
  174. package/dist/components/p-CyoHRqy6.js.map +1 -0
  175. package/dist/components/p-DBJ2I3mH.js +2 -0
  176. package/dist/components/p-DBJ2I3mH.js.map +1 -0
  177. package/dist/components/p-DM-95BX1.js +2 -0
  178. package/dist/components/p-DM-95BX1.js.map +1 -0
  179. package/dist/components/p-DZAtgSZo.js +2 -0
  180. package/dist/components/p-DZAtgSZo.js.map +1 -0
  181. package/dist/components/{p--KbMQblZ.js → p-Dh4q5TSS.js} +2 -2
  182. package/dist/components/{p-DIsDiGcp.js → p-DhsO0939.js} +2 -2
  183. package/dist/components/p-DhsO0939.js.map +1 -0
  184. package/dist/components/{p-CiwdnKKp.js → p-DrDHC7V6.js} +2 -2
  185. package/dist/components/{p-BZAEZENv.js → p-DsbhBb5F.js} +2 -2
  186. package/dist/components/p-DuNZGFkV.js +2 -0
  187. package/dist/components/p-DuNZGFkV.js.map +1 -0
  188. package/dist/components/{p-B1pWGQn1.js → p-P_4vE1ub.js} +2 -2
  189. package/dist/docs/components.json +1647 -1435
  190. package/dist/framework/select-multi-value-accessor.js +3 -3
  191. package/dist/lib/toast/index.d.ts +2 -0
  192. package/dist/lib/toast/index.js +158 -0
  193. package/dist/lib/toast/index.js.map +7 -0
  194. package/dist/lib/toast/toast-manager.d.ts +3 -0
  195. package/dist/lib/toast/toast-types.d.ts +85 -0
  196. package/dist/mcp-data/registry/agent-activity.json +1 -1
  197. package/dist/mcp-data/registry/agent-response.json +3 -3
  198. package/dist/mcp-data/registry/agent-source-list.json +1 -1
  199. package/dist/mcp-data/registry/agent-tool-call.json +1 -1
  200. package/dist/mcp-data/registry/app-shell.json +1 -1
  201. package/dist/mcp-data/registry/attachment-list.json +1 -1
  202. package/dist/mcp-data/registry/avatar.json +20 -2
  203. package/dist/mcp-data/registry/badge.json +1 -1
  204. package/dist/mcp-data/registry/bar-nav.json +2 -2
  205. package/dist/mcp-data/registry/button-filled.json +1 -1
  206. package/dist/mcp-data/registry/button-unfilled.json +3 -3
  207. package/dist/mcp-data/registry/card-data-viz-donut.json +2 -2
  208. package/dist/mcp-data/registry/card-setting.json +99 -13
  209. package/dist/mcp-data/registry/card-shell-data-viz.json +8 -8
  210. package/dist/mcp-data/registry/chart-bar.json +1 -1
  211. package/dist/mcp-data/registry/chart-donut.json +1 -1
  212. package/dist/mcp-data/registry/chart-legend.json +1 -1
  213. package/dist/mcp-data/registry/chart-line.json +1 -1
  214. package/dist/mcp-data/registry/checkbox.json +1 -1
  215. package/dist/mcp-data/registry/chip.json +1 -1
  216. package/dist/mcp-data/registry/code-block.json +2 -2
  217. package/dist/mcp-data/registry/conversation-list-item.json +22 -4
  218. package/dist/mcp-data/registry/conversation-list-section.json +2 -2
  219. package/dist/mcp-data/registry/conversation-list.json +2 -2
  220. package/dist/mcp-data/registry/divider.json +5 -5
  221. package/dist/mcp-data/registry/empty-state.json +1 -1
  222. package/dist/mcp-data/registry/field.json +1 -1
  223. package/dist/mcp-data/registry/icon.json +2 -2
  224. package/dist/mcp-data/registry/input.json +1 -1
  225. package/dist/mcp-data/registry/loader.json +1 -1
  226. package/dist/mcp-data/registry/markdown.json +2 -2
  227. package/dist/mcp-data/registry/menu.json +18 -2
  228. package/dist/mcp-data/registry/message-bubble.json +7 -7
  229. package/dist/mcp-data/registry/message-composer.json +3 -3
  230. package/dist/mcp-data/registry/message-scroller.json +3 -3
  231. package/dist/mcp-data/registry/message.json +7 -6
  232. package/dist/mcp-data/registry/modal.json +154 -24
  233. package/dist/mcp-data/registry/panel-nav.json +21 -3
  234. package/dist/mcp-data/registry/panel-sub-nav.json +2 -2
  235. package/dist/mcp-data/registry/panel-tool-header.json +2 -2
  236. package/dist/mcp-data/registry/panel-tool-search.json +1 -1
  237. package/dist/mcp-data/registry/panel-tools.json +2 -2
  238. package/dist/mcp-data/registry/radio.json +1 -1
  239. package/dist/mcp-data/registry/registry.json +403 -141
  240. package/dist/mcp-data/registry/select-multi.json +1 -1
  241. package/dist/mcp-data/registry/select.json +1 -1
  242. package/dist/mcp-data/registry/shell-gradient-picker.json +1 -1
  243. package/dist/mcp-data/registry/shell-gradient-swatch.json +1 -1
  244. package/dist/mcp-data/registry/skeleton.json +2 -2
  245. package/dist/mcp-data/registry/slider.json +2 -2
  246. package/dist/mcp-data/registry/swatch-picker.json +1 -1
  247. package/dist/mcp-data/registry/switch.json +2 -2
  248. package/dist/mcp-data/registry/tab-group.json +1 -1
  249. package/dist/mcp-data/registry/tag.json +4 -4
  250. package/dist/mcp-data/registry/text.json +2 -2
  251. package/dist/mcp-data/registry/toast.json +318 -0
  252. package/dist/mcp-data/registry/tooltip-data-viz.json +1 -1
  253. package/dist/mcp-data/registry/tooltip.json +1 -1
  254. package/dist/react/components.d.ts +1 -2
  255. package/dist/react/components.js +1 -2
  256. package/dist/react/ds-card-setting.d.ts +2 -2
  257. package/dist/react/ds-card-setting.js +1 -1
  258. package/dist/react/ds-menu.d.ts +1 -0
  259. package/dist/react/ds-menu.js +1 -0
  260. package/dist/react/ds-modal.d.ts +3 -2
  261. package/dist/react/ds-modal.js +4 -1
  262. package/dist/react/ds-toast.d.ts +14 -0
  263. package/dist/react/ds-toast.js +16 -0
  264. package/dist/types/components/Avatar/Avatar.d.ts +3 -0
  265. package/dist/types/components/BarNav/BarNav.d.ts +2 -0
  266. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +2 -0
  267. package/dist/types/components/CardSetting/CardSetting.d.ts +9 -6
  268. package/dist/types/components/CardSetting/index.d.ts +1 -1
  269. package/dist/types/components/ConversationListItem/ConversationListItem.d.ts +2 -0
  270. package/dist/types/components/Menu/Menu.d.ts +6 -0
  271. package/dist/types/components/MessageBubble/MessageBubble.d.ts +1 -1
  272. package/dist/types/components/MessageScroller/MessageScroller.d.ts +4 -0
  273. package/dist/types/components/Modal/Modal.d.ts +21 -18
  274. package/dist/types/components/PanelNav/PanelNav.d.ts +2 -0
  275. package/dist/types/components/Toast/Toast.d.ts +106 -0
  276. package/dist/types/components/Toast/index.d.ts +2 -0
  277. package/dist/types/components.d.ts +180 -186
  278. package/dist/types/toast/index.d.ts +3 -0
  279. package/dist/types/toast/toast-manager.d.ts +4 -0
  280. package/dist/types/toast/toast-types.d.ts +86 -0
  281. package/package.json +19 -18
  282. package/dist/angular/ds-banner.d.ts +0 -15
  283. package/dist/angular/ds-card.d.ts +0 -12
  284. package/dist/angular/ds-card.js +0 -38
  285. package/dist/components/ds-banner.d.ts +0 -11
  286. package/dist/components/ds-banner.js +0 -2
  287. package/dist/components/ds-banner.js.map +0 -1
  288. package/dist/components/ds-card.js +0 -2
  289. package/dist/components/ds-card.js.map +0 -1
  290. package/dist/components/p-41UAx2eq.js +0 -2
  291. package/dist/components/p-41UAx2eq.js.map +0 -1
  292. package/dist/components/p-B7NbIYjS.js +0 -2
  293. package/dist/components/p-B7NbIYjS.js.map +0 -1
  294. package/dist/components/p-BEQB8EnB.js +0 -2
  295. package/dist/components/p-BEQB8EnB.js.map +0 -1
  296. package/dist/components/p-BFWC17em.js +0 -2
  297. package/dist/components/p-BO6C8abO.js +0 -2
  298. package/dist/components/p-BO6C8abO.js.map +0 -1
  299. package/dist/components/p-CC1C8s6m.js +0 -2
  300. package/dist/components/p-CC1C8s6m.js.map +0 -1
  301. package/dist/components/p-CZMEhdlA.js.map +0 -1
  302. package/dist/components/p-CnM9SW_8.js +0 -2
  303. package/dist/components/p-CnM9SW_8.js.map +0 -1
  304. package/dist/components/p-CuKn9I5f.js +0 -2
  305. package/dist/components/p-CuKn9I5f.js.map +0 -1
  306. package/dist/components/p-DFMM60My.js +0 -2
  307. package/dist/components/p-DFMM60My.js.map +0 -1
  308. package/dist/components/p-DIsDiGcp.js.map +0 -1
  309. package/dist/components/p-Di-ThR90.js.map +0 -1
  310. package/dist/components/p-drBA73M_.js +0 -2
  311. package/dist/components/p-drBA73M_.js.map +0 -1
  312. package/dist/mcp-data/registry/banner.json +0 -206
  313. package/dist/mcp-data/registry/card.json +0 -126
  314. package/dist/react/ds-banner.d.ts +0 -12
  315. package/dist/react/ds-banner.js +0 -12
  316. package/dist/react/ds-card.d.ts +0 -9
  317. package/dist/react/ds-card.js +0 -12
  318. package/dist/types/components/Banner/Banner.d.ts +0 -31
  319. package/dist/types/components/Card/Card.d.ts +0 -21
  320. package/dist/types/components/Card/index.d.ts +0 -2
  321. /package/dist/components/{p-Bo5wikia.js.map → p-0kEg-Z4f.js.map} +0 -0
  322. /package/dist/components/{p-C0sq948W.js.map → p-BTo4pNdp.js.map} +0 -0
  323. /package/dist/components/{p-2br9YDbG.js.map → p-BkwBtZs3.js.map} +0 -0
  324. /package/dist/components/{p-Bx1G7P6W.js.map → p-CPPAndX2.js.map} +0 -0
  325. /package/dist/components/{p-Di4HBckb.js.map → p-CS12e52R.js.map} +0 -0
  326. /package/dist/components/{p-BSOZXagj.js.map → p-CZZYGqKz.js.map} +0 -0
  327. /package/dist/components/{p-t9Ei1kHP.js.map → p-CxyjoTN1.js.map} +0 -0
  328. /package/dist/components/{p--KbMQblZ.js.map → p-Dh4q5TSS.js.map} +0 -0
  329. /package/dist/components/{p-CiwdnKKp.js.map → p-DrDHC7V6.js.map} +0 -0
  330. /package/dist/components/{p-BZAEZENv.js.map → p-DsbhBb5F.js.map} +0 -0
  331. /package/dist/components/{p-B1pWGQn1.js.map → p-P_4vE1ub.js.map} +0 -0
@@ -721,7 +721,7 @@
721
721
  "peerDependencies": {
722
722
  "required": [
723
723
  "@ds-mo/tokens ^3.1.1",
724
- "@ds-mo/icons ^6.2.0"
724
+ "@ds-mo/icons ^6.3.0"
725
725
  ],
726
726
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
727
727
  }
@@ -707,7 +707,7 @@
707
707
  "peerDependencies": {
708
708
  "required": [
709
709
  "@ds-mo/tokens ^3.1.1",
710
- "@ds-mo/icons ^6.2.0"
710
+ "@ds-mo/icons ^6.3.0"
711
711
  ],
712
712
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
713
713
  }
@@ -167,7 +167,7 @@
167
167
  "peerDependencies": {
168
168
  "required": [
169
169
  "@ds-mo/tokens ^3.1.1",
170
- "@ds-mo/icons ^6.2.0"
170
+ "@ds-mo/icons ^6.3.0"
171
171
  ],
172
172
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
173
173
  }
@@ -184,7 +184,7 @@
184
184
  "peerDependencies": {
185
185
  "required": [
186
186
  "@ds-mo/tokens ^3.1.1",
187
- "@ds-mo/icons ^6.2.0"
187
+ "@ds-mo/icons ^6.3.0"
188
188
  ],
189
189
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
190
190
  }
@@ -43,7 +43,7 @@
43
43
  }
44
44
  ],
45
45
  "commonlyComposedWith": [
46
- "component:ds-card",
46
+ "component:ds-card-setting",
47
47
  "component:ds-text",
48
48
  "component:ds-icon"
49
49
  ],
@@ -256,7 +256,7 @@
256
256
  "peerDependencies": {
257
257
  "required": [
258
258
  "@ds-mo/tokens ^3.1.1",
259
- "@ds-mo/icons ^6.2.0"
259
+ "@ds-mo/icons ^6.3.0"
260
260
  ],
261
261
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
262
262
  }
@@ -629,7 +629,7 @@
629
629
  "peerDependencies": {
630
630
  "required": [
631
631
  "@ds-mo/tokens ^3.1.1",
632
- "@ds-mo/icons ^6.2.0"
632
+ "@ds-mo/icons ^6.3.0"
633
633
  ],
634
634
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
635
635
  }
@@ -645,7 +645,7 @@
645
645
  "files": [
646
646
  {
647
647
  "path": "src/wc/components/Slider/Slider.css",
648
- "content": "@import '../../utils/control-inactive.css';\n\n:host {\n --ds-slider-control-size: var(--dimension-size-400);\n --ds-slider-thumb-size: var(--dimension-size-200);\n --ds-slider-track-size: var(--dimension-size-100);\n --ds-slider-track-stroke: var(--dimension-stroke-width-015);\n --ds-slider-thumb-stroke: var(--dimension-stroke-width-018);\n --ds-slider-vertical-length: calc(var(--dimension-size-800) * 3);\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n gap: var(--dimension-space-050);\n width: 100%;\n color: var(--color-foreground-primary);\n}\n\n:host(.slider--sm) {\n --ds-slider-control-size: var(--dimension-size-300);\n --ds-slider-thumb-size: var(--dimension-size-150);\n --ds-slider-track-size: var(--dimension-size-075);\n --ds-slider-track-stroke: var(--dimension-stroke-width-012);\n}\n\n:host(.slider--xs) {\n --ds-slider-control-size: var(--dimension-size-200);\n --ds-slider-thumb-size: var(--dimension-size-100);\n --ds-slider-track-size: var(--dimension-size-050);\n --ds-slider-track-stroke: calc(var(--dimension-stroke-width-base) * 3 / 32);\n}\n\n:host(.slider--vertical) {\n width: fit-content;\n min-width: var(--dimension-form-width-xs);\n}\n\n.slider__label-row {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: var(--dimension-space-100);\n min-width: 0;\n}\n\n.slider__label {\n min-width: 0;\n}\n\n.slider__value {\n flex-shrink: 0;\n}\n\n.slider__control {\n position: relative;\n width: 100%;\n height: var(--ds-slider-control-size);\n border-radius: var(--dimension-radius-half);\n cursor: pointer;\n touch-action: none;\n user-select: none;\n}\n\n:host(.slider--vertical) .slider__control {\n align-self: center;\n width: var(--ds-slider-control-size);\n height: var(--ds-slider-vertical-length);\n}\n\n:host(.slider--readonly) .slider__control {\n cursor: default;\n}\n\n/* Inactive: `.ds-control-inactive` (25% opacity) on the host. */\n:host(.ds-control-inactive) .slider__control {\n cursor: not-allowed;\n}\n\n.slider__rail {\n position: absolute;\n top: 50%;\n right: 0;\n left: 0;\n height: var(--ds-slider-track-size);\n overflow: hidden;\n border-radius: var(--dimension-radius-025);\n background-color: transparent;\n box-shadow: inset 0 0 0 var(--ds-slider-track-stroke) var(--color-foreground-tertiary);\n transform: translateY(-50%);\n pointer-events: none;\n}\n\n:host(.slider--thumb-center) .slider__rail {\n right: calc(var(--ds-slider-thumb-size) / 2);\n left: calc(var(--ds-slider-thumb-size) / 2);\n}\n\n.slider__indicator {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: calc(\n var(--ds-slider-thumb-size) / 2 +\n (var(--ds-slider-end-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size))\n );\n border-radius: inherit;\n background-color: var(--color-background-bold-brand);\n}\n\n:host(.slider--range) .slider__indicator {\n left: calc(\n var(--ds-slider-thumb-size) / 2 +\n (var(--ds-slider-start-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size))\n );\n width: calc(\n ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n}\n\n:host(.slider--thumb-center) .slider__indicator {\n left: calc(var(--ds-slider-start-pct, 0) * 1%);\n width: calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%);\n}\n\n.slider__thumb {\n position: absolute;\n top: 50%;\n left: calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));\n width: var(--ds-slider-thumb-size);\n height: var(--ds-slider-thumb-size);\n transform: translateY(-50%);\n z-index: 1;\n}\n\n.slider__thumb--active {\n z-index: 2;\n}\n\n.slider__input {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n border: 0;\n opacity: 0;\n appearance: none;\n pointer-events: none;\n z-index: 2;\n}\n\n.slider__thumb-visual {\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n overflow: visible;\n border-radius: var(--dimension-radius-025);\n background-color: var(--color-background-primary);\n box-shadow: inset 0 0 0 var(--ds-slider-thumb-stroke) var(--color-border-bold-brand);\n pointer-events: none;\n transition:\n background-color var(--effect-motion-short-2),\n box-shadow var(--effect-motion-short-2);\n}\n\n.slider__thumb-wash {\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background-color: transparent;\n transition: background-color var(--effect-motion-short-2);\n}\n\n:host(:not(.slider--readonly):not(.ds-control-inactive)) .slider__thumb:hover .slider__thumb-wash {\n background-color: var(--color-interaction-hover);\n}\n\n:host([data-dragging]:not(.slider--readonly):not(.ds-control-inactive))\n .slider__thumb--active .slider__thumb-wash {\n background-color: var(--color-interaction-pressed);\n}\n\n.slider__input:focus-visible + .slider__thumb-visual,\n:host([data-review-focus]) .slider__thumb[data-index='0'] .slider__thumb-visual {\n outline: var(--dimension-stroke-width-025) solid var(--color-interaction-focus);\n outline-offset: var(--dimension-space-025);\n}\n\n:host(.slider--vertical) .slider__rail {\n top: 0;\n right: auto;\n bottom: 0;\n left: 50%;\n width: var(--ds-slider-track-size);\n height: auto;\n transform: translateX(-50%);\n}\n\n:host(.slider--vertical.slider--thumb-center) .slider__rail {\n top: calc(var(--ds-slider-thumb-size) / 2);\n bottom: calc(var(--ds-slider-thumb-size) / 2);\n}\n\n:host(.slider--vertical) .slider__indicator {\n top: auto;\n right: 0;\n bottom: 0;\n left: 0;\n width: auto;\n height: calc(\n var(--ds-slider-thumb-size) / 2 +\n (var(--ds-slider-end-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size))\n );\n}\n\n:host(.slider--vertical.slider--range) .slider__indicator {\n bottom: calc(\n var(--ds-slider-thumb-size) / 2 +\n (var(--ds-slider-start-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size))\n );\n height: calc(\n ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n}\n\n:host(.slider--vertical.slider--thumb-center) .slider__indicator {\n bottom: calc(var(--ds-slider-start-pct, 0) * 1%);\n height: calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%);\n}\n\n:host(.slider--vertical) .slider__thumb {\n top: auto;\n bottom: calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));\n left: 50%;\n transform: translateX(-50%);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .slider__thumb-visual,\n .slider__thumb-wash {\n transition: none;\n }\n}\n",
648
+ "content": "@import '../../utils/control-inactive.css';\n\n:host {\n --ds-slider-control-size: var(--dimension-size-400);\n --ds-slider-thumb-size: var(--dimension-size-200);\n --ds-slider-track-size: var(--dimension-size-100);\n --ds-slider-track-stroke: var(--dimension-stroke-width-012);\n --ds-slider-vertical-length: calc(var(--dimension-size-800) * 3);\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n gap: var(--dimension-space-050);\n width: 100%;\n color: var(--color-foreground-primary);\n}\n\n:host(.slider--sm) {\n --ds-slider-control-size: var(--dimension-size-300);\n --ds-slider-thumb-size: var(--dimension-size-150);\n --ds-slider-track-size: var(--dimension-size-075);\n}\n\n:host(.slider--xs) {\n --ds-slider-control-size: var(--dimension-size-200);\n --ds-slider-thumb-size: var(--dimension-size-100);\n --ds-slider-track-size: var(--dimension-size-050);\n}\n\n:host(.slider--vertical) {\n width: fit-content;\n min-width: var(--dimension-form-width-xs);\n}\n\n.slider__label-row {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: var(--dimension-space-100);\n min-width: 0;\n}\n\n.slider__label {\n min-width: 0;\n}\n\n.slider__value {\n flex-shrink: 0;\n}\n\n.slider__control {\n position: relative;\n width: 100%;\n height: var(--ds-slider-control-size);\n border-radius: var(--dimension-radius-half);\n cursor: pointer;\n touch-action: none;\n user-select: none;\n}\n\n:host(.slider--vertical) .slider__control {\n align-self: center;\n width: var(--ds-slider-control-size);\n height: var(--ds-slider-vertical-length);\n}\n\n:host(.slider--readonly) .slider__control {\n cursor: default;\n}\n\n/* Inactive: `.ds-control-inactive` (25% opacity) on the host. */\n:host(.ds-control-inactive) .slider__control {\n cursor: not-allowed;\n}\n\n.slider__rail {\n position: absolute;\n top: 50%;\n right: 0;\n left: 0;\n height: var(--ds-slider-track-size);\n overflow: hidden;\n border-radius: var(--dimension-radius-025);\n background-color: transparent;\n box-shadow: inset 0 0 0 var(--ds-slider-track-stroke) var(--color-border-secondary);\n transform: translateY(-50%);\n pointer-events: none;\n}\n\n:host(.slider--thumb-center) .slider__rail {\n right: calc(var(--ds-slider-thumb-size) / 2);\n left: calc(var(--ds-slider-thumb-size) / 2);\n}\n\n.slider__indicator {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: calc(\n var(--ds-slider-thumb-size) / 2 +\n (var(--ds-slider-end-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size))\n );\n border-radius: inherit;\n background-color: var(--color-background-bold-brand);\n}\n\n:host(.slider--range) .slider__indicator {\n left: calc(\n var(--ds-slider-thumb-size) / 2 +\n (var(--ds-slider-start-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size))\n );\n width: calc(\n ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n}\n\n:host(.slider--thumb-center) .slider__indicator {\n left: calc(var(--ds-slider-start-pct, 0) * 1%);\n width: calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%);\n}\n\n.slider__thumb {\n position: absolute;\n top: 50%;\n left: calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));\n width: var(--ds-slider-thumb-size);\n height: var(--ds-slider-thumb-size);\n transform: translateY(-50%);\n z-index: 1;\n}\n\n.slider__thumb--active {\n z-index: 2;\n}\n\n.slider__input {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n border: 0;\n opacity: 0;\n appearance: none;\n pointer-events: none;\n z-index: 2;\n}\n\n.slider__thumb-visual {\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n overflow: visible;\n border-radius: var(--dimension-radius-025);\n background-color: var(--color-background-primary);\n box-shadow: var(--effect-elevation-elevated-sm);\n pointer-events: none;\n transition:\n background-color var(--effect-motion-short-2),\n box-shadow var(--effect-motion-short-2);\n}\n\n.slider__thumb-wash {\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background-color: transparent;\n transition: background-color var(--effect-motion-short-2);\n}\n\n:host(:not(.slider--readonly):not(.ds-control-inactive)) .slider__thumb:hover .slider__thumb-wash {\n background-color: var(--color-interaction-hover);\n}\n\n:host([data-dragging]:not(.slider--readonly):not(.ds-control-inactive))\n .slider__thumb--active .slider__thumb-wash {\n background-color: var(--color-interaction-pressed);\n}\n\n.slider__input:focus-visible + .slider__thumb-visual,\n:host([data-review-focus]) .slider__thumb[data-index='0'] .slider__thumb-visual {\n outline: var(--dimension-stroke-width-025) solid var(--color-interaction-focus);\n outline-offset: var(--dimension-space-025);\n}\n\n:host(.slider--vertical) .slider__rail {\n top: 0;\n right: auto;\n bottom: 0;\n left: 50%;\n width: var(--ds-slider-track-size);\n height: auto;\n transform: translateX(-50%);\n}\n\n:host(.slider--vertical.slider--thumb-center) .slider__rail {\n top: calc(var(--ds-slider-thumb-size) / 2);\n bottom: calc(var(--ds-slider-thumb-size) / 2);\n}\n\n:host(.slider--vertical) .slider__indicator {\n top: auto;\n right: 0;\n bottom: 0;\n left: 0;\n width: auto;\n height: calc(\n var(--ds-slider-thumb-size) / 2 +\n (var(--ds-slider-end-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size))\n );\n}\n\n:host(.slider--vertical.slider--range) .slider__indicator {\n bottom: calc(\n var(--ds-slider-thumb-size) / 2 +\n (var(--ds-slider-start-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size))\n );\n height: calc(\n ((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) / 100) *\n (100% - var(--ds-slider-thumb-size))\n );\n}\n\n:host(.slider--vertical.slider--thumb-center) .slider__indicator {\n bottom: calc(var(--ds-slider-start-pct, 0) * 1%);\n height: calc((var(--ds-slider-end-pct, 0) - var(--ds-slider-start-pct, 0)) * 1%);\n}\n\n:host(.slider--vertical) .slider__thumb {\n top: auto;\n bottom: calc((var(--ds-slider-thumb-pct, 0) / 100) * (100% - var(--ds-slider-thumb-size)));\n left: 50%;\n transform: translateX(-50%);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .slider__thumb-visual,\n .slider__thumb-wash {\n transition: none;\n }\n}\n",
649
649
  "type": "registry:ui"
650
650
  },
651
651
  {
@@ -200,7 +200,7 @@
200
200
  "peerDependencies": {
201
201
  "required": [
202
202
  "@ds-mo/tokens ^3.1.1",
203
- "@ds-mo/icons ^6.2.0"
203
+ "@ds-mo/icons ^6.3.0"
204
204
  ],
205
205
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
206
206
  }
@@ -335,7 +335,7 @@
335
335
  "peerDependencies": {
336
336
  "required": [
337
337
  "@ds-mo/tokens ^3.1.1",
338
- "@ds-mo/icons ^6.2.0"
338
+ "@ds-mo/icons ^6.3.0"
339
339
  ],
340
340
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
341
341
  }
@@ -349,7 +349,7 @@
349
349
  "files": [
350
350
  {
351
351
  "path": "src/wc/components/Switch/Switch.css",
352
- "content": "@import '../../utils/focus-ring.css';\n@import '../../utils/control-inactive.css';\n\n:host {\n --ds-switch-width: var(--dimension-size-400);\n --ds-switch-height: var(--dimension-size-250);\n --ds-switch-thumb-size: var(--dimension-size-150);\n --ds-switch-gap: var(--dimension-space-050);\n --ds-switch-stroke: var(--dimension-stroke-width-015);\n --ds-switch-inset: var(--ds-switch-gap);\n --ds-switch-thumb-hover: var(--color-interaction-hover);\n --ds-switch-thumb-pressed: var(--color-interaction-pressed);\n --ds-switch-travel: calc(\n var(--ds-switch-width) - var(--ds-switch-thumb-size) - var(--ds-switch-inset) -\n var(--ds-switch-inset)\n );\n position: relative;\n display: inline-flex;\n width: var(--ds-switch-width);\n height: var(--ds-switch-height);\n padding: 0;\n border: none;\n border-radius: var(--dimension-radius-half);\n box-sizing: border-box;\n flex-shrink: 0;\n overflow: visible;\n cursor: pointer;\n user-select: none;\n outline: none;\n background-color: transparent;\n box-shadow: inset 0 0 0 var(--ds-switch-stroke) var(--color-foreground-tertiary);\n transition:\n background-color var(--effect-motion-short-3),\n box-shadow var(--effect-motion-short-3);\n}\n\n:host(.switch--sm) {\n --ds-switch-width: var(--dimension-size-300);\n --ds-switch-height: var(--dimension-size-200);\n --ds-switch-thumb-size: calc(var(--dimension-size-base) * 5 / 4);\n --ds-switch-gap: calc(var(--dimension-space-025) + var(--dimension-space-012));\n --ds-switch-stroke: var(--dimension-stroke-width-012);\n}\n\n:host(.switch--xs) {\n --ds-switch-width: var(--dimension-size-250);\n --ds-switch-height: var(--dimension-size-150);\n --ds-switch-thumb-size: var(--dimension-size-100);\n --ds-switch-gap: var(--dimension-space-025);\n --ds-switch-stroke: calc(var(--dimension-stroke-width-base) * 3 / 32);\n}\n\n:host(.checked) {\n background-color: var(--color-background-bold-brand);\n box-shadow: none;\n}\n\n:host(.switch--readonly),\n:host(.switch--presentation) {\n cursor: default;\n}\n\n:host(.switch--presentation) {\n pointer-events: none;\n}\n\n/* Inactive: `.ds-control-inactive` (25% opacity). */\n\n.thumb {\n position: absolute;\n top: 50%;\n left: var(--ds-switch-inset);\n width: var(--ds-switch-thumb-size);\n height: var(--ds-switch-thumb-size);\n border-radius: var(--dimension-radius-half);\n background-color: var(--color-foreground-tertiary);\n box-shadow: none;\n transform: translateY(-50%);\n transition:\n background-color var(--effect-motion-short-3),\n transform var(--effect-motion-short-3);\n pointer-events: none;\n}\n\n.thumb::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background: transparent;\n pointer-events: none;\n}\n\n:host(:hover:not(:disabled):not(.ds-control-inactive):not(.switch--readonly):not(.switch--presentation))\n .thumb::after {\n background: var(--ds-switch-thumb-hover);\n}\n\n:host(:active:not(:disabled):not(.ds-control-inactive):not(.switch--readonly):not(.switch--presentation))\n .thumb::after {\n background: var(--ds-switch-thumb-pressed);\n}\n\n:host(.checked) .thumb {\n background-color: var(--color-background-primary);\n box-shadow: none;\n transform: translate3d(var(--ds-switch-travel), -50%, 0);\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host {\n transition: none;\n }\n\n .thumb {\n transition: none;\n }\n}\n",
352
+ "content": "@import '../../utils/focus-ring.css';\n@import '../../utils/control-inactive.css';\n\n:host {\n --ds-switch-width: var(--dimension-size-400);\n --ds-switch-height: var(--dimension-size-250);\n --ds-switch-thumb-size: var(--dimension-size-150);\n --ds-switch-gap: var(--dimension-space-050);\n --ds-switch-stroke: var(--dimension-stroke-width-012);\n --ds-switch-inset: var(--ds-switch-gap);\n --ds-switch-thumb-hover: var(--color-interaction-hover);\n --ds-switch-thumb-pressed: var(--color-interaction-pressed);\n --ds-switch-travel: calc(\n var(--ds-switch-width) - var(--ds-switch-thumb-size) - var(--ds-switch-inset) -\n var(--ds-switch-inset)\n );\n position: relative;\n display: inline-flex;\n width: var(--ds-switch-width);\n height: var(--ds-switch-height);\n padding: 0;\n border: none;\n border-radius: var(--dimension-radius-half);\n box-sizing: border-box;\n flex-shrink: 0;\n overflow: visible;\n cursor: pointer;\n user-select: none;\n outline: none;\n background-color: transparent;\n box-shadow: inset 0 0 0 var(--ds-switch-stroke) var(--color-border-secondary);\n transition:\n background-color var(--effect-motion-short-3),\n box-shadow var(--effect-motion-short-3);\n}\n\n:host(.switch--sm) {\n --ds-switch-width: var(--dimension-size-300);\n --ds-switch-height: var(--dimension-size-200);\n --ds-switch-thumb-size: calc(var(--dimension-size-base) * 5 / 4);\n --ds-switch-gap: calc(var(--dimension-space-025) + var(--dimension-space-012));\n}\n\n:host(.switch--xs) {\n --ds-switch-width: var(--dimension-size-250);\n --ds-switch-height: var(--dimension-size-150);\n --ds-switch-thumb-size: var(--dimension-size-100);\n --ds-switch-gap: var(--dimension-space-025);\n}\n\n:host(.checked) {\n background-color: var(--color-background-bold-brand);\n box-shadow: none;\n}\n\n:host(.switch--readonly),\n:host(.switch--presentation) {\n cursor: default;\n}\n\n:host(.switch--presentation) {\n pointer-events: none;\n}\n\n/* Inactive: `.ds-control-inactive` (25% opacity). */\n\n.thumb {\n position: absolute;\n top: 50%;\n left: var(--ds-switch-inset);\n width: var(--ds-switch-thumb-size);\n height: var(--ds-switch-thumb-size);\n border-radius: var(--dimension-radius-half);\n background-color: var(--color-foreground-tertiary);\n box-shadow: none;\n transform: translateY(-50%);\n transition:\n background-color var(--effect-motion-short-3),\n transform var(--effect-motion-short-3);\n pointer-events: none;\n}\n\n.thumb::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n background: transparent;\n pointer-events: none;\n}\n\n:host(:hover:not(:disabled):not(.ds-control-inactive):not(.switch--readonly):not(.switch--presentation))\n .thumb::after {\n background: var(--ds-switch-thumb-hover);\n}\n\n:host(:active:not(:disabled):not(.ds-control-inactive):not(.switch--readonly):not(.switch--presentation))\n .thumb::after {\n background: var(--ds-switch-thumb-pressed);\n}\n\n:host(.checked) .thumb {\n background-color: var(--color-background-primary);\n box-shadow: none;\n transform: translate3d(var(--ds-switch-travel), -50%, 0);\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host {\n transition: none;\n }\n\n .thumb {\n transition: none;\n }\n}\n",
353
353
  "type": "registry:ui"
354
354
  },
355
355
  {
@@ -219,7 +219,7 @@
219
219
  "peerDependencies": {
220
220
  "required": [
221
221
  "@ds-mo/tokens ^3.1.1",
222
- "@ds-mo/icons ^6.2.0"
222
+ "@ds-mo/icons ^6.3.0"
223
223
  ],
224
224
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
225
225
  }
@@ -45,7 +45,7 @@
45
45
  }
46
46
  ],
47
47
  "commonlyComposedWith": [
48
- "component:ds-card",
48
+ "component:ds-card-setting",
49
49
  "component:ds-text",
50
50
  "component:ds-icon",
51
51
  "component:ds-menu"
@@ -322,7 +322,7 @@
322
322
  "peerDependencies": {
323
323
  "required": [
324
324
  "@ds-mo/tokens ^3.1.1",
325
- "@ds-mo/icons ^6.2.0"
325
+ "@ds-mo/icons ^6.3.0"
326
326
  ],
327
327
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
328
328
  }
@@ -340,12 +340,12 @@
340
340
  "files": [
341
341
  {
342
342
  "path": "src/wc/components/Tag/Tag.css",
343
- "content": "@import '../../utils/tag-chip.css';\n\n/* ── Intent × Contrast — strong ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-strong) { background-color: var(--color-background-strong-neutral); color: var(--color-foreground-medium-neutral); }\n:host(.tag--intent-brand.tag--contrast-strong) { background-color: var(--color-background-strong-brand); color: var(--color-foreground-on-strong-background-primary); }\n:host(.tag--intent-ai.tag--contrast-strong) { background-color: var(--color-background-strong-ai); color: var(--color-foreground-medium-ai); }\n:host(.tag--intent-negative.tag--contrast-strong) { background-color: var(--color-background-strong-negative); color: var(--color-foreground-medium-negative); }\n:host(.tag--intent-warning.tag--contrast-strong) { background-color: var(--color-background-strong-warning); color: var(--color-foreground-medium-warning); }\n:host(.tag--intent-caution.tag--contrast-strong) { background-color: var(--color-background-strong-caution); color: var(--color-foreground-medium-caution); }\n:host(.tag--intent-positive.tag--contrast-strong) { background-color: var(--color-background-strong-positive); color: var(--color-foreground-medium-positive); }\n\n/* ── Intent × Contrast — bold ───────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-bold) { background-color: var(--color-background-bold-neutral); color: var(--color-foreground-on-bold-background-primary); }\n:host(.tag--intent-brand.tag--contrast-bold) { background-color: var(--color-background-bold-brand); color: var(--color-foreground-on-bold-background-primary); }\n:host(.tag--intent-ai.tag--contrast-bold) { background-color: var(--color-background-bold-ai); color: var(--color-foreground-on-bold-background-primary); }\n:host(.tag--intent-negative.tag--contrast-bold) { background-color: var(--color-background-bold-negative); color: var(--color-foreground-on-bold-background-primary); }\n:host(.tag--intent-warning.tag--contrast-bold) { background-color: var(--color-background-bold-warning); color: var(--color-foreground-on-bold-background-primary); }\n:host(.tag--intent-caution.tag--contrast-bold) { background-color: var(--color-background-bold-caution); color: var(--color-foreground-on-bold-background-primary); }\n:host(.tag--intent-positive.tag--contrast-bold) { background-color: var(--color-background-bold-positive); color: var(--color-foreground-on-bold-background-primary); }\n\n/* ── Intent × Contrast — medium ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-medium) { background-color: var(--color-background-medium-neutral); color: var(--color-foreground-strong-neutral); }\n:host(.tag--intent-brand.tag--contrast-medium) { background-color: var(--color-background-medium-brand); color: var(--color-foreground-on-medium-background-primary); }\n:host(.tag--intent-ai.tag--contrast-medium) { background-color: var(--color-background-medium-ai); color: var(--color-foreground-strong-ai); }\n:host(.tag--intent-negative.tag--contrast-medium) { background-color: var(--color-background-medium-negative); color: var(--color-foreground-strong-negative); }\n:host(.tag--intent-warning.tag--contrast-medium) { background-color: var(--color-background-medium-warning); color: var(--color-foreground-strong-warning); }\n:host(.tag--intent-caution.tag--contrast-medium) { background-color: var(--color-background-medium-caution); color: var(--color-foreground-strong-caution); }\n:host(.tag--intent-positive.tag--contrast-medium) { background-color: var(--color-background-medium-positive); color: var(--color-foreground-strong-positive); }\n\n/* ── Intent × Contrast — faint ──────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-faint) { background-color: var(--color-background-faint-neutral); color: var(--color-foreground-bold-neutral); }\n:host(.tag--intent-brand.tag--contrast-faint) { background-color: var(--color-background-faint-brand); color: var(--color-foreground-bold-brand); }\n:host(.tag--intent-ai.tag--contrast-faint) { background-color: var(--color-background-faint-ai); color: var(--color-foreground-bold-ai); }\n:host(.tag--intent-negative.tag--contrast-faint) { background-color: var(--color-background-faint-negative); color: var(--color-foreground-bold-negative); }\n:host(.tag--intent-warning.tag--contrast-faint) { background-color: var(--color-background-faint-warning); color: var(--color-foreground-bold-warning); }\n:host(.tag--intent-caution.tag--contrast-faint) { background-color: var(--color-background-faint-caution); color: var(--color-foreground-bold-caution); }\n:host(.tag--intent-positive.tag--contrast-faint) { background-color: var(--color-background-faint-positive); color: var(--color-foreground-bold-positive); }\n\n/* ── Interactive menu trigger ───────────────────────────────────────────── */\n\n:host(.tag--interactive) {\n padding: 0;\n gap: 0;\n}\n\n.tag__button {\n all: unset;\n position: relative;\n z-index: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 0;\n max-width: 100%;\n height: 100%;\n padding: 0 var(--ds-control-padding-inline);\n gap: var(--ds-control-gap);\n border-radius: inherit;\n color: inherit;\n cursor: pointer;\n}\n\n.tag__button:disabled {\n cursor: not-allowed;\n}\n\n/* Hover/press wash stays above the Tag's semantic background. */\n\n/* ── Icons ──────────────────────────────────────────────────────────────── */\n\n.tag__prefix-icon,\n.tag__suffix-icon {\n position: relative;\n z-index: 2;\n display: inline-flex;\n flex-shrink: 0;\n width: var(--ds-control-icon);\n height: var(--ds-control-icon);\n}\n",
343
+ "content": "@import '../../utils/tag-chip.css';\n\n/* ── Intent × Contrast — strong ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-strong) { background-color: var(--color-background-strong-neutral); color: var(--color-foreground-medium-neutral); }\n:host(.tag--intent-brand.tag--contrast-strong) { background-color: var(--color-background-strong-brand); color: var(--color-foreground-on-strong-background-primary); }\n:host(.tag--intent-ai.tag--contrast-strong) { background-color: var(--color-background-strong-ai); color: var(--color-foreground-medium-ai); }\n:host(.tag--intent-negative.tag--contrast-strong) { background-color: var(--color-background-strong-negative); color: var(--color-foreground-medium-negative); }\n:host(.tag--intent-warning.tag--contrast-strong) { background-color: var(--color-background-strong-warning); color: var(--color-foreground-medium-warning); }\n:host(.tag--intent-caution.tag--contrast-strong) { background-color: var(--color-background-strong-caution); color: var(--color-foreground-medium-caution); }\n:host(.tag--intent-positive.tag--contrast-strong) { background-color: var(--color-background-strong-positive); color: var(--color-foreground-medium-positive); }\n\n/* ── Intent × Contrast — bold ───────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-bold) { background-color: var(--color-background-bold-neutral); color: var(--color-foreground-on-bold-background-primary); }\n:host(.tag--intent-brand.tag--contrast-bold) { background-color: var(--color-background-bold-brand); color: var(--color-foreground-on-bold-background-primary); }\n:host(.tag--intent-ai.tag--contrast-bold) { background-color: var(--color-background-bold-ai); color: var(--color-foreground-on-bold-background-primary); }\n:host(.tag--intent-negative.tag--contrast-bold) { background-color: var(--color-background-bold-negative); color: var(--color-foreground-on-bold-background-primary); }\n:host(.tag--intent-warning.tag--contrast-bold) { background-color: var(--color-background-bold-warning); color: var(--color-foreground-on-bold-background-primary); }\n:host(.tag--intent-caution.tag--contrast-bold) { background-color: var(--color-background-bold-caution); color: var(--color-foreground-on-bold-background-primary); }\n:host(.tag--intent-positive.tag--contrast-bold) { background-color: var(--color-background-bold-positive); color: var(--color-foreground-on-bold-background-primary); }\n\n/* ── Intent × Contrast — medium ─────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-medium) { background-color: var(--color-background-medium-neutral); color: var(--color-foreground-strong-neutral); }\n:host(.tag--intent-brand.tag--contrast-medium) { background-color: var(--color-background-medium-brand); color: var(--color-foreground-on-medium-background-primary); }\n:host(.tag--intent-ai.tag--contrast-medium) { background-color: var(--color-background-medium-ai); color: var(--color-foreground-strong-ai); }\n:host(.tag--intent-negative.tag--contrast-medium) { background-color: var(--color-background-medium-negative); color: var(--color-foreground-strong-negative); }\n:host(.tag--intent-warning.tag--contrast-medium) { background-color: var(--color-background-medium-warning); color: var(--color-foreground-strong-warning); }\n:host(.tag--intent-caution.tag--contrast-medium) { background-color: var(--color-background-medium-caution); color: var(--color-foreground-strong-caution); }\n:host(.tag--intent-positive.tag--contrast-medium) { background-color: var(--color-background-medium-positive); color: var(--color-foreground-strong-positive); }\n\n/* ── Intent × Contrast — faint ──────────────────────────────────────────── */\n\n:host(.tag--intent-neutral.tag--contrast-faint) { background-color: var(--color-background-faint-neutral); color: var(--color-foreground-bold-neutral); }\n:host(.tag--intent-brand.tag--contrast-faint) { background-color: var(--color-background-faint-brand); color: var(--color-foreground-bold-brand); }\n:host(.tag--intent-ai.tag--contrast-faint) { background-color: var(--color-background-faint-ai); color: var(--color-foreground-bold-ai); }\n:host(.tag--intent-negative.tag--contrast-faint) { background-color: var(--color-background-faint-negative); color: var(--color-foreground-bold-negative); }\n:host(.tag--intent-warning.tag--contrast-faint) { background-color: var(--color-background-faint-warning); color: var(--color-foreground-bold-warning); }\n:host(.tag--intent-caution.tag--contrast-faint) { background-color: var(--color-background-faint-caution); color: var(--color-foreground-bold-caution); }\n:host(.tag--intent-positive.tag--contrast-faint) { background-color: var(--color-background-faint-positive); color: var(--color-foreground-bold-positive); }\n\n/* ── Interactive menu trigger ───────────────────────────────────────────── */\n\n:host(.tag--interactive) {\n padding: 0;\n gap: 0;\n}\n\n.tag__button {\n all: unset;\n position: relative;\n z-index: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 0;\n max-width: 100%;\n height: 100%;\n padding: 0 var(--ds-control-padding-inline);\n gap: var(--ds-control-gap);\n border-radius: inherit;\n color: inherit;\n cursor: pointer;\n}\n\n.tag__button:disabled {\n cursor: not-allowed;\n}\n\n.tag__button--expanded::after {\n background: var(--ds-interaction-pressed);\n}\n\n/* Hover/press wash stays above the Tag's semantic background. */\n\n/* ── Icons ──────────────────────────────────────────────────────────────── */\n\n.tag__prefix-icon,\n.tag__suffix-icon {\n position: relative;\n z-index: 2;\n display: inline-flex;\n flex-shrink: 0;\n width: var(--ds-control-icon);\n height: var(--ds-control-icon);\n}\n",
344
344
  "type": "registry:ui"
345
345
  },
346
346
  {
347
347
  "path": "src/wc/components/Tag/Tag.tsx",
348
- "content": "import { Component, Event, EventEmitter, Prop, h, Host } from '@stencil/core';\nimport { CONTROL_TEXT_VARIANT } from '../../utils';\n\nexport type TagIntent = 'neutral' | 'brand' | 'ai' | 'negative' | 'warning' | 'caution' | 'positive';\nexport type TagContrast = 'strong' | 'bold' | 'medium' | 'faint';\nexport type TagSize = 'md' | 'sm' | 'xs';\n\n/**\n * `ds-icon` size prop matching control-density icon metrics\n * (md→20 / sm→16 / xs→12 via `--dimension-iconography-*`).\n */\nconst ICON_SIZE: Record<TagSize, 'md' | 'sm' | 'xs'> = {\n md: 'md',\n sm: 'sm',\n xs: 'xs',\n};\n\n@Component({\n tag: 'ds-tag',\n styleUrl: 'Tag.css',\n scoped: true,\n})\nexport class Tag {\n @Prop() label!: string;\n /** Canonical icon name rendered before the visible label. */\n @Prop() icon: string = '';\n @Prop() intent: TagIntent = 'neutral';\n @Prop() contrast: TagContrast = 'faint';\n @Prop() size: TagSize = 'md';\n @Prop() rounded: boolean = false;\n @Prop() maxWidth: string | number | undefined;\n /** Render a menu-trigger button with a fixed ChevronUpDown suffix. */\n @Prop() interactive: boolean = false;\n /** Controlled open state for the menu triggered by an interactive Tag. */\n @Prop() expanded: boolean = false;\n /** ID of the menu controlled by an interactive Tag. */\n @Prop() ariaControls: string | undefined;\n /** Disable an interactive Tag and apply the shared inactive treatment. */\n @Prop() isInactive: boolean = false;\n\n /** Fired when the interactive Tag button is activated. */\n @Event() dsClick!: EventEmitter<MouseEvent>;\n\n private handleClick = (event: MouseEvent) => {\n if (!this.interactive || this.isInactive) return;\n this.dsClick.emit(event);\n };\n\n render() {\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const iconSize = ICON_SIZE[this.size];\n\n const maxWidthStyle = this.maxWidth != null\n ? { maxWidth: typeof this.maxWidth === 'number' ? `${this.maxWidth}px` : this.maxWidth }\n : undefined;\n const hostClass = {\n 'tag': true,\n [`tag--intent-${this.intent}`]: true,\n [`tag--contrast-${this.contrast}`]: true,\n [`tag--size-${this.size}`]: true,\n 'ds-control--md': this.size === 'md',\n 'ds-control--sm': this.size === 'sm',\n 'ds-control--xs': this.size === 'xs',\n 'tag--rounded': this.rounded,\n 'tag--interactive': this.interactive,\n 'ds-control-inactive': this.interactive && this.isInactive,\n };\n const content = [\n this.icon && (\n <ds-icon\n class=\"tag__prefix-icon\"\n name={this.icon}\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n ),\n <ds-text class=\"tag__label\" as=\"span\" variant={textVariant} color=\"inherit\">\n {this.label}\n </ds-text>,\n ];\n\n if (!this.interactive) {\n return <Host class={hostClass} style={maxWidthStyle}>{content}</Host>;\n }\n\n return (\n <Host class={hostClass} style={maxWidthStyle}>\n <button\n type=\"button\"\n class=\"tag__button ds-interaction-fill ds-focus-ring-inset\"\n aria-haspopup=\"menu\"\n aria-expanded={this.expanded ? 'true' : 'false'}\n aria-controls={this.ariaControls}\n disabled={this.isInactive || undefined}\n onClick={this.handleClick}\n >\n {content}\n <ds-icon\n class=\"tag__suffix-icon\"\n name=\"ChevronUpDown\"\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n </button>\n </Host>\n );\n }\n}\n",
348
+ "content": "import { Component, Event, EventEmitter, Prop, h, Host } from '@stencil/core';\nimport { CONTROL_TEXT_VARIANT } from '../../utils';\n\nexport type TagIntent = 'neutral' | 'brand' | 'ai' | 'negative' | 'warning' | 'caution' | 'positive';\nexport type TagContrast = 'strong' | 'bold' | 'medium' | 'faint';\nexport type TagSize = 'md' | 'sm' | 'xs';\n\n/**\n * `ds-icon` size prop matching control-density icon metrics\n * (md→20 / sm→16 / xs→12 via `--dimension-iconography-*`).\n */\nconst ICON_SIZE: Record<TagSize, 'md' | 'sm' | 'xs'> = {\n md: 'md',\n sm: 'sm',\n xs: 'xs',\n};\n\n@Component({\n tag: 'ds-tag',\n styleUrl: 'Tag.css',\n scoped: true,\n})\nexport class Tag {\n @Prop() label!: string;\n /** Canonical icon name rendered before the visible label. */\n @Prop() icon: string = '';\n @Prop() intent: TagIntent = 'neutral';\n @Prop() contrast: TagContrast = 'faint';\n @Prop() size: TagSize = 'md';\n @Prop() rounded: boolean = false;\n @Prop() maxWidth: string | number | undefined;\n /** Render a menu-trigger button with a fixed ChevronUpDown suffix. */\n @Prop() interactive: boolean = false;\n /** Controlled open state for the menu triggered by an interactive Tag. */\n @Prop() expanded: boolean = false;\n /** ID of the menu controlled by an interactive Tag. */\n @Prop() ariaControls: string | undefined;\n /** Disable an interactive Tag and apply the shared inactive treatment. */\n @Prop() isInactive: boolean = false;\n\n /** Fired when the interactive Tag button is activated. */\n @Event() dsClick!: EventEmitter<MouseEvent>;\n\n private handleClick = (event: MouseEvent) => {\n if (!this.interactive || this.isInactive) return;\n this.dsClick.emit(event);\n };\n\n render() {\n const textVariant = CONTROL_TEXT_VARIANT[this.size];\n const iconSize = ICON_SIZE[this.size];\n\n const maxWidthStyle = this.maxWidth != null\n ? { maxWidth: typeof this.maxWidth === 'number' ? `${this.maxWidth}px` : this.maxWidth }\n : undefined;\n const hostClass = {\n 'tag': true,\n [`tag--intent-${this.intent}`]: true,\n [`tag--contrast-${this.contrast}`]: true,\n [`tag--size-${this.size}`]: true,\n 'ds-control--md': this.size === 'md',\n 'ds-control--sm': this.size === 'sm',\n 'ds-control--xs': this.size === 'xs',\n 'tag--rounded': this.rounded,\n 'tag--interactive': this.interactive,\n 'ds-control-inactive': this.interactive && this.isInactive,\n };\n const content = [\n this.icon && (\n <ds-icon\n class=\"tag__prefix-icon\"\n name={this.icon}\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n ),\n <ds-text class=\"tag__label\" as=\"span\" variant={textVariant} color=\"inherit\">\n {this.label}\n </ds-text>,\n ];\n\n if (!this.interactive) {\n return <Host class={hostClass} style={maxWidthStyle}>{content}</Host>;\n }\n\n return (\n <Host class={hostClass} style={maxWidthStyle}>\n <button\n type=\"button\"\n class={{\n 'tag__button': true,\n 'tag__button--expanded': this.expanded,\n 'ds-interaction-fill': true,\n 'ds-focus-ring-inset': true,\n }}\n aria-haspopup=\"menu\"\n aria-expanded={this.expanded ? 'true' : 'false'}\n aria-controls={this.ariaControls}\n disabled={this.isInactive || undefined}\n onClick={this.handleClick}\n >\n {content}\n <ds-icon\n class=\"tag__suffix-icon\"\n name=\"ChevronUpDown\"\n size={iconSize}\n color=\"inherit\"\n ></ds-icon>\n </button>\n </Host>\n );\n }\n}\n",
349
349
  "type": "registry:ui"
350
350
  }
351
351
  ]
@@ -40,7 +40,7 @@
40
40
  ],
41
41
  "commonlyComposedWith": [
42
42
  "component:ds-icon",
43
- "component:ds-card",
43
+ "component:ds-card-setting",
44
44
  "component:ds-field",
45
45
  "component:ds-button-filled"
46
46
  ],
@@ -335,7 +335,7 @@
335
335
  "peerDependencies": {
336
336
  "required": [
337
337
  "@ds-mo/tokens ^3.1.1",
338
- "@ds-mo/icons ^6.2.0"
338
+ "@ds-mo/icons ^6.3.0"
339
339
  ],
340
340
  "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
341
341
  }