@ds-mo/ui 14.14.0 → 14.15.1

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 (237) 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 +93 -5
  5. package/dist/components/ds-shell-app.js +1 -1
  6. package/dist/components/ds-shell-app.js.map +1 -1
  7. package/dist/components/ds-table.js +1 -1
  8. package/dist/components/ds-table.js.map +1 -1
  9. package/dist/docs/components.json +9 -2
  10. package/dist/mcp/cli.js +19 -4
  11. package/dist/mcp-data/registry/agent-activity.json +6 -1
  12. package/dist/mcp-data/registry/agent-questionnaire.json +6 -1
  13. package/dist/mcp-data/registry/agent-response.json +6 -1
  14. package/dist/mcp-data/registry/agent-source-list.json +6 -1
  15. package/dist/mcp-data/registry/agent-tool-call.json +6 -1
  16. package/dist/mcp-data/registry/attachment-list.json +6 -1
  17. package/dist/mcp-data/registry/avatar.json +6 -1
  18. package/dist/mcp-data/registry/badge.json +6 -1
  19. package/dist/mcp-data/registry/banner.json +6 -1
  20. package/dist/mcp-data/registry/bar-action.json +6 -1
  21. package/dist/mcp-data/registry/bar-nav.json +6 -1
  22. package/dist/mcp-data/registry/bar-title.json +6 -1
  23. package/dist/mcp-data/registry/bar-workflow.json +6 -1
  24. package/dist/mcp-data/registry/breadcrumb.json +6 -1
  25. package/dist/mcp-data/registry/button-filled.json +6 -1
  26. package/dist/mcp-data/registry/button-unfilled.json +6 -1
  27. package/dist/mcp-data/registry/card-chart.json +6 -1
  28. package/dist/mcp-data/registry/card-overview.json +6 -1
  29. package/dist/mcp-data/registry/card-setting.json +6 -1
  30. package/dist/mcp-data/registry/chart-legend.json +6 -1
  31. package/dist/mcp-data/registry/chart.json +6 -1
  32. package/dist/mcp-data/registry/checkbox.json +9 -1
  33. package/dist/mcp-data/registry/chip.json +6 -1
  34. package/dist/mcp-data/registry/code-block.json +6 -1
  35. package/dist/mcp-data/registry/conversation-list-item.json +6 -1
  36. package/dist/mcp-data/registry/conversation-list-section.json +6 -1
  37. package/dist/mcp-data/registry/conversation-list.json +6 -1
  38. package/dist/mcp-data/registry/divider.json +6 -1
  39. package/dist/mcp-data/registry/empty-state.json +6 -1
  40. package/dist/mcp-data/registry/field.json +6 -1
  41. package/dist/mcp-data/registry/filter-menu.json +6 -1
  42. package/dist/mcp-data/registry/icon.json +6 -1
  43. package/dist/mcp-data/registry/input.json +10 -2
  44. package/dist/mcp-data/registry/loader.json +6 -1
  45. package/dist/mcp-data/registry/markdown.json +6 -1
  46. package/dist/mcp-data/registry/menu.json +6 -1
  47. package/dist/mcp-data/registry/message-actions.json +6 -1
  48. package/dist/mcp-data/registry/message-bubble.json +6 -1
  49. package/dist/mcp-data/registry/message-composer.json +6 -1
  50. package/dist/mcp-data/registry/message-scroller.json +6 -1
  51. package/dist/mcp-data/registry/message.json +6 -1
  52. package/dist/mcp-data/registry/mobile-bar-nav.json +6 -1
  53. package/dist/mcp-data/registry/mobile-header.json +6 -1
  54. package/dist/mcp-data/registry/mobile-section-switcher.json +6 -1
  55. package/dist/mcp-data/registry/mobile-sheet-nav.json +6 -1
  56. package/dist/mcp-data/registry/modal.json +6 -1
  57. package/dist/mcp-data/registry/pagination.json +6 -1
  58. package/dist/mcp-data/registry/panel-nav.json +6 -1
  59. package/dist/mcp-data/registry/panel-sub-nav.json +6 -1
  60. package/dist/mcp-data/registry/panel-tool-header.json +6 -1
  61. package/dist/mcp-data/registry/panel-tool-search.json +6 -1
  62. package/dist/mcp-data/registry/panel-tools.json +6 -1
  63. package/dist/mcp-data/registry/paper-texture.json +6 -1
  64. package/dist/mcp-data/registry/radio.json +9 -1
  65. package/dist/mcp-data/registry/registry.json +94 -6
  66. package/dist/mcp-data/registry/scroll-overlay.json +6 -1
  67. package/dist/mcp-data/registry/select.json +10 -2
  68. package/dist/mcp-data/registry/shell-app.json +9 -4
  69. package/dist/mcp-data/registry/shell-page.json +6 -1
  70. package/dist/mcp-data/registry/shell-tools.json +6 -1
  71. package/dist/mcp-data/registry/skeleton.json +6 -1
  72. package/dist/mcp-data/registry/slider.json +6 -1
  73. package/dist/mcp-data/registry/swatch-picker.json +6 -1
  74. package/dist/mcp-data/registry/switch.json +9 -1
  75. package/dist/mcp-data/registry/tab-group.json +6 -1
  76. package/dist/mcp-data/registry/table-saved-views.json +6 -1
  77. package/dist/mcp-data/registry/table-toolbar.json +6 -1
  78. package/dist/mcp-data/registry/table.json +13 -3
  79. package/dist/mcp-data/registry/tag.json +6 -1
  80. package/dist/mcp-data/registry/text.json +6 -1
  81. package/dist/mcp-data/registry/toast.json +6 -1
  82. package/dist/mcp-data/registry/tooltip-chart.json +6 -1
  83. package/dist/mcp-data/registry/tooltip.json +6 -1
  84. package/dist/mcp-data/registry/typing-indicator.json +6 -1
  85. package/dist/types/components/Table/Table.d.ts +1 -0
  86. package/dist/types/components/Table/table-pagination-shortcut.d.ts +16 -0
  87. package/dist/vue/components.d.ts +77 -0
  88. package/dist/vue/components.js +79 -0
  89. package/dist/vue/ds-agent-activity.d.ts +3 -0
  90. package/dist/vue/ds-agent-activity.js +10 -0
  91. package/dist/vue/ds-agent-questionnaire.d.ts +3 -0
  92. package/dist/vue/ds-agent-questionnaire.js +19 -0
  93. package/dist/vue/ds-agent-response.d.ts +3 -0
  94. package/dist/vue/ds-agent-response.js +15 -0
  95. package/dist/vue/ds-agent-source-list.d.ts +3 -0
  96. package/dist/vue/ds-agent-source-list.js +13 -0
  97. package/dist/vue/ds-agent-tool-call.d.ts +3 -0
  98. package/dist/vue/ds-agent-tool-call.js +18 -0
  99. package/dist/vue/ds-attachment-list.d.ts +3 -0
  100. package/dist/vue/ds-attachment-list.js +9 -0
  101. package/dist/vue/ds-avatar.d.ts +3 -0
  102. package/dist/vue/ds-avatar.js +11 -0
  103. package/dist/vue/ds-badge.d.ts +3 -0
  104. package/dist/vue/ds-badge.js +15 -0
  105. package/dist/vue/ds-banner.d.ts +3 -0
  106. package/dist/vue/ds-banner.js +20 -0
  107. package/dist/vue/ds-bar-action.d.ts +3 -0
  108. package/dist/vue/ds-bar-action.js +14 -0
  109. package/dist/vue/ds-bar-nav.d.ts +3 -0
  110. package/dist/vue/ds-bar-nav.js +17 -0
  111. package/dist/vue/ds-bar-title.d.ts +3 -0
  112. package/dist/vue/ds-bar-title.js +32 -0
  113. package/dist/vue/ds-bar-workflow.d.ts +3 -0
  114. package/dist/vue/ds-bar-workflow.js +24 -0
  115. package/dist/vue/ds-breadcrumb.d.ts +3 -0
  116. package/dist/vue/ds-breadcrumb.js +12 -0
  117. package/dist/vue/ds-button-filled.d.ts +3 -0
  118. package/dist/vue/ds-button-filled.js +31 -0
  119. package/dist/vue/ds-button-unfilled.d.ts +3 -0
  120. package/dist/vue/ds-button-unfilled.js +36 -0
  121. package/dist/vue/ds-card-chart.d.ts +3 -0
  122. package/dist/vue/ds-card-chart.js +15 -0
  123. package/dist/vue/ds-card-overview.d.ts +3 -0
  124. package/dist/vue/ds-card-overview.js +21 -0
  125. package/dist/vue/ds-card-setting.d.ts +3 -0
  126. package/dist/vue/ds-card-setting.js +16 -0
  127. package/dist/vue/ds-chart-legend.d.ts +3 -0
  128. package/dist/vue/ds-chart-legend.js +19 -0
  129. package/dist/vue/ds-chart.d.ts +3 -0
  130. package/dist/vue/ds-chart.js +17 -0
  131. package/dist/vue/ds-checkbox.d.ts +3 -0
  132. package/dist/vue/ds-checkbox.js +22 -0
  133. package/dist/vue/ds-chip.d.ts +3 -0
  134. package/dist/vue/ds-chip.js +17 -0
  135. package/dist/vue/ds-code-block.d.ts +3 -0
  136. package/dist/vue/ds-code-block.js +10 -0
  137. package/dist/vue/ds-conversation-list-item.d.ts +3 -0
  138. package/dist/vue/ds-conversation-list-item.js +19 -0
  139. package/dist/vue/ds-conversation-list-section.d.ts +3 -0
  140. package/dist/vue/ds-conversation-list-section.js +9 -0
  141. package/dist/vue/ds-conversation-list.d.ts +3 -0
  142. package/dist/vue/ds-conversation-list.js +8 -0
  143. package/dist/vue/ds-divider.d.ts +3 -0
  144. package/dist/vue/ds-divider.js +12 -0
  145. package/dist/vue/ds-empty-state.d.ts +3 -0
  146. package/dist/vue/ds-empty-state.js +10 -0
  147. package/dist/vue/ds-field.d.ts +3 -0
  148. package/dist/vue/ds-field.js +12 -0
  149. package/dist/vue/ds-filter-menu.d.ts +3 -0
  150. package/dist/vue/ds-filter-menu.js +43 -0
  151. package/dist/vue/ds-icon.d.ts +3 -0
  152. package/dist/vue/ds-icon.js +11 -0
  153. package/dist/vue/ds-input.d.ts +3 -0
  154. package/dist/vue/ds-input.js +40 -0
  155. package/dist/vue/ds-loader.d.ts +3 -0
  156. package/dist/vue/ds-loader.js +10 -0
  157. package/dist/vue/ds-markdown.d.ts +3 -0
  158. package/dist/vue/ds-markdown.js +9 -0
  159. package/dist/vue/ds-menu.d.ts +3 -0
  160. package/dist/vue/ds-menu.js +34 -0
  161. package/dist/vue/ds-message-actions.d.ts +3 -0
  162. package/dist/vue/ds-message-actions.js +15 -0
  163. package/dist/vue/ds-message-bubble.d.ts +3 -0
  164. package/dist/vue/ds-message-bubble.js +8 -0
  165. package/dist/vue/ds-message-composer.d.ts +3 -0
  166. package/dist/vue/ds-message-composer.js +21 -0
  167. package/dist/vue/ds-message-scroller.d.ts +3 -0
  168. package/dist/vue/ds-message-scroller.js +14 -0
  169. package/dist/vue/ds-message.d.ts +3 -0
  170. package/dist/vue/ds-message.js +17 -0
  171. package/dist/vue/ds-mobile-bar-nav.d.ts +3 -0
  172. package/dist/vue/ds-mobile-bar-nav.js +25 -0
  173. package/dist/vue/ds-mobile-header.d.ts +3 -0
  174. package/dist/vue/ds-mobile-header.js +23 -0
  175. package/dist/vue/ds-mobile-section-switcher.d.ts +3 -0
  176. package/dist/vue/ds-mobile-section-switcher.js +13 -0
  177. package/dist/vue/ds-mobile-sheet-nav.d.ts +3 -0
  178. package/dist/vue/ds-mobile-sheet-nav.js +26 -0
  179. package/dist/vue/ds-modal.d.ts +3 -0
  180. package/dist/vue/ds-modal.js +18 -0
  181. package/dist/vue/ds-pagination.d.ts +3 -0
  182. package/dist/vue/ds-pagination.js +25 -0
  183. package/dist/vue/ds-panel-nav.d.ts +3 -0
  184. package/dist/vue/ds-panel-nav.js +40 -0
  185. package/dist/vue/ds-panel-sub-nav.d.ts +3 -0
  186. package/dist/vue/ds-panel-sub-nav.js +15 -0
  187. package/dist/vue/ds-panel-tool-header.d.ts +3 -0
  188. package/dist/vue/ds-panel-tool-header.js +24 -0
  189. package/dist/vue/ds-panel-tool-search.d.ts +3 -0
  190. package/dist/vue/ds-panel-tool-search.js +25 -0
  191. package/dist/vue/ds-panel-tools.d.ts +3 -0
  192. package/dist/vue/ds-panel-tools.js +29 -0
  193. package/dist/vue/ds-paper-texture.d.ts +3 -0
  194. package/dist/vue/ds-paper-texture.js +8 -0
  195. package/dist/vue/ds-radio.d.ts +3 -0
  196. package/dist/vue/ds-radio.js +22 -0
  197. package/dist/vue/ds-scroll-overlay.d.ts +3 -0
  198. package/dist/vue/ds-scroll-overlay.js +11 -0
  199. package/dist/vue/ds-select.d.ts +3 -0
  200. package/dist/vue/ds-select.js +57 -0
  201. package/dist/vue/ds-shell-app.d.ts +3 -0
  202. package/dist/vue/ds-shell-app.js +46 -0
  203. package/dist/vue/ds-shell-page.d.ts +3 -0
  204. package/dist/vue/ds-shell-page.js +16 -0
  205. package/dist/vue/ds-shell-tools.d.ts +3 -0
  206. package/dist/vue/ds-shell-tools.js +28 -0
  207. package/dist/vue/ds-skeleton.d.ts +3 -0
  208. package/dist/vue/ds-skeleton.js +15 -0
  209. package/dist/vue/ds-slider.d.ts +3 -0
  210. package/dist/vue/ds-slider.js +40 -0
  211. package/dist/vue/ds-swatch-picker.d.ts +3 -0
  212. package/dist/vue/ds-swatch-picker.js +14 -0
  213. package/dist/vue/ds-switch.d.ts +3 -0
  214. package/dist/vue/ds-switch.js +22 -0
  215. package/dist/vue/ds-tab-group.d.ts +3 -0
  216. package/dist/vue/ds-tab-group.js +17 -0
  217. package/dist/vue/ds-table-saved-views.d.ts +3 -0
  218. package/dist/vue/ds-table-saved-views.js +28 -0
  219. package/dist/vue/ds-table-toolbar.d.ts +3 -0
  220. package/dist/vue/ds-table-toolbar.js +8 -0
  221. package/dist/vue/ds-table.d.ts +3 -0
  222. package/dist/vue/ds-table.js +86 -0
  223. package/dist/vue/ds-tag.d.ts +3 -0
  224. package/dist/vue/ds-tag.js +23 -0
  225. package/dist/vue/ds-text.d.ts +3 -0
  226. package/dist/vue/ds-text.js +20 -0
  227. package/dist/vue/ds-toast.d.ts +3 -0
  228. package/dist/vue/ds-toast.js +21 -0
  229. package/dist/vue/ds-tooltip-chart.d.ts +3 -0
  230. package/dist/vue/ds-tooltip-chart.js +14 -0
  231. package/dist/vue/ds-tooltip.d.ts +3 -0
  232. package/dist/vue/ds-tooltip.js +18 -0
  233. package/dist/vue/ds-typing-indicator.d.ts +3 -0
  234. package/dist/vue/ds-typing-indicator.js +8 -0
  235. package/dist/vue/vue-runtime.d.ts +32 -0
  236. package/dist/vue/vue-runtime.js +218 -0
  237. package/package.json +14 -2
@@ -0,0 +1,218 @@
1
+ // node_modules/@stencil/vue-output-target/dist/runtime.js
2
+ import { defineComponent, useSlots, createSSRApp, compile, ref, onMounted, getCurrentInstance, inject, h, withDirectives } from "vue";
3
+ function isPrimitive(value) {
4
+ return typeof value === "string" || typeof value === "number" || typeof value === "boolean";
5
+ }
6
+ function defineStencilSSRComponent(options) {
7
+ return defineComponent({
8
+ async setup(props, context) {
9
+ const slots = useSlots();
10
+ let renderedLightDom = "";
11
+ if (typeof slots.default === "function") {
12
+ const ssrLightDom = createSSRApp({ render: () => slots.default() });
13
+ const { renderToString: vueRenderToString } = await import("vue/server-renderer");
14
+ renderedLightDom = await vueRenderToString(ssrLightDom, { context });
15
+ }
16
+ let stringProps = "";
17
+ const complexProps = {};
18
+ for (const [key, value] of Object.entries(props)) {
19
+ if (typeof value === "undefined") {
20
+ continue;
21
+ }
22
+ if (!isPrimitive(value)) {
23
+ complexProps[key] = value;
24
+ continue;
25
+ }
26
+ if (typeof value === "boolean" && value === false) {
27
+ continue;
28
+ }
29
+ const propName = options.props?.[key]?.[1] ?? key;
30
+ const propValue = typeof value === "boolean" ? '"true"' : `"${value}"`;
31
+ stringProps += ` ${propName}=${propValue}`;
32
+ }
33
+ const hydrateModule = await options.hydrateModule;
34
+ if (options.getTagTransformer) {
35
+ const tagTransformer = options.getTagTransformer();
36
+ if (tagTransformer && hydrateModule.setTagTransformer) {
37
+ hydrateModule.setTagTransformer(tagTransformer);
38
+ }
39
+ }
40
+ const transformedTagName = hydrateModule.transformTag ? hydrateModule.transformTag(options.tagName) : options.tagName;
41
+ const toSerialize = `<${transformedTagName}${stringProps}>${renderedLightDom}</${transformedTagName}>`;
42
+ const { renderToString } = hydrateModule;
43
+ const { html } = await renderToString(toSerialize, {
44
+ fullDocument: false,
45
+ serializeShadowRoot: true,
46
+ ...Object.keys(complexProps).length > 0 && {
47
+ beforeHydrate: (doc) => {
48
+ const el = doc.querySelector(transformedTagName);
49
+ if (el) {
50
+ for (const [propName, value] of Object.entries(complexProps)) {
51
+ el[propName] = value;
52
+ }
53
+ }
54
+ }
55
+ }
56
+ });
57
+ if (!html) {
58
+ throw new Error(`'${options.tagName}' component did not render anything.`);
59
+ }
60
+ return compile(html.replace(/<style([^>]*)>/g, `<component :is="'style'" $1>`).replace(/<\/style>/g, "</component>"), {
61
+ comments: true,
62
+ isCustomElement: (tag) => tag === transformedTagName || tag === options.tagName
63
+ });
64
+ },
65
+ props: Object.entries(options.props || {}).reduce((acc, [key, value]) => {
66
+ acc[key] = value[0];
67
+ return acc;
68
+ }, {}),
69
+ /**
70
+ * the template tags can be arbitrary as they will be replaced with above compiled template
71
+ */
72
+ template: "<div></div>"
73
+ });
74
+ }
75
+ var UPDATE_VALUE_EVENT = "update:modelValue";
76
+ var MODEL_VALUE = "modelValue";
77
+ var ROUTER_LINK_VALUE = "routerLink";
78
+ var NAV_MANAGER = "navManager";
79
+ var ROUTER_PROP_PREFIX = "router";
80
+ var ARIA_PROP_PREFIX = "aria";
81
+ var EMPTY_PROP = /* @__PURE__ */ Symbol();
82
+ var DEFAULT_EMPTY_PROP = { default: EMPTY_PROP };
83
+ var getComponentClasses = (classes) => {
84
+ return classes?.split(" ") || [];
85
+ };
86
+ var syncElementClasses = (ref2, componentClasses, defaultClasses = []) => {
87
+ if (ref2?.value) {
88
+ const element = ref2.value;
89
+ componentClasses.forEach((c) => {
90
+ if (!!c && !element.classList.contains(c)) {
91
+ element.classList.add(c);
92
+ }
93
+ });
94
+ }
95
+ return [...Array.from(ref2.value?.classList || []), ...defaultClasses].filter((c, i, self) => {
96
+ return !componentClasses.has(c) && self.indexOf(c) === i;
97
+ });
98
+ };
99
+ var defineContainer = (name, defineCustomElement, componentProps = [], emitProps = [], modelProp, modelUpdateEvent, modelUpdateEventAttribute, transformTagFn) => {
100
+ if (defineCustomElement !== void 0) {
101
+ defineCustomElement();
102
+ }
103
+ const emits = emitProps;
104
+ const props = [ROUTER_LINK_VALUE, ...componentProps].reduce((acc, prop) => {
105
+ acc[prop] = DEFAULT_EMPTY_PROP;
106
+ return acc;
107
+ }, {});
108
+ if (modelProp) {
109
+ emits.push(UPDATE_VALUE_EVENT);
110
+ props[MODEL_VALUE] = DEFAULT_EMPTY_PROP;
111
+ }
112
+ return defineComponent((props2, { attrs, slots, emit }) => {
113
+ let modelPropValue = modelProp ? props2[modelProp] : void 0;
114
+ const containerRef = ref();
115
+ const classes = new Set(getComponentClasses(attrs.class));
116
+ onMounted(() => {
117
+ emitProps.forEach((eventName) => {
118
+ containerRef.value?.addEventListener(eventName, (e) => {
119
+ emit(eventName, e);
120
+ });
121
+ });
122
+ });
123
+ const vModelDirective = {
124
+ created: (el) => {
125
+ const eventsNames = Array.isArray(modelUpdateEvent) ? modelUpdateEvent : [modelUpdateEvent];
126
+ eventsNames.forEach((eventName) => {
127
+ el.addEventListener(eventName, (e) => {
128
+ if (e.target.tagName === el.tagName && modelProp) {
129
+ const resolvePath = (object, path2) => {
130
+ return path2.split(".").reduce((value, key) => value !== void 0 ? value[key] : void 0, object);
131
+ };
132
+ const path = modelUpdateEventAttribute ?? `target.${modelProp}`;
133
+ const modelPropValue2 = resolvePath(e, path);
134
+ emit(UPDATE_VALUE_EVENT, modelPropValue2);
135
+ }
136
+ });
137
+ });
138
+ }
139
+ };
140
+ const currentInstance = getCurrentInstance();
141
+ const hasRouter = currentInstance?.appContext?.provides[NAV_MANAGER];
142
+ const navManager = hasRouter ? inject(NAV_MANAGER) : void 0;
143
+ const handleRouterLink = (ev) => {
144
+ const { routerLink } = props2;
145
+ if (routerLink === EMPTY_PROP)
146
+ return;
147
+ const mouseEv = ev;
148
+ if (mouseEv.metaKey || mouseEv.ctrlKey || mouseEv.shiftKey) {
149
+ return;
150
+ }
151
+ if (navManager !== void 0) {
152
+ ev.preventDefault();
153
+ let navigationPayload = { event: ev };
154
+ for (const key in props2) {
155
+ const value = props2[key];
156
+ if (props2.hasOwnProperty(key) && key.startsWith(ROUTER_PROP_PREFIX) && value !== EMPTY_PROP) {
157
+ navigationPayload[key] = value;
158
+ }
159
+ }
160
+ navManager.navigate(navigationPayload);
161
+ } else {
162
+ console.warn("Tried to navigate, but no router was found. Make sure you have mounted Vue Router.");
163
+ }
164
+ };
165
+ return () => {
166
+ modelPropValue = props2[modelProp];
167
+ getComponentClasses(attrs.class).forEach((value) => {
168
+ classes.add(value);
169
+ });
170
+ const oldClick = props2.onClick;
171
+ const handleClick = (ev) => {
172
+ if (oldClick !== void 0) {
173
+ oldClick(ev);
174
+ }
175
+ if (!ev.defaultPrevented) {
176
+ handleRouterLink(ev);
177
+ }
178
+ };
179
+ const propsToAdd = {
180
+ ref: containerRef,
181
+ class: syncElementClasses(containerRef, classes),
182
+ onClick: handleClick
183
+ };
184
+ for (const key in props2) {
185
+ const value = props2[key];
186
+ if (props2.hasOwnProperty(key) && value !== EMPTY_PROP || key.startsWith(ARIA_PROP_PREFIX)) {
187
+ propsToAdd[key] = value;
188
+ }
189
+ const eventHandlerKey = "on" + key.slice(0, 1).toUpperCase() + key.slice(1);
190
+ const eventHandler = attrs[eventHandlerKey];
191
+ if (containerRef.value && attrs.hasOwnProperty(eventHandlerKey) && "addEventListener" in containerRef.value) {
192
+ containerRef.value.addEventListener(key, eventHandler);
193
+ }
194
+ }
195
+ if (modelProp) {
196
+ if (props2[MODEL_VALUE] !== EMPTY_PROP) {
197
+ propsToAdd[modelProp] = props2[MODEL_VALUE];
198
+ } else if (modelPropValue !== EMPTY_PROP) {
199
+ propsToAdd[modelProp] = modelPropValue;
200
+ }
201
+ }
202
+ if (ROUTER_LINK_VALUE in props2 && props2[ROUTER_LINK_VALUE] !== EMPTY_PROP) {
203
+ propsToAdd.href = props2[ROUTER_LINK_VALUE];
204
+ }
205
+ const tagName = transformTagFn ? transformTagFn(name) : name;
206
+ const node = h(tagName, propsToAdd, slots.default && slots.default());
207
+ return modelProp === void 0 ? node : withDirectives(node, [[vModelDirective]]);
208
+ };
209
+ }, {
210
+ name,
211
+ props,
212
+ emits
213
+ });
214
+ };
215
+ export {
216
+ defineContainer,
217
+ defineStencilSSRComponent
218
+ };
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@ds-mo/ui",
3
- "version": "14.14.0",
3
+ "version": "14.15.1",
4
4
  "description": "CompoMo — composable web components styled with TokoMo design tokens",
5
5
  "keywords": [
6
6
  "web-components",
7
7
  "custom-elements",
8
8
  "react",
9
9
  "angular",
10
+ "vue",
10
11
  "components",
11
12
  "ui",
12
13
  "design-system",
@@ -44,6 +45,10 @@
44
45
  "types": "./dist/react/components.d.ts",
45
46
  "import": "./dist/react/components.js"
46
47
  },
48
+ "./vue": {
49
+ "types": "./dist/vue/components.d.ts",
50
+ "import": "./dist/vue/components.js"
51
+ },
47
52
  "./dist/components": {
48
53
  "types": "./dist/types/components.d.ts",
49
54
  "import": "./dist/components/index.js"
@@ -114,7 +119,8 @@
114
119
  "@ds-mo/tokens": "^6.5.0",
115
120
  "react": "^18 || ^19",
116
121
  "react-dom": "^18 || ^19",
117
- "rxjs": "^7.8.0"
122
+ "rxjs": "^7.8.0",
123
+ "vue": "^3.4.38"
118
124
  },
119
125
  "peerDependenciesMeta": {
120
126
  "@angular/core": {
@@ -131,6 +137,9 @@
131
137
  },
132
138
  "rxjs": {
133
139
  "optional": true
140
+ },
141
+ "vue": {
142
+ "optional": true
134
143
  }
135
144
  },
136
145
  "devDependencies": {
@@ -150,6 +159,7 @@
150
159
  "@stencil/angular-output-target": "^1.4.0",
151
160
  "@stencil/core": "^4.43.5",
152
161
  "@stencil/react-output-target": "^1.6.0",
162
+ "@stencil/vue-output-target": "^0.14.1",
153
163
  "@storybook/addon-a11y": "^10.5.1",
154
164
  "@storybook/addon-docs": "^10.5.0",
155
165
  "@storybook/addon-vitest": "^10.5.2",
@@ -180,6 +190,8 @@
180
190
  "typescript-eslint": "^8.63.0",
181
191
  "vite": "^8.1.4",
182
192
  "vitest": "^4.1.10",
193
+ "vue": "^3.5.41",
194
+ "vue-router": "^5.2.0",
183
195
  "zod": "^4.4.3"
184
196
  },
185
197
  "engines": {