@synergy-design-system/mcp 0.1.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/CHANGELOG.md +1 -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 +52 -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 +108 -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 +1 -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 +189 -0
  96. package/metadata/packages/assets/README.md +78 -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 +64 -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/static/CHANGELOG.md +1100 -0
  364. package/metadata/packages/components/static/LIMITATIONS.md +269 -0
  365. package/metadata/packages/components/static/README.md +248 -0
  366. package/metadata/packages/react/LIMITATIONS.md +31 -0
  367. package/metadata/packages/react/README.md +262 -0
  368. package/metadata/packages/styles/CHANGELOG.md +76 -0
  369. package/metadata/packages/styles/README.md +132 -0
  370. package/metadata/packages/styles/index.css +309 -0
  371. package/metadata/packages/styles/link-list.css +47 -0
  372. package/metadata/packages/styles/link.css +79 -0
  373. package/metadata/packages/styles/tables.css +143 -0
  374. package/metadata/packages/styles/typography.css +52 -0
  375. package/metadata/packages/tokens/CHANGELOG.md +431 -0
  376. package/metadata/packages/tokens/README.md +408 -0
  377. package/metadata/packages/tokens/dark.css +268 -0
  378. package/metadata/packages/tokens/index.js +1294 -0
  379. package/metadata/packages/tokens/light.css +268 -0
  380. package/metadata/packages/vue/LIMITATIONS.md +53 -0
  381. package/metadata/packages/vue/README.md +252 -0
  382. package/metadata/static/angular/index.md +6 -0
  383. package/metadata/static/assets/index.md +10 -0
  384. package/metadata/static/component-info/index.md +24 -0
  385. package/metadata/static/component-list/index.md +34 -0
  386. package/metadata/static/components/index.md +10 -0
  387. package/metadata/static/components/syn-accordion/docs.md +428 -0
  388. package/metadata/static/components/syn-alert/docs.md +231 -0
  389. package/metadata/static/components/syn-badge/docs.md +128 -0
  390. package/metadata/static/components/syn-breadcrumb/docs.md +265 -0
  391. package/metadata/static/components/syn-breadcrumb-item/docs.md +49 -0
  392. package/metadata/static/components/syn-button/docs.md +402 -0
  393. package/metadata/static/components/syn-card/docs.md +273 -0
  394. package/metadata/static/components/syn-checkbox/docs.md +77 -0
  395. package/metadata/static/components/syn-combobox/docs.md +2402 -0
  396. package/metadata/static/components/syn-details/docs.md +220 -0
  397. package/metadata/static/components/syn-dialog/docs.md +222 -0
  398. package/metadata/static/components/syn-divider/docs.md +77 -0
  399. package/metadata/static/components/syn-drawer/docs.md +271 -0
  400. package/metadata/static/components/syn-dropdown/docs.md +316 -0
  401. package/metadata/static/components/syn-file/docs.md +215 -0
  402. package/metadata/static/components/syn-header/docs.md +134 -0
  403. package/metadata/static/components/syn-icon/docs.md +177 -0
  404. package/metadata/static/components/syn-icon-button/docs.md +142 -0
  405. package/metadata/static/components/syn-input/docs.md +460 -0
  406. package/metadata/static/components/syn-menu/docs.md +162 -0
  407. package/metadata/static/components/syn-menu-item/docs.md +196 -0
  408. package/metadata/static/components/syn-menu-label/docs.md +29 -0
  409. package/metadata/static/components/syn-nav-item/docs.md +161 -0
  410. package/metadata/static/components/syn-optgroup/docs.md +167 -0
  411. package/metadata/static/components/syn-option/docs.md +137 -0
  412. package/metadata/static/components/syn-prio-nav/docs.md +54 -0
  413. package/metadata/static/components/syn-progress-bar/docs.md +77 -0
  414. package/metadata/static/components/syn-progress-ring/docs.md +89 -0
  415. package/metadata/static/components/syn-radio/docs.md +123 -0
  416. package/metadata/static/components/syn-radio-group/docs.md +363 -0
  417. package/metadata/static/components/syn-range/docs.md +419 -0
  418. package/metadata/static/components/syn-range-tick/docs.md +110 -0
  419. package/metadata/static/components/syn-select/docs.md +730 -0
  420. package/metadata/static/components/syn-side-nav/docs.md +593 -0
  421. package/metadata/static/components/syn-spinner/docs.md +45 -0
  422. package/metadata/static/components/syn-switch/docs.md +74 -0
  423. package/metadata/static/components/syn-tab/docs.md +47 -0
  424. package/metadata/static/components/syn-tab-group/docs.md +1094 -0
  425. package/metadata/static/components/syn-tab-panel/docs.md +91 -0
  426. package/metadata/static/components/syn-tag/docs.md +50 -0
  427. package/metadata/static/components/syn-textarea/docs.md +215 -0
  428. package/metadata/static/components/syn-tooltip/docs.md +144 -0
  429. package/metadata/static/components/syn-validate/docs.md +225 -0
  430. package/metadata/static/migration/index.md +10 -0
  431. package/metadata/static/react/index.md +8 -0
  432. package/metadata/static/setup/icon-usage.md +239 -0
  433. package/metadata/static/setup/prerequisites.md +171 -0
  434. package/metadata/static/styles/index.md +11 -0
  435. package/metadata/static/styles/syn-body.md +5 -0
  436. package/metadata/static/styles/syn-heading.md +5 -0
  437. package/metadata/static/styles/syn-link-list.md +325 -0
  438. package/metadata/static/styles/syn-link.md +156 -0
  439. package/metadata/static/styles/syn-table-cell.md +125 -0
  440. package/metadata/static/styles/syn-table.md +201 -0
  441. package/metadata/static/styles/syn-weight.md +5 -0
  442. package/metadata/static/templates/appshell.md +2061 -0
  443. package/metadata/static/templates/breadcrumb.md +375 -0
  444. package/metadata/static/templates/footer.md +342 -0
  445. package/metadata/static/templates/forms.md +369 -0
  446. package/metadata/static/templates/index.md +9 -0
  447. package/metadata/static/templates/table.md +1426 -0
  448. package/metadata/static/vue/index.md +6 -0
  449. package/package.json +109 -4
@@ -0,0 +1,234 @@
1
+ /**
2
+ * ---------------------------------------------------------------------
3
+ * 🔒 AUTOGENERATED BY VENDORISM
4
+ * Removing this comment will prevent it from being managed by it.
5
+ * ---------------------------------------------------------------------
6
+ */
7
+
8
+ /* eslint-disable */
9
+ import { getIconLibrary, type IconLibrary, unwatchIcon, watchIcon } from './library.js';
10
+ import { html } from 'lit';
11
+ import { isTemplateResult } from 'lit/directive-helpers.js';
12
+ import { property, state } from 'lit/decorators.js';
13
+ import { watch } from '../../internal/watch.js';
14
+ import componentStyles from '../../styles/component.styles.js';
15
+ import SynergyElement from '../../internal/synergy-element.js';
16
+ import styles from './icon.styles.js';
17
+ import customStyles from './icon.custom.styles.js';
18
+ import type { CSSResultGroup, HTMLTemplateResult } from 'lit';
19
+
20
+ const CACHEABLE_ERROR = Symbol();
21
+ const RETRYABLE_ERROR = Symbol();
22
+ type SVGResult = HTMLTemplateResult | SVGSVGElement | typeof RETRYABLE_ERROR | typeof CACHEABLE_ERROR;
23
+
24
+ let parser: DOMParser;
25
+ const iconCache = new Map<string, Promise<SVGResult>>();
26
+
27
+ interface IconSource {
28
+ url?: string;
29
+ fromLibrary: boolean;
30
+ }
31
+
32
+ /**
33
+ * @summary Icons are symbols that can be used to represent various options within an application.
34
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-icon--docs
35
+ * @status stable
36
+ * @since 2.0
37
+ *
38
+ * @event syn-load - Emitted when the icon has loaded. When using `spriteSheet: true` this will not emit.
39
+ * @event syn-error - Emitted when the icon fails to load due to an error. When using `spriteSheet: true` this will not emit.
40
+ *
41
+ * @csspart svg - The internal SVG element.
42
+ * @csspart use - The <use> element generated when using `spriteSheet: true`
43
+ */
44
+ export default class SynIcon extends SynergyElement {
45
+ static styles: CSSResultGroup = [componentStyles, styles, customStyles];
46
+
47
+ private initialRender = false;
48
+
49
+ /** Given a URL, this function returns the resulting SVG element or an appropriate error symbol. */
50
+ private async resolveIcon(url: string, library?: IconLibrary): Promise<SVGResult> {
51
+ let fileData: Response;
52
+
53
+ if (library?.spriteSheet) {
54
+ this.svg = html`<svg part="svg">
55
+ <use part="use" href="${url}" width="100%" height="100%"></use>
56
+ </svg>`;
57
+
58
+ return this.svg;
59
+ }
60
+
61
+ // #806: Make sure to not fetch system icons
62
+ // as they are part of the bundle anyways.
63
+ // This speeds up the loading of the icon.
64
+ if (this.library === 'system') {
65
+ // Skip the icon if the URL is empty
66
+ if (!url) {
67
+ return CACHEABLE_ERROR;
68
+ }
69
+
70
+ // If the URL is a system icon, we can just return it
71
+ fileData = new Response(url, {
72
+ status: 200,
73
+ });
74
+ } else {
75
+ try {
76
+ fileData = await fetch(url, { mode: 'cors' });
77
+ if (!fileData.ok) return fileData.status === 410 ? CACHEABLE_ERROR : RETRYABLE_ERROR;
78
+ } catch {
79
+ return RETRYABLE_ERROR;
80
+ }
81
+ }
82
+
83
+ try {
84
+ const div = document.createElement('div');
85
+ div.innerHTML = await fileData.text();
86
+
87
+ const svg = div.firstElementChild;
88
+ if (svg?.tagName?.toLowerCase() !== 'svg') return CACHEABLE_ERROR;
89
+
90
+ if (!parser) parser = new DOMParser();
91
+ const doc = parser.parseFromString(svg.outerHTML, 'text/html');
92
+
93
+ const svgEl = doc.body.querySelector('svg');
94
+ if (!svgEl) return CACHEABLE_ERROR;
95
+
96
+ svgEl.part.add('svg');
97
+ return document.adoptNode(svgEl);
98
+ } catch {
99
+ return CACHEABLE_ERROR;
100
+ }
101
+ }
102
+
103
+ @state() private svg: SVGElement | HTMLTemplateResult | null = null;
104
+
105
+ /** The name of the icon to draw. Available names depend on the icon library being used. */
106
+ @property({ reflect: true }) name?: string;
107
+
108
+ /**
109
+ * An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and
110
+ * can result in XSS attacks.
111
+ */
112
+ @property() src?: string;
113
+
114
+ /**
115
+ * An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and
116
+ * ignored by assistive devices.
117
+ */
118
+ @property() label = '';
119
+
120
+ /** The name of a registered custom icon library. */
121
+ @property({ reflect: true }) library = 'default';
122
+
123
+ connectedCallback() {
124
+ super.connectedCallback();
125
+ watchIcon(this);
126
+ }
127
+
128
+ firstUpdated() {
129
+ this.initialRender = true;
130
+ this.setIcon();
131
+ }
132
+
133
+ disconnectedCallback() {
134
+ super.disconnectedCallback();
135
+ unwatchIcon(this);
136
+ }
137
+
138
+ private getIconSource(): IconSource {
139
+ const library = getIconLibrary(this.library);
140
+ if (this.name && library) {
141
+ return {
142
+ url: library.resolver(this.name),
143
+ fromLibrary: true
144
+ };
145
+ }
146
+
147
+ return {
148
+ url: this.src,
149
+ fromLibrary: false
150
+ };
151
+ }
152
+
153
+ @watch('label')
154
+ handleLabelChange() {
155
+ const hasLabel = typeof this.label === 'string' && this.label.length > 0;
156
+
157
+ if (hasLabel) {
158
+ this.setAttribute('role', 'img');
159
+ this.setAttribute('aria-label', this.label);
160
+ this.removeAttribute('aria-hidden');
161
+ } else {
162
+ this.removeAttribute('role');
163
+ this.removeAttribute('aria-label');
164
+ this.setAttribute('aria-hidden', 'true');
165
+ }
166
+ }
167
+
168
+ @watch(['name', 'src', 'library'])
169
+ async setIcon() {
170
+ const { url, fromLibrary } = this.getIconSource();
171
+ const library = fromLibrary ? getIconLibrary(this.library) : undefined;
172
+
173
+ if (!url) {
174
+ this.svg = null;
175
+ return;
176
+ }
177
+
178
+ let iconResolver = iconCache.get(url);
179
+ if (!iconResolver) {
180
+ iconResolver = this.resolveIcon(url, library);
181
+ iconCache.set(url, iconResolver);
182
+ }
183
+
184
+ // If we haven't rendered yet, exit early. This avoids unnecessary work due to watching multiple props.
185
+ if (!this.initialRender) {
186
+ return;
187
+ }
188
+
189
+ const svg = await iconResolver;
190
+
191
+ if (svg === RETRYABLE_ERROR) {
192
+ iconCache.delete(url);
193
+ }
194
+
195
+ if (url !== this.getIconSource().url) {
196
+ // If the url has changed while fetching the icon, ignore this request
197
+ return;
198
+ }
199
+
200
+ if (isTemplateResult(svg)) {
201
+ this.svg = svg;
202
+
203
+ if (library) {
204
+ // Using a templateResult requires the SVG to be written to the DOM first before we can grab the SVGElement
205
+ // to be passed to the library's mutator function.
206
+ await this.updateComplete;
207
+
208
+ const shadowSVG = this.shadowRoot!.querySelector("[part='svg']")!;
209
+
210
+ if (typeof library.mutator === 'function' && shadowSVG) {
211
+ library.mutator(shadowSVG as SVGElement);
212
+ }
213
+ }
214
+
215
+ return;
216
+ }
217
+
218
+ switch (svg) {
219
+ case RETRYABLE_ERROR:
220
+ case CACHEABLE_ERROR:
221
+ this.svg = null;
222
+ this.emit('syn-error');
223
+ break;
224
+ default:
225
+ this.svg = svg.cloneNode(true) as SVGElement;
226
+ library?.mutator?.(this.svg);
227
+ this.emit('syn-load');
228
+ }
229
+ }
230
+
231
+ render() {
232
+ return this.svg;
233
+ }
234
+ }
@@ -0,0 +1,100 @@
1
+ <script setup lang="ts">
2
+ // ---------------------------------------------------------------------
3
+ // 🔒 AUTOGENERATED @synergy-design-system/vue wrappers for @synergy-design-system/components
4
+ // Please do not edit this file directly!
5
+ // It will get recreated when running pnpm build.
6
+ // ---------------------------------------------------------------------
7
+
8
+ /**
9
+ * @summary Icons are symbols that can be used to represent various options within an application.
10
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-icon--docs
11
+ * @status stable
12
+ * @since 2.0
13
+ *
14
+ * @event syn-load - Emitted when the icon has loaded. When using `spriteSheet: true` this will not emit.
15
+ * @event syn-error - Emitted when the icon fails to load due to an error. When using `spriteSheet: true` this will not emit.
16
+ *
17
+ * @csspart svg - The internal SVG element.
18
+ * @csspart use - The <use> element generated when using `spriteSheet: true`
19
+ */
20
+ import { computed, ref } from 'vue';
21
+ import '@synergy-design-system/components/components/icon/icon.js';
22
+
23
+ import type { SynLoadEvent } from '@synergy-design-system/components';
24
+ import type { SynErrorEvent } from '@synergy-design-system/components';
25
+ import type { SynIcon } from '@synergy-design-system/components';
26
+
27
+ // DOM Reference to the element
28
+ const nativeElement = ref<SynIcon>();
29
+
30
+ defineExpose({
31
+ nativeElement,
32
+ });
33
+
34
+ // Map attributes
35
+ const props = defineProps<{
36
+ /**
37
+ * The name of the icon to draw.
38
+ * Available names depend on the icon library being used.
39
+ */
40
+ name?: SynIcon['name'];
41
+
42
+ /**
43
+ * An external URL of an SVG file.
44
+ * Be sure you trust the content you are including, as it will be executed as code and
45
+ can result in XSS attacks.
46
+ */
47
+ src?: SynIcon['src'];
48
+
49
+ /**
50
+ * An alternate description to use for assistive devices.
51
+ * If omitted, the icon will be considered presentational and
52
+ ignored by assistive devices.
53
+ */
54
+ label?: SynIcon['label'];
55
+
56
+ /**
57
+ * The name of a registered custom icon library.
58
+ */
59
+ library?: SynIcon['library'];
60
+ }>();
61
+
62
+ // Make sure prop binding only forwards the props that are actually there.
63
+ // This is needed because :param="param" also adds an empty attribute
64
+ // when using web-components, which breaks optional arguments like size in SynInput
65
+ // @see https://github.com/vuejs/core/issues/5190#issuecomment-1003112498
66
+ const visibleProps = computed(() =>
67
+ Object.fromEntries(
68
+ Object.entries(props).filter(([, value]) => typeof value !== 'undefined'),
69
+ ),
70
+ );
71
+
72
+ // Map events
73
+ defineEmits<{
74
+ /**
75
+ * Emitted when the icon has loaded.
76
+ * When using `spriteSheet: true` this will not emit.
77
+ */
78
+ 'syn-load': [e: SynLoadEvent];
79
+
80
+ /**
81
+ * Emitted when the icon fails to load due to an error.
82
+ * When using `spriteSheet: true` this will not emit.
83
+ */
84
+ 'syn-error': [e: SynErrorEvent];
85
+ }>();
86
+ </script>
87
+
88
+ <script lang="ts">
89
+ export type { SynLoadEvent } from '@synergy-design-system/components';
90
+ export type { SynErrorEvent } from '@synergy-design-system/components';
91
+ </script>
92
+
93
+ <template>
94
+ <syn-icon
95
+ @syn-load="$emit('syn-load', $event)"
96
+ @syn-error="$emit('syn-error', $event)"
97
+ v-bind="visibleProps"
98
+ ref="nativeElement">
99
+ </syn-icon>
100
+ </template>
@@ -0,0 +1,185 @@
1
+ // ---------------------------------------------------------------------
2
+ // 🔒 AUTOGENERATED @synergy-design-system/angular wrappers for @synergy-design-system/components
3
+ // Please do not edit this file directly!
4
+ // It will get recreated when running pnpm build.
5
+ // ---------------------------------------------------------------------
6
+ import {
7
+ Component,
8
+ ElementRef,
9
+ NgZone,
10
+ Input,
11
+ Output,
12
+ EventEmitter,
13
+ AfterContentInit,
14
+ } from '@angular/core';
15
+ import type { SynIconButton } from '@synergy-design-system/components';
16
+ import type { SynBlurEvent } from '@synergy-design-system/components';
17
+ import type { SynFocusEvent } from '@synergy-design-system/components';
18
+ import '@synergy-design-system/components/components/icon-button/icon-button.js';
19
+
20
+ /**
21
+ * @summary Icons buttons are simple, icon-only buttons that can be used for actions and in toolbars.
22
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-icon-button--docs
23
+ * @status stable
24
+ * @since 2.0
25
+ *
26
+ * @dependency syn-icon
27
+ *
28
+ * @event syn-blur - Emitted when the icon button loses focus.
29
+ * @event syn-focus - Emitted when the icon button gains focus.
30
+ *
31
+ * @csspart base - The component's base wrapper.
32
+ */
33
+ @Component({
34
+ selector: 'syn-icon-button',
35
+ standalone: true,
36
+ template: '<ng-content></ng-content>',
37
+ })
38
+ export class SynIconButtonComponent {
39
+ public nativeElement: SynIconButton;
40
+ private _ngZone: NgZone;
41
+
42
+ constructor(e: ElementRef, ngZone: NgZone) {
43
+ this.nativeElement = e.nativeElement;
44
+ this._ngZone = ngZone;
45
+ this.nativeElement.addEventListener('syn-blur', (e: SynBlurEvent) => {
46
+ this.synBlurEvent.emit(e);
47
+ });
48
+ this.nativeElement.addEventListener('syn-focus', (e: SynFocusEvent) => {
49
+ this.synFocusEvent.emit(e);
50
+ });
51
+ }
52
+
53
+ /**
54
+ * The name of the icon to draw.
55
+ * Available names depend on the icon library being used.
56
+ */
57
+ @Input()
58
+ set name(v: SynIconButton['name']) {
59
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.name = v));
60
+ }
61
+ get name(): SynIconButton['name'] {
62
+ return this.nativeElement.name;
63
+ }
64
+
65
+ /**
66
+ * The name of a registered custom icon library.
67
+ */
68
+ @Input()
69
+ set library(v: SynIconButton['library']) {
70
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.library = v));
71
+ }
72
+ get library(): SynIconButton['library'] {
73
+ return this.nativeElement.library;
74
+ }
75
+
76
+ /**
77
+ * An external URL of an SVG file.
78
+ * Be sure you trust the content you are including, as it will be executed as code and
79
+ can result in XSS attacks.
80
+ */
81
+ @Input()
82
+ set src(v: SynIconButton['src']) {
83
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.src = v));
84
+ }
85
+ get src(): SynIconButton['src'] {
86
+ return this.nativeElement.src;
87
+ }
88
+
89
+ /**
90
+ * When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.
91
+ */
92
+ @Input()
93
+ set href(v: SynIconButton['href']) {
94
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.href = v));
95
+ }
96
+ get href(): SynIconButton['href'] {
97
+ return this.nativeElement.href;
98
+ }
99
+
100
+ /**
101
+ * Tells the browser where to open the link.
102
+ * Only used when `href` is set.
103
+ */
104
+ @Input()
105
+ set target(v: SynIconButton['target']) {
106
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.target = v));
107
+ }
108
+ get target(): SynIconButton['target'] {
109
+ return this.nativeElement.target;
110
+ }
111
+
112
+ /**
113
+ * Tells the browser to download the linked file as this filename.
114
+ * Only used when `href` is set.
115
+ */
116
+ @Input()
117
+ set download(v: SynIconButton['download']) {
118
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.download = v));
119
+ }
120
+ get download(): SynIconButton['download'] {
121
+ return this.nativeElement.download;
122
+ }
123
+
124
+ /**
125
+ * A description that gets read by assistive devices.
126
+ * For optimal accessibility, you should always include a label
127
+ that describes what the icon button does.
128
+ */
129
+ @Input()
130
+ set label(v: SynIconButton['label']) {
131
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.label = v));
132
+ }
133
+ get label(): SynIconButton['label'] {
134
+ return this.nativeElement.label;
135
+ }
136
+
137
+ /**
138
+ * The icon button's size.
139
+ */
140
+ @Input()
141
+ set size(v: SynIconButton['size']) {
142
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.size = v));
143
+ }
144
+ get size(): SynIconButton['size'] {
145
+ return this.nativeElement.size;
146
+ }
147
+
148
+ /**
149
+ * The color of the icon button.
150
+ The default "currentColor" makes it possible to easily style the icon button from outside without any CSS variables.
151
+ */
152
+ @Input()
153
+ set color(v: SynIconButton['color']) {
154
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.color = v));
155
+ }
156
+ get color(): SynIconButton['color'] {
157
+ return this.nativeElement.color;
158
+ }
159
+
160
+ /**
161
+ * Disables the button.
162
+ */
163
+ @Input()
164
+ set disabled(v: '' | SynIconButton['disabled']) {
165
+ this._ngZone.runOutsideAngular(
166
+ () => (this.nativeElement.disabled = v === '' || v),
167
+ );
168
+ }
169
+ get disabled(): SynIconButton['disabled'] {
170
+ return this.nativeElement.disabled;
171
+ }
172
+
173
+ /**
174
+ * Emitted when the icon button loses focus.
175
+ */
176
+ @Output() synBlurEvent = new EventEmitter<SynBlurEvent>();
177
+
178
+ /**
179
+ * Emitted when the icon button gains focus.
180
+ */
181
+ @Output() synFocusEvent = new EventEmitter<SynFocusEvent>();
182
+ }
183
+
184
+ export type { SynBlurEvent } from '@synergy-design-system/components';
185
+ export type { SynFocusEvent } from '@synergy-design-system/components';
@@ -0,0 +1,68 @@
1
+ import { css } from 'lit';
2
+
3
+ export default css`
4
+ .icon-button {
5
+ border-radius: 0;
6
+ color: currentColor;
7
+ font-size: inherit;
8
+ }
9
+
10
+ .icon-button--disabled {
11
+ color: var(--syn-color-neutral-400);
12
+
13
+ /** #429: Use token for opacity */
14
+ opacity: var(--syn-input-disabled-opacity);
15
+ }
16
+
17
+ /* Remove round borders */
18
+ .icon-button:focus-visible {
19
+ border-radius: var(--syn-border-radius-none);
20
+ }
21
+
22
+ /* Colors */
23
+ :host([color="currentColor"]) {
24
+ color: currentColor;
25
+ }
26
+
27
+ :host([color="primary"]),
28
+ :host([color="primary"]) .icon-button:focus-visible:not(.icon-button--disabled) {
29
+ color: var(--syn-color-primary-600);
30
+ }
31
+
32
+ :host([color="primary"]) .icon-button:hover:not(.icon-button--disabled) {
33
+ color: var(--syn-color-primary-900);
34
+ }
35
+
36
+ :host([color="primary"]) .icon-button:active:not(.icon-button--disabled) {
37
+ color: var(--syn-color-primary-950);
38
+ }
39
+
40
+ :host([color="neutral"]),
41
+ :host([color="neutral"]) .icon-button:focus-visible:not(.icon-button--disabled):not(:hover) {
42
+ color: var(--syn-color-neutral-950);
43
+ }
44
+
45
+ /* Sizes */
46
+ .icon-button--small {
47
+ font-size: var(--syn-font-size-medium);
48
+ }
49
+
50
+ .icon-button--medium {
51
+ font-size: var(--syn-font-size-x-large);
52
+ }
53
+
54
+ .icon-button--large {
55
+ font-size: var(--syn-font-size-2x-large);
56
+ }
57
+
58
+ /* Force user to set "label" prop */
59
+ .icon-button[aria-label=""] {
60
+ border: var(--syn-border-width-large) var(--syn-color-error-600) solid;
61
+ }
62
+
63
+ .icon-button[aria-label=""]::after {
64
+ content: "Set label prop for a11y to get rid of this text and border!";
65
+ font-size: var(--syn-font-size-2x-small);
66
+ margin-left: var(--syn-spacing-2x-small);
67
+ }
68
+ `;
@@ -0,0 +1,42 @@
1
+ // ---------------------------------------------------------------------
2
+ // 🔒 AUTOGENERATED @synergy-design-system/react wrappers for @synergy-design-system/components
3
+ // Please do not edit this file directly!
4
+ // It will get recreated when running pnpm build.
5
+ // ---------------------------------------------------------------------
6
+ import * as React from 'react';
7
+ import { createComponent } from '@lit/react';
8
+ import Component from '@synergy-design-system/components/components/icon-button/icon-button.component.js';
9
+
10
+ import { type EventName } from '@lit/react';
11
+ import type { SynBlurEvent } from '@synergy-design-system/components';
12
+ import type { SynFocusEvent } from '@synergy-design-system/components';
13
+
14
+ const tagName = 'syn-icon-button';
15
+ Component.define('syn-icon-button');
16
+
17
+ /**
18
+ * @summary Icons buttons are simple, icon-only buttons that can be used for actions and in toolbars.
19
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-icon-button--docs
20
+ * @status stable
21
+ * @since 2.0
22
+ *
23
+ * @dependency syn-icon
24
+ *
25
+ * @event syn-blur - Emitted when the icon button loses focus.
26
+ * @event syn-focus - Emitted when the icon button gains focus.
27
+ *
28
+ * @csspart base - The component's base wrapper.
29
+ */
30
+ export const SynIconButton = createComponent({
31
+ displayName: 'SynIconButton',
32
+ elementClass: Component,
33
+ events: {
34
+ onSynBlur: 'syn-blur' as EventName<SynBlurEvent>,
35
+ onSynFocus: 'syn-focus' as EventName<SynFocusEvent>,
36
+ },
37
+ react: React,
38
+ tagName,
39
+ });
40
+
41
+ export type { SynBlurEvent } from '@synergy-design-system/components';
42
+ export type { SynFocusEvent } from '@synergy-design-system/components';
@@ -0,0 +1,59 @@
1
+ /**
2
+ * ---------------------------------------------------------------------
3
+ * 🔒 AUTOGENERATED BY VENDORISM
4
+ * Removing this comment will prevent it from being managed by it.
5
+ * ---------------------------------------------------------------------
6
+ */
7
+
8
+ /* eslint-disable */
9
+ import { css } from 'lit';
10
+
11
+ export default css`
12
+ /* stylelint-disable */
13
+ :host {
14
+ display: inline-block;
15
+ color: var(--syn-color-neutral-600);
16
+ }
17
+
18
+ .icon-button {
19
+ flex: 0 0 auto;
20
+ display: flex;
21
+ align-items: center;
22
+ background: none;
23
+ border: none;
24
+ border-radius: var(--syn-border-radius-medium);
25
+ font-size: inherit;
26
+ color: inherit;
27
+ padding: var(--syn-spacing-x-small);
28
+ cursor: pointer;
29
+ transition: var(--syn-transition-x-fast) color;
30
+ -webkit-appearance: none;
31
+ }
32
+
33
+ .icon-button:hover:not(.icon-button--disabled),
34
+ .icon-button:focus-visible:not(.icon-button--disabled) {
35
+ color: var(--syn-color-primary-600);
36
+ }
37
+
38
+ .icon-button:active:not(.icon-button--disabled) {
39
+ color: var(--syn-color-primary-700);
40
+ }
41
+
42
+ .icon-button:focus {
43
+ outline: none;
44
+ }
45
+
46
+ .icon-button--disabled {
47
+ opacity: 0.5;
48
+ cursor: not-allowed;
49
+ }
50
+
51
+ .icon-button:focus-visible {
52
+ outline: var(--syn-focus-ring);
53
+ outline-offset: var(--syn-focus-ring-offset);
54
+ }
55
+
56
+ .icon-button__icon {
57
+ pointer-events: none;
58
+ }
59
+ `;