@synergy-design-system/mcp 2.14.1 → 3.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 (525) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +826 -303
  3. package/dist/bin/start.js +57 -6
  4. package/dist/middleware/compose.d.ts +15 -0
  5. package/dist/middleware/compose.js +10 -0
  6. package/dist/middleware/compression.d.ts +19 -0
  7. package/dist/middleware/compression.js +35 -0
  8. package/dist/middleware/error-handler.d.ts +13 -0
  9. package/dist/middleware/error-handler.js +42 -0
  10. package/dist/middleware/index.d.ts +9 -0
  11. package/dist/middleware/index.js +8 -0
  12. package/dist/middleware/logging.d.ts +14 -0
  13. package/dist/middleware/logging.js +64 -0
  14. package/dist/middleware/types.d.ts +20 -0
  15. package/dist/middleware/types.js +4 -0
  16. package/dist/resources/asset-list.d.ts +7 -0
  17. package/dist/resources/asset-list.js +34 -0
  18. package/dist/resources/component-cluster-list.d.ts +7 -0
  19. package/dist/resources/component-cluster-list.js +30 -0
  20. package/dist/resources/component-list.d.ts +7 -0
  21. package/dist/resources/component-list.js +31 -0
  22. package/dist/resources/index.d.ts +5 -0
  23. package/dist/resources/index.js +5 -0
  24. package/dist/resources/styles-list.d.ts +7 -0
  25. package/dist/resources/styles-list.js +31 -0
  26. package/dist/resources/templates-list.d.ts +7 -0
  27. package/dist/resources/templates-list.js +28 -0
  28. package/dist/server.js +5 -1
  29. package/dist/tools/asset-info.js +41 -85
  30. package/dist/tools/asset-list.js +22 -31
  31. package/dist/tools/component-cluster-list.d.ts +6 -0
  32. package/dist/tools/component-cluster-list.js +30 -0
  33. package/dist/tools/component-info.js +38 -21
  34. package/dist/tools/component-list.js +35 -30
  35. package/dist/tools/davinci-migration-info.d.ts +2 -0
  36. package/dist/tools/davinci-migration-info.js +21 -0
  37. package/dist/tools/davinci-migration-list.d.ts +2 -0
  38. package/dist/tools/davinci-migration-list.js +20 -0
  39. package/dist/tools/index.d.ts +6 -5
  40. package/dist/tools/index.js +6 -5
  41. package/dist/tools/migration-info.js +12 -37
  42. package/dist/tools/migration-list.js +7 -13
  43. package/dist/tools/setup.d.ts +6 -0
  44. package/dist/tools/setup.js +31 -0
  45. package/dist/tools/styles-info.d.ts +1 -2
  46. package/dist/tools/styles-info.js +24 -20
  47. package/dist/tools/styles-list.js +19 -33
  48. package/dist/tools/template-info.js +19 -20
  49. package/dist/tools/template-list.d.ts +1 -1
  50. package/dist/tools/template-list.js +17 -32
  51. package/dist/tools/{tokens.d.ts → token-info.d.ts} +2 -2
  52. package/dist/tools/token-info.js +31 -0
  53. package/dist/tools/tokens-list.d.ts +6 -0
  54. package/dist/tools/tokens-list.js +52 -0
  55. package/dist/transports/http.d.ts +14 -0
  56. package/dist/transports/http.js +157 -0
  57. package/dist/transports/index.d.ts +23 -0
  58. package/dist/transports/index.js +23 -0
  59. package/dist/transports/stdio.d.ts +10 -0
  60. package/dist/transports/stdio.js +21 -0
  61. package/dist/types/tool-response.d.ts +13 -0
  62. package/dist/types/tool-response.js +7 -0
  63. package/dist/utilities/cli.d.ts +27 -0
  64. package/dist/utilities/cli.js +170 -0
  65. package/dist/utilities/compression.d.ts +7 -0
  66. package/dist/utilities/compression.js +45 -0
  67. package/dist/utilities/config.d.ts +122 -80
  68. package/dist/utilities/config.js +212 -81
  69. package/dist/utilities/davinci.d.ts +12 -0
  70. package/dist/utilities/davinci.js +55 -0
  71. package/dist/utilities/index.d.ts +10 -10
  72. package/dist/utilities/index.js +10 -10
  73. package/dist/utilities/local-file-logger.d.ts +2 -0
  74. package/dist/utilities/local-file-logger.js +22 -0
  75. package/dist/utilities/logger.d.ts +12 -0
  76. package/dist/utilities/logger.js +30 -0
  77. package/dist/utilities/logging-context.d.ts +8 -0
  78. package/dist/utilities/logging-context.js +7 -0
  79. package/dist/utilities/logging-service.d.ts +2 -0
  80. package/dist/utilities/logging-service.js +24 -0
  81. package/dist/utilities/logging-types.d.ts +19 -0
  82. package/dist/utilities/metadata.d.ts +10 -17
  83. package/dist/utilities/metadata.js +34 -51
  84. package/dist/utilities/migration.d.ts +2 -1
  85. package/dist/utilities/migration.js +33 -30
  86. package/dist/utilities/rules.d.ts +8 -0
  87. package/dist/utilities/rules.js +37 -0
  88. package/dist/utilities/server.d.ts +7 -0
  89. package/dist/utilities/server.js +12 -0
  90. package/dist/utilities/token-counter.d.ts +14 -0
  91. package/dist/utilities/token-counter.js +53 -0
  92. package/package.json +18 -28
  93. package/rules/asset-info.md +10 -0
  94. package/rules/asset-list.md +10 -0
  95. package/rules/component-cluster-list.md +5 -0
  96. package/{metadata/static/angular/index.md → rules/component-info-angular.md} +2 -1
  97. package/{metadata/static/react/index.md → rules/component-info-react.md} +2 -1
  98. package/{metadata/static/vue/index.md → rules/component-info-vue.md} +4 -1
  99. package/{metadata/static/component-list/index.md → rules/component-list.md} +5 -7
  100. package/rules/styles-info.md +9 -0
  101. package/{metadata/static/styles/index.md → rules/styles-list.md} +0 -2
  102. package/{metadata/static/templates/index.md → rules/template-info.md} +0 -1
  103. package/rules/template-list.md +7 -0
  104. package/dist/bin/create-checksum.d.ts +0 -2
  105. package/dist/bin/create-checksum.js +0 -24
  106. package/dist/build/assets.d.ts +0 -4
  107. package/dist/build/assets.js +0 -57
  108. package/dist/build/build.js +0 -35
  109. package/dist/build/components.d.ts +0 -4
  110. package/dist/build/components.js +0 -133
  111. package/dist/build/fonts.d.ts +0 -4
  112. package/dist/build/fonts.js +0 -49
  113. package/dist/build/frameworks.d.ts +0 -4
  114. package/dist/build/frameworks.js +0 -61
  115. package/dist/build/static.d.ts +0 -4
  116. package/dist/build/static.js +0 -65
  117. package/dist/build/styles.d.ts +0 -4
  118. package/dist/build/styles.js +0 -58
  119. package/dist/build/tokens.d.ts +0 -4
  120. package/dist/build/tokens.js +0 -59
  121. package/dist/tools/davinci-migration.d.ts +0 -3
  122. package/dist/tools/davinci-migration.js +0 -66
  123. package/dist/tools/font-info.d.ts +0 -6
  124. package/dist/tools/font-info.js +0 -35
  125. package/dist/tools/framework-info.d.ts +0 -7
  126. package/dist/tools/framework-info.js +0 -58
  127. package/dist/tools/tokens.js +0 -24
  128. package/dist/tools/version.d.ts +0 -7
  129. package/dist/tools/version.js +0 -53
  130. package/dist/utilities/assets.d.ts +0 -2
  131. package/dist/utilities/assets.js +0 -3
  132. package/dist/utilities/checksum.d.ts +0 -36
  133. package/dist/utilities/checksum.js +0 -94
  134. package/dist/utilities/components.d.ts +0 -25
  135. package/dist/utilities/components.js +0 -86
  136. package/dist/utilities/file.d.ts +0 -12
  137. package/dist/utilities/file.js +0 -31
  138. package/dist/utilities/fonts.d.ts +0 -2
  139. package/dist/utilities/fonts.js +0 -3
  140. package/dist/utilities/stdio.d.ts +0 -14
  141. package/dist/utilities/stdio.js +0 -60
  142. package/dist/utilities/storybook/build-docs.d.ts +0 -2
  143. package/dist/utilities/storybook/build-docs.js +0 -43
  144. package/dist/utilities/storybook/configs.d.ts +0 -13
  145. package/dist/utilities/storybook/configs.js +0 -85
  146. package/dist/utilities/storybook/docs-scraper.d.ts +0 -26
  147. package/dist/utilities/storybook/docs-scraper.js +0 -96
  148. package/dist/utilities/storybook/index.d.ts +0 -5
  149. package/dist/utilities/storybook/index.js +0 -4
  150. package/dist/utilities/storybook/scraper.d.ts +0 -14
  151. package/dist/utilities/storybook/scraper.js +0 -243
  152. package/dist/utilities/storybook/storybook-manager.d.ts +0 -29
  153. package/dist/utilities/storybook/storybook-manager.js +0 -138
  154. package/dist/utilities/storybook/types.d.ts +0 -22
  155. package/dist/utilities/storybook/types.js +0 -1
  156. package/dist/utilities/styles.d.ts +0 -6
  157. package/dist/utilities/styles.js +0 -24
  158. package/dist/utilities/templates.d.ts +0 -12
  159. package/dist/utilities/templates.js +0 -28
  160. package/dist/utilities/tokens.d.ts +0 -1
  161. package/dist/utilities/tokens.js +0 -21
  162. package/dist/utilities/version.d.ts +0 -28
  163. package/dist/utilities/version.js +0 -21
  164. package/metadata/checksum.txt +0 -1
  165. package/metadata/davinci-migration/migration-guide.md +0 -1859
  166. package/metadata/packages/angular/LIMITATIONS.md +0 -32
  167. package/metadata/packages/angular/README.md +0 -393
  168. package/metadata/packages/assets/BREAKING_CHANGES.md +0 -305
  169. package/metadata/packages/assets/CHANGELOG.md +0 -364
  170. package/metadata/packages/assets/README.md +0 -103
  171. package/metadata/packages/components/components/syn-accordion/component.angular.ts +0 -80
  172. package/metadata/packages/components/components/syn-accordion/component.react.ts +0 -30
  173. package/metadata/packages/components/components/syn-accordion/component.styles.ts +0 -15
  174. package/metadata/packages/components/components/syn-accordion/component.ts +0 -111
  175. package/metadata/packages/components/components/syn-accordion/component.vue +0 -64
  176. package/metadata/packages/components/components/syn-alert/component.angular.ts +0 -169
  177. package/metadata/packages/components/components/syn-alert/component.react.ts +0 -60
  178. package/metadata/packages/components/components/syn-alert/component.styles.ts +0 -203
  179. package/metadata/packages/components/components/syn-alert/component.ts +0 -322
  180. package/metadata/packages/components/components/syn-alert/component.vue +0 -135
  181. package/metadata/packages/components/components/syn-badge/component.angular.ts +0 -53
  182. package/metadata/packages/components/components/syn-badge/component.custom.styles.ts +0 -62
  183. package/metadata/packages/components/components/syn-badge/component.react.ts +0 -29
  184. package/metadata/packages/components/components/syn-badge/component.styles.ts +0 -52
  185. package/metadata/packages/components/components/syn-badge/component.ts +0 -58
  186. package/metadata/packages/components/components/syn-badge/component.vue +0 -53
  187. package/metadata/packages/components/components/syn-breadcrumb/component.angular.ts +0 -58
  188. package/metadata/packages/components/components/syn-breadcrumb/component.custom.styles.ts +0 -5
  189. package/metadata/packages/components/components/syn-breadcrumb/component.react.ts +0 -32
  190. package/metadata/packages/components/components/syn-breadcrumb/component.styles.ts +0 -11
  191. package/metadata/packages/components/components/syn-breadcrumb/component.ts +0 -103
  192. package/metadata/packages/components/components/syn-breadcrumb/component.vue +0 -58
  193. package/metadata/packages/components/components/syn-breadcrumb-item/component.angular.ts +0 -88
  194. package/metadata/packages/components/components/syn-breadcrumb-item/component.custom.styles.ts +0 -78
  195. package/metadata/packages/components/components/syn-breadcrumb-item/component.react.ts +0 -37
  196. package/metadata/packages/components/components/syn-breadcrumb-item/component.styles.ts +0 -88
  197. package/metadata/packages/components/components/syn-breadcrumb-item/component.ts +0 -132
  198. package/metadata/packages/components/components/syn-breadcrumb-item/component.vue +0 -76
  199. package/metadata/packages/components/components/syn-button/component.angular.ts +0 -318
  200. package/metadata/packages/components/components/syn-button/component.custom.styles.ts +0 -245
  201. package/metadata/packages/components/components/syn-button/component.react.ts +0 -56
  202. package/metadata/packages/components/components/syn-button/component.styles.ts +0 -361
  203. package/metadata/packages/components/components/syn-button/component.ts +0 -315
  204. package/metadata/packages/components/components/syn-button/component.vue +0 -204
  205. package/metadata/packages/components/components/syn-button-group/component.angular.ts +0 -79
  206. package/metadata/packages/components/components/syn-button-group/component.custom.styles.ts +0 -5
  207. package/metadata/packages/components/components/syn-button-group/component.react.ts +0 -29
  208. package/metadata/packages/components/components/syn-button-group/component.styles.ts +0 -14
  209. package/metadata/packages/components/components/syn-button-group/component.ts +0 -171
  210. package/metadata/packages/components/components/syn-button-group/component.vue +0 -67
  211. package/metadata/packages/components/components/syn-card/component.angular.ts +0 -83
  212. package/metadata/packages/components/components/syn-card/component.custom.styles.ts +0 -60
  213. package/metadata/packages/components/components/syn-card/component.react.ts +0 -41
  214. package/metadata/packages/components/components/syn-card/component.styles.ts +0 -70
  215. package/metadata/packages/components/components/syn-card/component.ts +0 -65
  216. package/metadata/packages/components/components/syn-card/component.vue +0 -73
  217. package/metadata/packages/components/components/syn-checkbox/component.angular.ts +0 -273
  218. package/metadata/packages/components/components/syn-checkbox/component.react.ts +0 -64
  219. package/metadata/packages/components/components/syn-checkbox/component.styles.ts +0 -183
  220. package/metadata/packages/components/components/syn-checkbox/component.ts +0 -287
  221. package/metadata/packages/components/components/syn-checkbox/component.vue +0 -191
  222. package/metadata/packages/components/components/syn-combobox/component.angular.ts +0 -516
  223. package/metadata/packages/components/components/syn-combobox/component.react.ts +0 -118
  224. package/metadata/packages/components/components/syn-combobox/component.styles.ts +0 -393
  225. package/metadata/packages/components/components/syn-combobox/component.ts +0 -1684
  226. package/metadata/packages/components/components/syn-combobox/component.vue +0 -350
  227. package/metadata/packages/components/components/syn-details/component.angular.ts +0 -186
  228. package/metadata/packages/components/components/syn-details/component.react.ts +0 -65
  229. package/metadata/packages/components/components/syn-details/component.styles.ts +0 -181
  230. package/metadata/packages/components/components/syn-details/component.ts +0 -261
  231. package/metadata/packages/components/components/syn-details/component.vue +0 -136
  232. package/metadata/packages/components/components/syn-dialog/component.angular.ts +0 -201
  233. package/metadata/packages/components/components/syn-dialog/component.react.ts +0 -91
  234. package/metadata/packages/components/components/syn-dialog/component.styles.ts +0 -130
  235. package/metadata/packages/components/components/syn-dialog/component.ts +0 -367
  236. package/metadata/packages/components/components/syn-dialog/component.vue +0 -169
  237. package/metadata/packages/components/components/syn-divider/component.angular.ts +0 -55
  238. package/metadata/packages/components/components/syn-divider/component.react.ts +0 -29
  239. package/metadata/packages/components/components/syn-divider/component.styles.ts +0 -22
  240. package/metadata/packages/components/components/syn-divider/component.ts +0 -34
  241. package/metadata/packages/components/components/syn-divider/component.vue +0 -51
  242. package/metadata/packages/components/components/syn-drawer/component.angular.ts +0 -234
  243. package/metadata/packages/components/components/syn-drawer/component.custom.styles.ts +0 -78
  244. package/metadata/packages/components/components/syn-drawer/component.react.ts +0 -98
  245. package/metadata/packages/components/components/syn-drawer/component.styles.ts +0 -158
  246. package/metadata/packages/components/components/syn-drawer/component.ts +0 -489
  247. package/metadata/packages/components/components/syn-drawer/component.vue +0 -188
  248. package/metadata/packages/components/components/syn-dropdown/component.angular.ts +0 -208
  249. package/metadata/packages/components/components/syn-dropdown/component.react.ts +0 -59
  250. package/metadata/packages/components/components/syn-dropdown/component.styles.ts +0 -51
  251. package/metadata/packages/components/components/syn-dropdown/component.ts +0 -469
  252. package/metadata/packages/components/components/syn-dropdown/component.vue +0 -152
  253. package/metadata/packages/components/components/syn-file/component.angular.ts +0 -372
  254. package/metadata/packages/components/components/syn-file/component.react.ts +0 -85
  255. package/metadata/packages/components/components/syn-file/component.styles.ts +0 -197
  256. package/metadata/packages/components/components/syn-file/component.ts +0 -645
  257. package/metadata/packages/components/components/syn-file/component.vue +0 -256
  258. package/metadata/packages/components/components/syn-header/component.angular.ts +0 -149
  259. package/metadata/packages/components/components/syn-header/component.react.ts +0 -68
  260. package/metadata/packages/components/components/syn-header/component.styles.ts +0 -143
  261. package/metadata/packages/components/components/syn-header/component.ts +0 -310
  262. package/metadata/packages/components/components/syn-header/component.vue +0 -126
  263. package/metadata/packages/components/components/syn-icon/component.angular.ts +0 -115
  264. package/metadata/packages/components/components/syn-icon/component.custom.styles.ts +0 -5
  265. package/metadata/packages/components/components/syn-icon/component.react.ts +0 -41
  266. package/metadata/packages/components/components/syn-icon/component.styles.ts +0 -18
  267. package/metadata/packages/components/components/syn-icon/component.ts +0 -227
  268. package/metadata/packages/components/components/syn-icon/component.vue +0 -100
  269. package/metadata/packages/components/components/syn-icon-button/component.angular.ts +0 -185
  270. package/metadata/packages/components/components/syn-icon-button/component.custom.styles.ts +0 -79
  271. package/metadata/packages/components/components/syn-icon-button/component.react.ts +0 -42
  272. package/metadata/packages/components/components/syn-icon-button/component.styles.ts +0 -52
  273. package/metadata/packages/components/components/syn-icon-button/component.ts +0 -147
  274. package/metadata/packages/components/components/syn-icon-button/component.vue +0 -132
  275. package/metadata/packages/components/components/syn-input/component.angular.ts +0 -608
  276. package/metadata/packages/components/components/syn-input/component.custom.styles.ts +0 -278
  277. package/metadata/packages/components/components/syn-input/component.react.ts +0 -91
  278. package/metadata/packages/components/components/syn-input/component.styles.ts +0 -280
  279. package/metadata/packages/components/components/syn-input/component.ts +0 -941
  280. package/metadata/packages/components/components/syn-input/component.vue +0 -370
  281. package/metadata/packages/components/components/syn-menu/component.angular.ts +0 -52
  282. package/metadata/packages/components/components/syn-menu/component.react.ts +0 -36
  283. package/metadata/packages/components/components/syn-menu/component.styles.ts +0 -37
  284. package/metadata/packages/components/components/syn-menu/component.ts +0 -191
  285. package/metadata/packages/components/components/syn-menu/component.vue +0 -48
  286. package/metadata/packages/components/components/syn-menu-item/component.angular.ts +0 -121
  287. package/metadata/packages/components/components/syn-menu-item/component.react.ts +0 -45
  288. package/metadata/packages/components/components/syn-menu-item/component.styles.ts +0 -285
  289. package/metadata/packages/components/components/syn-menu-item/component.ts +0 -201
  290. package/metadata/packages/components/components/syn-menu-item/component.vue +0 -91
  291. package/metadata/packages/components/components/syn-menu-label/component.angular.ts +0 -48
  292. package/metadata/packages/components/components/syn-menu-label/component.react.ts +0 -35
  293. package/metadata/packages/components/components/syn-menu-label/component.styles.ts +0 -31
  294. package/metadata/packages/components/components/syn-menu-label/component.ts +0 -46
  295. package/metadata/packages/components/components/syn-menu-label/component.vue +0 -41
  296. package/metadata/packages/components/components/syn-nav-item/component.angular.ts +0 -242
  297. package/metadata/packages/components/components/syn-nav-item/component.react.ts +0 -82
  298. package/metadata/packages/components/components/syn-nav-item/component.styles.ts +0 -333
  299. package/metadata/packages/components/components/syn-nav-item/component.ts +0 -491
  300. package/metadata/packages/components/components/syn-nav-item/component.vue +0 -182
  301. package/metadata/packages/components/components/syn-optgroup/component.angular.ts +0 -79
  302. package/metadata/packages/components/components/syn-optgroup/component.react.ts +0 -41
  303. package/metadata/packages/components/components/syn-optgroup/component.styles.ts +0 -61
  304. package/metadata/packages/components/components/syn-optgroup/component.ts +0 -176
  305. package/metadata/packages/components/components/syn-optgroup/component.vue +0 -71
  306. package/metadata/packages/components/components/syn-option/component.angular.ts +0 -79
  307. package/metadata/packages/components/components/syn-option/component.react.ts +0 -37
  308. package/metadata/packages/components/components/syn-option/component.styles.ts +0 -165
  309. package/metadata/packages/components/components/syn-option/component.ts +0 -191
  310. package/metadata/packages/components/components/syn-option/component.vue +0 -71
  311. package/metadata/packages/components/components/syn-popup/component.angular.ts +0 -372
  312. package/metadata/packages/components/components/syn-popup/component.react.ts +0 -55
  313. package/metadata/packages/components/components/syn-popup/component.styles.ts +0 -70
  314. package/metadata/packages/components/components/syn-popup/component.ts +0 -582
  315. package/metadata/packages/components/components/syn-popup/component.vue +0 -233
  316. package/metadata/packages/components/components/syn-prio-nav/component.angular.ts +0 -67
  317. package/metadata/packages/components/components/syn-prio-nav/component.react.ts +0 -54
  318. package/metadata/packages/components/components/syn-prio-nav/component.styles.ts +0 -48
  319. package/metadata/packages/components/components/syn-prio-nav/component.ts +0 -288
  320. package/metadata/packages/components/components/syn-prio-nav/component.vue +0 -60
  321. package/metadata/packages/components/components/syn-progress-bar/component.angular.ts +0 -85
  322. package/metadata/packages/components/components/syn-progress-bar/component.custom.styles.ts +0 -24
  323. package/metadata/packages/components/components/syn-progress-bar/component.react.ts +0 -37
  324. package/metadata/packages/components/components/syn-progress-bar/component.styles.ts +0 -87
  325. package/metadata/packages/components/components/syn-progress-bar/component.ts +0 -67
  326. package/metadata/packages/components/components/syn-progress-bar/component.vue +0 -71
  327. package/metadata/packages/components/components/syn-progress-ring/component.angular.ts +0 -72
  328. package/metadata/packages/components/components/syn-progress-ring/component.custom.styles.ts +0 -19
  329. package/metadata/packages/components/components/syn-progress-ring/component.react.ts +0 -37
  330. package/metadata/packages/components/components/syn-progress-ring/component.styles.ts +0 -70
  331. package/metadata/packages/components/components/syn-progress-ring/component.ts +0 -83
  332. package/metadata/packages/components/components/syn-progress-ring/component.vue +0 -66
  333. package/metadata/packages/components/components/syn-radio/component.angular.ts +0 -122
  334. package/metadata/packages/components/components/syn-radio/component.react.ts +0 -48
  335. package/metadata/packages/components/components/syn-radio/component.styles.ts +0 -179
  336. package/metadata/packages/components/components/syn-radio/component.ts +0 -131
  337. package/metadata/packages/components/components/syn-radio/component.vue +0 -104
  338. package/metadata/packages/components/components/syn-radio-button/component.angular.ts +0 -123
  339. package/metadata/packages/components/components/syn-radio-button/component.react.ts +0 -49
  340. package/metadata/packages/components/components/syn-radio-button/component.styles.ts +0 -30
  341. package/metadata/packages/components/components/syn-radio-button/component.ts +0 -142
  342. package/metadata/packages/components/components/syn-radio-button/component.vue +0 -105
  343. package/metadata/packages/components/components/syn-radio-group/component.angular.ts +0 -204
  344. package/metadata/packages/components/components/syn-radio-group/component.react.ts +0 -56
  345. package/metadata/packages/components/components/syn-radio-group/component.styles.ts +0 -58
  346. package/metadata/packages/components/components/syn-radio-group/component.ts +0 -440
  347. package/metadata/packages/components/components/syn-radio-group/component.vue +0 -158
  348. package/metadata/packages/components/components/syn-range/component.angular.ts +0 -347
  349. package/metadata/packages/components/components/syn-range/component.react.ts +0 -92
  350. package/metadata/packages/components/components/syn-range/component.styles.ts +0 -310
  351. package/metadata/packages/components/components/syn-range/component.ts +0 -933
  352. package/metadata/packages/components/components/syn-range/component.vue +0 -245
  353. package/metadata/packages/components/components/syn-range-tick/component.angular.ts +0 -59
  354. package/metadata/packages/components/components/syn-range-tick/component.react.ts +0 -33
  355. package/metadata/packages/components/components/syn-range-tick/component.styles.ts +0 -34
  356. package/metadata/packages/components/components/syn-range-tick/component.ts +0 -50
  357. package/metadata/packages/components/components/syn-range-tick/component.vue +0 -57
  358. package/metadata/packages/components/components/syn-resize-observer/component.styles.ts +0 -9
  359. package/metadata/packages/components/components/syn-resize-observer/component.ts +0 -91
  360. package/metadata/packages/components/components/syn-select/component.angular.ts +0 -439
  361. package/metadata/packages/components/components/syn-select/component.react.ts +0 -101
  362. package/metadata/packages/components/components/syn-select/component.styles.ts +0 -380
  363. package/metadata/packages/components/components/syn-select/component.ts +0 -1056
  364. package/metadata/packages/components/components/syn-select/component.vue +0 -301
  365. package/metadata/packages/components/components/syn-side-nav/component.angular.ts +0 -210
  366. package/metadata/packages/components/components/syn-side-nav/component.react.ts +0 -95
  367. package/metadata/packages/components/components/syn-side-nav/component.styles.ts +0 -142
  368. package/metadata/packages/components/components/syn-side-nav/component.ts +0 -458
  369. package/metadata/packages/components/components/syn-side-nav/component.vue +0 -188
  370. package/metadata/packages/components/components/syn-spinner/component.angular.ts +0 -44
  371. package/metadata/packages/components/components/syn-spinner/component.custom.styles.ts +0 -32
  372. package/metadata/packages/components/components/syn-spinner/component.react.ts +0 -31
  373. package/metadata/packages/components/components/syn-spinner/component.styles.ts +0 -48
  374. package/metadata/packages/components/components/syn-spinner/component.ts +0 -35
  375. package/metadata/packages/components/components/syn-spinner/component.vue +0 -35
  376. package/metadata/packages/components/components/syn-switch/component.angular.ts +0 -257
  377. package/metadata/packages/components/components/syn-switch/component.react.ts +0 -63
  378. package/metadata/packages/components/components/syn-switch/component.styles.ts +0 -252
  379. package/metadata/packages/components/components/syn-switch/component.ts +0 -279
  380. package/metadata/packages/components/components/syn-switch/component.vue +0 -183
  381. package/metadata/packages/components/components/syn-tab/component.angular.ts +0 -109
  382. package/metadata/packages/components/components/syn-tab/component.custom.styles.ts +0 -94
  383. package/metadata/packages/components/components/syn-tab/component.react.ts +0 -42
  384. package/metadata/packages/components/components/syn-tab/component.styles.ts +0 -70
  385. package/metadata/packages/components/components/syn-tab/component.ts +0 -125
  386. package/metadata/packages/components/components/syn-tab/component.vue +0 -91
  387. package/metadata/packages/components/components/syn-tab-group/component.angular.ts +0 -166
  388. package/metadata/packages/components/components/syn-tab-group/component.custom.styles.ts +0 -218
  389. package/metadata/packages/components/components/syn-tab-group/component.react.ts +0 -58
  390. package/metadata/packages/components/components/syn-tab-group/component.styles.ts +0 -193
  391. package/metadata/packages/components/components/syn-tab-group/component.ts +0 -551
  392. package/metadata/packages/components/components/syn-tab-group/component.vue +0 -126
  393. package/metadata/packages/components/components/syn-tab-panel/component.angular.ts +0 -68
  394. package/metadata/packages/components/components/syn-tab-panel/component.custom.styles.ts +0 -8
  395. package/metadata/packages/components/components/syn-tab-panel/component.react.ts +0 -31
  396. package/metadata/packages/components/components/syn-tab-panel/component.styles.ts +0 -20
  397. package/metadata/packages/components/components/syn-tab-panel/component.ts +0 -60
  398. package/metadata/packages/components/components/syn-tab-panel/component.vue +0 -60
  399. package/metadata/packages/components/components/syn-tag/component.angular.ts +0 -83
  400. package/metadata/packages/components/components/syn-tag/component.custom.styles.ts +0 -121
  401. package/metadata/packages/components/components/syn-tag/component.react.ts +0 -43
  402. package/metadata/packages/components/components/syn-tag/component.styles.ts +0 -58
  403. package/metadata/packages/components/components/syn-tag/component.ts +0 -83
  404. package/metadata/packages/components/components/syn-tag/component.vue +0 -81
  405. package/metadata/packages/components/components/syn-tag-group/component.angular.ts +0 -83
  406. package/metadata/packages/components/components/syn-tag-group/component.react.ts +0 -33
  407. package/metadata/packages/components/components/syn-tag-group/component.styles.ts +0 -49
  408. package/metadata/packages/components/components/syn-tag-group/component.ts +0 -95
  409. package/metadata/packages/components/components/syn-tag-group/component.vue +0 -69
  410. package/metadata/packages/components/components/syn-textarea/component.angular.ts +0 -396
  411. package/metadata/packages/components/components/syn-textarea/component.react.ts +0 -60
  412. package/metadata/packages/components/components/syn-textarea/component.styles.ts +0 -208
  413. package/metadata/packages/components/components/syn-textarea/component.ts +0 -400
  414. package/metadata/packages/components/components/syn-textarea/component.vue +0 -244
  415. package/metadata/packages/components/components/syn-tooltip/component.angular.ts +0 -196
  416. package/metadata/packages/components/components/syn-tooltip/component.react.ts +0 -63
  417. package/metadata/packages/components/components/syn-tooltip/component.styles.ts +0 -62
  418. package/metadata/packages/components/components/syn-tooltip/component.ts +0 -312
  419. package/metadata/packages/components/components/syn-tooltip/component.vue +0 -150
  420. package/metadata/packages/components/components/syn-validate/component.angular.ts +0 -137
  421. package/metadata/packages/components/components/syn-validate/component.react.ts +0 -44
  422. package/metadata/packages/components/components/syn-validate/component.styles.ts +0 -9
  423. package/metadata/packages/components/components/syn-validate/component.ts +0 -590
  424. package/metadata/packages/components/components/syn-validate/component.vue +0 -107
  425. package/metadata/packages/components/migration/BREAKING_CHANGES.md +0 -908
  426. package/metadata/packages/components/static/CHANGELOG.md +0 -2140
  427. package/metadata/packages/components/static/LIMITATIONS.md +0 -433
  428. package/metadata/packages/components/static/README.md +0 -231
  429. package/metadata/packages/fonts/CHANGELOG.md +0 -57
  430. package/metadata/packages/fonts/README.md +0 -164
  431. package/metadata/packages/fonts/package.json +0 -72
  432. package/metadata/packages/react/LIMITATIONS.md +0 -31
  433. package/metadata/packages/react/README.md +0 -262
  434. package/metadata/packages/styles/BREAKING_CHANGES.md +0 -105
  435. package/metadata/packages/styles/CHANGELOG.md +0 -188
  436. package/metadata/packages/styles/README.md +0 -132
  437. package/metadata/packages/styles/index.css +0 -300
  438. package/metadata/packages/styles/link-list.css +0 -47
  439. package/metadata/packages/styles/link.css +0 -81
  440. package/metadata/packages/styles/tables.css +0 -132
  441. package/metadata/packages/styles/typography.css +0 -52
  442. package/metadata/packages/tokens/BREAKING_CHANGES.md +0 -180
  443. package/metadata/packages/tokens/CHANGELOG.md +0 -949
  444. package/metadata/packages/tokens/README.md +0 -435
  445. package/metadata/packages/tokens/dark.css +0 -454
  446. package/metadata/packages/tokens/index.js +0 -2224
  447. package/metadata/packages/tokens/light.css +0 -454
  448. package/metadata/packages/tokens/sick2018_dark.css +0 -454
  449. package/metadata/packages/tokens/sick2018_light.css +0 -454
  450. package/metadata/packages/tokens/sick2025_dark.css +0 -454
  451. package/metadata/packages/tokens/sick2025_light.css +0 -454
  452. package/metadata/packages/vue/LIMITATIONS.md +0 -53
  453. package/metadata/packages/vue/README.md +0 -252
  454. package/metadata/static/assets/index.md +0 -10
  455. package/metadata/static/components/index.md +0 -10
  456. package/metadata/static/components/syn-accordion/docs.md +0 -449
  457. package/metadata/static/components/syn-alert/docs.md +0 -282
  458. package/metadata/static/components/syn-badge/docs.md +0 -106
  459. package/metadata/static/components/syn-breadcrumb/docs.md +0 -265
  460. package/metadata/static/components/syn-breadcrumb-item/docs.md +0 -49
  461. package/metadata/static/components/syn-button/docs.md +0 -472
  462. package/metadata/static/components/syn-button-group/docs.md +0 -259
  463. package/metadata/static/components/syn-card/docs.md +0 -314
  464. package/metadata/static/components/syn-checkbox/docs.md +0 -176
  465. package/metadata/static/components/syn-combobox/docs.md +0 -2633
  466. package/metadata/static/components/syn-details/docs.md +0 -227
  467. package/metadata/static/components/syn-dialog/docs.md +0 -220
  468. package/metadata/static/components/syn-divider/docs.md +0 -77
  469. package/metadata/static/components/syn-drawer/docs.md +0 -269
  470. package/metadata/static/components/syn-dropdown/docs.md +0 -316
  471. package/metadata/static/components/syn-file/docs.md +0 -239
  472. package/metadata/static/components/syn-header/docs.md +0 -209
  473. package/metadata/static/components/syn-icon/docs.md +0 -177
  474. package/metadata/static/components/syn-icon-button/docs.md +0 -142
  475. package/metadata/static/components/syn-input/docs.md +0 -462
  476. package/metadata/static/components/syn-menu/docs.md +0 -162
  477. package/metadata/static/components/syn-menu-item/docs.md +0 -216
  478. package/metadata/static/components/syn-menu-label/docs.md +0 -29
  479. package/metadata/static/components/syn-nav-item/docs.md +0 -166
  480. package/metadata/static/components/syn-optgroup/docs.md +0 -167
  481. package/metadata/static/components/syn-option/docs.md +0 -137
  482. package/metadata/static/components/syn-popup/docs.md +0 -812
  483. package/metadata/static/components/syn-prio-nav/docs.md +0 -54
  484. package/metadata/static/components/syn-progress-bar/docs.md +0 -77
  485. package/metadata/static/components/syn-progress-ring/docs.md +0 -89
  486. package/metadata/static/components/syn-radio/docs.md +0 -178
  487. package/metadata/static/components/syn-radio-group/docs.md +0 -484
  488. package/metadata/static/components/syn-range/docs.md +0 -438
  489. package/metadata/static/components/syn-range-tick/docs.md +0 -110
  490. package/metadata/static/components/syn-select/docs.md +0 -811
  491. package/metadata/static/components/syn-side-nav/docs.md +0 -593
  492. package/metadata/static/components/syn-spinner/docs.md +0 -45
  493. package/metadata/static/components/syn-switch/docs.md +0 -121
  494. package/metadata/static/components/syn-tab/docs.md +0 -47
  495. package/metadata/static/components/syn-tab-group/docs.md +0 -1094
  496. package/metadata/static/components/syn-tab-panel/docs.md +0 -91
  497. package/metadata/static/components/syn-tag/docs.md +0 -50
  498. package/metadata/static/components/syn-tag-group/docs.md +0 -269
  499. package/metadata/static/components/syn-textarea/docs.md +0 -215
  500. package/metadata/static/components/syn-tooltip/docs.md +0 -217
  501. package/metadata/static/components/syn-validate/docs.md +0 -305
  502. package/metadata/static/fonts/index.md +0 -4
  503. package/metadata/static/migration/index.md +0 -57
  504. package/metadata/static/migration/v2-2018-to-v2-2025.md +0 -481
  505. package/metadata/static/migration/v2-2018-to-v3-2018.md +0 -147
  506. package/metadata/static/migration/v2-2018-to-v3-2025.md +0 -150
  507. package/metadata/static/migration/v2-2025-to-v3-2025.md +0 -133
  508. package/metadata/static/setup/icon-usage.md +0 -411
  509. package/metadata/static/setup/prerequisites.md +0 -319
  510. package/metadata/static/styles/syn-body.md +0 -5
  511. package/metadata/static/styles/syn-heading.md +0 -5
  512. package/metadata/static/styles/syn-link-list.md +0 -325
  513. package/metadata/static/styles/syn-link.md +0 -156
  514. package/metadata/static/styles/syn-table-cell.md +0 -127
  515. package/metadata/static/styles/syn-table.md +0 -201
  516. package/metadata/static/styles/syn-weight.md +0 -5
  517. package/metadata/static/templates/appshell.md +0 -2053
  518. package/metadata/static/templates/breadcrumb.md +0 -379
  519. package/metadata/static/templates/footer.md +0 -340
  520. package/metadata/static/templates/forms.md +0 -558
  521. package/metadata/static/templates/localization.md +0 -279
  522. package/metadata/static/templates/table.md +0 -1425
  523. package/metadata/static/templates/tag-group.md +0 -833
  524. /package/dist/{build/build.d.ts → utilities/logging-types.js} +0 -0
  525. /package/{metadata/static/component-info/index.md → rules/component-info.md} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import * as availableIconsets from '@synergy-design-system/assets';
3
- import { getAssetsMetaData, getStructuredMetaData, } from '../utilities/index.js';
2
+ import { searchIcons, } from '@synergy-design-system/metadata';
3
+ import { createToolAnnotations, getRuntimeConfig, getToolRule, toolHandler, } from '../utilities/index.js';
4
4
  const iconsetListAliases = {
5
5
  sick2018Icons: [
6
6
  'legacy',
@@ -20,7 +20,6 @@ const iconsetListAliases = {
20
20
  'v3',
21
21
  ],
22
22
  };
23
- const DEFAULT_LIMIT = 5;
24
23
  /**
25
24
  * Simple tool to list all available assets in the Synergy Design System.
26
25
  * This tool fetches the asset data from the Synergy package and formats it for display.
@@ -29,21 +28,22 @@ const DEFAULT_LIMIT = 5;
29
28
  */
30
29
  export const assetInfoTool = (server) => {
31
30
  server.registerTool('asset-info', {
31
+ annotations: createToolAnnotations(),
32
32
  description: 'Get information about available icons in the Synergy Design System. Will return the full list of icons in a set or just a subset',
33
33
  inputSchema: {
34
34
  filter: z
35
35
  .string()
36
36
  .optional()
37
- .describe('A filter to apply to the icon names. If provided, only icons matching this filter will be returned. Supports multiple filters separated by "|" (e.g., "home|search|menu" to find icons containing any of these terms).'),
37
+ .describe('A filter to apply to the icon names. If provided, only icons matching this filter will be returned. Supports multiple filters separated by "," (e.g., "home,search,menu" to find icons containing any of these terms).'),
38
38
  iconset: z
39
39
  .enum([
40
- 'current', // Special key, maps to 2018 currently, should map to 2025 in the next major version
41
- 'default', // Alias for current
42
40
  'legacy', // Fallback to 2018
43
41
  'v2', // Fallback to 2018
44
42
  'synergy2018', // Fallback name of the set for 2018
45
43
  'brand2018', // Alternative name of the set for 2018
46
44
  'sick2018', // Official name for 2018 (Synergy V2)
45
+ 'current', // Special key, maps to 2025.
46
+ 'default', // Alias for current
47
47
  'brand2025', // Alternative name of the set for 2025
48
48
  'sick2025', // Official name for 2025 (Synergy V3)
49
49
  'synergy2025', // Alias for sick2025
@@ -51,92 +51,48 @@ export const assetInfoTool = (server) => {
51
51
  'next', // Alias for sick2025
52
52
  'v3', // Done for completeness, maps to 2025
53
53
  ])
54
- .default('current')
55
54
  .optional()
56
55
  .describe('The name of the icon set to retrieve icons from.'),
57
56
  limit: z
58
57
  .number()
59
- .default(DEFAULT_LIMIT)
60
58
  .optional()
61
- .describe(`The maximum number of icons to return. Defaults to ${DEFAULT_LIMIT}. When using multiple filters (pipe-separated), this limit applies per filter term.`),
59
+ .describe('The maximum number of icons to return. Defaults to unlimited. When using multiple filters (comma-separated), this limit applies per filter term.'),
62
60
  },
63
61
  title: 'Available Icons',
64
- }, async ({ filter, iconset, limit,
65
- // eslint-disable-next-line complexity
66
- }) => {
62
+ }, toolHandler('asset-info', async ({ filter, iconset, limit, }) => {
63
+ const resolvedIconset = iconset ?? getRuntimeConfig().tools.assetInfo.iconset;
67
64
  // Get the iconset that should be used by key/value of iconsetListAliases
68
- const setToUse = iconset
69
- ? Object
70
- .entries(iconsetListAliases)
71
- .find(([, aliases]) => aliases.includes(iconset))?.[0] || 'sick2025Icons'
72
- : 'sick2025Icons';
73
- // eslint-disable-next-line no-constant-binary-expression, valid-typeof
74
- const foundIconSet = typeof availableIconsets[setToUse] !== undefined
75
- ? availableIconsets[setToUse]
76
- : availableIconsets.sick2018Icons;
77
- // Filter the icons if a filter is provided
78
- // Support pipe-separated filters (e.g., "icon1|icon2|icon3") for multiple icon matching
79
- let availableIcons;
80
- if (!filter) {
81
- availableIcons = Object.keys(foundIconSet);
82
- }
83
- else {
84
- const lowerFilter = filter.toLowerCase();
85
- // Check if filter contains pipe separator for multiple filters
86
- if (lowerFilter.includes('|')) {
87
- const filterTerms = lowerFilter.split('|').map(term => term.trim());
88
- const iconsPerTerm = [];
89
- // For each filter term, find matching icons and apply limit per term
90
- filterTerms.forEach(term => {
91
- const matchingIcons = Object
92
- .keys(foundIconSet)
93
- .filter(iconName => iconName.toLowerCase().includes(term))
94
- .slice(0, limit ?? DEFAULT_LIMIT); // Apply limit per filter term
95
- iconsPerTerm.push(...matchingIcons);
96
- });
97
- // Remove duplicates while preserving order
98
- availableIcons = [...new Set(iconsPerTerm)];
99
- }
100
- else {
101
- // Original single filter behavior
102
- availableIcons = Object
103
- .keys(foundIconSet)
104
- .filter(iconName => iconName.toLowerCase().includes(lowerFilter));
105
- }
106
- }
107
- // For single filters or no filter, apply the limit normally
108
- const limitedIcons = (!filter || !filter.includes('|')) && (limit ?? DEFAULT_LIMIT) > 0
109
- ? availableIcons.slice(0, limit ?? DEFAULT_LIMIT)
110
- : availableIcons;
111
- const icons = limitedIcons.map(icon => `- ${icon}`).join('\n');
112
- const content = [
113
- {
114
- text: `Available icons in iconset "${setToUse}":`,
115
- type: 'text',
116
- },
117
- {
118
- text: `Showing ${limitedIcons.length} of ${availableIcons.length} icons`,
119
- type: 'text',
120
- },
121
- {
122
- text: icons,
123
- type: 'text',
124
- },
65
+ const setToUse = Object
66
+ .entries(iconsetListAliases)
67
+ .find(([, aliases]) => aliases.includes(resolvedIconset))?.[0] || 'sick2025Icons';
68
+ // Decide which icon sets to use based on the provided iconset key, if no key is provided use the default which is currently sick2025Icons
69
+ const assetId = setToUse === 'sick2025Icons'
70
+ ? ['sick2025-icons-fill', 'sick2025-icons-outline']
71
+ : 'sick2018-icons';
72
+ // Create the tags filter
73
+ const tags = filter ? filter.toLowerCase().split(',').map(term => term.trim()) : [];
74
+ const newAvailableIcons = await searchIcons({ assetId, tags }, { limit });
75
+ // Final stripped down version of the icons to return, we only want to return the name, categories and variant for simplicity
76
+ const icons = newAvailableIcons.data.map(icon => ({
77
+ categories: icon.categories.length > 0 ? icon.categories : ['uncategorized'],
78
+ icon: icon.iconName,
79
+ variant: icon.variant,
80
+ }));
81
+ // Group the icons by the first category found
82
+ const iconsByCategory = Object.groupBy(icons, icon => icon.categories.at(0) ?? 'uncategorized');
83
+ // Remove the categories from the icons, we only want to return the name and variant at this point since we are grouping by category already
84
+ const finalIcons = Object.fromEntries(Object.entries(iconsByCategory).map(([category, iconsInCategory]) => [
85
+ category,
86
+ iconsInCategory?.map(({ icon, variant }) => ({
87
+ icon,
88
+ variant,
89
+ })),
90
+ ]));
91
+ // Get the AI rules for this tool, used as a preface for LLM output quality.
92
+ const aiRules = await getToolRule('asset-info');
93
+ return [
94
+ aiRules,
95
+ finalIcons,
125
96
  ];
126
- const aiRules = await getStructuredMetaData('../../metadata/static/assets');
127
- const assetData = await getAssetsMetaData((fileName) => !fileName.toLowerCase().startsWith('changelog'));
128
- return {
129
- content: [
130
- {
131
- text: JSON.stringify(aiRules, null, 2),
132
- type: 'text',
133
- },
134
- {
135
- text: JSON.stringify(assetData, null, 2),
136
- type: 'text',
137
- },
138
- ...content,
139
- ],
140
- };
141
- });
97
+ }));
142
98
  };
@@ -1,40 +1,31 @@
1
- import { getStructuredMetaData, } from '../utilities/index.js';
1
+ import { listAssets } from '@synergy-design-system/metadata';
2
+ import { createToolAnnotations, getToolRule, toolHandler, } from '../utilities/index.js';
2
3
  /**
3
4
  * Simple tool to list all available iconsets in the Synergy Design System.
4
5
  * @param server - The MCP server instance to register the tool on.
5
6
  */
6
7
  export const assetListTool = (server) => {
7
8
  server.registerTool('asset-list', {
9
+ annotations: createToolAnnotations(),
8
10
  description: 'Get the available iconsets in the Synergy Design System.',
11
+ inputSchema: {},
9
12
  title: 'Available iconsets',
10
- }, async () => {
11
- const aiRules = await getStructuredMetaData('../../metadata/static/assets');
12
- return {
13
- content: [
14
- {
15
- text: 'Available iconsets in the Synergy Design System:',
16
- type: 'text',
17
- },
18
- {
19
- text: JSON.stringify([
20
- {
21
- text: JSON.stringify(aiRules, null, 2),
22
- type: 'text',
23
- },
24
- {
25
- description: 'The original set of icons from the Synergy Design System. Use this for projects using Synergy Major Version 2.0.',
26
- iconset: 'sick2018Icons',
27
- title: 'Synergy 2018 Icons',
28
- },
29
- {
30
- description: 'New icon set for the brand 2025 refresh. Use this for projects using Synergy Major Version 3.0.',
31
- iconset: 'sick2025Icons',
32
- title: 'Synergy 2025 Icons',
33
- },
34
- ], null, 2),
35
- type: 'text',
36
- },
37
- ],
38
- };
39
- });
13
+ }, toolHandler('asset-list', async () => {
14
+ const aiRules = await getToolRule('asset-list');
15
+ const allAssets = await listAssets();
16
+ const assets = allAssets.data
17
+ .map(asset => ({
18
+ iconCount: asset.custom?.iconCount,
19
+ id: asset.id,
20
+ name: asset.name,
21
+ since: asset.since,
22
+ theme: asset.custom?.theme ?? 'default',
23
+ }))
24
+ .toSorted((a, b) => a.name.localeCompare(b.name));
25
+ const groupedAssets = Object.groupBy(assets, asset => asset.theme);
26
+ return [
27
+ aiRules,
28
+ groupedAssets,
29
+ ];
30
+ }));
40
31
  };
@@ -0,0 +1,6 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Lists available component clusters so callers can use them as filters
4
+ * in tools like `component-list`.
5
+ */
6
+ export declare const componentClusterListTool: (server: McpServer) => void;
@@ -0,0 +1,30 @@
1
+ import { listComponentClusters } from '@synergy-design-system/metadata';
2
+ import { createToolAnnotations, getToolRule, toolHandler, } from '../utilities/index.js';
3
+ /**
4
+ * Lists available component clusters so callers can use them as filters
5
+ * in tools like `component-list`.
6
+ */
7
+ export const componentClusterListTool = (server) => {
8
+ server.registerTool('component-cluster-list', {
9
+ annotations: createToolAnnotations(),
10
+ description: 'Outputs all available component clusters in the Synergy Design System',
11
+ inputSchema: {},
12
+ title: 'Components by cluster',
13
+ }, toolHandler('component-cluster-list', async () => {
14
+ const aiRules = await getToolRule('component-cluster-list');
15
+ const clusters = await listComponentClusters();
16
+ // Adjust the clusters data so it just outputs the relevant information:
17
+ // - Cluster information (name, description, etc.)
18
+ // - Component names within each cluster (instead of full metadata entities)
19
+ const output = clusters.data.map(cluster => ({
20
+ components: cluster.componentIds.map(id => id.split(':').at(-1)),
21
+ description: cluster.description,
22
+ id: cluster.id,
23
+ name: cluster.name,
24
+ }));
25
+ return [
26
+ aiRules,
27
+ output,
28
+ ];
29
+ }));
30
+ };
@@ -1,34 +1,51 @@
1
1
  import { z } from 'zod';
2
- import { getInfoForComponent, getStructuredMetaData, } from '../utilities/index.js';
2
+ import { getDataForComponent, } from '@synergy-design-system/metadata';
3
+ import { createToolAnnotations, getRuntimeConfig, getToolRule, toolHandler, } from '../utilities/index.js';
3
4
  /**
4
5
  * Simple tool to retrieve information about a given component in the Synergy Design System.
5
6
  * @param server - The MCP server instance to register the tool on.
6
7
  */
7
8
  export const componentInfoTool = (server) => {
8
9
  server.registerTool('component-info', {
10
+ annotations: createToolAnnotations(),
9
11
  description: 'Get information about the usage of a specific component in the Synergy Design System',
10
12
  inputSchema: {
11
13
  component: z.string().startsWith('syn-').describe('The name of the component to get information about.'),
12
- framework: z.enum(['react', 'vue', 'angular', 'vanilla']).default('vanilla').optional().describe('The framework of the component, e.g., "react", "vue", etc.'),
14
+ framework: z.enum(['react', 'vue', 'angular', 'vanilla']).optional().describe('The framework of the component, e.g., "react", "vue", etc.'),
15
+ layer: z.enum(['full', 'examples', 'interface'])
16
+ .optional()
17
+ .describe('Defines which type of information to return. full = filtered source files (useful for debugging), examples = markdown examples, interface = markdown API overview. Examples and interface are only available for vanilla components at the moment.'),
13
18
  },
14
19
  title: 'Component info',
15
- }, async ({ component, framework, }) => {
16
- const data = await getInfoForComponent(component, framework);
17
- const text = data && data.length > 0
18
- ? JSON.stringify(data, null, 2)
19
- : `No metadata found for component ${component}`;
20
- const aiRules = await getStructuredMetaData('../../metadata/static/component-info');
21
- return {
22
- content: [
23
- {
24
- text: JSON.stringify(aiRules, null, 2),
25
- type: 'text',
26
- },
27
- {
28
- text,
29
- type: 'text',
30
- },
31
- ],
32
- };
33
- });
20
+ }, toolHandler('component-info', async ({ component, framework, layer, }) => {
21
+ const { tools } = getRuntimeConfig();
22
+ const resolvedFramework = framework ?? tools.componentInfo.framework;
23
+ const resolvedLayer = layer ?? tools.componentInfo.layer;
24
+ const metadata = await getDataForComponent(component, {
25
+ framework: resolvedFramework,
26
+ layer: resolvedLayer,
27
+ });
28
+ const aiRules = await getToolRule('component-info');
29
+ const frameworkRules = resolvedFramework !== 'vanilla' ? await getToolRule(`component-info-${resolvedFramework}`) : undefined;
30
+ if (!metadata.data) {
31
+ const notFoundMessage = metadata.errors?.[0]?.message ?? `No metadata found for component ${component}`;
32
+ return [notFoundMessage];
33
+ }
34
+ let finalContent = [];
35
+ switch (metadata.data.layer) {
36
+ case 'interface':
37
+ finalContent = metadata.data.interface?.map((entry) => entry.content) ?? [];
38
+ break;
39
+ case 'examples':
40
+ finalContent = metadata.data.examples?.map((entry) => entry.content) ?? [];
41
+ break;
42
+ default:
43
+ finalContent = [metadata.data];
44
+ }
45
+ const rules = [aiRules, frameworkRules].filter(Boolean);
46
+ const withRules = [...rules, ...finalContent];
47
+ return finalContent.length > 0
48
+ ? withRules
49
+ : [`No metadata content found for component ${component} in layer ${resolvedLayer}`];
50
+ }));
34
51
  };
@@ -1,4 +1,6 @@
1
- import { getAvailableComponents, getStructuredMetaData, } from '../utilities/index.js';
1
+ import { z } from 'zod';
2
+ import { listComponentClusters, listComponents, } from '@synergy-design-system/metadata';
3
+ import { createToolAnnotations, getToolRule, toolHandler, } from '../utilities/index.js';
2
4
  /**
3
5
  * Simple tool to list all available components in the Synergy Design System.
4
6
  * This tool fetches the component data from the Synergy package and formats it for display.
@@ -6,37 +8,40 @@ import { getAvailableComponents, getStructuredMetaData, } from '../utilities/ind
6
8
  */
7
9
  export const componentListTool = (server) => {
8
10
  server.registerTool('component-list', {
11
+ annotations: createToolAnnotations(),
9
12
  description: 'Outputs a list of all available components in the Synergy Design System',
10
- inputSchema: {},
11
- title: 'List Synergy Components',
12
- }, async () => {
13
- // Get the package data for components
14
- try {
15
- const components = await getAvailableComponents();
16
- const componentNames = components.map(filename => `- ${filename}`);
17
- const aiRules = await getStructuredMetaData('../../metadata/static/component-list');
18
- return {
19
- content: [
13
+ inputSchema: {
14
+ cluster: z.string().optional().describe('Optional component cluster id to filter by, e.g. "components-by-tag/structure".'),
15
+ },
16
+ title: 'Component list',
17
+ }, toolHandler('component-list', async ({ cluster, }) => {
18
+ const aiRules = await getToolRule('component-list');
19
+ const clusters = await listComponentClusters();
20
+ const clusterIds = clusters.data.map((entry) => entry.id);
21
+ if (cluster) {
22
+ const requestedCluster = cluster.trim().toLowerCase();
23
+ const clusterExists = clusterIds.some((id) => id.toLowerCase() === requestedCluster);
24
+ if (!clusterExists) {
25
+ return [
26
+ aiRules,
20
27
  {
21
- text: JSON.stringify(aiRules, null, 2),
22
- type: 'text',
28
+ availableClusters: clusterIds,
29
+ error: `Unknown cluster '${cluster}'.`,
23
30
  },
24
- {
25
- text: componentNames.join('\n'),
26
- type: 'text',
27
- },
28
- ],
29
- };
30
- }
31
- catch (error) {
32
- return {
33
- content: [
34
- {
35
- text: `Error fetching components: ${error.message}`,
36
- type: 'text',
37
- },
38
- ],
39
- };
31
+ ];
32
+ }
40
33
  }
41
- });
34
+ const components = await listComponents({
35
+ cluster,
36
+ includeLayerRefs: false,
37
+ includeSources: false,
38
+ });
39
+ const componentNames = components.data
40
+ .map(c => c.name)
41
+ .toSorted();
42
+ return [
43
+ aiRules,
44
+ componentNames,
45
+ ];
46
+ }));
42
47
  };
@@ -0,0 +1,2 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare const davinciMigrationInfoTool: (server: McpServer) => void;
@@ -0,0 +1,21 @@
1
+ import { z } from 'zod';
2
+ import { createToolAnnotations, extractMigrationSection, getMigrationGuideContent, getRuntimeConfig, resolveDavinciPackageAlias, toolHandler, } from '../utilities/index.js';
3
+ export const davinciMigrationInfoTool = (server) => {
4
+ server.registerTool('davinci-migration-info', {
5
+ annotations: createToolAnnotations(),
6
+ description: 'Get information about the migration of a specific component from DaVinci to Synergy.',
7
+ inputSchema: {
8
+ component: z.string().startsWith('davinci-').describe('The name of the davinci component to get migration information for.'),
9
+ package: z.string().optional().describe('Migration package to inspect. Can be "basic-elements", "components", "dashboard-elements", or "charts".'),
10
+ },
11
+ title: 'DaVinci Migration Info',
12
+ }, toolHandler('davinci-migration-info', async ({ component, package: packageName, }) => {
13
+ const packageInput = packageName ?? getRuntimeConfig().tools.davinciMigrationInfo.package;
14
+ const resolvedPackage = resolveDavinciPackageAlias(packageInput);
15
+ const migrationGuide = await getMigrationGuideContent(resolvedPackage);
16
+ const section = extractMigrationSection(migrationGuide, component);
17
+ return section
18
+ ? [section]
19
+ : [`No migration information found for component "${component}" in package "${resolvedPackage}".`];
20
+ }));
21
+ };
@@ -0,0 +1,2 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare const davinciMigrationListTool: (server: McpServer) => void;
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ import { createToolAnnotations, extractDavinciComponents, getMigrationGuideContent, getRuntimeConfig, resolveDavinciPackageAlias, toolHandler, } from '../utilities/index.js';
3
+ export const davinciMigrationListTool = (server) => {
4
+ server.registerTool('davinci-migration-list', {
5
+ annotations: createToolAnnotations(),
6
+ description: 'Get a list of all components that have migration information from DaVinci to Synergy.',
7
+ inputSchema: {
8
+ package: z.string().optional().describe('Migration package to inspect. Can be "basic-elements", "components", "dashboard-elements", or "charts".'),
9
+ },
10
+ title: 'DaVinci Migration List',
11
+ }, toolHandler('davinci-migration-list', async ({ package: packageName, }) => {
12
+ const packageInput = packageName ?? getRuntimeConfig().tools.davinciMigrationList.package;
13
+ const resolvedPackage = resolveDavinciPackageAlias(packageInput);
14
+ const migrationGuide = await getMigrationGuideContent(resolvedPackage);
15
+ const components = extractDavinciComponents(migrationGuide);
16
+ return components.length > 0
17
+ ? [components]
18
+ : [`No DaVinci component migrations found for package "${resolvedPackage}".`];
19
+ }));
20
+ };
@@ -1,15 +1,16 @@
1
1
  export * from './asset-info.js';
2
2
  export * from './asset-list.js';
3
+ export * from './component-cluster-list.js';
3
4
  export * from './component-info.js';
4
5
  export * from './component-list.js';
5
- export * from './davinci-migration.js';
6
- export * from './font-info.js';
7
- export * from './framework-info.js';
6
+ export * from './davinci-migration-info.js';
7
+ export * from './davinci-migration-list.js';
8
8
  export * from './migration-info.js';
9
9
  export * from './migration-list.js';
10
+ export * from './setup.js';
10
11
  export * from './styles-info.js';
11
12
  export * from './styles-list.js';
12
13
  export * from './template-list.js';
13
14
  export * from './template-info.js';
14
- export * from './tokens.js';
15
- export * from './version.js';
15
+ export * from './tokens-list.js';
16
+ export * from './token-info.js';
@@ -1,15 +1,16 @@
1
1
  export * from './asset-info.js';
2
2
  export * from './asset-list.js';
3
+ export * from './component-cluster-list.js';
3
4
  export * from './component-info.js';
4
5
  export * from './component-list.js';
5
- export * from './davinci-migration.js';
6
- export * from './font-info.js';
7
- export * from './framework-info.js';
6
+ export * from './davinci-migration-info.js';
7
+ export * from './davinci-migration-list.js';
8
8
  export * from './migration-info.js';
9
9
  export * from './migration-list.js';
10
+ export * from './setup.js';
10
11
  export * from './styles-info.js';
11
12
  export * from './styles-list.js';
12
13
  export * from './template-list.js';
13
14
  export * from './template-info.js';
14
- export * from './tokens.js';
15
- export * from './version.js';
15
+ export * from './tokens-list.js';
16
+ export * from './token-info.js';
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { getMigrationMetaData } from '../utilities/index.js';
2
+ import { createToolAnnotations, getMigrationMetaData, getRuntimeConfig, toolHandler, } from '../utilities/index.js';
3
3
  /**
4
4
  * Tool to retrieve concrete migration documentation for a given package.
5
5
  *
@@ -15,6 +15,7 @@ import { getMigrationMetaData } from '../utilities/index.js';
15
15
  */
16
16
  export const migrationInfoTool = (server) => {
17
17
  server.registerTool('migration-info', {
18
+ annotations: createToolAnnotations(),
18
19
  description: 'Get detailed migration documentation for a Synergy package. Use together with `migration-list` to fetch only the documents you need.',
19
20
  inputSchema: {
20
21
  filename: z.string().optional().describe('Optional filename of the migration document to return. Especially recommended for the components package to avoid fetching all guides at once.'),
@@ -23,34 +24,22 @@ export const migrationInfoTool = (server) => {
23
24
  'components',
24
25
  'styles',
25
26
  'tokens',
26
- ]).default('components').optional().describe('The package to get migration information about.'),
27
+ ]).optional().describe('The package to get migration information about.'),
27
28
  },
28
29
  title: 'Package Migration Information',
29
- }, async ({ filename, synergyPackage, }) => {
30
- const selectedPackage = (synergyPackage ?? 'components');
30
+ }, toolHandler('migration-info', async ({ filename, synergyPackage, }) => {
31
+ const selectedPackage = (synergyPackage ?? getRuntimeConfig().tools.migrationInfo.synergyPackage);
31
32
  const metadata = await getMigrationMetaData(selectedPackage);
32
33
  // For components, strongly prefer a specific filename so we do not
33
34
  // send all path guides at once.
34
35
  if (selectedPackage === 'components' && filename) {
35
36
  const match = metadata.find(file => file && file.filename === filename);
36
37
  if (!match) {
37
- return {
38
- content: [
39
- {
40
- text: `No migration document named "${filename}" found for package "${selectedPackage}". Call the 'migration-list' tool first to see the available filenames.",`,
41
- type: 'text',
42
- },
43
- ],
44
- };
38
+ return [
39
+ `No migration document named "${filename}" found for package "${selectedPackage}". Call the 'migration-list' tool first to see the available filenames.`,
40
+ ];
45
41
  }
46
- return {
47
- content: [
48
- {
49
- text: JSON.stringify(match, null, 2),
50
- type: 'text',
51
- },
52
- ],
53
- };
42
+ return [JSON.stringify(match, null, 2)];
54
43
  }
55
44
  // If no filename is given for components, return only the overview
56
45
  // index and the high‑level package docs (BREAKING_CHANGES / CHANGELOG)
@@ -65,25 +54,11 @@ export const migrationInfoTool = (server) => {
65
54
  // Keep overview and any non path‑guide docs
66
55
  return isOverview || !isPathGuide;
67
56
  });
68
- return {
69
- content: [
70
- {
71
- text: JSON.stringify(filtered, null, 2),
72
- type: 'text',
73
- },
74
- ],
75
- };
57
+ return [JSON.stringify(filtered, null, 2)];
76
58
  }
77
59
  // For non‑components packages, or when a filename is not used,
78
60
  // fall back to returning all documents. These sets are small
79
61
  // (typically CHANGELOG + BREAKING_CHANGES).
80
- return {
81
- content: [
82
- {
83
- text: JSON.stringify(metadata, null, 2),
84
- type: 'text',
85
- },
86
- ],
87
- };
88
- });
62
+ return [JSON.stringify(metadata, null, 2)];
63
+ }));
89
64
  };