@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
@@ -0,0 +1,86 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /* auto-generated vue proxies */
4
+ import { defineContainer } from './vue-runtime.js';
5
+ import { defineCustomElement as defineDsTable } from '@ds-mo/ui/components/ds-table.js';
6
+ export const DsTable = /*@__PURE__*/ defineContainer('ds-table', defineDsTable, [
7
+ 'columns',
8
+ 'rows',
9
+ 'groups',
10
+ 'grouping',
11
+ 'sort',
12
+ 'collapsedGroupIds',
13
+ 'caption',
14
+ 'captionVisibility',
15
+ 'columnCustomizer',
16
+ 'hiddenColumnIds',
17
+ 'columnOrder',
18
+ 'displayedCount',
19
+ 'totalCount',
20
+ 'resultSummaryLabel',
21
+ 'resultTotalSummaryLabel',
22
+ 'stickyHeader',
23
+ 'maxHeight',
24
+ 'height',
25
+ 'fitViewport',
26
+ 'viewportInsetBlockStart',
27
+ 'viewportInsetBlockEnd',
28
+ 'scrollLabel',
29
+ 'selectionMode',
30
+ 'selectedRowIds',
31
+ 'loading',
32
+ 'chromeLoading',
33
+ 'skeletonRows',
34
+ 'emptyHeading',
35
+ 'emptyBody',
36
+ 'error',
37
+ 'errorHeading',
38
+ 'errorBody',
39
+ 'emptyCellLabel',
40
+ 'dataMode',
41
+ 'dataModeSwitcher',
42
+ 'dataModeSwitcherLabel',
43
+ 'dataModeMenuLabel',
44
+ 'infiniteModeLabel',
45
+ 'paginationModeLabel',
46
+ 'virtualModeLabel',
47
+ 'pagination',
48
+ 'loadMoreMode',
49
+ 'hasMore',
50
+ 'loadingMore',
51
+ 'loadMoreError',
52
+ 'loadIdentity',
53
+ 'loadMoreThreshold',
54
+ 'loadMoreLabel',
55
+ 'retryLabel',
56
+ 'loadingMoreLabel',
57
+ 'endOfResultsLabel',
58
+ 'rowsLoadedLabel',
59
+ 'groupLoadMoreLabel',
60
+ 'groupLoadMoreAriaLabel',
61
+ 'groupRetryLabel',
62
+ 'groupLoadingMoreLabel',
63
+ 'groupEndOfResultsLabel',
64
+ 'groupRowsLoadedLabel',
65
+ 'dsSortChange',
66
+ 'dsGroupCollapseChange',
67
+ 'dsSelectionChange',
68
+ 'dsLoadMore',
69
+ 'dsGroupLoadMore',
70
+ 'dsPaginationChange',
71
+ 'dsCellAction',
72
+ 'dsRowActivate',
73
+ 'dsColumnsConfigChange',
74
+ 'dsDataModeChange'
75
+ ], [
76
+ 'dsSortChange',
77
+ 'dsGroupCollapseChange',
78
+ 'dsSelectionChange',
79
+ 'dsLoadMore',
80
+ 'dsGroupLoadMore',
81
+ 'dsPaginationChange',
82
+ 'dsCellAction',
83
+ 'dsRowActivate',
84
+ 'dsColumnsConfigChange',
85
+ 'dsDataModeChange'
86
+ ]);
@@ -0,0 +1,3 @@
1
+ import { type StencilVueComponent } from './vue-runtime.js';
2
+ import type { JSX } from '@ds-mo/ui/components';
3
+ export declare const DsTag: StencilVueComponent<JSX.DsTag>;
@@ -0,0 +1,23 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /* auto-generated vue proxies */
4
+ import { defineContainer } from './vue-runtime.js';
5
+ import { defineCustomElement as defineDsTag } from '@ds-mo/ui/components/ds-tag.js';
6
+ export const DsTag = /*@__PURE__*/ defineContainer('ds-tag', defineDsTag, [
7
+ 'label',
8
+ 'icon',
9
+ 'intent',
10
+ 'contrast',
11
+ 'size',
12
+ 'isInset',
13
+ 'insetDepth',
14
+ 'rounded',
15
+ 'maxWidth',
16
+ 'interactive',
17
+ 'expanded',
18
+ 'ariaControls',
19
+ 'isInactive',
20
+ 'dsClick'
21
+ ], [
22
+ 'dsClick'
23
+ ]);
@@ -0,0 +1,3 @@
1
+ import { type StencilVueComponent } from './vue-runtime.js';
2
+ import type { JSX } from '@ds-mo/ui/components';
3
+ export declare const DsText: StencilVueComponent<JSX.DsText>;
@@ -0,0 +1,20 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /* auto-generated vue proxies */
4
+ import { defineContainer } from './vue-runtime.js';
5
+ import { defineCustomElement as defineDsText } from '@ds-mo/ui/components/ds-text.js';
6
+ export const DsText = /*@__PURE__*/ defineContainer('ds-text', defineDsText, [
7
+ 'variant',
8
+ 'emphasis',
9
+ 'color',
10
+ 'decoration',
11
+ 'italic',
12
+ 'shimmer',
13
+ 'align',
14
+ 'lineTruncation',
15
+ 'wrap',
16
+ 'fontFeature',
17
+ 'as',
18
+ 'for',
19
+ 'textId'
20
+ ]);
@@ -0,0 +1,3 @@
1
+ import { type StencilVueComponent } from './vue-runtime.js';
2
+ import type { JSX } from '@ds-mo/ui/components';
3
+ export declare const DsToast: StencilVueComponent<JSX.DsToast>;
@@ -0,0 +1,21 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /* auto-generated vue proxies */
4
+ import { defineContainer } from './vue-runtime.js';
5
+ import { defineCustomElement as defineDsToast } from '@ds-mo/ui/components/ds-toast.js';
6
+ export const DsToast = /*@__PURE__*/ defineContainer('ds-toast', defineDsToast, [
7
+ 'manager',
8
+ 'limit',
9
+ 'timeout',
10
+ 'label',
11
+ 'closeLabel',
12
+ 'avoidMobileShellBar',
13
+ 'swipeDirections',
14
+ 'dsToastClose',
15
+ 'dsToastRemove',
16
+ 'dsToastAction'
17
+ ], [
18
+ 'dsToastClose',
19
+ 'dsToastRemove',
20
+ 'dsToastAction'
21
+ ]);
@@ -0,0 +1,3 @@
1
+ import { type StencilVueComponent } from './vue-runtime.js';
2
+ import type { JSX } from '@ds-mo/ui/components';
3
+ export declare const DsTooltipChart: StencilVueComponent<JSX.DsTooltipChart>;
@@ -0,0 +1,14 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /* auto-generated vue proxies */
4
+ import { defineContainer } from './vue-runtime.js';
5
+ import { defineCustomElement as defineDsTooltipChart } from '@ds-mo/ui/components/ds-tooltip-chart.js';
6
+ export const DsTooltipChart = /*@__PURE__*/ defineContainer('ds-tooltip-chart', defineDsTooltipChart, [
7
+ 'value',
8
+ 'label',
9
+ 'heading',
10
+ 'items',
11
+ 'x',
12
+ 'y',
13
+ 'delay'
14
+ ]);
@@ -0,0 +1,3 @@
1
+ import { type StencilVueComponent } from './vue-runtime.js';
2
+ import type { JSX } from '@ds-mo/ui/components';
3
+ export declare const DsTooltip: StencilVueComponent<JSX.DsTooltip>;
@@ -0,0 +1,18 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /* auto-generated vue proxies */
4
+ import { defineContainer } from './vue-runtime.js';
5
+ import { defineCustomElement as defineDsTooltip } from '@ds-mo/ui/components/ds-tooltip.js';
6
+ export const DsTooltip = /*@__PURE__*/ defineContainer('ds-tooltip', defineDsTooltip, [
7
+ 'label',
8
+ 'size',
9
+ 'side',
10
+ 'align',
11
+ 'sideOffset',
12
+ 'alignOffset',
13
+ 'delay',
14
+ 'shortcutKey',
15
+ 'shortcutKeyPosition',
16
+ 'describedBy',
17
+ 'wrapLabel'
18
+ ]);
@@ -0,0 +1,3 @@
1
+ import { type StencilVueComponent } from './vue-runtime.js';
2
+ import type { JSX } from '@ds-mo/ui/components';
3
+ export declare const DsTypingIndicator: StencilVueComponent<JSX.DsTypingIndicator>;
@@ -0,0 +1,8 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /* auto-generated vue proxies */
4
+ import { defineContainer } from './vue-runtime.js';
5
+ import { defineCustomElement as defineDsTypingIndicator } from '@ds-mo/ui/components/ds-typing-indicator.js';
6
+ export const DsTypingIndicator = /*@__PURE__*/ defineContainer('ds-typing-indicator', defineDsTypingIndicator, [
7
+ 'label'
8
+ ]);
@@ -0,0 +1,32 @@
1
+ import type {
2
+ AllowedComponentProps,
3
+ ComponentCustomProps,
4
+ DefineSetupFnComponent,
5
+ VNodeProps,
6
+ } from 'vue';
7
+
8
+ export type StencilVueComponent<
9
+ Props,
10
+ VModelType = string | number | boolean,
11
+ > = DefineSetupFnComponent<
12
+ Props & { modelValue?: VModelType } & VNodeProps & AllowedComponentProps & ComponentCustomProps,
13
+ {},
14
+ {},
15
+ Props & { modelValue?: VModelType } & VNodeProps & AllowedComponentProps & ComponentCustomProps
16
+ >;
17
+
18
+ export declare function defineContainer<
19
+ Props,
20
+ VModelType = string | number | boolean,
21
+ >(
22
+ name: string,
23
+ defineCustomElement?: () => void,
24
+ componentProps?: string[],
25
+ emitProps?: string[],
26
+ modelProp?: string,
27
+ modelUpdateEvent?: string,
28
+ modelUpdateEventAttribute?: string,
29
+ transformTagFn?: (tagName: string) => string,
30
+ ): StencilVueComponent<Props, VModelType>;
31
+
32
+ export declare function defineStencilSSRComponent(...args: never[]): never;
@@ -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.0",
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": {