@ds-mo/ui 14.14.0 → 14.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/README.md +10 -2
  2. package/dist/.package-ready.json +1 -1
  3. package/dist/agent-patterns.json +50 -1
  4. package/dist/agent.json +91 -3
  5. package/dist/docs/components.json +1 -1
  6. package/dist/mcp/cli.js +19 -4
  7. package/dist/mcp-data/registry/agent-activity.json +6 -1
  8. package/dist/mcp-data/registry/agent-questionnaire.json +6 -1
  9. package/dist/mcp-data/registry/agent-response.json +6 -1
  10. package/dist/mcp-data/registry/agent-source-list.json +6 -1
  11. package/dist/mcp-data/registry/agent-tool-call.json +6 -1
  12. package/dist/mcp-data/registry/attachment-list.json +6 -1
  13. package/dist/mcp-data/registry/avatar.json +6 -1
  14. package/dist/mcp-data/registry/badge.json +6 -1
  15. package/dist/mcp-data/registry/banner.json +6 -1
  16. package/dist/mcp-data/registry/bar-action.json +6 -1
  17. package/dist/mcp-data/registry/bar-nav.json +6 -1
  18. package/dist/mcp-data/registry/bar-title.json +6 -1
  19. package/dist/mcp-data/registry/bar-workflow.json +6 -1
  20. package/dist/mcp-data/registry/breadcrumb.json +6 -1
  21. package/dist/mcp-data/registry/button-filled.json +6 -1
  22. package/dist/mcp-data/registry/button-unfilled.json +6 -1
  23. package/dist/mcp-data/registry/card-chart.json +6 -1
  24. package/dist/mcp-data/registry/card-overview.json +6 -1
  25. package/dist/mcp-data/registry/card-setting.json +6 -1
  26. package/dist/mcp-data/registry/chart-legend.json +6 -1
  27. package/dist/mcp-data/registry/chart.json +6 -1
  28. package/dist/mcp-data/registry/checkbox.json +9 -1
  29. package/dist/mcp-data/registry/chip.json +6 -1
  30. package/dist/mcp-data/registry/code-block.json +6 -1
  31. package/dist/mcp-data/registry/conversation-list-item.json +6 -1
  32. package/dist/mcp-data/registry/conversation-list-section.json +6 -1
  33. package/dist/mcp-data/registry/conversation-list.json +6 -1
  34. package/dist/mcp-data/registry/divider.json +6 -1
  35. package/dist/mcp-data/registry/empty-state.json +6 -1
  36. package/dist/mcp-data/registry/field.json +6 -1
  37. package/dist/mcp-data/registry/filter-menu.json +6 -1
  38. package/dist/mcp-data/registry/icon.json +6 -1
  39. package/dist/mcp-data/registry/input.json +10 -2
  40. package/dist/mcp-data/registry/loader.json +6 -1
  41. package/dist/mcp-data/registry/markdown.json +6 -1
  42. package/dist/mcp-data/registry/menu.json +6 -1
  43. package/dist/mcp-data/registry/message-actions.json +6 -1
  44. package/dist/mcp-data/registry/message-bubble.json +6 -1
  45. package/dist/mcp-data/registry/message-composer.json +6 -1
  46. package/dist/mcp-data/registry/message-scroller.json +6 -1
  47. package/dist/mcp-data/registry/message.json +6 -1
  48. package/dist/mcp-data/registry/mobile-bar-nav.json +6 -1
  49. package/dist/mcp-data/registry/mobile-header.json +6 -1
  50. package/dist/mcp-data/registry/mobile-section-switcher.json +6 -1
  51. package/dist/mcp-data/registry/mobile-sheet-nav.json +6 -1
  52. package/dist/mcp-data/registry/modal.json +6 -1
  53. package/dist/mcp-data/registry/pagination.json +6 -1
  54. package/dist/mcp-data/registry/panel-nav.json +6 -1
  55. package/dist/mcp-data/registry/panel-sub-nav.json +6 -1
  56. package/dist/mcp-data/registry/panel-tool-header.json +6 -1
  57. package/dist/mcp-data/registry/panel-tool-search.json +6 -1
  58. package/dist/mcp-data/registry/panel-tools.json +6 -1
  59. package/dist/mcp-data/registry/paper-texture.json +6 -1
  60. package/dist/mcp-data/registry/radio.json +9 -1
  61. package/dist/mcp-data/registry/registry.json +92 -4
  62. package/dist/mcp-data/registry/scroll-overlay.json +6 -1
  63. package/dist/mcp-data/registry/select.json +10 -2
  64. package/dist/mcp-data/registry/shell-app.json +6 -1
  65. package/dist/mcp-data/registry/shell-page.json +6 -1
  66. package/dist/mcp-data/registry/shell-tools.json +6 -1
  67. package/dist/mcp-data/registry/skeleton.json +6 -1
  68. package/dist/mcp-data/registry/slider.json +6 -1
  69. package/dist/mcp-data/registry/swatch-picker.json +6 -1
  70. package/dist/mcp-data/registry/switch.json +9 -1
  71. package/dist/mcp-data/registry/tab-group.json +6 -1
  72. package/dist/mcp-data/registry/table-saved-views.json +6 -1
  73. package/dist/mcp-data/registry/table-toolbar.json +6 -1
  74. package/dist/mcp-data/registry/table.json +6 -1
  75. package/dist/mcp-data/registry/tag.json +6 -1
  76. package/dist/mcp-data/registry/text.json +6 -1
  77. package/dist/mcp-data/registry/toast.json +6 -1
  78. package/dist/mcp-data/registry/tooltip-chart.json +6 -1
  79. package/dist/mcp-data/registry/tooltip.json +6 -1
  80. package/dist/mcp-data/registry/typing-indicator.json +6 -1
  81. package/dist/vue/components.d.ts +77 -0
  82. package/dist/vue/components.js +79 -0
  83. package/dist/vue/ds-agent-activity.d.ts +3 -0
  84. package/dist/vue/ds-agent-activity.js +10 -0
  85. package/dist/vue/ds-agent-questionnaire.d.ts +3 -0
  86. package/dist/vue/ds-agent-questionnaire.js +19 -0
  87. package/dist/vue/ds-agent-response.d.ts +3 -0
  88. package/dist/vue/ds-agent-response.js +15 -0
  89. package/dist/vue/ds-agent-source-list.d.ts +3 -0
  90. package/dist/vue/ds-agent-source-list.js +13 -0
  91. package/dist/vue/ds-agent-tool-call.d.ts +3 -0
  92. package/dist/vue/ds-agent-tool-call.js +18 -0
  93. package/dist/vue/ds-attachment-list.d.ts +3 -0
  94. package/dist/vue/ds-attachment-list.js +9 -0
  95. package/dist/vue/ds-avatar.d.ts +3 -0
  96. package/dist/vue/ds-avatar.js +11 -0
  97. package/dist/vue/ds-badge.d.ts +3 -0
  98. package/dist/vue/ds-badge.js +15 -0
  99. package/dist/vue/ds-banner.d.ts +3 -0
  100. package/dist/vue/ds-banner.js +20 -0
  101. package/dist/vue/ds-bar-action.d.ts +3 -0
  102. package/dist/vue/ds-bar-action.js +14 -0
  103. package/dist/vue/ds-bar-nav.d.ts +3 -0
  104. package/dist/vue/ds-bar-nav.js +17 -0
  105. package/dist/vue/ds-bar-title.d.ts +3 -0
  106. package/dist/vue/ds-bar-title.js +32 -0
  107. package/dist/vue/ds-bar-workflow.d.ts +3 -0
  108. package/dist/vue/ds-bar-workflow.js +24 -0
  109. package/dist/vue/ds-breadcrumb.d.ts +3 -0
  110. package/dist/vue/ds-breadcrumb.js +12 -0
  111. package/dist/vue/ds-button-filled.d.ts +3 -0
  112. package/dist/vue/ds-button-filled.js +31 -0
  113. package/dist/vue/ds-button-unfilled.d.ts +3 -0
  114. package/dist/vue/ds-button-unfilled.js +36 -0
  115. package/dist/vue/ds-card-chart.d.ts +3 -0
  116. package/dist/vue/ds-card-chart.js +15 -0
  117. package/dist/vue/ds-card-overview.d.ts +3 -0
  118. package/dist/vue/ds-card-overview.js +21 -0
  119. package/dist/vue/ds-card-setting.d.ts +3 -0
  120. package/dist/vue/ds-card-setting.js +16 -0
  121. package/dist/vue/ds-chart-legend.d.ts +3 -0
  122. package/dist/vue/ds-chart-legend.js +19 -0
  123. package/dist/vue/ds-chart.d.ts +3 -0
  124. package/dist/vue/ds-chart.js +17 -0
  125. package/dist/vue/ds-checkbox.d.ts +3 -0
  126. package/dist/vue/ds-checkbox.js +22 -0
  127. package/dist/vue/ds-chip.d.ts +3 -0
  128. package/dist/vue/ds-chip.js +17 -0
  129. package/dist/vue/ds-code-block.d.ts +3 -0
  130. package/dist/vue/ds-code-block.js +10 -0
  131. package/dist/vue/ds-conversation-list-item.d.ts +3 -0
  132. package/dist/vue/ds-conversation-list-item.js +19 -0
  133. package/dist/vue/ds-conversation-list-section.d.ts +3 -0
  134. package/dist/vue/ds-conversation-list-section.js +9 -0
  135. package/dist/vue/ds-conversation-list.d.ts +3 -0
  136. package/dist/vue/ds-conversation-list.js +8 -0
  137. package/dist/vue/ds-divider.d.ts +3 -0
  138. package/dist/vue/ds-divider.js +12 -0
  139. package/dist/vue/ds-empty-state.d.ts +3 -0
  140. package/dist/vue/ds-empty-state.js +10 -0
  141. package/dist/vue/ds-field.d.ts +3 -0
  142. package/dist/vue/ds-field.js +12 -0
  143. package/dist/vue/ds-filter-menu.d.ts +3 -0
  144. package/dist/vue/ds-filter-menu.js +43 -0
  145. package/dist/vue/ds-icon.d.ts +3 -0
  146. package/dist/vue/ds-icon.js +11 -0
  147. package/dist/vue/ds-input.d.ts +3 -0
  148. package/dist/vue/ds-input.js +40 -0
  149. package/dist/vue/ds-loader.d.ts +3 -0
  150. package/dist/vue/ds-loader.js +10 -0
  151. package/dist/vue/ds-markdown.d.ts +3 -0
  152. package/dist/vue/ds-markdown.js +9 -0
  153. package/dist/vue/ds-menu.d.ts +3 -0
  154. package/dist/vue/ds-menu.js +34 -0
  155. package/dist/vue/ds-message-actions.d.ts +3 -0
  156. package/dist/vue/ds-message-actions.js +15 -0
  157. package/dist/vue/ds-message-bubble.d.ts +3 -0
  158. package/dist/vue/ds-message-bubble.js +8 -0
  159. package/dist/vue/ds-message-composer.d.ts +3 -0
  160. package/dist/vue/ds-message-composer.js +21 -0
  161. package/dist/vue/ds-message-scroller.d.ts +3 -0
  162. package/dist/vue/ds-message-scroller.js +14 -0
  163. package/dist/vue/ds-message.d.ts +3 -0
  164. package/dist/vue/ds-message.js +17 -0
  165. package/dist/vue/ds-mobile-bar-nav.d.ts +3 -0
  166. package/dist/vue/ds-mobile-bar-nav.js +25 -0
  167. package/dist/vue/ds-mobile-header.d.ts +3 -0
  168. package/dist/vue/ds-mobile-header.js +23 -0
  169. package/dist/vue/ds-mobile-section-switcher.d.ts +3 -0
  170. package/dist/vue/ds-mobile-section-switcher.js +13 -0
  171. package/dist/vue/ds-mobile-sheet-nav.d.ts +3 -0
  172. package/dist/vue/ds-mobile-sheet-nav.js +26 -0
  173. package/dist/vue/ds-modal.d.ts +3 -0
  174. package/dist/vue/ds-modal.js +18 -0
  175. package/dist/vue/ds-pagination.d.ts +3 -0
  176. package/dist/vue/ds-pagination.js +25 -0
  177. package/dist/vue/ds-panel-nav.d.ts +3 -0
  178. package/dist/vue/ds-panel-nav.js +40 -0
  179. package/dist/vue/ds-panel-sub-nav.d.ts +3 -0
  180. package/dist/vue/ds-panel-sub-nav.js +15 -0
  181. package/dist/vue/ds-panel-tool-header.d.ts +3 -0
  182. package/dist/vue/ds-panel-tool-header.js +24 -0
  183. package/dist/vue/ds-panel-tool-search.d.ts +3 -0
  184. package/dist/vue/ds-panel-tool-search.js +25 -0
  185. package/dist/vue/ds-panel-tools.d.ts +3 -0
  186. package/dist/vue/ds-panel-tools.js +29 -0
  187. package/dist/vue/ds-paper-texture.d.ts +3 -0
  188. package/dist/vue/ds-paper-texture.js +8 -0
  189. package/dist/vue/ds-radio.d.ts +3 -0
  190. package/dist/vue/ds-radio.js +22 -0
  191. package/dist/vue/ds-scroll-overlay.d.ts +3 -0
  192. package/dist/vue/ds-scroll-overlay.js +11 -0
  193. package/dist/vue/ds-select.d.ts +3 -0
  194. package/dist/vue/ds-select.js +57 -0
  195. package/dist/vue/ds-shell-app.d.ts +3 -0
  196. package/dist/vue/ds-shell-app.js +46 -0
  197. package/dist/vue/ds-shell-page.d.ts +3 -0
  198. package/dist/vue/ds-shell-page.js +16 -0
  199. package/dist/vue/ds-shell-tools.d.ts +3 -0
  200. package/dist/vue/ds-shell-tools.js +28 -0
  201. package/dist/vue/ds-skeleton.d.ts +3 -0
  202. package/dist/vue/ds-skeleton.js +15 -0
  203. package/dist/vue/ds-slider.d.ts +3 -0
  204. package/dist/vue/ds-slider.js +40 -0
  205. package/dist/vue/ds-swatch-picker.d.ts +3 -0
  206. package/dist/vue/ds-swatch-picker.js +14 -0
  207. package/dist/vue/ds-switch.d.ts +3 -0
  208. package/dist/vue/ds-switch.js +22 -0
  209. package/dist/vue/ds-tab-group.d.ts +3 -0
  210. package/dist/vue/ds-tab-group.js +17 -0
  211. package/dist/vue/ds-table-saved-views.d.ts +3 -0
  212. package/dist/vue/ds-table-saved-views.js +28 -0
  213. package/dist/vue/ds-table-toolbar.d.ts +3 -0
  214. package/dist/vue/ds-table-toolbar.js +8 -0
  215. package/dist/vue/ds-table.d.ts +3 -0
  216. package/dist/vue/ds-table.js +86 -0
  217. package/dist/vue/ds-tag.d.ts +3 -0
  218. package/dist/vue/ds-tag.js +23 -0
  219. package/dist/vue/ds-text.d.ts +3 -0
  220. package/dist/vue/ds-text.js +20 -0
  221. package/dist/vue/ds-toast.d.ts +3 -0
  222. package/dist/vue/ds-toast.js +21 -0
  223. package/dist/vue/ds-tooltip-chart.d.ts +3 -0
  224. package/dist/vue/ds-tooltip-chart.js +14 -0
  225. package/dist/vue/ds-tooltip.d.ts +3 -0
  226. package/dist/vue/ds-tooltip.js +18 -0
  227. package/dist/vue/ds-typing-indicator.d.ts +3 -0
  228. package/dist/vue/ds-typing-indicator.js +8 -0
  229. package/dist/vue/vue-runtime.d.ts +32 -0
  230. package/dist/vue/vue-runtime.js +218 -0
  231. package/package.json +14 -2
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  [![npm version](https://img.shields.io/npm/v/@ds-mo/ui.svg)](https://www.npmjs.com/package/@ds-mo/ui)
4
4
 
5
5
  Framework-neutral Stencil web components styled with TokoMo tokens. CompoMo
6
- ships custom elements plus generated Angular and React adapters.
6
+ ships custom elements plus generated Angular, React, and Vue adapters.
7
7
 
8
8
  ## Install
9
9
 
@@ -43,6 +43,14 @@ React applications use the generated wrappers:
43
43
  import { DsButtonFilled } from '@ds-mo/ui/react';
44
44
  ```
45
45
 
46
+ Vue applications use the generated wrappers:
47
+
48
+ ```vue
49
+ <script setup lang="ts">
50
+ import { DsButtonFilled } from '@ds-mo/ui/vue';
51
+ </script>
52
+ ```
53
+
46
54
  Install `@ds-mo/icons` in the consuming application. `ds-icon` resolves exact
47
55
  canonical IcoMo export names at application bundle time.
48
56
 
@@ -59,7 +67,7 @@ There is no global component CSS bundle; styles ship with each custom element.
59
67
  ## Agent recipes
60
68
 
61
69
  The package includes the local `compomo-mcp` executable with generated
62
- component metadata and executable Custom Elements, Angular, and React
70
+ component metadata and executable Custom Elements, Angular, React, and Vue
63
71
  composition recipes.
64
72
 
65
73
  ```toml
@@ -1 +1 @@
1
- {"schemaVersion":1,"package":"@ds-mo/ui","version":"14.14.0","components":73,"digest":"daf2a97bd6ad6aa588edf4d0a8cdcac6a08fa2a837acaf48484a8dd522a9b693","completedAt":"2026-08-23T20:33:08.588Z"}
1
+ {"schemaVersion":1,"package":"@ds-mo/ui","version":"14.15.0","components":73,"digest":"91715032d14b2768e3d5ac09820d7fe37f7300c06f6d7e175003a6b192d93fd2","completedAt":"2026-08-24T15:37:42.819Z"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "package": "@ds-mo/ui",
4
- "packageVersion": "14.14.0",
4
+ "packageVersion": "14.15.0",
5
5
  "kind": "patterns",
6
6
  "entries": [
7
7
  {
@@ -120,6 +120,12 @@
120
120
  "docs/framework-integration.md"
121
121
  ]
122
122
  },
123
+ "vue": {
124
+ "status": "planned",
125
+ "references": [
126
+ "docs/framework-integration.md"
127
+ ]
128
+ },
123
129
  "angular": {
124
130
  "status": "planned",
125
131
  "references": [
@@ -274,6 +280,12 @@
274
280
  "docs/framework-integration.md"
275
281
  ]
276
282
  },
283
+ "vue": {
284
+ "status": "planned",
285
+ "references": [
286
+ "docs/framework-integration.md"
287
+ ]
288
+ },
277
289
  "angular": {
278
290
  "status": "verified",
279
291
  "recipes": [
@@ -401,6 +413,12 @@
401
413
  "docs/framework-integration.md"
402
414
  ]
403
415
  },
416
+ "vue": {
417
+ "status": "planned",
418
+ "references": [
419
+ "docs/framework-integration.md"
420
+ ]
421
+ },
404
422
  "angular": {
405
423
  "status": "planned",
406
424
  "references": [
@@ -528,6 +546,31 @@
528
546
  "src/wc/components/Menu/Menu.stories.ts"
529
547
  ]
530
548
  },
549
+ "vue": {
550
+ "status": "verified",
551
+ "recipes": [
552
+ {
553
+ "id": "selected-view-menu",
554
+ "title": "Selected view menu",
555
+ "summary": "A controlled Vue composition using generated ButtonUnfilled and Menu wrappers.",
556
+ "files": [
557
+ {
558
+ "path": "ViewMenu.vue",
559
+ "language": "vue",
560
+ "content": "<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport type { HTMLDsButtonUnfilledElement, MenuItemData } from '@ds-mo/ui'\nimport { DsButtonUnfilled, DsMenu } from '@ds-mo/ui/vue'\n\nconst choices: MenuItemData[] = [\n { label: 'Overview', value: 'overview' },\n { label: 'Map', value: 'map' },\n { label: 'Timeline', value: 'timeline' },\n]\n\nconst selectedValue = ref('overview')\nconst open = ref(false)\nconst initialFocusVisible = ref(false)\nconst selected = computed(() => choices.find(item => item.value === selectedValue.value) ?? choices[0])\nconst items = computed(() => choices.map(item => ({ ...item, isSelected: item.value === selectedValue.value })))\n\nfunction focusTrigger() {\n requestAnimationFrame(() => {\n const trigger = document.querySelector<HTMLDsButtonUnfilledElement>('#view-menu-trigger')\n trigger?.setFocus()\n })\n}\n\nfunction toggleMenu(event: CustomEvent<MouseEvent>) {\n initialFocusVisible.value = event.detail.detail === 0\n open.value = !open.value\n}\n\nfunction selectView(event: CustomEvent<MenuItemData>) {\n selectedValue.value = event.detail.value ?? selectedValue.value\n open.value = false\n focusTrigger()\n}\n</script>\n\n<template>\n <DsButtonUnfilled\n id=\"view-menu-trigger\"\n :label=\"`View · ${selected.label}`\"\n has-menu\n controls=\"view-menu\"\n :expanded=\"open\"\n @ds-click=\"toggleMenu\"\n />\n <DsMenu\n id=\"view-menu\"\n anchor-id=\"view-menu-trigger\"\n menu-label=\"Choose view\"\n :items=\"items\"\n :open=\"open\"\n :initial-focus-visible=\"initialFocusVisible\"\n @ds-close=\"open = false\"\n @ds-select=\"selectView\"\n />\n</template>"
561
+ }
562
+ ],
563
+ "notes": [
564
+ "Use one Vue ref for both the trigger expanded prop and Menu open prop.",
565
+ "Keep the stable trigger and menu ids unique when rendering more than one composition."
566
+ ]
567
+ }
568
+ ],
569
+ "references": [
570
+ "docs/framework-integration.md",
571
+ "src/wc/components/Menu/Menu.stories.ts"
572
+ ]
573
+ },
531
574
  "angular": {
532
575
  "status": "verified",
533
576
  "recipes": [
@@ -674,6 +717,12 @@
674
717
  "docs/framework-integration.md"
675
718
  ]
676
719
  },
720
+ "vue": {
721
+ "status": "planned",
722
+ "references": [
723
+ "docs/framework-integration.md"
724
+ ]
725
+ },
677
726
  "angular": {
678
727
  "status": "verified",
679
728
  "recipes": [