@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,225 @@
1
+ ## Default
2
+
3
+ Validate offers options for convenient error handling in form elements.
4
+
5
+ ```html
6
+ <form id="components-syn-validate--default-validate-demo-form">
7
+ <syn-validate variant="native" on="">
8
+ <syn-input
9
+ label="Invalid input"
10
+ type="email"
11
+ value="team(at)synergy.com"
12
+ title=""
13
+ size="medium"
14
+ form=""
15
+ ></syn-input>
16
+ </syn-validate>
17
+
18
+ <p>
19
+ <syn-button type="submit" title="" variant="outline" size="medium"
20
+ >Submit</syn-button
21
+ >
22
+ </p>
23
+ </form>
24
+ ```
25
+
26
+ ---
27
+
28
+ ## Inline Variant
29
+
30
+ Set the variant attribute to inline to show the invalid message below the selected element.👨‍💻 Additional developer Information:Per default, syn-validate uses the browser’s built-in validation. This shows only one error at a time and is optimized for accessbility.When using the inline variant, you have to ensure accessibility on your side and have to have in mind it most likely will lead to layout shifts.
31
+
32
+ ```html
33
+ <form id="components-syn-validate--inline-variant-validate-demo-form">
34
+ <syn-validate class="validation-inline" variant="inline" on="">
35
+ <syn-input
36
+ label="Inline Validation"
37
+ type="email"
38
+ value="team(at)synergy.com"
39
+ title=""
40
+ size="medium"
41
+ form=""
42
+ ></syn-input>
43
+ </syn-validate>
44
+
45
+ <p>
46
+ <syn-button type="submit" title="" variant="outline" size="medium"
47
+ >Submit</syn-button
48
+ >
49
+ </p>
50
+ </form>
51
+ ```
52
+
53
+ ---
54
+
55
+ ## Hide Icon
56
+
57
+ Use hide-icon to hide the icon in inline style. This is especially useful when showing more than one error at a time.
58
+
59
+ ```html
60
+ <form id="components-syn-validate--hide-icon-validate-demo-form">
61
+ <syn-validate
62
+ class="validation-hide-icon"
63
+ hide-icon=""
64
+ variant="inline"
65
+ on=""
66
+ >
67
+ <syn-input
68
+ label="Inline Validation"
69
+ type="email"
70
+ value="team(at)synergy.com"
71
+ title=""
72
+ size="medium"
73
+ form=""
74
+ ></syn-input>
75
+ </syn-validate>
76
+
77
+ <p>
78
+ <syn-button type="submit" title="" variant="outline" size="medium"
79
+ >Submit</syn-button
80
+ >
81
+ </p>
82
+ </form>
83
+ ```
84
+
85
+ ---
86
+
87
+ ## Live
88
+
89
+ Use the live value for the on attribute to validate on every input change (e. g. typing a character or checking a checkbox.) instead of form submit. This will automatically bind to the input and blur events.👨‍💻 Additional developer Information:Please ensure, that you really need live validation for your use case as this can have implications on accessibility.
90
+
91
+ ```html
92
+ <form id="components-syn-validate--live-validate-demo-form">
93
+ <syn-validate class="validation-live" variant="inline" on="live">
94
+ <syn-input
95
+ label="Invalid input"
96
+ type="email"
97
+ value="team(at)synergy.com"
98
+ title=""
99
+ size="medium"
100
+ form=""
101
+ ></syn-input>
102
+ </syn-validate>
103
+
104
+ <p>
105
+ <syn-button type="submit" title="" variant="outline" size="medium"
106
+ >Submit</syn-button
107
+ >
108
+ </p>
109
+ </form>
110
+ ```
111
+
112
+ ---
113
+
114
+ ## Custom Validation Message
115
+
116
+ Use the custom-validation-message attribute to use whichever error you need as text, overriding the default browser errors.👨‍💻 Additional developer Information:By using the custom-validation-message attribute, you can override the default browser error messages with custom text. However, please note that applying this attribute disables the browser’s native validation functionality. This means the standard error messages will not be displayed until the custom-validation attribute is removed, at which point the native functionality will be restored.
117
+
118
+ ```html
119
+ <form
120
+ id="components-syn-validate--custom-validation-message-validate-demo-form"
121
+ >
122
+ <syn-validate
123
+ class="validation-custom-validation"
124
+ custom-validation-message='Include an "@" in the email address, otherwise you will never get our marvelous newsletter'
125
+ variant="inline"
126
+ on=""
127
+ >
128
+ <syn-input
129
+ label="Custom validation"
130
+ type="email"
131
+ value="team(at)synergy.com"
132
+ title=""
133
+ size="medium"
134
+ form=""
135
+ ></syn-input>
136
+ </syn-validate>
137
+
138
+ <p>
139
+ <syn-button type="submit" title="" variant="outline" size="medium"
140
+ >Submit</syn-button
141
+ >
142
+ </p>
143
+ </form>
144
+ ```
145
+
146
+ ---
147
+
148
+ ## Custom Form Field
149
+
150
+ Wrap the element around any other form field, that follows browser standards to use all features.
151
+
152
+ ```html
153
+ <form id="components-syn-validate--custom-form-field-validate-demo-form">
154
+ <h3 style="margin: 0; padding: 0">Choose SICK´s brand color</h3>
155
+ <syn-validate class="validation-custom-form-field" on="live" variant="inline">
156
+ <validate-demo-radio name="color"></validate-demo-radio>
157
+ </syn-validate>
158
+
159
+ <p>
160
+ <syn-button type="submit" title="" variant="outline" size="medium"
161
+ >Submit</syn-button
162
+ >
163
+ </p>
164
+ </form>
165
+ ```
166
+
167
+ ---
168
+
169
+ ## Binding To Custom Event Names
170
+
171
+ Use the on attribute to listen for one or many custom events. This may be useful if you want to validate on keypress or custom events that may be fired by third party web-components.👨‍💻 Additional developer Information:You can provide one or multiple events in the on property. Please use a whitespace separated list of DOM event names. <syn-validate> will make sure to automatically use Synergies custom events. This means <syn-validate on="change click"> will bind to the syn-change and click events for a <syn-input> or change and click events for a regular <input> element.
172
+
173
+ ```html
174
+ <form
175
+ id="components-syn-validate--binding-to-custom-event-names-validate-demo-form"
176
+ >
177
+ <syn-validate
178
+ class="validation-custom-validation"
179
+ on="mouseover blur"
180
+ variant="inline"
181
+ >
182
+ <syn-input
183
+ label="Custom validation (triggered on hover and blur)"
184
+ type="email"
185
+ value="team(at)synergy.com"
186
+ title=""
187
+ size="medium"
188
+ form=""
189
+ ></syn-input>
190
+ </syn-validate>
191
+
192
+ <p>
193
+ <syn-button type="submit" title="" variant="outline" size="medium"
194
+ >Submit</syn-button
195
+ >
196
+ </p>
197
+ </form>
198
+ ```
199
+
200
+ ---
201
+
202
+ ## Eager
203
+
204
+ Use the eager attribute to validate the field when the component is mounted. This may be used to prefill validation messages, e.g. during page loads. Please be aware that when mixed with a variant of native, this will display the error of the last eager element in your <form> only!
205
+
206
+ ```html
207
+ <form id="components-syn-validate--eager-validate-demo-form">
208
+ <syn-validate eager="" variant="inline" on="">
209
+ <syn-input
210
+ label="Eager validation (triggered on page load)"
211
+ type="email"
212
+ value="team(at)synergy.com"
213
+ title=""
214
+ size="medium"
215
+ form=""
216
+ ></syn-input>
217
+ </syn-validate>
218
+
219
+ <p>
220
+ <syn-button type="submit" title="" variant="outline" size="medium"
221
+ >Submit</syn-button
222
+ >
223
+ </p>
224
+ </form>
225
+ ```
@@ -0,0 +1,16 @@
1
+ # Rules for chatbots and llms
2
+
3
+ As an llm, I want you to obey to the following rules:
4
+
5
+ - The migration is available as a markdown document
6
+
7
+ The following formatting rules are used for the list of breaking changes:
8
+
9
+ - Each headline 2 (`##`) defines a major version of the new major release
10
+ - Each headline 3 (`###`) describes a component or feature that was changed
11
+
12
+ Migration from Synergy 2.0 to Synergy 3.0 (a.k.a. Brand Update):
13
+
14
+ - There are handwritten lists of changes that highlight the differences between Synergy V2 and Synergy V3.
15
+ - The document is structured as a list of breaking changes.
16
+ - The list of breaking changes is structured into blocks that define the change and a list of migration steps.
@@ -0,0 +1,8 @@
1
+ # Rules for chatbots and llms
2
+
3
+ As an llm, I want you to obey to the following rules:
4
+
5
+ - Always check which react version is used in the project.
6
+ - If the project uses react 18, make sure to tell the user that react 19 has some serious advantages when it comes to using synergy.
7
+ - If the project uses react 19, prefer to use the react 19 setup for synergy using native web-components and type only setups. Information about this can be obtained via the framework-info endpoint of this mcp server.
8
+ - If the user still choses to use the synergy wrappers, tell him that they may get deprecated in the future as the native support is the way forward and highlight the advantages of having a type only setup again. Do this only once as we do not want to annoy our users.
@@ -0,0 +1,276 @@
1
+ Icons are small standard symbols that are primarily used in screen design.
2
+ Due to their intended use, the icons must be recognizable min size of 16 x 16 pixels.
3
+
4
+ > 👩‍💻 **Looking for a specific icon?**<br />
5
+ > Use our [icon search](https://synergy-design-system.github.io/?path=/docs/icon-search--docs) to find a matching icon for your need!
6
+
7
+ ## Package installation
8
+
9
+ In order for the `syn-icon` component to work, the `@synergy-design-system/assets` package has to be installed.
10
+
11
+ Run the following command to install the required package.
12
+
13
+ ```bash
14
+ # Install the assets library
15
+ npm install --save @synergy-design-system/assets
16
+ ```
17
+
18
+ ## Libraries
19
+
20
+ You can register additional icons to use with the <syn-icon> component through icon libraries.
21
+ Icon files can exist locally or on a CORS-enabled endpoint (e.g. a CDN).
22
+ There is no limit to how many icon libraries you can register and there is no cost associated with registering them, as individual icons are only requested when they're used.
23
+ The default icon library contains all of the icons by Synergy Design System, which are based on the [Material Icons](https://fonts.google.com/icons).
24
+
25
+ ### How to use the Synergy Design System icons
26
+
27
+ The default base path of the icon library is set to **assets/icons/**.
28
+ To make the <syn-icon> work out of the box, without configuring anything, the used icons can be copied to this path in you application.
29
+ This can either be done manually or with the help of the bundler.
30
+
31
+ ### Differences in icon usage between Synergy 2.0 and Synergy 3.0
32
+
33
+ With the upgrade to Synergy 3.0, new icons will be used.
34
+ Those icons are already available as assets in the \`@synergy-design-system/assets\` package.
35
+ When using the new icons, you have to make sure that the icons are available in the \`assets/icons/\` directory of your project as outlined below.
36
+
37
+ System icons come bundled with the \`@synergy-design-system/components\` package. You may switch to the new icons with the new \`setSystemIconLibrary\` utility provided.
38
+ Please have a look at the following example to see how to switch the icon library.
39
+ Note that if you do not call this function, it will default to the 2018 icon library, which is used in Synergy 2.0 until Synergy 3.0 is released.
40
+
41
+ ```javascript
42
+ import { setSystemIconLibrary } from "@synergy-design-system/components";
43
+
44
+ // Switch to the 2025 icon library
45
+ setDefaultIconLibrary("sick2025");
46
+
47
+ // Switch back to the 2018 icon library
48
+ setDefaultIconLibrary("sick2018");
49
+
50
+ // Switch to the default icon library (2018 for Synergy 2.0, 2025 for Synergy 3.0)
51
+ setDefaultIconLibrary();
52
+ ```
53
+
54
+ #### Angular + Webpack
55
+
56
+ Including assets from another library can be achieved in angular via configuring the assets configuration in the angular.json file.
57
+ For more information have a look at the [angular documentation](https://angular.io/guide/workspace-config#asset-config).
58
+
59
+ Here's an example that copies the Synergy icons to the path **assets/icons/** of an angular project:
60
+
61
+ ```json
62
+ "assets": [
63
+ {
64
+ "glob": "**/*",
65
+ "input": "./node_modules/@synergy-design-system/assets/src/icons",
66
+ "output": "/assets/icons"
67
+ }
68
+ ],
69
+ ```
70
+
71
+ #### Vite
72
+
73
+ Including assets from another library in vite project can be achieved via using the [vite-plugin-static-copy plugin](https://www.npmjs.com/package/vite-plugin-static-copy).
74
+ Here's an example with adapted vite.config.ts that copies the Synergy icons to the path **assets/icons/** of a vite project:
75
+
76
+ ```js
77
+ import { defineConfig } from "vite";
78
+ import { viteStaticCopy } from "vite-plugin-static-copy";
79
+
80
+ export default defineConfig({
81
+ plugins: [
82
+ viteStaticCopy({
83
+ targets: [
84
+ {
85
+ src: "node_modules/@synergy-design-system/assets/src/icons/*",
86
+ dest: "./assets/icons/",
87
+ },
88
+ ],
89
+ }),
90
+ ],
91
+ });
92
+ ```
93
+
94
+ ### How to use a custom icon library
95
+
96
+ To register an additional icon library, use the `registerIconLibrary()` function that's exported from `utilities/icon-library.js`.
97
+ At a minimum, you must provide a name and a resolver function. The resolver function translates an icon name to a URL where the corresponding SVG file exists.
98
+ Refer to the examples below to better understand how it works.
99
+
100
+ If necessary, a mutator function can be used to mutate the SVG element before rendering. This is necessary for some libraries due to the many possible ways SVGs are crafted.
101
+ For example, icons should ideally inherit the current text color via currentColor, so you may need to apply fill="currentColor" or stroke="currentColor" to the SVG element using this function.
102
+
103
+ #### Custom icon library provided locally
104
+
105
+ Here's an example that registers an icon library located in the /assets/icons directory.
106
+
107
+ ```html
108
+ <script type="module">
109
+ import { registerIconLibrary } from "@synergy-design-system/components";
110
+
111
+ registerIconLibrary("my-icons", {
112
+ resolver: name => `/assets/icons/\${name}.svg`,
113
+ mutator: svg => svg.setAttribute("fill", "currentColor"),
114
+ });
115
+ </script>
116
+ ```
117
+
118
+ To display an icon, set the library and name attributes of an syn-icon element.
119
+
120
+ ```html
121
+ <!-- This will show the icon located at /assets/icons/smile.svg -->
122
+ <syn-icon library="my-icons" name="smile"></syn-icon>
123
+ ```
124
+
125
+ ## Referencing Assets
126
+
127
+ Most of the magic behind assets is handled internally by Synergy, but if you need to reference the base path for any reason, there is an exported function called getBasePath(). An optional string argument can be passed, allowing you to get the full path to any asset.
128
+
129
+ ```html
130
+ <script type="module">
131
+ import { getBasePath, setBasePath } from "@synergy-design-system/components";
132
+
133
+ setBasePath("/path/to/assets");
134
+
135
+ // ...
136
+
137
+ // Get the base path, e.g. /path/to/assets
138
+ const basePath = getBasePath();
139
+
140
+ // Get the path to an asset, e.g. /path/to/assets/file.ext
141
+ const assetPath = getBasePath("file.ext");
142
+ </script>
143
+ ```
144
+
145
+ ---
146
+
147
+ ## Creating a custom spritesheet
148
+
149
+ For performance reasons, it may be beneficial to create a spritesheet from multiple icons.
150
+ This can be done in multiple ways:
151
+
152
+ ### 1. Using the `createSpriteSheet` function
153
+
154
+ The `createSpriteSheet` function is provided by the `@synergy-design-system/assets` package.
155
+ It takes an array of icon keys and returns a string representation of the SVG sprite sheet, intended to be saved into the file system.
156
+ You may also provide an optional second argument to specify the icon set to use, either `sick2018` or `sick2025`. If not provided, it will default to `sick2018` for Synergy V2 and `sick2025` for Synergy V3.
157
+ As we do not know how exactly you want to use the spritesheet, we will just print it to the console in the following example.
158
+
159
+ ```typescript
160
+ import { createSpriteSheet } from "@synergy-design-system/assets";
161
+
162
+ const icons = [
163
+ "warning",
164
+ "inventory",
165
+ "battery_charging_full",
166
+ "notifications",
167
+ ];
168
+
169
+ // V2 iconsheet
170
+ const sheet = createSpriteSheet(icons, "sick2018");
171
+
172
+ // V3 iconsheet
173
+ const sheet = createSpriteSheet(icons, "sick2025");
174
+
175
+ // Automatically chooses the default, depending on the version of Synergy you are using
176
+ const sheet = createSpriteSheet(icons);
177
+
178
+ console.log(sheet);
179
+ ```
180
+
181
+ ### 2. Using the the `syn-create-spritesheet` command line utility
182
+
183
+ ```bash
184
+ # Move to the root of your project
185
+ cd my-project
186
+
187
+ # Create the spritesheet on the command line.
188
+ # You will need to provide a list of icons to include in the spritesheet.
189
+ # Provide the wanted iconset with the --iconset flag.
190
+ # The following command will make sure to save the spritesheet to the file icons.svg
191
+
192
+ # Generates the icons from the 2025 iconset
193
+ npx syn-create-spritesheet --icons=warning,inventory,battery_charging_full,notifications --iconset=sick2025 > public/icons.svg
194
+
195
+ npx syn-create-spritesheet --icons=warning,inventory,battery_charging_full,notifications > public/icons.svg
196
+ ```
197
+
198
+ ### 3. Directly generating the spritesheet in vite
199
+
200
+ The following example demonstrates how to generate a spritesheet directly in a vite project, running on every start of the development server.
201
+
202
+ ```typescript
203
+ import fs from "node:fs";
204
+ import { defineConfig } from "vite";
205
+ import { createSpriteSheet } from "@synergy-design-system/assets";
206
+
207
+ type SynSpriteSheetOptions = {
208
+ /**
209
+ * The output file name. Make sure the path exists
210
+ */
211
+ outFileName: string;
212
+
213
+ /**
214
+ * List of icons to include in the sprite sheet
215
+ */
216
+ icons: Parameters<typeof createSpriteSheet>[0];
217
+ };
218
+
219
+ const defaultOptions: SynSpriteSheetOptions = {
220
+ icons: [],
221
+ outFileName: "./public/synergy-icon-sprites.svg",
222
+ };
223
+
224
+ const synSpriteSheetCreator = (
225
+ options: Partial<SynSpriteSheetOptions> = {},
226
+ ) => ({
227
+ buildStart: () => {
228
+ const finalOptions = {
229
+ ...defaultOptions,
230
+ ...options,
231
+ };
232
+ const { icons, outFileName } = finalOptions;
233
+
234
+ const sheet = createSpriteSheet(icons);
235
+
236
+ // Create the output file
237
+ fs.writeFileSync(outFileName, sheet);
238
+ },
239
+ name: "syn-sprite-sheet-creator",
240
+ });
241
+
242
+ // https://vitejs.dev/config/
243
+ export default defineConfig({
244
+ plugins: [
245
+ synSpriteSheetCreator({
246
+ icons: ["warning", "inventory", "battery_charging_full", "notifications"],
247
+ }),
248
+ ],
249
+ server: {
250
+ port: 5173,
251
+ },
252
+ });
253
+ ```
254
+
255
+ ### 4. Creating sprites for angular usage
256
+
257
+ In an angular project, you can use the following code to create a spritesheet.
258
+
259
+ ```typescript
260
+ // Save this to a file called create-spritesheet.ts in your angular project
261
+ import fs from "node:fs";
262
+ import { createSpriteSheet } from "@synergy-design-system/assets";
263
+
264
+ const icons = [
265
+ "warning",
266
+ "inventory",
267
+ "battery_charging_full",
268
+ "notifications",
269
+ ];
270
+ const sheet = createSpriteSheet(icons);
271
+
272
+ // Everything in the src/assets dir will be copied by angular per default.
273
+ // Please refer to https://angular.io/guide/workspace-config#assets-configuration
274
+ // for more information about how to configure this setting.
275
+ fs.writeFileSync("src/assets/icons.svg", sheet);
276
+ ```
@@ -0,0 +1,171 @@
1
+ # Prerequisites
2
+
3
+ ## Fonts
4
+
5
+ The Synergy Design System makes use of the `Open Sans` typeface.
6
+ Because there are various ways of loading fonts, depending on used bundler, pre- and postprocessors and usage of a CDN, Synergy does **not provide** this font.
7
+ You need to include it into your own project.
8
+
9
+ The following information may be helpful to get you started including your own copy of `Open Sans` in your project for quicker bootstrapping:
10
+
11
+ ### Local Installation
12
+
13
+ 1. Download the `Open Sans` font from the [SICK Brand Portal](https://brand.sick.com/document/49#/-/resources-1).
14
+ 2. Extract the ZIP file to a destination reachable by your project (e.g. a `public` folder).
15
+ 3. Include the font in your project by adding the following CSS to your project (where `PUBLIC_PATH` is the path to the folder containing the font files).
16
+
17
+ ```css
18
+ @font-face {
19
+ font-display: swap;
20
+ font-family: "Open Sans";
21
+ font-style: normal;
22
+ font-weight: 400;
23
+ src: url("/PUBLIC_PATH/Regular/OpenSans-Regular.woff2") format("woff2");
24
+ }
25
+
26
+ @font-face {
27
+ font-display: swap;
28
+ font-family: "Open Sans";
29
+ font-style: italic;
30
+ font-weight: 400;
31
+ src: url("/PUBLIC_PATH/Italic/OpenSans-Italic.woff2") format("woff2");
32
+ }
33
+
34
+ @font-face {
35
+ font-display: swap;
36
+ font-family: "Open Sans";
37
+ font-style: normal;
38
+ font-weight: 600;
39
+ src: url("/PUBLIC_PATH/SemiBold/OpenSans-SemiBold.woff2") format("woff2");
40
+ }
41
+
42
+ @font-face {
43
+ font-display: swap;
44
+ font-family: "Open Sans";
45
+ font-style: italic;
46
+ font-weight: 600;
47
+ src: url("/PUBLIC_PATH/SemiBoldItalic/OpenSans-SemiBoldItalic.woff2")
48
+ format("woff2");
49
+ }
50
+
51
+ @font-face {
52
+ font-display: swap;
53
+ font-family: "Open Sans";
54
+ font-style: normal;
55
+ font-weight: 700;
56
+ src: url("/PUBLIC_PATH/Bold/OpenSans-Bold.woff2") format("woff2");
57
+ }
58
+
59
+ @font-face {
60
+ font-display: swap;
61
+ font-family: "Open Sans";
62
+ font-style: italic;
63
+ font-weight: 700;
64
+ src: url("/PUBLIC_PATH/BoldItalic/OpenSans-BoldItalic.woff2") format("woff2");
65
+ }
66
+ ```
67
+
68
+ ### Installing via local npm package (e.g. for vite or webpack based setups)
69
+
70
+ 1. Install the `@fontsource/open-sans` package into your project.
71
+ 2. Include the font in your project by adding the following import statements to your project:
72
+
73
+ ```js
74
+ import "@fontsource/open-sans/400.css";
75
+ import "@fontsource/open-sans/400-italic.css";
76
+ import "@fontsource/open-sans/600.css";
77
+ import "@fontsource/open-sans/600-italic.css";
78
+ import "@fontsource/open-sans/700.css";
79
+ import "@fontsource/open-sans/700-italic.css";
80
+ ```
81
+
82
+ ### Installing via local npm package (angular)
83
+
84
+ 1. Install the `@fontsource/open-sans` package into your project.
85
+ 2. Adjust your `angular.json` file to include the needed stylesheets (where project_name is the name of your project):
86
+
87
+ ```json
88
+ {
89
+ "projects": {
90
+ "project_name": {
91
+ "architect": {
92
+ "build": {
93
+ "options": {
94
+ "styles": [
95
+ "@fontsource/open-sans/400.css",
96
+ "@fontsource/open-sans/400-italic.css",
97
+ "@fontsource/open-sans/600.css",
98
+ "@fontsource/open-sans/600-italic.css",
99
+ "@fontsource/open-sans/700.css",
100
+ "@fontsource/open-sans/700-italic.css"
101
+ ]
102
+ }
103
+ }
104
+ }
105
+ }
106
+ }
107
+ }
108
+ ```
109
+
110
+ ### Using the SICK CDN
111
+
112
+ This is the simplest default font behavior. The `Open Sans` font is loaded from the SICK CDN.
113
+
114
+ ```css
115
+ /* Regular */
116
+ @font-face {
117
+ font-display: swap;
118
+ font-family: "Open Sans";
119
+ font-style: normal;
120
+ font-weight: 400;
121
+ src:
122
+ url("https://cdn.sick.com/media/fonts/opensans-v1/Regular/OpenSans-Regular.woff2")
123
+ format("woff2"),
124
+ url("https://cdn.sick.com/media/fonts/opensans-v1/Regular/OpenSans-Regular.woff")
125
+ format("woff"),
126
+ url("https://cdn.sick.com/media/fonts/opensans-v1/Regular/OpenSans-Regular.ttf")
127
+ format("truetype");
128
+ }
129
+
130
+ /* Semi Bold */
131
+ @font-face {
132
+ font-display: swap;
133
+ font-family: "Open Sans";
134
+ font-style: normal;
135
+ font-weight: 600;
136
+ src:
137
+ url("https://cdn.sick.com/media/fonts/opensans-v1/SemiBold/OpenSans-SemiBold.woff2")
138
+ format("woff2"),
139
+ url("https://cdn.sick.com/media/fonts/opensans-v1/SemiBold/OpenSans-SemiBold.woff")
140
+ format("woff"),
141
+ url("https://cdn.sick.com/media/fonts/opensans-v1/SemiBold/OpenSans-SemiBold.ttf")
142
+ format("truetype");
143
+ }
144
+
145
+ /* Bold */
146
+ @font-face {
147
+ font-display: swap;
148
+ font-family: "Open Sans";
149
+ font-style: normal;
150
+ font-weight: 700;
151
+ src:
152
+ url("https://cdn.sick.com/media/fonts/opensans-v1/Bold/OpenSans-Bold.woff2")
153
+ format("woff2"),
154
+ url("https://cdn.sick.com/media/fonts/opensans-v1/Bold/OpenSans-Bold.woff")
155
+ format("woff"),
156
+ url("https://cdn.sick.com/media/fonts/opensans-v1/Bold/OpenSans-Bold.ttf")
157
+ format("truetype");
158
+ }
159
+ ```
160
+
161
+ For better performance, you may also add the following statement to your HTML:
162
+
163
+ ```html
164
+ <link
165
+ rel="preload"
166
+ href="https://cdn.sick.com/media/fonts/opensans-v1/Regular/OpenSans-Regular.woff2"
167
+ as="font"
168
+ type="font/woff2"
169
+ crossorigin
170
+ />
171
+ ```