@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,178 @@
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 Switches allow the user to toggle an option on or off.
10
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-switch--docs
11
+ * @status stable
12
+ * @since 2.0
13
+ *
14
+ * @slot - The switch's label.
15
+ * @slot help-text - Text that describes how to use the switch. Alternatively, you can use the `help-text` attribute.
16
+ *
17
+ * @event syn-blur - Emitted when the control loses focus.
18
+ * @event syn-change - Emitted when the control's checked state changes.
19
+ * @event syn-input - Emitted when the control receives input.
20
+ * @event syn-focus - Emitted when the control gains focus.
21
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
22
+ *
23
+ * @csspart base - The component's base wrapper.
24
+ * @csspart control - The control that houses the switch's thumb.
25
+ * @csspart thumb - The switch's thumb.
26
+ * @csspart label - The switch's label.
27
+ * @csspart form-control-help-text - The help text's wrapper.
28
+ *
29
+ * @cssproperty --width - The width of the switch.
30
+ * @cssproperty --height - The height of the switch.
31
+ * @cssproperty --thumb-size - The size of the thumb.
32
+ */
33
+ import { computed, ref } from 'vue';
34
+ import '@synergy-design-system/components/components/switch/switch.js';
35
+
36
+ import type { SynBlurEvent } from '@synergy-design-system/components';
37
+ import type { SynChangeEvent } from '@synergy-design-system/components';
38
+ import type { SynInputEvent } from '@synergy-design-system/components';
39
+ import type { SynFocusEvent } from '@synergy-design-system/components';
40
+ import type { SynInvalidEvent } from '@synergy-design-system/components';
41
+ import type { SynSwitch } from '@synergy-design-system/components';
42
+
43
+ // DOM Reference to the element
44
+ const nativeElement = ref<SynSwitch>();
45
+
46
+ defineExpose({
47
+ nativeElement,
48
+ });
49
+
50
+ // Map attributes
51
+ const props = defineProps<{
52
+ title?: SynSwitch['title'];
53
+
54
+ /**
55
+ * The name of the switch, submitted as a name/value pair with form data.
56
+ */
57
+ name?: SynSwitch['name'];
58
+
59
+ /**
60
+ * The current value of the switch, submitted as a name/value pair with form data.
61
+ */
62
+ value?: SynSwitch['value'];
63
+
64
+ /**
65
+ * The switch's size.
66
+ */
67
+ size?: SynSwitch['size'];
68
+
69
+ /**
70
+ * Disables the switch.
71
+ */
72
+ disabled?: SynSwitch['disabled'];
73
+
74
+ /**
75
+ * Draws the switch in a checked state.
76
+ */
77
+ checked?: SynSwitch['checked'];
78
+
79
+ /**
80
+ * By default, form controls are associated with the nearest containing `<form>` element.
81
+ * This attribute allows you
82
+ to place the form control outside of a form and associate it with the form that has this `id`.
83
+ * The form must be in
84
+ the same document or shadow root for this to work.
85
+ */
86
+ form?: SynSwitch['form'];
87
+
88
+ /**
89
+ * Makes the switch a required field.
90
+ */
91
+ required?: SynSwitch['required'];
92
+
93
+ /**
94
+ * The switch's help text.
95
+ * If you need to display HTML, use the `help-text` slot instead.
96
+ */
97
+ helpText?: SynSwitch['helpText'];
98
+
99
+ /**
100
+ * Support for two way data binding
101
+ */
102
+ modelValue?: SynSwitch['checked'];
103
+ }>();
104
+
105
+ // Make sure prop binding only forwards the props that are actually there.
106
+ // This is needed because :param="param" also adds an empty attribute
107
+ // when using web-components, which breaks optional arguments like size in SynInput
108
+ // @see https://github.com/vuejs/core/issues/5190#issuecomment-1003112498
109
+ const visibleProps = computed(() =>
110
+ Object.fromEntries(
111
+ Object.entries(props).filter(([, value]) => typeof value !== 'undefined'),
112
+ ),
113
+ );
114
+
115
+ // Map events
116
+ defineEmits<{
117
+ /**
118
+ * Emitted when the control loses focus.
119
+ */
120
+ 'syn-blur': [e: SynBlurEvent];
121
+
122
+ /**
123
+ * Emitted when the control's checked state changes.
124
+ */
125
+ 'syn-change': [e: SynChangeEvent];
126
+
127
+ /**
128
+ * Emitted when the control receives input.
129
+ */
130
+ 'syn-input': [e: SynInputEvent];
131
+
132
+ /**
133
+ * Emitted when the control gains focus.
134
+ */
135
+ 'syn-focus': [e: SynFocusEvent];
136
+
137
+ /**
138
+ * Emitted when the form control has been checked for validity and its constraints aren't satisfied.
139
+ */
140
+ 'syn-invalid': [e: SynInvalidEvent];
141
+
142
+ /**
143
+ * Support for two way data binding
144
+ */
145
+ 'update:modelValue': [newValue: SynSwitch['checked']];
146
+ }>();
147
+ </script>
148
+
149
+ <script lang="ts">
150
+ export type { SynBlurEvent } from '@synergy-design-system/components';
151
+ export type { SynChangeEvent } from '@synergy-design-system/components';
152
+ export type { SynInputEvent } from '@synergy-design-system/components';
153
+ export type { SynFocusEvent } from '@synergy-design-system/components';
154
+ export type { SynInvalidEvent } from '@synergy-design-system/components';
155
+ </script>
156
+
157
+ <template>
158
+ <syn-switch
159
+ @syn-blur="$emit('syn-blur', $event)"
160
+ @syn-change="$emit('syn-change', $event)"
161
+ @syn-input="
162
+ $emit('update:modelValue', ($event.target as SynSwitch).checked);
163
+ $emit('syn-input', $event);
164
+ "
165
+ @syn-focus="$emit('syn-focus', $event)"
166
+ @syn-invalid="$emit('syn-invalid', $event)"
167
+ :checked="
168
+ typeof props.modelValue !== 'undefined'
169
+ ? props.modelValue
170
+ : typeof props.checked !== 'undefined'
171
+ ? props.checked
172
+ : undefined
173
+ "
174
+ v-bind="visibleProps"
175
+ ref="nativeElement">
176
+ <slot></slot>
177
+ </syn-switch>
178
+ </template>
@@ -0,0 +1,109 @@
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 { SynTab } from '@synergy-design-system/components';
16
+ import type { SynCloseEvent } from '@synergy-design-system/components';
17
+ import '@synergy-design-system/components/components/tab/tab.js';
18
+
19
+ /**
20
+ * @summary Tabs are used inside [tab groups](/components/tab-group) to represent and activate [tab panels](/components/tab-panel).
21
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-tab--docs
22
+ * @status stable
23
+ * @since 2.0
24
+ *
25
+ * @dependency syn-icon-button
26
+ *
27
+ * @slot - The tab's label.
28
+ *
29
+ * @event syn-close - Emitted when the tab is closable and the close button is activated.
30
+ *
31
+ * @csspart base - The component's base wrapper.
32
+ * @csspart close-button - The close button, an `<syn-icon-button>`.
33
+ * @csspart close-button__base - The close button's exported `base` part.
34
+ */
35
+ @Component({
36
+ selector: 'syn-tab',
37
+ standalone: true,
38
+ template: '<ng-content></ng-content>',
39
+ })
40
+ export class SynTabComponent {
41
+ public nativeElement: SynTab;
42
+ private _ngZone: NgZone;
43
+
44
+ constructor(e: ElementRef, ngZone: NgZone) {
45
+ this.nativeElement = e.nativeElement;
46
+ this._ngZone = ngZone;
47
+ this.nativeElement.addEventListener('syn-close', (e: SynCloseEvent) => {
48
+ this.synCloseEvent.emit(e);
49
+ });
50
+ }
51
+
52
+ /**
53
+ * The name of the tab panel this tab is associated with.
54
+ * The panel must be located in the same tab group.
55
+ */
56
+ @Input()
57
+ set panel(v: SynTab['panel']) {
58
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.panel = v));
59
+ }
60
+ get panel(): SynTab['panel'] {
61
+ return this.nativeElement.panel;
62
+ }
63
+
64
+ /**
65
+ * Draws the tab in an active state.
66
+ */
67
+ @Input()
68
+ set active(v: '' | SynTab['active']) {
69
+ this._ngZone.runOutsideAngular(
70
+ () => (this.nativeElement.active = v === '' || v),
71
+ );
72
+ }
73
+ get active(): SynTab['active'] {
74
+ return this.nativeElement.active;
75
+ }
76
+
77
+ /**
78
+ * Makes the tab closable and shows a close button.
79
+ */
80
+ @Input()
81
+ set closable(v: '' | SynTab['closable']) {
82
+ this._ngZone.runOutsideAngular(
83
+ () => (this.nativeElement.closable = v === '' || v),
84
+ );
85
+ }
86
+ get closable(): SynTab['closable'] {
87
+ return this.nativeElement.closable;
88
+ }
89
+
90
+ /**
91
+ * Disables the tab and prevents selection.
92
+ */
93
+ @Input()
94
+ set disabled(v: '' | SynTab['disabled']) {
95
+ this._ngZone.runOutsideAngular(
96
+ () => (this.nativeElement.disabled = v === '' || v),
97
+ );
98
+ }
99
+ get disabled(): SynTab['disabled'] {
100
+ return this.nativeElement.disabled;
101
+ }
102
+
103
+ /**
104
+ * Emitted when the tab is closable and the close button is activated.
105
+ */
106
+ @Output() synCloseEvent = new EventEmitter<SynCloseEvent>();
107
+ }
108
+
109
+ export type { SynCloseEvent } from '@synergy-design-system/components';
@@ -0,0 +1,92 @@
1
+ import { css } from 'lit';
2
+
3
+ export default css`
4
+ /* Write custom CSS here */
5
+
6
+ :host {
7
+ --background-color: none;
8
+ --border-width: var(--syn-border-width-none);
9
+ --border-color: none;
10
+ --border-radius: var(--syn-border-radius-none);
11
+ }
12
+
13
+ .tab {
14
+ border-color: transparent;
15
+ border-radius: var(--border-radius);
16
+ border-style: solid;
17
+ border-width: var(--border-width);
18
+ color: var(--syn-typography-color-text);
19
+ font: var(--syn-body-small-bold);
20
+ min-height: var(--syn-spacing-2x-large);
21
+ padding: var(--syn-spacing-small) var(--syn-spacing-large);
22
+
23
+ /* Stretch the tabs so they are aligned to each other vertically and the focus width stays the same */
24
+ width: 100%;
25
+ }
26
+
27
+
28
+ /** #429: Use token for opacity */
29
+ .tab.tab--disabled {
30
+ opacity: var(--syn-opacity-50);
31
+ }
32
+
33
+ /**
34
+ * Focus
35
+ */
36
+ :host(:focus-visible) {
37
+ outline-offset: calc(var(--syn-focus-ring-offset) * -1);
38
+ }
39
+
40
+ :host(:focus-visible:not(.tab--disabled)) {
41
+ color: var(--syn-typography-color-text);
42
+ }
43
+
44
+ @media (forced-colors: active) {
45
+ .tab.tab--active:not(.tab--disabled) {
46
+ outline-offset: calc(var(--syn-focus-ring-offset) * -1);
47
+ }
48
+ }
49
+
50
+ .tab:hover:not(.tab--disabled) {
51
+ color: var(--syn-color-primary-700);
52
+ }
53
+
54
+ .tab.tab--active:not(.tab--disabled) {
55
+ color: var(--syn-typography-color-text);
56
+ }
57
+
58
+
59
+ /**
60
+ * Closable
61
+ */
62
+ .tab.tab--closable {
63
+ padding: var(--syn-spacing-2x-small) var(--syn-spacing-large);
64
+ }
65
+
66
+ .tab__close-button {
67
+ color: var(--syn-color-neutral-500);
68
+ font-size: var(--syn-font-size-x-large);
69
+ margin-inline-start: var(--syn-spacing-2x-small);
70
+ }
71
+
72
+ .tab__close-button::part(base) {
73
+ padding: var(--syn-spacing-x-small);
74
+ }
75
+
76
+ .tab__close-button::part(base):hover {
77
+ color: var(--syn-color-primary-700);
78
+ }
79
+
80
+ .tab--active {
81
+ background-color: var(--background-color);
82
+ border-color: var(--border-color);
83
+ border-style: solid;
84
+ border-width: var(--border-width);
85
+ }
86
+
87
+ /* Slotted icon style */
88
+ .tab ::slotted(syn-icon) {
89
+ font-size: var(--syn-font-size-x-large);
90
+ margin-inline-end: var(--syn-spacing-x-small);
91
+ }
92
+ `;
@@ -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/tab/tab.component.js';
9
+
10
+ import { type EventName } from '@lit/react';
11
+ import type { SynCloseEvent } from '@synergy-design-system/components';
12
+
13
+ const tagName = 'syn-tab';
14
+ Component.define('syn-tab');
15
+
16
+ /**
17
+ * @summary Tabs are used inside [tab groups](/components/tab-group) to represent and activate [tab panels](/components/tab-panel).
18
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-tab--docs
19
+ * @status stable
20
+ * @since 2.0
21
+ *
22
+ * @dependency syn-icon-button
23
+ *
24
+ * @slot - The tab's label.
25
+ *
26
+ * @event syn-close - Emitted when the tab is closable and the close button is activated.
27
+ *
28
+ * @csspart base - The component's base wrapper.
29
+ * @csspart close-button - The close button, an `<syn-icon-button>`.
30
+ * @csspart close-button__base - The close button's exported `base` part.
31
+ */
32
+ export const SynTab = createComponent({
33
+ displayName: 'SynTab',
34
+ elementClass: Component,
35
+ events: {
36
+ onSynClose: 'syn-close' as EventName<SynCloseEvent>,
37
+ },
38
+ react: React,
39
+ tagName,
40
+ });
41
+
42
+ export type { SynCloseEvent } from '@synergy-design-system/components';
@@ -0,0 +1,77 @@
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
+ }
16
+
17
+ .tab {
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
+ border-radius: var(--syn-border-radius-medium);
24
+ color: var(--syn-color-neutral-600);
25
+ padding: var(--syn-spacing-medium) var(--syn-spacing-large);
26
+ white-space: nowrap;
27
+ user-select: none;
28
+ -webkit-user-select: none;
29
+ cursor: pointer;
30
+ transition:
31
+ var(--transition-speed) box-shadow,
32
+ var(--transition-speed) color;
33
+ }
34
+
35
+ .tab:hover:not(.tab--disabled) {
36
+ color: var(--syn-color-primary-600);
37
+ }
38
+
39
+ :host(:focus) {
40
+ outline: transparent;
41
+ }
42
+
43
+ :host(:focus-visible) {
44
+ color: var(--syn-color-primary-600);
45
+ outline: var(--syn-focus-ring);
46
+ outline-offset: calc(-1 * var(--syn-focus-ring-width) - var(--syn-focus-ring-offset));
47
+ }
48
+
49
+ .tab.tab--active:not(.tab--disabled) {
50
+ color: var(--syn-color-primary-600);
51
+ }
52
+
53
+ .tab.tab--closable {
54
+ padding-inline-end: var(--syn-spacing-small);
55
+ }
56
+
57
+ .tab.tab--disabled {
58
+ opacity: 0.5;
59
+ cursor: not-allowed;
60
+ }
61
+
62
+ .tab__close-button {
63
+ font-size: var(--syn-font-size-small);
64
+ margin-inline-start: var(--syn-spacing-small);
65
+ }
66
+
67
+ .tab__close-button::part(base) {
68
+ padding: var(--syn-spacing-3x-small);
69
+ }
70
+
71
+ @media (forced-colors: active) {
72
+ .tab.tab--active:not(.tab--disabled) {
73
+ outline: solid 1px transparent;
74
+ outline-offset: -3px;
75
+ }
76
+ }
77
+ `;
@@ -0,0 +1,132 @@
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 { html } from 'lit';
11
+ import { LocalizeController } from '../../utilities/localize.js';
12
+ import { property, query } 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 SynIconButton from '../icon-button/icon-button.component.js';
17
+ import styles from './tab.styles.js';
18
+ import customStyles from './tab.custom.styles.js';
19
+ import type { CSSResultGroup } from 'lit';
20
+
21
+ let id = 0;
22
+
23
+ /**
24
+ * @summary Tabs are used inside [tab groups](/components/tab-group) to represent and activate [tab panels](/components/tab-panel).
25
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-tab--docs
26
+ * @status stable
27
+ * @since 2.0
28
+ *
29
+ * @dependency syn-icon-button
30
+ *
31
+ * @slot - The tab's label.
32
+ *
33
+ * @event syn-close - Emitted when the tab is closable and the close button is activated.
34
+ *
35
+ * @csspart base - The component's base wrapper.
36
+ * @csspart close-button - The close button, an `<syn-icon-button>`.
37
+ * @csspart close-button__base - The close button's exported `base` part.
38
+ */
39
+ export default class SynTab extends SynergyElement {
40
+ static styles: CSSResultGroup = [componentStyles, styles, customStyles];
41
+ static dependencies = { 'syn-icon-button': SynIconButton };
42
+
43
+ private readonly localize = new LocalizeController(this);
44
+
45
+ private readonly attrId = ++id;
46
+ private readonly componentId = `syn-tab-${this.attrId}`;
47
+
48
+ @query('.tab') tab: HTMLElement;
49
+
50
+ /** The name of the tab panel this tab is associated with. The panel must be located in the same tab group. */
51
+ @property({ reflect: true }) panel = '';
52
+
53
+ /** Draws the tab in an active state. */
54
+ @property({ type: Boolean, reflect: true }) active = false;
55
+
56
+ /** Makes the tab closable and shows a close button. */
57
+ @property({ type: Boolean, reflect: true }) closable = false;
58
+
59
+ /** Disables the tab and prevents selection. */
60
+ @property({ type: Boolean, reflect: true }) disabled = false;
61
+
62
+ /**
63
+ * @internal
64
+ * Need to wrap in a `@property()` otherwise CustomElement throws a "The result must not have attributes" runtime error.
65
+ */
66
+ @property({ type: Number, reflect: true }) tabIndex = 0;
67
+
68
+ connectedCallback() {
69
+ super.connectedCallback();
70
+ this.setAttribute('role', 'tab');
71
+ }
72
+
73
+ private handleCloseClick(event: Event) {
74
+ event.stopPropagation();
75
+ this.emit('syn-close');
76
+ }
77
+
78
+ @watch('active')
79
+ handleActiveChange() {
80
+ this.setAttribute('aria-selected', this.active ? 'true' : 'false');
81
+ }
82
+
83
+ @watch('disabled')
84
+ handleDisabledChange() {
85
+ this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');
86
+
87
+ if (this.disabled && !this.active) {
88
+ this.tabIndex = -1;
89
+ } else {
90
+ this.tabIndex = 0;
91
+ }
92
+ }
93
+
94
+ render() {
95
+ // If the user didn't provide an ID, we'll set one so we can link tabs and tab panels with aria labels
96
+ this.id = this.id.length > 0 ? this.id : this.componentId;
97
+
98
+ return html`
99
+ <div
100
+ part="base"
101
+ class=${classMap({
102
+ tab: true,
103
+ 'tab--active': this.active,
104
+ 'tab--closable': this.closable,
105
+ 'tab--disabled': this.disabled
106
+ })}
107
+ >
108
+ <slot></slot>
109
+ ${this.closable
110
+ ? html`
111
+ <syn-icon-button
112
+ part="close-button"
113
+ exportparts="base:close-button__base"
114
+ name="x-lg"
115
+ library="system"
116
+ label=${this.localize.term('close')}
117
+ class="tab__close-button"
118
+ @click=${this.handleCloseClick}
119
+ tabindex="-1"
120
+ ></syn-icon-button>
121
+ `
122
+ : ''}
123
+ </div>
124
+ `;
125
+ }
126
+ }
127
+
128
+ declare global {
129
+ interface HTMLElementTagNameMap {
130
+ 'syn-tab': SynTab;
131
+ }
132
+ }