@synergy-design-system/mcp 0.1.0 → 1.1.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 (450) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +539 -3
  3. package/dist/bin/create-checksum.d.ts +2 -0
  4. package/dist/bin/create-checksum.js +23 -0
  5. package/dist/bin/start.d.ts +2 -0
  6. package/dist/bin/start.js +8 -0
  7. package/dist/build/assets.d.ts +4 -0
  8. package/dist/build/assets.js +57 -0
  9. package/dist/build/build.d.ts +1 -0
  10. package/dist/build/build.js +33 -0
  11. package/dist/build/components.d.ts +4 -0
  12. package/dist/build/components.js +132 -0
  13. package/dist/build/frameworks.d.ts +4 -0
  14. package/dist/build/frameworks.js +61 -0
  15. package/dist/build/static.d.ts +4 -0
  16. package/dist/build/static.js +57 -0
  17. package/dist/build/styles.d.ts +4 -0
  18. package/dist/build/styles.js +58 -0
  19. package/dist/build/tokens.d.ts +4 -0
  20. package/dist/build/tokens.js +59 -0
  21. package/dist/server.d.ts +6 -0
  22. package/dist/server.js +20 -0
  23. package/dist/tools/asset-info.d.ts +8 -0
  24. package/dist/tools/asset-info.js +140 -0
  25. package/dist/tools/asset-list.d.ts +6 -0
  26. package/dist/tools/asset-list.js +40 -0
  27. package/dist/tools/component-info.d.ts +6 -0
  28. package/dist/tools/component-info.js +35 -0
  29. package/dist/tools/component-list.d.ts +7 -0
  30. package/dist/tools/component-list.js +42 -0
  31. package/dist/tools/davinci-migration.d.ts +3 -0
  32. package/dist/tools/davinci-migration.js +66 -0
  33. package/dist/tools/framework-info.d.ts +7 -0
  34. package/dist/tools/framework-info.js +59 -0
  35. package/dist/tools/index.d.ts +13 -0
  36. package/dist/tools/index.js +13 -0
  37. package/dist/tools/migration-info.d.ts +6 -0
  38. package/dist/tools/migration-info.js +27 -0
  39. package/dist/tools/styles-info.d.ts +7 -0
  40. package/dist/tools/styles-info.js +28 -0
  41. package/dist/tools/styles-list.d.ts +7 -0
  42. package/dist/tools/styles-list.js +42 -0
  43. package/dist/tools/template-info.d.ts +6 -0
  44. package/dist/tools/template-info.js +34 -0
  45. package/dist/tools/template-list.d.ts +7 -0
  46. package/dist/tools/template-list.js +42 -0
  47. package/dist/tools/tokens.d.ts +7 -0
  48. package/dist/tools/tokens.js +24 -0
  49. package/dist/tools/version.d.ts +7 -0
  50. package/dist/tools/version.js +51 -0
  51. package/dist/utilities/assets.d.ts +2 -0
  52. package/dist/utilities/assets.js +3 -0
  53. package/dist/utilities/checksum.d.ts +36 -0
  54. package/dist/utilities/checksum.js +93 -0
  55. package/dist/utilities/components.d.ts +25 -0
  56. package/dist/utilities/components.js +86 -0
  57. package/dist/utilities/config.d.ts +76 -0
  58. package/dist/utilities/config.js +77 -0
  59. package/dist/utilities/file.d.ts +12 -0
  60. package/dist/utilities/file.js +31 -0
  61. package/dist/utilities/index.d.ts +12 -0
  62. package/dist/utilities/index.js +12 -0
  63. package/dist/utilities/metadata.d.ts +28 -0
  64. package/dist/utilities/metadata.js +57 -0
  65. package/dist/utilities/migration.d.ts +1 -0
  66. package/dist/utilities/migration.js +10 -0
  67. package/dist/utilities/stdio.d.ts +14 -0
  68. package/dist/utilities/stdio.js +60 -0
  69. package/dist/utilities/storybook/build-docs.d.ts +2 -0
  70. package/dist/utilities/storybook/build-docs.js +42 -0
  71. package/dist/utilities/storybook/configs.d.ts +13 -0
  72. package/dist/utilities/storybook/configs.js +85 -0
  73. package/dist/utilities/storybook/docs-scraper.d.ts +26 -0
  74. package/dist/utilities/storybook/docs-scraper.js +97 -0
  75. package/dist/utilities/storybook/index.d.ts +5 -0
  76. package/dist/utilities/storybook/index.js +4 -0
  77. package/dist/utilities/storybook/scraper.d.ts +14 -0
  78. package/dist/utilities/storybook/scraper.js +196 -0
  79. package/dist/utilities/storybook/storybook-manager.d.ts +29 -0
  80. package/dist/utilities/storybook/storybook-manager.js +139 -0
  81. package/dist/utilities/storybook/types.d.ts +22 -0
  82. package/dist/utilities/storybook/types.js +1 -0
  83. package/dist/utilities/styles.d.ts +6 -0
  84. package/dist/utilities/styles.js +24 -0
  85. package/dist/utilities/templates.d.ts +12 -0
  86. package/dist/utilities/templates.js +28 -0
  87. package/dist/utilities/tokens.d.ts +1 -0
  88. package/dist/utilities/tokens.js +21 -0
  89. package/dist/utilities/version.d.ts +10 -0
  90. package/dist/utilities/version.js +21 -0
  91. package/metadata/checksum.txt +1 -0
  92. package/metadata/davinci-migration/migration-guide.md +1859 -0
  93. package/metadata/packages/angular/LIMITATIONS.md +32 -0
  94. package/metadata/packages/angular/README.md +393 -0
  95. package/metadata/packages/assets/CHANGELOG.md +196 -0
  96. package/metadata/packages/assets/README.md +79 -0
  97. package/metadata/packages/components/components/syn-accordion/component.angular.ts +80 -0
  98. package/metadata/packages/components/components/syn-accordion/component.react.ts +30 -0
  99. package/metadata/packages/components/components/syn-accordion/component.styles.ts +15 -0
  100. package/metadata/packages/components/components/syn-accordion/component.ts +111 -0
  101. package/metadata/packages/components/components/syn-accordion/component.vue +64 -0
  102. package/metadata/packages/components/components/syn-alert/component.angular.ts +158 -0
  103. package/metadata/packages/components/components/syn-alert/component.custom.styles.ts +90 -0
  104. package/metadata/packages/components/components/syn-alert/component.react.ts +60 -0
  105. package/metadata/packages/components/components/syn-alert/component.styles.ts +110 -0
  106. package/metadata/packages/components/components/syn-alert/component.ts +324 -0
  107. package/metadata/packages/components/components/syn-alert/component.vue +130 -0
  108. package/metadata/packages/components/components/syn-badge/component.angular.ts +53 -0
  109. package/metadata/packages/components/components/syn-badge/component.custom.styles.ts +61 -0
  110. package/metadata/packages/components/components/syn-badge/component.react.ts +29 -0
  111. package/metadata/packages/components/components/syn-badge/component.styles.ts +59 -0
  112. package/metadata/packages/components/components/syn-badge/component.ts +65 -0
  113. package/metadata/packages/components/components/syn-badge/component.vue +53 -0
  114. package/metadata/packages/components/components/syn-breadcrumb/component.angular.ts +58 -0
  115. package/metadata/packages/components/components/syn-breadcrumb/component.custom.styles.ts +5 -0
  116. package/metadata/packages/components/components/syn-breadcrumb/component.react.ts +32 -0
  117. package/metadata/packages/components/components/syn-breadcrumb/component.styles.ts +18 -0
  118. package/metadata/packages/components/components/syn-breadcrumb/component.ts +110 -0
  119. package/metadata/packages/components/components/syn-breadcrumb/component.vue +58 -0
  120. package/metadata/packages/components/components/syn-breadcrumb-item/component.angular.ts +88 -0
  121. package/metadata/packages/components/components/syn-breadcrumb-item/component.custom.styles.ts +74 -0
  122. package/metadata/packages/components/components/syn-breadcrumb-item/component.react.ts +37 -0
  123. package/metadata/packages/components/components/syn-breadcrumb-item/component.styles.ts +95 -0
  124. package/metadata/packages/components/components/syn-breadcrumb-item/component.ts +139 -0
  125. package/metadata/packages/components/components/syn-breadcrumb-item/component.vue +76 -0
  126. package/metadata/packages/components/components/syn-button/component.angular.ts +318 -0
  127. package/metadata/packages/components/components/syn-button/component.custom.styles.ts +206 -0
  128. package/metadata/packages/components/components/syn-button/component.react.ts +56 -0
  129. package/metadata/packages/components/components/syn-button/component.styles.ts +368 -0
  130. package/metadata/packages/components/components/syn-button/component.ts +322 -0
  131. package/metadata/packages/components/components/syn-button/component.vue +204 -0
  132. package/metadata/packages/components/components/syn-button-group/component.angular.ts +55 -0
  133. package/metadata/packages/components/components/syn-button-group/component.react.ts +29 -0
  134. package/metadata/packages/components/components/syn-button-group/component.styles.ts +21 -0
  135. package/metadata/packages/components/components/syn-button-group/component.ts +103 -0
  136. package/metadata/packages/components/components/syn-button-group/component.vue +55 -0
  137. package/metadata/packages/components/components/syn-card/component.angular.ts +69 -0
  138. package/metadata/packages/components/components/syn-card/component.custom.styles.ts +55 -0
  139. package/metadata/packages/components/components/syn-card/component.react.ts +41 -0
  140. package/metadata/packages/components/components/syn-card/component.styles.ts +77 -0
  141. package/metadata/packages/components/components/syn-card/component.ts +68 -0
  142. package/metadata/packages/components/components/syn-card/component.vue +67 -0
  143. package/metadata/packages/components/components/syn-checkbox/component.angular.ts +260 -0
  144. package/metadata/packages/components/components/syn-checkbox/component.custom.styles.ts +53 -0
  145. package/metadata/packages/components/components/syn-checkbox/component.react.ts +64 -0
  146. package/metadata/packages/components/components/syn-checkbox/component.styles.ts +130 -0
  147. package/metadata/packages/components/components/syn-checkbox/component.ts +291 -0
  148. package/metadata/packages/components/components/syn-checkbox/component.vue +186 -0
  149. package/metadata/packages/components/components/syn-combobox/component.angular.ts +436 -0
  150. package/metadata/packages/components/components/syn-combobox/component.custom.styles.ts +35 -0
  151. package/metadata/packages/components/components/syn-combobox/component.react.ts +109 -0
  152. package/metadata/packages/components/components/syn-combobox/component.styles.ts +406 -0
  153. package/metadata/packages/components/components/syn-combobox/component.ts +1139 -0
  154. package/metadata/packages/components/components/syn-combobox/component.vue +304 -0
  155. package/metadata/packages/components/components/syn-details/component.angular.ts +184 -0
  156. package/metadata/packages/components/components/syn-details/component.custom.styles.ts +140 -0
  157. package/metadata/packages/components/components/syn-details/component.react.ts +63 -0
  158. package/metadata/packages/components/components/syn-details/component.styles.ts +90 -0
  159. package/metadata/packages/components/components/syn-details/component.ts +266 -0
  160. package/metadata/packages/components/components/syn-details/component.vue +134 -0
  161. package/metadata/packages/components/components/syn-dialog/component.angular.ts +201 -0
  162. package/metadata/packages/components/components/syn-dialog/component.custom.styles.ts +54 -0
  163. package/metadata/packages/components/components/syn-dialog/component.react.ts +91 -0
  164. package/metadata/packages/components/components/syn-dialog/component.styles.ts +129 -0
  165. package/metadata/packages/components/components/syn-dialog/component.ts +366 -0
  166. package/metadata/packages/components/components/syn-dialog/component.vue +169 -0
  167. package/metadata/packages/components/components/syn-divider/component.angular.ts +55 -0
  168. package/metadata/packages/components/components/syn-divider/component.custom.styles.ts +8 -0
  169. package/metadata/packages/components/components/syn-divider/component.react.ts +29 -0
  170. package/metadata/packages/components/components/syn-divider/component.styles.ts +31 -0
  171. package/metadata/packages/components/components/syn-divider/component.ts +42 -0
  172. package/metadata/packages/components/components/syn-divider/component.vue +51 -0
  173. package/metadata/packages/components/components/syn-drawer/component.angular.ts +234 -0
  174. package/metadata/packages/components/components/syn-drawer/component.custom.styles.ts +78 -0
  175. package/metadata/packages/components/components/syn-drawer/component.react.ts +98 -0
  176. package/metadata/packages/components/components/syn-drawer/component.styles.ts +165 -0
  177. package/metadata/packages/components/components/syn-drawer/component.ts +496 -0
  178. package/metadata/packages/components/components/syn-drawer/component.vue +188 -0
  179. package/metadata/packages/components/components/syn-dropdown/component.angular.ts +223 -0
  180. package/metadata/packages/components/components/syn-dropdown/component.custom.styles.ts +5 -0
  181. package/metadata/packages/components/components/syn-dropdown/component.react.ts +59 -0
  182. package/metadata/packages/components/components/syn-dropdown/component.styles.ts +60 -0
  183. package/metadata/packages/components/components/syn-dropdown/component.ts +484 -0
  184. package/metadata/packages/components/components/syn-dropdown/component.vue +159 -0
  185. package/metadata/packages/components/components/syn-file/component.angular.ts +359 -0
  186. package/metadata/packages/components/components/syn-file/component.react.ts +85 -0
  187. package/metadata/packages/components/components/syn-file/component.styles.ts +179 -0
  188. package/metadata/packages/components/components/syn-file/component.ts +631 -0
  189. package/metadata/packages/components/components/syn-file/component.vue +251 -0
  190. package/metadata/packages/components/components/syn-header/component.angular.ts +132 -0
  191. package/metadata/packages/components/components/syn-header/component.react.ts +65 -0
  192. package/metadata/packages/components/components/syn-header/component.styles.ts +128 -0
  193. package/metadata/packages/components/components/syn-header/component.ts +260 -0
  194. package/metadata/packages/components/components/syn-header/component.vue +117 -0
  195. package/metadata/packages/components/components/syn-icon/component.angular.ts +115 -0
  196. package/metadata/packages/components/components/syn-icon/component.custom.styles.ts +5 -0
  197. package/metadata/packages/components/components/syn-icon/component.react.ts +41 -0
  198. package/metadata/packages/components/components/syn-icon/component.styles.ts +25 -0
  199. package/metadata/packages/components/components/syn-icon/component.ts +234 -0
  200. package/metadata/packages/components/components/syn-icon/component.vue +100 -0
  201. package/metadata/packages/components/components/syn-icon-button/component.angular.ts +185 -0
  202. package/metadata/packages/components/components/syn-icon-button/component.custom.styles.ts +68 -0
  203. package/metadata/packages/components/components/syn-icon-button/component.react.ts +42 -0
  204. package/metadata/packages/components/components/syn-icon-button/component.styles.ts +59 -0
  205. package/metadata/packages/components/components/syn-icon-button/component.ts +154 -0
  206. package/metadata/packages/components/components/syn-icon-button/component.vue +132 -0
  207. package/metadata/packages/components/components/syn-input/component.angular.ts +606 -0
  208. package/metadata/packages/components/components/syn-input/component.custom.styles.ts +278 -0
  209. package/metadata/packages/components/components/syn-input/component.react.ts +91 -0
  210. package/metadata/packages/components/components/syn-input/component.styles.ts +287 -0
  211. package/metadata/packages/components/components/syn-input/component.ts +942 -0
  212. package/metadata/packages/components/components/syn-input/component.vue +370 -0
  213. package/metadata/packages/components/components/syn-menu/component.angular.ts +52 -0
  214. package/metadata/packages/components/components/syn-menu/component.custom.styles.ts +29 -0
  215. package/metadata/packages/components/components/syn-menu/component.react.ts +36 -0
  216. package/metadata/packages/components/components/syn-menu/component.styles.ts +27 -0
  217. package/metadata/packages/components/components/syn-menu/component.ts +199 -0
  218. package/metadata/packages/components/components/syn-menu/component.vue +48 -0
  219. package/metadata/packages/components/components/syn-menu-item/component.angular.ts +121 -0
  220. package/metadata/packages/components/components/syn-menu-item/component.custom.styles.ts +128 -0
  221. package/metadata/packages/components/components/syn-menu-item/component.react.ts +45 -0
  222. package/metadata/packages/components/components/syn-menu-item/component.styles.ts +164 -0
  223. package/metadata/packages/components/components/syn-menu-item/component.ts +209 -0
  224. package/metadata/packages/components/components/syn-menu-item/component.vue +91 -0
  225. package/metadata/packages/components/components/syn-menu-label/component.angular.ts +48 -0
  226. package/metadata/packages/components/components/syn-menu-label/component.custom.styles.ts +24 -0
  227. package/metadata/packages/components/components/syn-menu-label/component.react.ts +35 -0
  228. package/metadata/packages/components/components/syn-menu-label/component.styles.ts +28 -0
  229. package/metadata/packages/components/components/syn-menu-label/component.ts +54 -0
  230. package/metadata/packages/components/components/syn-menu-label/component.vue +41 -0
  231. package/metadata/packages/components/components/syn-nav-item/component.angular.ts +242 -0
  232. package/metadata/packages/components/components/syn-nav-item/component.react.ts +82 -0
  233. package/metadata/packages/components/components/syn-nav-item/component.styles.ts +337 -0
  234. package/metadata/packages/components/components/syn-nav-item/component.ts +492 -0
  235. package/metadata/packages/components/components/syn-nav-item/component.vue +182 -0
  236. package/metadata/packages/components/components/syn-optgroup/component.angular.ts +79 -0
  237. package/metadata/packages/components/components/syn-optgroup/component.react.ts +41 -0
  238. package/metadata/packages/components/components/syn-optgroup/component.styles.ts +59 -0
  239. package/metadata/packages/components/components/syn-optgroup/component.ts +176 -0
  240. package/metadata/packages/components/components/syn-optgroup/component.vue +71 -0
  241. package/metadata/packages/components/components/syn-option/component.angular.ts +79 -0
  242. package/metadata/packages/components/components/syn-option/component.custom.styles.ts +81 -0
  243. package/metadata/packages/components/components/syn-option/component.react.ts +37 -0
  244. package/metadata/packages/components/components/syn-option/component.styles.ts +96 -0
  245. package/metadata/packages/components/components/syn-option/component.ts +174 -0
  246. package/metadata/packages/components/components/syn-option/component.vue +71 -0
  247. package/metadata/packages/components/components/syn-popup/component.angular.ts +385 -0
  248. package/metadata/packages/components/components/syn-popup/component.react.ts +55 -0
  249. package/metadata/packages/components/components/syn-popup/component.styles.ts +70 -0
  250. package/metadata/packages/components/components/syn-popup/component.ts +583 -0
  251. package/metadata/packages/components/components/syn-popup/component.vue +240 -0
  252. package/metadata/packages/components/components/syn-prio-nav/component.angular.ts +67 -0
  253. package/metadata/packages/components/components/syn-prio-nav/component.react.ts +54 -0
  254. package/metadata/packages/components/components/syn-prio-nav/component.styles.ts +48 -0
  255. package/metadata/packages/components/components/syn-prio-nav/component.ts +287 -0
  256. package/metadata/packages/components/components/syn-prio-nav/component.vue +60 -0
  257. package/metadata/packages/components/components/syn-progress-bar/component.angular.ts +85 -0
  258. package/metadata/packages/components/components/syn-progress-bar/component.custom.styles.ts +22 -0
  259. package/metadata/packages/components/components/syn-progress-bar/component.react.ts +37 -0
  260. package/metadata/packages/components/components/syn-progress-bar/component.styles.ts +94 -0
  261. package/metadata/packages/components/components/syn-progress-bar/component.ts +74 -0
  262. package/metadata/packages/components/components/syn-progress-bar/component.vue +71 -0
  263. package/metadata/packages/components/components/syn-progress-ring/component.angular.ts +72 -0
  264. package/metadata/packages/components/components/syn-progress-ring/component.custom.styles.ts +17 -0
  265. package/metadata/packages/components/components/syn-progress-ring/component.react.ts +37 -0
  266. package/metadata/packages/components/components/syn-progress-ring/component.styles.ts +77 -0
  267. package/metadata/packages/components/components/syn-progress-ring/component.ts +90 -0
  268. package/metadata/packages/components/components/syn-progress-ring/component.vue +66 -0
  269. package/metadata/packages/components/components/syn-radio/component.angular.ts +109 -0
  270. package/metadata/packages/components/components/syn-radio/component.custom.styles.ts +73 -0
  271. package/metadata/packages/components/components/syn-radio/component.react.ts +48 -0
  272. package/metadata/packages/components/components/syn-radio/component.styles.ts +124 -0
  273. package/metadata/packages/components/components/syn-radio/component.ts +129 -0
  274. package/metadata/packages/components/components/syn-radio/component.vue +99 -0
  275. package/metadata/packages/components/components/syn-radio-button/component.angular.ts +123 -0
  276. package/metadata/packages/components/components/syn-radio-button/component.react.ts +49 -0
  277. package/metadata/packages/components/components/syn-radio-button/component.styles.ts +37 -0
  278. package/metadata/packages/components/components/syn-radio-button/component.ts +149 -0
  279. package/metadata/packages/components/components/syn-radio-button/component.vue +105 -0
  280. package/metadata/packages/components/components/syn-radio-group/component.angular.ts +204 -0
  281. package/metadata/packages/components/components/syn-radio-group/component.custom.styles.ts +22 -0
  282. package/metadata/packages/components/components/syn-radio-group/component.react.ts +56 -0
  283. package/metadata/packages/components/components/syn-radio-group/component.styles.ts +44 -0
  284. package/metadata/packages/components/components/syn-radio-group/component.ts +418 -0
  285. package/metadata/packages/components/components/syn-radio-group/component.vue +158 -0
  286. package/metadata/packages/components/components/syn-range/component.angular.ts +334 -0
  287. package/metadata/packages/components/components/syn-range/component.react.ts +92 -0
  288. package/metadata/packages/components/components/syn-range/component.styles.ts +284 -0
  289. package/metadata/packages/components/components/syn-range/component.ts +878 -0
  290. package/metadata/packages/components/components/syn-range/component.vue +240 -0
  291. package/metadata/packages/components/components/syn-range-tick/component.angular.ts +59 -0
  292. package/metadata/packages/components/components/syn-range-tick/component.react.ts +33 -0
  293. package/metadata/packages/components/components/syn-range-tick/component.styles.ts +34 -0
  294. package/metadata/packages/components/components/syn-range-tick/component.ts +50 -0
  295. package/metadata/packages/components/components/syn-range-tick/component.vue +57 -0
  296. package/metadata/packages/components/components/syn-resize-observer/component.styles.ts +16 -0
  297. package/metadata/packages/components/components/syn-resize-observer/component.ts +98 -0
  298. package/metadata/packages/components/components/syn-select/component.angular.ts +441 -0
  299. package/metadata/packages/components/components/syn-select/component.custom.styles.ts +176 -0
  300. package/metadata/packages/components/components/syn-select/component.react.ts +101 -0
  301. package/metadata/packages/components/components/syn-select/component.styles.ts +316 -0
  302. package/metadata/packages/components/components/syn-select/component.ts +1054 -0
  303. package/metadata/packages/components/components/syn-select/component.vue +303 -0
  304. package/metadata/packages/components/components/syn-side-nav/component.angular.ts +231 -0
  305. package/metadata/packages/components/components/syn-side-nav/component.react.ts +95 -0
  306. package/metadata/packages/components/components/syn-side-nav/component.styles.ts +160 -0
  307. package/metadata/packages/components/components/syn-side-nav/component.ts +492 -0
  308. package/metadata/packages/components/components/syn-side-nav/component.vue +201 -0
  309. package/metadata/packages/components/components/syn-spinner/component.angular.ts +44 -0
  310. package/metadata/packages/components/components/syn-spinner/component.custom.styles.ts +31 -0
  311. package/metadata/packages/components/components/syn-spinner/component.react.ts +31 -0
  312. package/metadata/packages/components/components/syn-spinner/component.styles.ts +55 -0
  313. package/metadata/packages/components/components/syn-spinner/component.ts +42 -0
  314. package/metadata/packages/components/components/syn-spinner/component.vue +35 -0
  315. package/metadata/packages/components/components/syn-switch/component.angular.ts +244 -0
  316. package/metadata/packages/components/components/syn-switch/component.custom.styles.ts +112 -0
  317. package/metadata/packages/components/components/syn-switch/component.react.ts +63 -0
  318. package/metadata/packages/components/components/syn-switch/component.styles.ts +177 -0
  319. package/metadata/packages/components/components/syn-switch/component.ts +274 -0
  320. package/metadata/packages/components/components/syn-switch/component.vue +178 -0
  321. package/metadata/packages/components/components/syn-tab/component.angular.ts +109 -0
  322. package/metadata/packages/components/components/syn-tab/component.custom.styles.ts +92 -0
  323. package/metadata/packages/components/components/syn-tab/component.react.ts +42 -0
  324. package/metadata/packages/components/components/syn-tab/component.styles.ts +77 -0
  325. package/metadata/packages/components/components/syn-tab/component.ts +132 -0
  326. package/metadata/packages/components/components/syn-tab/component.vue +91 -0
  327. package/metadata/packages/components/components/syn-tab-group/component.angular.ts +166 -0
  328. package/metadata/packages/components/components/syn-tab-group/component.custom.styles.ts +248 -0
  329. package/metadata/packages/components/components/syn-tab-group/component.react.ts +58 -0
  330. package/metadata/packages/components/components/syn-tab-group/component.styles.ts +200 -0
  331. package/metadata/packages/components/components/syn-tab-group/component.ts +557 -0
  332. package/metadata/packages/components/components/syn-tab-group/component.vue +126 -0
  333. package/metadata/packages/components/components/syn-tab-panel/component.angular.ts +68 -0
  334. package/metadata/packages/components/components/syn-tab-panel/component.custom.styles.ts +8 -0
  335. package/metadata/packages/components/components/syn-tab-panel/component.react.ts +31 -0
  336. package/metadata/packages/components/components/syn-tab-panel/component.styles.ts +27 -0
  337. package/metadata/packages/components/components/syn-tab-panel/component.ts +67 -0
  338. package/metadata/packages/components/components/syn-tab-panel/component.vue +60 -0
  339. package/metadata/packages/components/components/syn-tag/component.angular.ts +83 -0
  340. package/metadata/packages/components/components/syn-tag/component.custom.styles.ts +120 -0
  341. package/metadata/packages/components/components/syn-tag/component.react.ts +43 -0
  342. package/metadata/packages/components/components/syn-tag/component.styles.ts +65 -0
  343. package/metadata/packages/components/components/syn-tag/component.ts +90 -0
  344. package/metadata/packages/components/components/syn-tag/component.vue +81 -0
  345. package/metadata/packages/components/components/syn-textarea/component.angular.ts +394 -0
  346. package/metadata/packages/components/components/syn-textarea/component.custom.styles.ts +18 -0
  347. package/metadata/packages/components/components/syn-textarea/component.react.ts +60 -0
  348. package/metadata/packages/components/components/syn-textarea/component.styles.ts +187 -0
  349. package/metadata/packages/components/components/syn-textarea/component.ts +401 -0
  350. package/metadata/packages/components/components/syn-textarea/component.vue +244 -0
  351. package/metadata/packages/components/components/syn-tooltip/component.angular.ts +212 -0
  352. package/metadata/packages/components/components/syn-tooltip/component.custom.styles.ts +13 -0
  353. package/metadata/packages/components/components/syn-tooltip/component.react.ts +63 -0
  354. package/metadata/packages/components/components/syn-tooltip/component.styles.ts +64 -0
  355. package/metadata/packages/components/components/syn-tooltip/component.ts +319 -0
  356. package/metadata/packages/components/components/syn-tooltip/component.vue +158 -0
  357. package/metadata/packages/components/components/syn-validate/component.angular.ts +128 -0
  358. package/metadata/packages/components/components/syn-validate/component.react.ts +36 -0
  359. package/metadata/packages/components/components/syn-validate/component.styles.ts +9 -0
  360. package/metadata/packages/components/components/syn-validate/component.ts +437 -0
  361. package/metadata/packages/components/components/syn-validate/component.vue +98 -0
  362. package/metadata/packages/components/migration/BREAKING_CHANGES.md +489 -0
  363. package/metadata/packages/components/migration/migration-synergy-v3.md +50 -0
  364. package/metadata/packages/components/static/CHANGELOG.md +1107 -0
  365. package/metadata/packages/components/static/LIMITATIONS.md +269 -0
  366. package/metadata/packages/components/static/README.md +248 -0
  367. package/metadata/packages/react/LIMITATIONS.md +31 -0
  368. package/metadata/packages/react/README.md +262 -0
  369. package/metadata/packages/styles/CHANGELOG.md +76 -0
  370. package/metadata/packages/styles/README.md +132 -0
  371. package/metadata/packages/styles/index.css +309 -0
  372. package/metadata/packages/styles/link-list.css +47 -0
  373. package/metadata/packages/styles/link.css +79 -0
  374. package/metadata/packages/styles/tables.css +143 -0
  375. package/metadata/packages/styles/typography.css +52 -0
  376. package/metadata/packages/tokens/CHANGELOG.md +431 -0
  377. package/metadata/packages/tokens/README.md +408 -0
  378. package/metadata/packages/tokens/dark.css +268 -0
  379. package/metadata/packages/tokens/index.js +1294 -0
  380. package/metadata/packages/tokens/light.css +268 -0
  381. package/metadata/packages/vue/LIMITATIONS.md +53 -0
  382. package/metadata/packages/vue/README.md +252 -0
  383. package/metadata/static/angular/index.md +6 -0
  384. package/metadata/static/assets/index.md +10 -0
  385. package/metadata/static/component-info/index.md +24 -0
  386. package/metadata/static/component-list/index.md +34 -0
  387. package/metadata/static/components/index.md +10 -0
  388. package/metadata/static/components/syn-accordion/docs.md +428 -0
  389. package/metadata/static/components/syn-alert/docs.md +231 -0
  390. package/metadata/static/components/syn-badge/docs.md +128 -0
  391. package/metadata/static/components/syn-breadcrumb/docs.md +265 -0
  392. package/metadata/static/components/syn-breadcrumb-item/docs.md +49 -0
  393. package/metadata/static/components/syn-button/docs.md +402 -0
  394. package/metadata/static/components/syn-card/docs.md +273 -0
  395. package/metadata/static/components/syn-checkbox/docs.md +77 -0
  396. package/metadata/static/components/syn-combobox/docs.md +2402 -0
  397. package/metadata/static/components/syn-details/docs.md +220 -0
  398. package/metadata/static/components/syn-dialog/docs.md +222 -0
  399. package/metadata/static/components/syn-divider/docs.md +77 -0
  400. package/metadata/static/components/syn-drawer/docs.md +271 -0
  401. package/metadata/static/components/syn-dropdown/docs.md +316 -0
  402. package/metadata/static/components/syn-file/docs.md +215 -0
  403. package/metadata/static/components/syn-header/docs.md +134 -0
  404. package/metadata/static/components/syn-icon/docs.md +177 -0
  405. package/metadata/static/components/syn-icon-button/docs.md +142 -0
  406. package/metadata/static/components/syn-input/docs.md +460 -0
  407. package/metadata/static/components/syn-menu/docs.md +162 -0
  408. package/metadata/static/components/syn-menu-item/docs.md +196 -0
  409. package/metadata/static/components/syn-menu-label/docs.md +29 -0
  410. package/metadata/static/components/syn-nav-item/docs.md +161 -0
  411. package/metadata/static/components/syn-optgroup/docs.md +167 -0
  412. package/metadata/static/components/syn-option/docs.md +137 -0
  413. package/metadata/static/components/syn-prio-nav/docs.md +54 -0
  414. package/metadata/static/components/syn-progress-bar/docs.md +77 -0
  415. package/metadata/static/components/syn-progress-ring/docs.md +89 -0
  416. package/metadata/static/components/syn-radio/docs.md +123 -0
  417. package/metadata/static/components/syn-radio-group/docs.md +363 -0
  418. package/metadata/static/components/syn-range/docs.md +419 -0
  419. package/metadata/static/components/syn-range-tick/docs.md +110 -0
  420. package/metadata/static/components/syn-select/docs.md +730 -0
  421. package/metadata/static/components/syn-side-nav/docs.md +593 -0
  422. package/metadata/static/components/syn-spinner/docs.md +45 -0
  423. package/metadata/static/components/syn-switch/docs.md +74 -0
  424. package/metadata/static/components/syn-tab/docs.md +47 -0
  425. package/metadata/static/components/syn-tab-group/docs.md +1094 -0
  426. package/metadata/static/components/syn-tab-panel/docs.md +91 -0
  427. package/metadata/static/components/syn-tag/docs.md +50 -0
  428. package/metadata/static/components/syn-textarea/docs.md +215 -0
  429. package/metadata/static/components/syn-tooltip/docs.md +144 -0
  430. package/metadata/static/components/syn-validate/docs.md +225 -0
  431. package/metadata/static/migration/index.md +16 -0
  432. package/metadata/static/react/index.md +8 -0
  433. package/metadata/static/setup/icon-usage.md +276 -0
  434. package/metadata/static/setup/prerequisites.md +171 -0
  435. package/metadata/static/styles/index.md +11 -0
  436. package/metadata/static/styles/syn-body.md +5 -0
  437. package/metadata/static/styles/syn-heading.md +5 -0
  438. package/metadata/static/styles/syn-link-list.md +325 -0
  439. package/metadata/static/styles/syn-link.md +156 -0
  440. package/metadata/static/styles/syn-table-cell.md +125 -0
  441. package/metadata/static/styles/syn-table.md +201 -0
  442. package/metadata/static/styles/syn-weight.md +5 -0
  443. package/metadata/static/templates/appshell.md +2061 -0
  444. package/metadata/static/templates/breadcrumb.md +375 -0
  445. package/metadata/static/templates/footer.md +342 -0
  446. package/metadata/static/templates/forms.md +369 -0
  447. package/metadata/static/templates/index.md +9 -0
  448. package/metadata/static/templates/table.md +1426 -0
  449. package/metadata/static/vue/index.md +6 -0
  450. package/package.json +109 -4
@@ -0,0 +1,33 @@
1
+ import ora from 'ora';
2
+ import { buildAssets } from './assets.js';
3
+ import { buildComponents } from './components.js';
4
+ import { buildFrameworkFiles } from './frameworks.js';
5
+ import { buildStaticFiles } from './static.js';
6
+ import { buildTokens } from './tokens.js';
7
+ import { buildStyles } from './styles.js';
8
+ const spinner = ora({
9
+ prefixText: 'MCP:',
10
+ text: 'Generating static metadata...',
11
+ });
12
+ const build = async () => {
13
+ spinner.start();
14
+ await buildAssets();
15
+ await buildComponents();
16
+ await buildFrameworkFiles();
17
+ await buildTokens();
18
+ await buildStyles();
19
+ // Should be run last as we will copy files where we see fit and paths must exist
20
+ await buildStaticFiles();
21
+ };
22
+ build()
23
+ .then(() => {
24
+ spinner.succeed('Static metadata generated successfully.');
25
+ process.exit(0);
26
+ })
27
+ .catch((error) => {
28
+ spinner.fail(`Failed to generate static metadata. Error: ${error}`);
29
+ process.exit(1);
30
+ })
31
+ .finally(() => {
32
+ spinner.stop();
33
+ });
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Sets up all data from the components and framework packages and adds them to the static metadata.
3
+ */
4
+ export declare const buildComponents: () => Promise<void>;
@@ -0,0 +1,132 @@
1
+ import { existsSync, mkdirSync } from 'node:fs';
2
+ import { copyFile } from 'node:fs/promises';
3
+ import { basename, join } from 'node:path';
4
+ import { rimraf } from 'rimraf';
5
+ import ora from 'ora';
6
+ import { pascalCase } from 'change-case';
7
+ import { componentPath, componentStaticPath, createPath, getAbsolutePath, } from '../utilities/index.js';
8
+ const directories = {
9
+ angularPackageDir: getAbsolutePath('../../../../packages/angular'),
10
+ componentDir: getAbsolutePath('../../../../packages/components'),
11
+ reactPackageDir: getAbsolutePath('../../../../packages/react'),
12
+ vuePackageDir: getAbsolutePath('../../../../packages/vue'),
13
+ };
14
+ /**
15
+ * Gets the file list for a specific component.
16
+ * @param component The module to get the file list for.
17
+ * @returns An array of tuples that define file paths related to the component.
18
+ */
19
+ const getComponentFileList = (component) => {
20
+ const { tagName, tagNameWithoutPrefix, } = component;
21
+ const staticFiles = [];
22
+ const vueComponentName = pascalCase([
23
+ 'syn',
24
+ 'vue',
25
+ tagNameWithoutPrefix,
26
+ ].join('-'));
27
+ // Dynamic paths to generated wrappers
28
+ const angularFile = `${directories.angularPackageDir}/components/${tagNameWithoutPrefix}/${tagNameWithoutPrefix}.component.ts`;
29
+ const componentFile = `${directories.componentDir}/src/components/${tagNameWithoutPrefix}/${tagNameWithoutPrefix}.component.ts`;
30
+ const reactFile = `${directories.reactPackageDir}/src/components/${tagNameWithoutPrefix}.ts`;
31
+ const vueFile = `${directories.vuePackageDir}/src/components/${vueComponentName}.vue`;
32
+ // Add support for styles
33
+ const defaultStyleFile = `${directories.componentDir}/src/components/${tagNameWithoutPrefix}/${tagNameWithoutPrefix}.styles.ts`;
34
+ const customStyleFile = `${directories.componentDir}/src/components/${tagNameWithoutPrefix}/${tagNameWithoutPrefix}.custom.styles.ts`;
35
+ staticFiles.push([
36
+ angularFile,
37
+ 'component.angular.ts',
38
+ ]);
39
+ staticFiles.push([
40
+ componentFile,
41
+ 'component.ts',
42
+ ]);
43
+ staticFiles.push([
44
+ reactFile,
45
+ 'component.react.ts',
46
+ ]);
47
+ staticFiles.push([
48
+ vueFile,
49
+ 'component.vue',
50
+ ]);
51
+ staticFiles.push([
52
+ defaultStyleFile,
53
+ 'component.styles.ts',
54
+ ]);
55
+ staticFiles.push([
56
+ customStyleFile,
57
+ 'component.custom.styles.ts',
58
+ ]);
59
+ return {
60
+ componentName: tagName,
61
+ entries: staticFiles
62
+ .filter(([fileName]) => existsSync(fileName)),
63
+ };
64
+ };
65
+ /**
66
+ * Sets up all data from the components and framework packages and adds them to the static metadata.
67
+ */
68
+ export const buildComponents = async () => {
69
+ const spinner = ora({
70
+ prefixText: 'Components:',
71
+ text: 'Generating static metadata...',
72
+ }).start();
73
+ try {
74
+ // Import the custom elements manifest
75
+ const customElementsManifestImport = await import('@synergy-design-system/components/custom-elements.json', {
76
+ with: { type: 'json' },
77
+ });
78
+ const customElementsManifest = customElementsManifestImport.default?.modules;
79
+ spinner.text = 'Cleaning up old metadata...';
80
+ await rimraf(componentPath);
81
+ spinner.succeed('Old metadata cleaned up.');
82
+ spinner.text = 'Creating new metadata directory...';
83
+ // Create the components directory if it doesn't exist
84
+ await createPath(componentPath);
85
+ spinner.text = 'Generating components metadata...';
86
+ // Create and populate the metadata for each component
87
+ const componentMetadata = customElementsManifest
88
+ .filter(module => module.declarations && module.declarations.length === 1)
89
+ .filter(module => module
90
+ .declarations
91
+ .some(declaration => declaration.tagName))
92
+ .map(module => module.declarations[0])
93
+ .map(getComponentFileList)
94
+ .flat()
95
+ .map(({ componentName, entries }) => {
96
+ const absoluteComponentPath = join(componentPath, componentName);
97
+ // Create the component directory if it doesn't exist
98
+ if (!existsSync(absoluteComponentPath)) {
99
+ mkdirSync(absoluteComponentPath, { recursive: true });
100
+ }
101
+ return entries.map(([source, target]) => {
102
+ const targetFileName = join(absoluteComponentPath, target);
103
+ return copyFile(source, targetFileName);
104
+ });
105
+ });
106
+ await Promise.all(componentMetadata);
107
+ spinner.succeed('Components metadata generated successfully.');
108
+ spinner.text = 'Generating static metadata...';
109
+ if (!existsSync(componentStaticPath)) {
110
+ mkdirSync(componentStaticPath, { recursive: true });
111
+ }
112
+ const staticFiles = [
113
+ 'README.md',
114
+ 'CHANGELOG.md',
115
+ 'LIMITATIONS.md',
116
+ ]
117
+ .map(staticFile => join(getAbsolutePath('../../../../packages/components'), staticFile))
118
+ .filter(existsSync)
119
+ .map(staticFile => {
120
+ const base = basename(staticFile);
121
+ const target = join(componentStaticPath, base);
122
+ return copyFile(staticFile, target);
123
+ });
124
+ await Promise.all(staticFiles);
125
+ spinner.succeed('Static metadata generated successfully.');
126
+ spinner.succeed('Generation of metadata generated successfully.');
127
+ }
128
+ catch (error) {
129
+ spinner.fail(`Failed to generate components metadata. Error: ${error}`);
130
+ throw error;
131
+ }
132
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Sets up all static data from the supported frameworks.
3
+ */
4
+ export declare const buildFrameworkFiles: () => Promise<void>;
@@ -0,0 +1,61 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { copyFile } from 'node:fs/promises';
3
+ import { basename, join } from 'node:path';
4
+ import ora from 'ora';
5
+ import { angularPath, createPath, getAbsolutePath, reactPath, vuePath, } from '../utilities/index.js';
6
+ /**
7
+ * List of static files that should be copied to the static metadata directory.
8
+ */
9
+ const staticFilesToCopy = [
10
+ // Angular specific documentation
11
+ [
12
+ getAbsolutePath('../../../../packages/angular/README.md'),
13
+ angularPath,
14
+ ],
15
+ [
16
+ getAbsolutePath('../../../../packages/angular/LIMITATIONS.md'),
17
+ angularPath,
18
+ ],
19
+ // React specific documentation
20
+ [
21
+ getAbsolutePath('../../../../packages/react/README.md'),
22
+ reactPath,
23
+ ],
24
+ [
25
+ getAbsolutePath('../../../../packages/react/LIMITATIONS.md'),
26
+ reactPath,
27
+ ],
28
+ // Vue specific documentation
29
+ [
30
+ getAbsolutePath('../../../../packages/vue/README.md'),
31
+ vuePath,
32
+ ],
33
+ [
34
+ getAbsolutePath('../../../../packages/vue/LIMITATIONS.md'),
35
+ vuePath,
36
+ ],
37
+ ];
38
+ /**
39
+ * Sets up all static data from the supported frameworks.
40
+ */
41
+ export const buildFrameworkFiles = async () => {
42
+ const spinner = ora({
43
+ prefixText: 'Framework files:',
44
+ text: 'Generating framework metadata...',
45
+ }).start();
46
+ try {
47
+ const staticFiles = staticFilesToCopy
48
+ .filter(file => existsSync(file.at(0)))
49
+ .map(async ([staticFile, target]) => {
50
+ await createPath(target);
51
+ return copyFile(staticFile, join(target, basename(staticFile)));
52
+ });
53
+ await Promise.all(staticFiles);
54
+ spinner.succeed('Framework metadata generated successfully.');
55
+ spinner.succeed('Generation of metadata generated successfully.');
56
+ }
57
+ catch (error) {
58
+ spinner.fail(`Failed to generate framework metadata. Error: ${error}`);
59
+ throw error;
60
+ }
61
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Sets up all data from the components and framework packages and adds them to the static metadata.
3
+ */
4
+ export declare const buildStaticFiles: () => Promise<void>;
@@ -0,0 +1,57 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { copyFile } from 'node:fs/promises';
3
+ import { basename, join } from 'node:path';
4
+ import ora from 'ora';
5
+ import { componentMigrationPath, createPath, getAbsolutePath, setupPath, } from '../utilities/index.js';
6
+ /**
7
+ * List of static files that should be copied to the static metadata directory.
8
+ */
9
+ const staticFilesToCopy = [
10
+ // The icon usage documentation needs to be copied to the static metadata directory
11
+ [
12
+ getAbsolutePath('../../../../packages/docs/src/static/icon-usage.md'),
13
+ setupPath,
14
+ ],
15
+ // Copy prerequisites as it includes information about font setup
16
+ [
17
+ getAbsolutePath('../../../../packages/docs/src/static/prerequisites.md'),
18
+ setupPath,
19
+ ],
20
+ // Copy the migration guide
21
+ [
22
+ getAbsolutePath('../../../../packages/components/BREAKING_CHANGES.md'),
23
+ componentMigrationPath,
24
+ ],
25
+ // Copy the v3 migration guide
26
+ [
27
+ getAbsolutePath('../../../../packages/docs/src/static/migration-synergy-v3.md'),
28
+ componentMigrationPath,
29
+ ],
30
+ ];
31
+ /**
32
+ * Sets up all data from the components and framework packages and adds them to the static metadata.
33
+ */
34
+ export const buildStaticFiles = async () => {
35
+ const spinner = ora({
36
+ prefixText: 'Static files:',
37
+ text: 'Generating static metadata...',
38
+ }).start();
39
+ try {
40
+ // Create the wanted directories if they don't exist
41
+ const createAllPaths = Promise.all(staticFilesToCopy.map(([, target]) => createPath(target)));
42
+ await createAllPaths;
43
+ const staticFiles = staticFilesToCopy
44
+ .filter(file => existsSync(file.at(0)))
45
+ .map(([staticFile, target]) => {
46
+ const targetFileName = join(target, basename(staticFile));
47
+ return copyFile(staticFile, targetFileName);
48
+ });
49
+ await Promise.all(staticFiles);
50
+ spinner.succeed('Static metadata generated successfully.');
51
+ spinner.succeed('Generation of metadata generated successfully.');
52
+ }
53
+ catch (error) {
54
+ spinner.fail(`Failed to generate components metadata. Error: ${error}`);
55
+ throw error;
56
+ }
57
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Sets up all wanted data from the styles package and adds it to the static metadata.
3
+ */
4
+ export declare const buildStyles: () => Promise<void>;
@@ -0,0 +1,58 @@
1
+ import fs from 'node:fs/promises';
2
+ import { fileURLToPath } from 'url';
3
+ import path from 'path';
4
+ import { globby } from 'globby';
5
+ import { rimraf } from 'rimraf';
6
+ import ora from 'ora';
7
+ import { createPath, stylesPath, } from '../utilities/index.js';
8
+ /**
9
+ * List of relative paths to files that should be copied to the static metadata directory.
10
+ */
11
+ const filesToCopy = [
12
+ 'README.md',
13
+ 'CHANGELOG.md',
14
+ 'dist/*.css',
15
+ ];
16
+ /**
17
+ * Sets up all wanted data from the styles package and adds it to the static metadata.
18
+ */
19
+ export const buildStyles = async () => {
20
+ const spinner = ora({
21
+ prefixText: 'Styles:',
22
+ text: 'Generating static metadata...',
23
+ }).start();
24
+ try {
25
+ spinner.text = 'Cleaning up old metadata...';
26
+ await rimraf(stylesPath);
27
+ spinner.succeed('Old metadata cleaned up.');
28
+ spinner.text = 'Creating new metadata directory...';
29
+ // Create the styles directory if it doesn't exist
30
+ await createPath(stylesPath);
31
+ spinner.succeed('New metadata directory created.');
32
+ spinner.text = 'Copying files to metadata directory...';
33
+ // Get the module's root directory
34
+ // Note that the default export resolves to dist/index.css,
35
+ // so we need to go up one level to get to the root of the package!
36
+ const moduleUrl = import.meta.resolve('@synergy-design-system/styles');
37
+ const modulePath = fileURLToPath(moduleUrl);
38
+ const moduleDir = path.join(path.dirname(modulePath), '../');
39
+ // Process the files (placeholder for actual logic)
40
+ // eslint-disable-next-line no-console
41
+ const contents = await globby(filesToCopy, {
42
+ cwd: moduleDir,
43
+ onlyFiles: true,
44
+ });
45
+ // Write the files to the tokens directory into a flat structure
46
+ const copies = contents.map(file => {
47
+ const sourcePath = path.join(moduleDir, file);
48
+ const destPath = path.join(stylesPath, path.basename(file));
49
+ return fs.copyFile(sourcePath, destPath);
50
+ });
51
+ await Promise.all(copies);
52
+ spinner.succeed('Styles metadata generated successfully.');
53
+ }
54
+ catch (error) {
55
+ spinner.fail(`Failed to generate styles metadata. Error: ${error}`);
56
+ throw error; // Re-throw to handle it in the calling function
57
+ }
58
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Sets up all wanted data from the tokens package and adds it to the static metadata.
3
+ */
4
+ export declare const buildTokens: () => Promise<void>;
@@ -0,0 +1,59 @@
1
+ import fs from 'node:fs/promises';
2
+ import { fileURLToPath } from 'url';
3
+ import path from 'path';
4
+ import { globby } from 'globby';
5
+ import { rimraf } from 'rimraf';
6
+ import ora from 'ora';
7
+ import { createPath, tokensPath, } from '../utilities/index.js';
8
+ /**
9
+ * List of relative paths to files that should be copied to the static metadata directory.
10
+ */
11
+ const filesToCopy = [
12
+ 'README.md',
13
+ 'CHANGELOG.md',
14
+ 'dist/js/*.js',
15
+ 'dist/themes/*.css',
16
+ ];
17
+ /**
18
+ * Sets up all wanted data from the tokens package and adds it to the static metadata.
19
+ */
20
+ export const buildTokens = async () => {
21
+ const spinner = ora({
22
+ prefixText: 'Tokens:',
23
+ text: 'Generating static metadata...',
24
+ }).start();
25
+ try {
26
+ spinner.text = 'Cleaning up old metadata...';
27
+ await rimraf(tokensPath);
28
+ spinner.succeed('Old metadata cleaned up.');
29
+ spinner.text = 'Creating new metadata directory...';
30
+ // Create the tokens directory if it doesn't exist
31
+ await createPath(tokensPath);
32
+ spinner.succeed('New metadata directory created.');
33
+ spinner.text = 'Copying files to metadata directory...';
34
+ // Get the module's root directory
35
+ // Note that the default export resolves to dist/js/index.js,
36
+ // so we need to go up two levels to get to the root of the package!
37
+ const moduleUrl = import.meta.resolve('@synergy-design-system/tokens');
38
+ const modulePath = fileURLToPath(moduleUrl);
39
+ const moduleDir = path.join(path.dirname(modulePath), '../../');
40
+ // Process the files (placeholder for actual logic)
41
+ // eslint-disable-next-line no-console
42
+ const contents = await globby(filesToCopy, {
43
+ cwd: moduleDir,
44
+ onlyFiles: true,
45
+ });
46
+ // Write the files to the tokens directory into a flat structure
47
+ const copies = contents.map(file => {
48
+ const sourcePath = path.join(moduleDir, file);
49
+ const destPath = path.join(tokensPath, path.basename(file));
50
+ return fs.copyFile(sourcePath, destPath);
51
+ });
52
+ await Promise.all(copies);
53
+ spinner.succeed('Tokens metadata generated successfully.');
54
+ }
55
+ catch (error) {
56
+ spinner.fail(`Failed to generate tokens metadata. Error: ${error}`);
57
+ throw error; // Re-throw to handle it in the calling function
58
+ }
59
+ };
@@ -0,0 +1,6 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Creates a new instance of the MCP server configured for the Synergy Design System.
4
+ * @returns A new instance of the MCP server configured for the Synergy Design System.
5
+ */
6
+ export declare const createServer: () => McpServer;
package/dist/server.js ADDED
@@ -0,0 +1,20 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import * as tools from './tools/index.js';
3
+ import { getVersion } from './utilities/version.js';
4
+ /**
5
+ * Creates a new instance of the MCP server configured for the Synergy Design System.
6
+ * @returns A new instance of the MCP server configured for the Synergy Design System.
7
+ */
8
+ export const createServer = () => {
9
+ const version = getVersion();
10
+ const server = new McpServer({
11
+ description: 'A server for the Synergy Design System that provides tools to interact with components and resources.',
12
+ name: 'synergy design system',
13
+ title: 'Synergy Design System MCP Server',
14
+ version,
15
+ });
16
+ Object.values(tools).forEach(tool => {
17
+ tool(server);
18
+ });
19
+ return server;
20
+ };
@@ -0,0 +1,8 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Simple tool to list all available assets in the Synergy Design System.
4
+ * This tool fetches the asset data from the Synergy package and formats it for display.
5
+ * @todo: Maybe also include the metadata like in docs and use this to map the new/old sets?
6
+ * @param server - The MCP server instance to register the tool on.
7
+ */
8
+ export declare const assetInfoTool: (server: McpServer) => void;
@@ -0,0 +1,140 @@
1
+ /* eslint-disable complexity */
2
+ import { z } from 'zod';
3
+ import * as availableIconsets from '@synergy-design-system/assets';
4
+ import { getAssetsMetaData, getStructuredMetaData, } from '../utilities/index.js';
5
+ const iconsetListAliases = {
6
+ sick2018Icons: [
7
+ 'current',
8
+ 'default',
9
+ 'legacy',
10
+ 'v2',
11
+ 'synergy2018',
12
+ 'brand2018',
13
+ 'sick2018',
14
+ ],
15
+ sick2025Icons: [
16
+ 'synergy2025',
17
+ 'new',
18
+ 'next',
19
+ 'brand2025',
20
+ 'sick2025',
21
+ 'v3',
22
+ ],
23
+ };
24
+ const DEFAULT_LIMIT = 5;
25
+ /**
26
+ * Simple tool to list all available assets in the Synergy Design System.
27
+ * This tool fetches the asset data from the Synergy package and formats it for display.
28
+ * @todo: Maybe also include the metadata like in docs and use this to map the new/old sets?
29
+ * @param server - The MCP server instance to register the tool on.
30
+ */
31
+ export const assetInfoTool = (server) => {
32
+ server.registerTool('asset-info', {
33
+ 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',
34
+ inputSchema: {
35
+ filter: z
36
+ .string()
37
+ .optional()
38
+ .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).'),
39
+ iconset: z
40
+ .enum([
41
+ 'current', // Special key, maps to 2018 currently, should map to 2025 in the next major version
42
+ 'default', // Alias for current
43
+ 'legacy', // Fallback to 2018
44
+ 'v2', // Fallback to 2018
45
+ 'synergy2018', // Fallback name of the set for 2018
46
+ 'brand2018', // Alternative name of the set for 2018
47
+ 'sick2018', // Official name for 2018 (Synergy V2)
48
+ 'brand2025', // Alternative name of the set for 2025
49
+ 'sick2025', // Official name for 2025 (Synergy V3)
50
+ 'synergy2025', // Alias for sick2025
51
+ 'new', // Alias for sick2025
52
+ 'next', // Alias for sick2025
53
+ 'v3', // Done for completeness, maps to 2025
54
+ ])
55
+ .default('current')
56
+ .optional()
57
+ .describe('The name of the icon set to retrieve icons from.'),
58
+ limit: z
59
+ .number()
60
+ .default(DEFAULT_LIMIT)
61
+ .optional()
62
+ .describe(`The maximum number of icons to return. Defaults to ${DEFAULT_LIMIT}. When using multiple filters (pipe-separated), this limit applies per filter term.`),
63
+ },
64
+ title: 'Available Icons',
65
+ }, async ({ filter, iconset, limit, }) => {
66
+ // Get the iconset that should be used by key/value of iconsetListAliases
67
+ const setToUse = iconset
68
+ ? Object
69
+ .entries(iconsetListAliases)
70
+ .find(([, aliases]) => aliases.includes(iconset))?.[0] || 'sick2018Icons'
71
+ : 'sick2018Icons';
72
+ const foundIconSet = typeof availableIconsets[setToUse] !== undefined
73
+ ? availableIconsets[setToUse]
74
+ : availableIconsets.sick2018Icons;
75
+ // Filter the icons if a filter is provided
76
+ // Support pipe-separated filters (e.g., "icon1|icon2|icon3") for multiple icon matching
77
+ let availableIcons;
78
+ if (!filter) {
79
+ availableIcons = Object.keys(foundIconSet);
80
+ }
81
+ else {
82
+ const lowerFilter = filter.toLowerCase();
83
+ // Check if filter contains pipe separator for multiple filters
84
+ if (lowerFilter.includes('|')) {
85
+ const filterTerms = lowerFilter.split('|').map(term => term.trim());
86
+ const iconsPerTerm = [];
87
+ // For each filter term, find matching icons and apply limit per term
88
+ filterTerms.forEach(term => {
89
+ const matchingIcons = Object
90
+ .keys(foundIconSet)
91
+ .filter(iconName => iconName.toLowerCase().includes(term))
92
+ .slice(0, limit ?? DEFAULT_LIMIT); // Apply limit per filter term
93
+ iconsPerTerm.push(...matchingIcons);
94
+ });
95
+ // Remove duplicates while preserving order
96
+ availableIcons = [...new Set(iconsPerTerm)];
97
+ }
98
+ else {
99
+ // Original single filter behavior
100
+ availableIcons = Object
101
+ .keys(foundIconSet)
102
+ .filter(iconName => iconName.toLowerCase().includes(lowerFilter));
103
+ }
104
+ }
105
+ // For single filters or no filter, apply the limit normally
106
+ const limitedIcons = (!filter || !filter.includes('|')) && (limit ?? DEFAULT_LIMIT) > 0
107
+ ? availableIcons.slice(0, limit ?? DEFAULT_LIMIT)
108
+ : availableIcons;
109
+ const icons = limitedIcons.map(icon => `- ${icon}`).join('\n');
110
+ const content = [
111
+ {
112
+ text: `Available icons in iconset "${setToUse}":`,
113
+ type: 'text',
114
+ },
115
+ {
116
+ text: `Showing ${limitedIcons.length} of ${availableIcons.length} icons`,
117
+ type: 'text',
118
+ },
119
+ {
120
+ text: icons,
121
+ type: 'text',
122
+ },
123
+ ];
124
+ const aiRules = await getStructuredMetaData('../../metadata/static/assets');
125
+ const assetData = await getAssetsMetaData((fileName) => !fileName.toLowerCase().startsWith('changelog'));
126
+ return {
127
+ content: [
128
+ {
129
+ text: JSON.stringify(aiRules, null, 2),
130
+ type: 'text',
131
+ },
132
+ {
133
+ text: JSON.stringify(assetData, null, 2),
134
+ type: 'text',
135
+ },
136
+ ...content,
137
+ ],
138
+ };
139
+ });
140
+ };
@@ -0,0 +1,6 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Simple tool to list all available iconsets in the Synergy Design System.
4
+ * @param server - The MCP server instance to register the tool on.
5
+ */
6
+ export declare const assetListTool: (server: McpServer) => void;
@@ -0,0 +1,40 @@
1
+ import { getStructuredMetaData, } from '../utilities/index.js';
2
+ /**
3
+ * Simple tool to list all available iconsets in the Synergy Design System.
4
+ * @param server - The MCP server instance to register the tool on.
5
+ */
6
+ export const assetListTool = (server) => {
7
+ server.registerTool('asset-list', {
8
+ description: 'Get the available iconsets in the Synergy Design System.',
9
+ 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
+ });
40
+ };
@@ -0,0 +1,6 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Simple tool to retrieve information about a given component in the Synergy Design System.
4
+ * @param server - The MCP server instance to register the tool on.
5
+ */
6
+ export declare const componentInfoTool: (server: McpServer) => void;