@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,37 @@
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/breadcrumb-item/breadcrumb-item.component.js';
9
+
10
+ const tagName = 'syn-breadcrumb-item';
11
+ Component.define('syn-breadcrumb-item');
12
+
13
+ /**
14
+ * @summary Breadcrumb Items are used inside [breadcrumbs](/components/breadcrumb) to represent different links.
15
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-breadcrumb-item--docs
16
+ * @status stable
17
+ * @since 2.0
18
+ *
19
+ * @slot - The breadcrumb item's label.
20
+ * @slot prefix - An optional prefix, usually an icon or icon button.
21
+ * @slot suffix - An optional suffix, usually an icon or icon button.
22
+ * @slot separator - The separator to use for the breadcrumb item. This will only change the separator for this item. If
23
+ * you want to change it for all items in the group, set the separator on `<syn-breadcrumb>` instead.
24
+ *
25
+ * @csspart base - The component's base wrapper.
26
+ * @csspart label - The breadcrumb item's label.
27
+ * @csspart prefix - The container that wraps the prefix.
28
+ * @csspart suffix - The container that wraps the suffix.
29
+ * @csspart separator - The container that wraps the separator.
30
+ */
31
+ export const SynBreadcrumbItem = createComponent({
32
+ displayName: 'SynBreadcrumbItem',
33
+ elementClass: Component,
34
+ events: {},
35
+ react: React,
36
+ tagName,
37
+ });
@@ -0,0 +1,95 @@
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-flex;
15
+ }
16
+
17
+ .breadcrumb-item {
18
+ display: inline-flex;
19
+ align-items: center;
20
+ font-family: var(--syn-font-sans);
21
+ font-size: var(--syn-font-size-small);
22
+ font-weight: var(--syn-font-weight-semibold);
23
+ color: var(--syn-color-neutral-600);
24
+ line-height: var(--syn-line-height-normal);
25
+ white-space: nowrap;
26
+ }
27
+
28
+ .breadcrumb-item__label {
29
+ display: inline-block;
30
+ font-family: inherit;
31
+ font-size: inherit;
32
+ font-weight: inherit;
33
+ line-height: inherit;
34
+ text-decoration: none;
35
+ color: inherit;
36
+ background: none;
37
+ border: none;
38
+ border-radius: var(--syn-border-radius-medium);
39
+ padding: 0;
40
+ margin: 0;
41
+ cursor: pointer;
42
+ transition: var(--syn-transition-fast) --color;
43
+ }
44
+
45
+ :host(:not(:last-of-type)) .breadcrumb-item__label {
46
+ color: var(--syn-color-primary-600);
47
+ }
48
+
49
+ :host(:not(:last-of-type)) .breadcrumb-item__label:hover {
50
+ color: var(--syn-color-primary-500);
51
+ }
52
+
53
+ :host(:not(:last-of-type)) .breadcrumb-item__label:active {
54
+ color: var(--syn-color-primary-600);
55
+ }
56
+
57
+ .breadcrumb-item__label:focus {
58
+ outline: none;
59
+ }
60
+
61
+ .breadcrumb-item__label:focus-visible {
62
+ outline: var(--syn-focus-ring);
63
+ outline-offset: var(--syn-focus-ring-offset);
64
+ }
65
+
66
+ .breadcrumb-item__prefix,
67
+ .breadcrumb-item__suffix {
68
+ display: none;
69
+ flex: 0 0 auto;
70
+ display: flex;
71
+ align-items: center;
72
+ }
73
+
74
+ .breadcrumb-item--has-prefix .breadcrumb-item__prefix {
75
+ display: inline-flex;
76
+ margin-inline-end: var(--syn-spacing-x-small);
77
+ }
78
+
79
+ .breadcrumb-item--has-suffix .breadcrumb-item__suffix {
80
+ display: inline-flex;
81
+ margin-inline-start: var(--syn-spacing-x-small);
82
+ }
83
+
84
+ :host(:last-of-type) .breadcrumb-item__separator {
85
+ display: none;
86
+ }
87
+
88
+ .breadcrumb-item__separator {
89
+ display: inline-flex;
90
+ align-items: center;
91
+ margin: 0 var(--syn-spacing-x-small);
92
+ user-select: none;
93
+ -webkit-user-select: none;
94
+ }
95
+ `;
@@ -0,0 +1,139 @@
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 { classMap } from 'lit/directives/class-map.js';
10
+ import { HasSlotController } from '../../internal/slot.js';
11
+ import { html } from 'lit';
12
+ import { ifDefined } from 'lit/directives/if-defined.js';
13
+ import { property, query, state } from 'lit/decorators.js';
14
+ import { watch } from '../../internal/watch.js';
15
+ import componentStyles from '../../styles/component.styles.js';
16
+ import SynergyElement from '../../internal/synergy-element.js';
17
+ import styles from './breadcrumb-item.styles.js';
18
+ import customStyles from './breadcrumb-item.custom.styles.js';
19
+ import type { CSSResultGroup } from 'lit';
20
+
21
+ /**
22
+ * @summary Breadcrumb Items are used inside [breadcrumbs](/components/breadcrumb) to represent different links.
23
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-breadcrumb-item--docs
24
+ * @status stable
25
+ * @since 2.0
26
+ *
27
+ * @slot - The breadcrumb item's label.
28
+ * @slot prefix - An optional prefix, usually an icon or icon button.
29
+ * @slot suffix - An optional suffix, usually an icon or icon button.
30
+ * @slot separator - The separator to use for the breadcrumb item. This will only change the separator for this item. If
31
+ * you want to change it for all items in the group, set the separator on `<syn-breadcrumb>` instead.
32
+ *
33
+ * @csspart base - The component's base wrapper.
34
+ * @csspart label - The breadcrumb item's label.
35
+ * @csspart prefix - The container that wraps the prefix.
36
+ * @csspart suffix - The container that wraps the suffix.
37
+ * @csspart separator - The container that wraps the separator.
38
+ */
39
+ export default class SynBreadcrumbItem extends SynergyElement {
40
+ static styles: CSSResultGroup = [componentStyles, styles, customStyles];
41
+
42
+ private readonly hasSlotController = new HasSlotController(this, 'prefix', 'suffix');
43
+
44
+ @query('slot:not([name])') defaultSlot: HTMLSlotElement;
45
+
46
+ @state() private renderType: 'button' | 'link' | 'dropdown' = 'button';
47
+
48
+ /**
49
+ * Optional URL to direct the user to when the breadcrumb item is activated. When set, a link will be rendered
50
+ * internally. When unset, a button will be rendered instead.
51
+ */
52
+ @property() href?: string;
53
+
54
+ /** Tells the browser where to open the link. Only used when `href` is set. */
55
+ @property() target?: '_blank' | '_parent' | '_self' | '_top';
56
+
57
+ /** The `rel` attribute to use on the link. Only used when `href` is set. */
58
+ @property() rel = 'noreferrer noopener';
59
+
60
+ private setRenderType() {
61
+ const hasDropdown =
62
+ this.defaultSlot.assignedElements({ flatten: true }).filter(i => i.tagName.toLowerCase() === 'syn-dropdown')
63
+ .length > 0;
64
+
65
+ if (this.href) {
66
+ this.renderType = 'link';
67
+ return;
68
+ }
69
+
70
+ if (hasDropdown) {
71
+ this.renderType = 'dropdown';
72
+ return;
73
+ }
74
+
75
+ this.renderType = 'button';
76
+ }
77
+
78
+ @watch('href', { waitUntilFirstUpdate: true })
79
+ hrefChanged() {
80
+ this.setRenderType();
81
+ }
82
+
83
+ handleSlotChange() {
84
+ this.setRenderType();
85
+ }
86
+
87
+ render() {
88
+ return html`
89
+ <div
90
+ part="base"
91
+ class=${classMap({
92
+ 'breadcrumb-item': true,
93
+ 'breadcrumb-item--has-prefix': this.hasSlotController.test('prefix'),
94
+ 'breadcrumb-item--has-suffix': this.hasSlotController.test('suffix')
95
+ })}
96
+ >
97
+ <span part="prefix" class="breadcrumb-item__prefix">
98
+ <slot name="prefix"></slot>
99
+ </span>
100
+
101
+ ${this.renderType === 'link'
102
+ ? html`
103
+ <a
104
+ part="label"
105
+ class="breadcrumb-item__label breadcrumb-item__label--link"
106
+ href="${this.href!}"
107
+ target="${ifDefined(this.target ? this.target : undefined)}"
108
+ rel=${ifDefined(this.target ? this.rel : undefined)}
109
+ >
110
+ <slot @slotchange=${this.handleSlotChange}></slot>
111
+ </a>
112
+ `
113
+ : ''}
114
+ ${this.renderType === 'button'
115
+ ? html`
116
+ <button part="label" type="button" class="breadcrumb-item__label breadcrumb-item__label--button">
117
+ <slot @slotchange=${this.handleSlotChange}></slot>
118
+ </button>
119
+ `
120
+ : ''}
121
+ ${this.renderType === 'dropdown'
122
+ ? html`
123
+ <div part="label" class="breadcrumb-item__label breadcrumb-item__label--drop-down">
124
+ <slot @slotchange=${this.handleSlotChange}></slot>
125
+ </div>
126
+ `
127
+ : ''}
128
+
129
+ <span part="suffix" class="breadcrumb-item__suffix">
130
+ <slot name="suffix"></slot>
131
+ </span>
132
+
133
+ <span part="separator" class="breadcrumb-item__separator" aria-hidden="true">
134
+ <slot name="separator"></slot>
135
+ </span>
136
+ </div>
137
+ `;
138
+ }
139
+ }
@@ -0,0 +1,76 @@
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 Breadcrumb Items are used inside [breadcrumbs](/components/breadcrumb) to represent different links.
10
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-breadcrumb-item--docs
11
+ * @status stable
12
+ * @since 2.0
13
+ *
14
+ * @slot - The breadcrumb item's label.
15
+ * @slot prefix - An optional prefix, usually an icon or icon button.
16
+ * @slot suffix - An optional suffix, usually an icon or icon button.
17
+ * @slot separator - The separator to use for the breadcrumb item. This will only change the separator for this item. If
18
+ * you want to change it for all items in the group, set the separator on `<syn-breadcrumb>` instead.
19
+ *
20
+ * @csspart base - The component's base wrapper.
21
+ * @csspart label - The breadcrumb item's label.
22
+ * @csspart prefix - The container that wraps the prefix.
23
+ * @csspart suffix - The container that wraps the suffix.
24
+ * @csspart separator - The container that wraps the separator.
25
+ */
26
+ import { computed, ref } from 'vue';
27
+ import '@synergy-design-system/components/components/breadcrumb-item/breadcrumb-item.js';
28
+
29
+ import type { SynBreadcrumbItem } from '@synergy-design-system/components';
30
+
31
+ // DOM Reference to the element
32
+ const nativeElement = ref<SynBreadcrumbItem>();
33
+
34
+ defineExpose({
35
+ nativeElement,
36
+ });
37
+
38
+ // Map attributes
39
+ const props = defineProps<{
40
+ /**
41
+ * Optional URL to direct the user to when the breadcrumb item is activated.
42
+ * When set, a link will be rendered
43
+ internally.
44
+ * When unset, a button will be rendered instead.
45
+ */
46
+ href?: SynBreadcrumbItem['href'];
47
+
48
+ /**
49
+ * Tells the browser where to open the link.
50
+ * Only used when `href` is set.
51
+ */
52
+ target?: SynBreadcrumbItem['target'];
53
+
54
+ /**
55
+ * The `rel` attribute to use on the link.
56
+ * Only used when `href` is set.
57
+ */
58
+ rel?: SynBreadcrumbItem['rel'];
59
+ }>();
60
+
61
+ // Make sure prop binding only forwards the props that are actually there.
62
+ // This is needed because :param="param" also adds an empty attribute
63
+ // when using web-components, which breaks optional arguments like size in SynInput
64
+ // @see https://github.com/vuejs/core/issues/5190#issuecomment-1003112498
65
+ const visibleProps = computed(() =>
66
+ Object.fromEntries(
67
+ Object.entries(props).filter(([, value]) => typeof value !== 'undefined'),
68
+ ),
69
+ );
70
+ </script>
71
+
72
+ <template>
73
+ <syn-breadcrumb-item v-bind="visibleProps" ref="nativeElement">
74
+ <slot></slot>
75
+ </syn-breadcrumb-item>
76
+ </template>
@@ -0,0 +1,318 @@
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 { SynButton } 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 type { SynInvalidEvent } from '@synergy-design-system/components';
19
+ import '@synergy-design-system/components/components/button/button.js';
20
+
21
+ /**
22
+ * @summary Buttons represent actions that are available to the user.
23
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-button--docs
24
+ * @status stable
25
+ * @since 2.0
26
+ *
27
+ * @dependency syn-icon
28
+ * @dependency syn-spinner
29
+ *
30
+ * @event syn-blur - Emitted when the button loses focus.
31
+ * @event syn-focus - Emitted when the button gains focus.
32
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
33
+ *
34
+ * @slot - The button's label.
35
+ * @slot prefix - A presentational prefix icon or similar element.
36
+ * @slot suffix - A presentational suffix icon or similar element.
37
+ *
38
+ * @csspart base - The component's base wrapper.
39
+ * @csspart prefix - The container that wraps the prefix.
40
+ * @csspart label - The button's label.
41
+ * @csspart suffix - The container that wraps the suffix.
42
+ * @csspart caret - The button's caret icon, an `<syn-icon>` element.
43
+ * @csspart spinner - The spinner that shows when the button is in the loading state.
44
+ */
45
+ @Component({
46
+ selector: 'syn-button',
47
+ standalone: true,
48
+ template: '<ng-content></ng-content>',
49
+ })
50
+ export class SynButtonComponent {
51
+ public nativeElement: SynButton;
52
+ private _ngZone: NgZone;
53
+
54
+ constructor(e: ElementRef, ngZone: NgZone) {
55
+ this.nativeElement = e.nativeElement;
56
+ this._ngZone = ngZone;
57
+ this.nativeElement.addEventListener('syn-blur', (e: SynBlurEvent) => {
58
+ this.synBlurEvent.emit(e);
59
+ });
60
+ this.nativeElement.addEventListener('syn-focus', (e: SynFocusEvent) => {
61
+ this.synFocusEvent.emit(e);
62
+ });
63
+ this.nativeElement.addEventListener('syn-invalid', (e: SynInvalidEvent) => {
64
+ this.synInvalidEvent.emit(e);
65
+ });
66
+ }
67
+
68
+ @Input()
69
+ set title(v: SynButton['title']) {
70
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.title = v));
71
+ }
72
+ get title(): SynButton['title'] {
73
+ return this.nativeElement.title;
74
+ }
75
+
76
+ /**
77
+ * The button's theme variant.
78
+ */
79
+ @Input()
80
+ set variant(v: SynButton['variant']) {
81
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.variant = v));
82
+ }
83
+ get variant(): SynButton['variant'] {
84
+ return this.nativeElement.variant;
85
+ }
86
+
87
+ /**
88
+ * The button's size.
89
+ */
90
+ @Input()
91
+ set size(v: SynButton['size']) {
92
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.size = v));
93
+ }
94
+ get size(): SynButton['size'] {
95
+ return this.nativeElement.size;
96
+ }
97
+
98
+ /**
99
+ * Draws the button with a caret.
100
+ * Used to indicate that the button triggers a dropdown menu or similar behavior.
101
+ */
102
+ @Input()
103
+ set caret(v: '' | SynButton['caret']) {
104
+ this._ngZone.runOutsideAngular(
105
+ () => (this.nativeElement.caret = v === '' || v),
106
+ );
107
+ }
108
+ get caret(): SynButton['caret'] {
109
+ return this.nativeElement.caret;
110
+ }
111
+
112
+ /**
113
+ * Disables the button.
114
+ */
115
+ @Input()
116
+ set disabled(v: '' | SynButton['disabled']) {
117
+ this._ngZone.runOutsideAngular(
118
+ () => (this.nativeElement.disabled = v === '' || v),
119
+ );
120
+ }
121
+ get disabled(): SynButton['disabled'] {
122
+ return this.nativeElement.disabled;
123
+ }
124
+
125
+ /**
126
+ * Draws the button in a loading state.
127
+ */
128
+ @Input()
129
+ set loading(v: '' | SynButton['loading']) {
130
+ this._ngZone.runOutsideAngular(
131
+ () => (this.nativeElement.loading = v === '' || v),
132
+ );
133
+ }
134
+ get loading(): SynButton['loading'] {
135
+ return this.nativeElement.loading;
136
+ }
137
+
138
+ /**
139
+ * The type of button.
140
+ * Note that the default value is `button` instead of `submit`, which is opposite of how native
141
+ `<button>` elements behave.
142
+ * When the type is `submit`, the button will submit the surrounding form.
143
+ */
144
+ @Input()
145
+ set type(v: SynButton['type']) {
146
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.type = v));
147
+ }
148
+ get type(): SynButton['type'] {
149
+ return this.nativeElement.type;
150
+ }
151
+
152
+ /**
153
+ * The name of the button, submitted as a name/value pair with form data, but only when this button is the submitter.
154
+ This attribute is ignored when `href` is present.
155
+ */
156
+ @Input()
157
+ set name(v: SynButton['name']) {
158
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.name = v));
159
+ }
160
+ get name(): SynButton['name'] {
161
+ return this.nativeElement.name;
162
+ }
163
+
164
+ /**
165
+ * The value of the button, submitted as a pair with the button's name as part of the form data, but only when this
166
+ button is the submitter.
167
+ * This attribute is ignored when `href` is present.
168
+ */
169
+ @Input()
170
+ set value(v: SynButton['value']) {
171
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.value = v));
172
+ }
173
+ get value(): SynButton['value'] {
174
+ return this.nativeElement.value;
175
+ }
176
+
177
+ /**
178
+ * When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.
179
+ */
180
+ @Input()
181
+ set href(v: SynButton['href']) {
182
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.href = v));
183
+ }
184
+ get href(): SynButton['href'] {
185
+ return this.nativeElement.href;
186
+ }
187
+
188
+ /**
189
+ * Tells the browser where to open the link.
190
+ * Only used when `href` is present.
191
+ */
192
+ @Input()
193
+ set target(v: SynButton['target']) {
194
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.target = v));
195
+ }
196
+ get target(): SynButton['target'] {
197
+ return this.nativeElement.target;
198
+ }
199
+
200
+ /**
201
+ * When using `href`, this attribute will map to the underlying link's `rel` attribute.
202
+ * Unlike regular links, the
203
+ default is `noreferrer noopener` to prevent security exploits.
204
+ * However, if you're using `target` to point to a
205
+ specific tab/window, this will prevent that from working correctly.
206
+ * You can remove or change the default value by
207
+ setting the attribute to an empty string or a value of your choice, respectively.
208
+ */
209
+ @Input()
210
+ set rel(v: SynButton['rel']) {
211
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.rel = v));
212
+ }
213
+ get rel(): SynButton['rel'] {
214
+ return this.nativeElement.rel;
215
+ }
216
+
217
+ /**
218
+ * Tells the browser to download the linked file as this filename.
219
+ * Only used when `href` is present.
220
+ */
221
+ @Input()
222
+ set download(v: SynButton['download']) {
223
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.download = v));
224
+ }
225
+ get download(): SynButton['download'] {
226
+ return this.nativeElement.download;
227
+ }
228
+
229
+ /**
230
+ * The "form owner" to associate the button with.
231
+ * If omitted, the closest containing form will be used instead.
232
+ * The
233
+ value of this attribute must be an id of a form in the same document or shadow root as the button.
234
+ */
235
+ @Input()
236
+ set form(v: SynButton['form']) {
237
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.form = v));
238
+ }
239
+ get form(): SynButton['form'] {
240
+ return this.nativeElement.form;
241
+ }
242
+
243
+ /**
244
+ * Used to override the form owner's `action` attribute.
245
+ */
246
+ @Input()
247
+ set formAction(v: SynButton['formAction']) {
248
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.formAction = v));
249
+ }
250
+ get formAction(): SynButton['formAction'] {
251
+ return this.nativeElement.formAction;
252
+ }
253
+
254
+ /**
255
+ * Used to override the form owner's `enctype` attribute.
256
+ */
257
+ @Input()
258
+ set formEnctype(v: SynButton['formEnctype']) {
259
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.formEnctype = v));
260
+ }
261
+ get formEnctype(): SynButton['formEnctype'] {
262
+ return this.nativeElement.formEnctype;
263
+ }
264
+
265
+ /**
266
+ * Used to override the form owner's `method` attribute.
267
+ */
268
+ @Input()
269
+ set formMethod(v: SynButton['formMethod']) {
270
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.formMethod = v));
271
+ }
272
+ get formMethod(): SynButton['formMethod'] {
273
+ return this.nativeElement.formMethod;
274
+ }
275
+
276
+ /**
277
+ * Used to override the form owner's `novalidate` attribute.
278
+ */
279
+ @Input()
280
+ set formNoValidate(v: '' | SynButton['formNoValidate']) {
281
+ this._ngZone.runOutsideAngular(
282
+ () => (this.nativeElement.formNoValidate = v === '' || v),
283
+ );
284
+ }
285
+ get formNoValidate(): SynButton['formNoValidate'] {
286
+ return this.nativeElement.formNoValidate;
287
+ }
288
+
289
+ /**
290
+ * Used to override the form owner's `target` attribute.
291
+ */
292
+ @Input()
293
+ set formTarget(v: SynButton['formTarget']) {
294
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.formTarget = v));
295
+ }
296
+ get formTarget(): SynButton['formTarget'] {
297
+ return this.nativeElement.formTarget;
298
+ }
299
+
300
+ /**
301
+ * Emitted when the button loses focus.
302
+ */
303
+ @Output() synBlurEvent = new EventEmitter<SynBlurEvent>();
304
+
305
+ /**
306
+ * Emitted when the button gains focus.
307
+ */
308
+ @Output() synFocusEvent = new EventEmitter<SynFocusEvent>();
309
+
310
+ /**
311
+ * Emitted when the form control has been checked for validity and its constraints aren't satisfied.
312
+ */
313
+ @Output() synInvalidEvent = new EventEmitter<SynInvalidEvent>();
314
+ }
315
+
316
+ export type { SynBlurEvent } from '@synergy-design-system/components';
317
+ export type { SynFocusEvent } from '@synergy-design-system/components';
318
+ export type { SynInvalidEvent } from '@synergy-design-system/components';