@synergy-design-system/mcp 2.15.0 → 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 (531) hide show
  1. package/CHANGELOG.md +13 -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 -374
  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-pagination/component.angular.ts +0 -201
  312. package/metadata/packages/components/components/syn-pagination/component.react.ts +0 -56
  313. package/metadata/packages/components/components/syn-pagination/component.styles.ts +0 -128
  314. package/metadata/packages/components/components/syn-pagination/component.ts +0 -452
  315. package/metadata/packages/components/components/syn-pagination/component.vue +0 -144
  316. package/metadata/packages/components/components/syn-popup/component.angular.ts +0 -372
  317. package/metadata/packages/components/components/syn-popup/component.react.ts +0 -55
  318. package/metadata/packages/components/components/syn-popup/component.styles.ts +0 -70
  319. package/metadata/packages/components/components/syn-popup/component.ts +0 -582
  320. package/metadata/packages/components/components/syn-popup/component.vue +0 -233
  321. package/metadata/packages/components/components/syn-prio-nav/component.angular.ts +0 -67
  322. package/metadata/packages/components/components/syn-prio-nav/component.react.ts +0 -54
  323. package/metadata/packages/components/components/syn-prio-nav/component.styles.ts +0 -48
  324. package/metadata/packages/components/components/syn-prio-nav/component.ts +0 -288
  325. package/metadata/packages/components/components/syn-prio-nav/component.vue +0 -60
  326. package/metadata/packages/components/components/syn-progress-bar/component.angular.ts +0 -85
  327. package/metadata/packages/components/components/syn-progress-bar/component.custom.styles.ts +0 -24
  328. package/metadata/packages/components/components/syn-progress-bar/component.react.ts +0 -37
  329. package/metadata/packages/components/components/syn-progress-bar/component.styles.ts +0 -87
  330. package/metadata/packages/components/components/syn-progress-bar/component.ts +0 -67
  331. package/metadata/packages/components/components/syn-progress-bar/component.vue +0 -71
  332. package/metadata/packages/components/components/syn-progress-ring/component.angular.ts +0 -72
  333. package/metadata/packages/components/components/syn-progress-ring/component.custom.styles.ts +0 -19
  334. package/metadata/packages/components/components/syn-progress-ring/component.react.ts +0 -37
  335. package/metadata/packages/components/components/syn-progress-ring/component.styles.ts +0 -70
  336. package/metadata/packages/components/components/syn-progress-ring/component.ts +0 -83
  337. package/metadata/packages/components/components/syn-progress-ring/component.vue +0 -66
  338. package/metadata/packages/components/components/syn-radio/component.angular.ts +0 -122
  339. package/metadata/packages/components/components/syn-radio/component.react.ts +0 -48
  340. package/metadata/packages/components/components/syn-radio/component.styles.ts +0 -179
  341. package/metadata/packages/components/components/syn-radio/component.ts +0 -131
  342. package/metadata/packages/components/components/syn-radio/component.vue +0 -104
  343. package/metadata/packages/components/components/syn-radio-button/component.angular.ts +0 -123
  344. package/metadata/packages/components/components/syn-radio-button/component.react.ts +0 -49
  345. package/metadata/packages/components/components/syn-radio-button/component.styles.ts +0 -30
  346. package/metadata/packages/components/components/syn-radio-button/component.ts +0 -142
  347. package/metadata/packages/components/components/syn-radio-button/component.vue +0 -105
  348. package/metadata/packages/components/components/syn-radio-group/component.angular.ts +0 -204
  349. package/metadata/packages/components/components/syn-radio-group/component.react.ts +0 -56
  350. package/metadata/packages/components/components/syn-radio-group/component.styles.ts +0 -58
  351. package/metadata/packages/components/components/syn-radio-group/component.ts +0 -440
  352. package/metadata/packages/components/components/syn-radio-group/component.vue +0 -158
  353. package/metadata/packages/components/components/syn-range/component.angular.ts +0 -347
  354. package/metadata/packages/components/components/syn-range/component.react.ts +0 -92
  355. package/metadata/packages/components/components/syn-range/component.styles.ts +0 -310
  356. package/metadata/packages/components/components/syn-range/component.ts +0 -933
  357. package/metadata/packages/components/components/syn-range/component.vue +0 -245
  358. package/metadata/packages/components/components/syn-range-tick/component.angular.ts +0 -59
  359. package/metadata/packages/components/components/syn-range-tick/component.react.ts +0 -33
  360. package/metadata/packages/components/components/syn-range-tick/component.styles.ts +0 -34
  361. package/metadata/packages/components/components/syn-range-tick/component.ts +0 -50
  362. package/metadata/packages/components/components/syn-range-tick/component.vue +0 -57
  363. package/metadata/packages/components/components/syn-resize-observer/component.styles.ts +0 -9
  364. package/metadata/packages/components/components/syn-resize-observer/component.ts +0 -91
  365. package/metadata/packages/components/components/syn-select/component.angular.ts +0 -439
  366. package/metadata/packages/components/components/syn-select/component.react.ts +0 -101
  367. package/metadata/packages/components/components/syn-select/component.styles.ts +0 -380
  368. package/metadata/packages/components/components/syn-select/component.ts +0 -1056
  369. package/metadata/packages/components/components/syn-select/component.vue +0 -301
  370. package/metadata/packages/components/components/syn-side-nav/component.angular.ts +0 -210
  371. package/metadata/packages/components/components/syn-side-nav/component.react.ts +0 -95
  372. package/metadata/packages/components/components/syn-side-nav/component.styles.ts +0 -142
  373. package/metadata/packages/components/components/syn-side-nav/component.ts +0 -458
  374. package/metadata/packages/components/components/syn-side-nav/component.vue +0 -188
  375. package/metadata/packages/components/components/syn-spinner/component.angular.ts +0 -44
  376. package/metadata/packages/components/components/syn-spinner/component.custom.styles.ts +0 -32
  377. package/metadata/packages/components/components/syn-spinner/component.react.ts +0 -31
  378. package/metadata/packages/components/components/syn-spinner/component.styles.ts +0 -48
  379. package/metadata/packages/components/components/syn-spinner/component.ts +0 -35
  380. package/metadata/packages/components/components/syn-spinner/component.vue +0 -35
  381. package/metadata/packages/components/components/syn-switch/component.angular.ts +0 -257
  382. package/metadata/packages/components/components/syn-switch/component.react.ts +0 -63
  383. package/metadata/packages/components/components/syn-switch/component.styles.ts +0 -252
  384. package/metadata/packages/components/components/syn-switch/component.ts +0 -279
  385. package/metadata/packages/components/components/syn-switch/component.vue +0 -183
  386. package/metadata/packages/components/components/syn-tab/component.angular.ts +0 -109
  387. package/metadata/packages/components/components/syn-tab/component.custom.styles.ts +0 -94
  388. package/metadata/packages/components/components/syn-tab/component.react.ts +0 -42
  389. package/metadata/packages/components/components/syn-tab/component.styles.ts +0 -70
  390. package/metadata/packages/components/components/syn-tab/component.ts +0 -125
  391. package/metadata/packages/components/components/syn-tab/component.vue +0 -91
  392. package/metadata/packages/components/components/syn-tab-group/component.angular.ts +0 -166
  393. package/metadata/packages/components/components/syn-tab-group/component.custom.styles.ts +0 -218
  394. package/metadata/packages/components/components/syn-tab-group/component.react.ts +0 -58
  395. package/metadata/packages/components/components/syn-tab-group/component.styles.ts +0 -193
  396. package/metadata/packages/components/components/syn-tab-group/component.ts +0 -551
  397. package/metadata/packages/components/components/syn-tab-group/component.vue +0 -126
  398. package/metadata/packages/components/components/syn-tab-panel/component.angular.ts +0 -68
  399. package/metadata/packages/components/components/syn-tab-panel/component.custom.styles.ts +0 -8
  400. package/metadata/packages/components/components/syn-tab-panel/component.react.ts +0 -31
  401. package/metadata/packages/components/components/syn-tab-panel/component.styles.ts +0 -20
  402. package/metadata/packages/components/components/syn-tab-panel/component.ts +0 -60
  403. package/metadata/packages/components/components/syn-tab-panel/component.vue +0 -60
  404. package/metadata/packages/components/components/syn-tag/component.angular.ts +0 -83
  405. package/metadata/packages/components/components/syn-tag/component.custom.styles.ts +0 -121
  406. package/metadata/packages/components/components/syn-tag/component.react.ts +0 -43
  407. package/metadata/packages/components/components/syn-tag/component.styles.ts +0 -58
  408. package/metadata/packages/components/components/syn-tag/component.ts +0 -83
  409. package/metadata/packages/components/components/syn-tag/component.vue +0 -81
  410. package/metadata/packages/components/components/syn-tag-group/component.angular.ts +0 -83
  411. package/metadata/packages/components/components/syn-tag-group/component.react.ts +0 -33
  412. package/metadata/packages/components/components/syn-tag-group/component.styles.ts +0 -49
  413. package/metadata/packages/components/components/syn-tag-group/component.ts +0 -95
  414. package/metadata/packages/components/components/syn-tag-group/component.vue +0 -69
  415. package/metadata/packages/components/components/syn-textarea/component.angular.ts +0 -396
  416. package/metadata/packages/components/components/syn-textarea/component.react.ts +0 -60
  417. package/metadata/packages/components/components/syn-textarea/component.styles.ts +0 -208
  418. package/metadata/packages/components/components/syn-textarea/component.ts +0 -400
  419. package/metadata/packages/components/components/syn-textarea/component.vue +0 -244
  420. package/metadata/packages/components/components/syn-tooltip/component.angular.ts +0 -196
  421. package/metadata/packages/components/components/syn-tooltip/component.react.ts +0 -63
  422. package/metadata/packages/components/components/syn-tooltip/component.styles.ts +0 -62
  423. package/metadata/packages/components/components/syn-tooltip/component.ts +0 -312
  424. package/metadata/packages/components/components/syn-tooltip/component.vue +0 -150
  425. package/metadata/packages/components/components/syn-validate/component.angular.ts +0 -137
  426. package/metadata/packages/components/components/syn-validate/component.react.ts +0 -44
  427. package/metadata/packages/components/components/syn-validate/component.styles.ts +0 -9
  428. package/metadata/packages/components/components/syn-validate/component.ts +0 -590
  429. package/metadata/packages/components/components/syn-validate/component.vue +0 -107
  430. package/metadata/packages/components/migration/BREAKING_CHANGES.md +0 -908
  431. package/metadata/packages/components/static/CHANGELOG.md +0 -2155
  432. package/metadata/packages/components/static/LIMITATIONS.md +0 -433
  433. package/metadata/packages/components/static/README.md +0 -231
  434. package/metadata/packages/fonts/CHANGELOG.md +0 -57
  435. package/metadata/packages/fonts/README.md +0 -164
  436. package/metadata/packages/fonts/package.json +0 -72
  437. package/metadata/packages/react/LIMITATIONS.md +0 -31
  438. package/metadata/packages/react/README.md +0 -262
  439. package/metadata/packages/styles/BREAKING_CHANGES.md +0 -105
  440. package/metadata/packages/styles/CHANGELOG.md +0 -188
  441. package/metadata/packages/styles/README.md +0 -132
  442. package/metadata/packages/styles/index.css +0 -300
  443. package/metadata/packages/styles/link-list.css +0 -47
  444. package/metadata/packages/styles/link.css +0 -81
  445. package/metadata/packages/styles/tables.css +0 -132
  446. package/metadata/packages/styles/typography.css +0 -52
  447. package/metadata/packages/tokens/BREAKING_CHANGES.md +0 -180
  448. package/metadata/packages/tokens/CHANGELOG.md +0 -959
  449. package/metadata/packages/tokens/README.md +0 -435
  450. package/metadata/packages/tokens/dark.css +0 -454
  451. package/metadata/packages/tokens/index.js +0 -2224
  452. package/metadata/packages/tokens/light.css +0 -454
  453. package/metadata/packages/tokens/sick2018_dark.css +0 -454
  454. package/metadata/packages/tokens/sick2018_light.css +0 -454
  455. package/metadata/packages/tokens/sick2025_dark.css +0 -454
  456. package/metadata/packages/tokens/sick2025_light.css +0 -454
  457. package/metadata/packages/vue/LIMITATIONS.md +0 -53
  458. package/metadata/packages/vue/README.md +0 -252
  459. package/metadata/static/assets/index.md +0 -10
  460. package/metadata/static/components/index.md +0 -10
  461. package/metadata/static/components/syn-accordion/docs.md +0 -449
  462. package/metadata/static/components/syn-alert/docs.md +0 -282
  463. package/metadata/static/components/syn-badge/docs.md +0 -106
  464. package/metadata/static/components/syn-breadcrumb/docs.md +0 -265
  465. package/metadata/static/components/syn-breadcrumb-item/docs.md +0 -49
  466. package/metadata/static/components/syn-button/docs.md +0 -472
  467. package/metadata/static/components/syn-button-group/docs.md +0 -259
  468. package/metadata/static/components/syn-card/docs.md +0 -314
  469. package/metadata/static/components/syn-checkbox/docs.md +0 -176
  470. package/metadata/static/components/syn-combobox/docs.md +0 -2633
  471. package/metadata/static/components/syn-details/docs.md +0 -227
  472. package/metadata/static/components/syn-dialog/docs.md +0 -220
  473. package/metadata/static/components/syn-divider/docs.md +0 -77
  474. package/metadata/static/components/syn-drawer/docs.md +0 -269
  475. package/metadata/static/components/syn-dropdown/docs.md +0 -316
  476. package/metadata/static/components/syn-file/docs.md +0 -239
  477. package/metadata/static/components/syn-header/docs.md +0 -209
  478. package/metadata/static/components/syn-icon/docs.md +0 -177
  479. package/metadata/static/components/syn-icon-button/docs.md +0 -142
  480. package/metadata/static/components/syn-input/docs.md +0 -462
  481. package/metadata/static/components/syn-menu/docs.md +0 -162
  482. package/metadata/static/components/syn-menu-item/docs.md +0 -216
  483. package/metadata/static/components/syn-menu-label/docs.md +0 -29
  484. package/metadata/static/components/syn-nav-item/docs.md +0 -166
  485. package/metadata/static/components/syn-optgroup/docs.md +0 -167
  486. package/metadata/static/components/syn-option/docs.md +0 -137
  487. package/metadata/static/components/syn-pagination/docs.md +0 -102
  488. package/metadata/static/components/syn-popup/docs.md +0 -812
  489. package/metadata/static/components/syn-prio-nav/docs.md +0 -54
  490. package/metadata/static/components/syn-progress-bar/docs.md +0 -77
  491. package/metadata/static/components/syn-progress-ring/docs.md +0 -89
  492. package/metadata/static/components/syn-radio/docs.md +0 -178
  493. package/metadata/static/components/syn-radio-group/docs.md +0 -484
  494. package/metadata/static/components/syn-range/docs.md +0 -438
  495. package/metadata/static/components/syn-range-tick/docs.md +0 -110
  496. package/metadata/static/components/syn-select/docs.md +0 -811
  497. package/metadata/static/components/syn-side-nav/docs.md +0 -593
  498. package/metadata/static/components/syn-spinner/docs.md +0 -45
  499. package/metadata/static/components/syn-switch/docs.md +0 -121
  500. package/metadata/static/components/syn-tab/docs.md +0 -47
  501. package/metadata/static/components/syn-tab-group/docs.md +0 -1094
  502. package/metadata/static/components/syn-tab-panel/docs.md +0 -91
  503. package/metadata/static/components/syn-tag/docs.md +0 -50
  504. package/metadata/static/components/syn-tag-group/docs.md +0 -269
  505. package/metadata/static/components/syn-textarea/docs.md +0 -215
  506. package/metadata/static/components/syn-tooltip/docs.md +0 -217
  507. package/metadata/static/components/syn-validate/docs.md +0 -305
  508. package/metadata/static/fonts/index.md +0 -4
  509. package/metadata/static/migration/index.md +0 -57
  510. package/metadata/static/migration/v2-2018-to-v2-2025.md +0 -481
  511. package/metadata/static/migration/v2-2018-to-v3-2018.md +0 -147
  512. package/metadata/static/migration/v2-2018-to-v3-2025.md +0 -150
  513. package/metadata/static/migration/v2-2025-to-v3-2025.md +0 -133
  514. package/metadata/static/setup/icon-usage.md +0 -411
  515. package/metadata/static/setup/prerequisites.md +0 -319
  516. package/metadata/static/styles/syn-body.md +0 -5
  517. package/metadata/static/styles/syn-heading.md +0 -5
  518. package/metadata/static/styles/syn-link-list.md +0 -325
  519. package/metadata/static/styles/syn-link.md +0 -156
  520. package/metadata/static/styles/syn-table-cell.md +0 -127
  521. package/metadata/static/styles/syn-table.md +0 -201
  522. package/metadata/static/styles/syn-weight.md +0 -5
  523. package/metadata/static/templates/appshell.md +0 -2053
  524. package/metadata/static/templates/breadcrumb.md +0 -379
  525. package/metadata/static/templates/footer.md +0 -340
  526. package/metadata/static/templates/forms.md +0 -558
  527. package/metadata/static/templates/localization.md +0 -279
  528. package/metadata/static/templates/table.md +0 -1425
  529. package/metadata/static/templates/tag-group.md +0 -833
  530. /package/dist/{build/build.d.ts → utilities/logging-types.js} +0 -0
  531. /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
  };