@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,90 @@
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 { html } from 'lit';
10
+ import { LocalizeController } from '../../utilities/localize.js';
11
+ import { property, query, state } from 'lit/decorators.js';
12
+ import componentStyles from '../../styles/component.styles.js';
13
+ import SynergyElement from '../../internal/synergy-element.js';
14
+ import styles from './progress-ring.styles.js';
15
+ import customStyles from './progress-ring.custom.styles.js';
16
+ import type { CSSResultGroup } from 'lit';
17
+
18
+ /**
19
+ * @summary Progress rings are used to show the progress of a determinate operation in a circular fashion.
20
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-progress-ring--docs
21
+ * @status stable
22
+ * @since 2.0
23
+ *
24
+ * @slot - A label to show inside the ring.
25
+ *
26
+ * @csspart base - The component's base wrapper.
27
+ * @csspart label - The progress ring label.
28
+ *
29
+ * @cssproperty --size - The diameter of the progress ring (cannot be a percentage).
30
+ * @cssproperty --track-width - The width of the track.
31
+ * @cssproperty --track-color - The color of the track.
32
+ * @cssproperty --indicator-width - The width of the indicator. Defaults to the track width.
33
+ * @cssproperty --indicator-color - The color of the indicator.
34
+ * @cssproperty --indicator-transition-duration - The duration of the indicator's transition when the value changes.
35
+ */
36
+ export default class SynProgressRing extends SynergyElement {
37
+ static styles: CSSResultGroup = [componentStyles, styles, customStyles];
38
+
39
+ private readonly localize = new LocalizeController(this);
40
+
41
+ @query('.progress-ring__indicator') indicator: SVGCircleElement;
42
+
43
+ @state() indicatorOffset: string;
44
+
45
+ /** The current progress as a percentage, 0 to 100. */
46
+ @property({ type: Number, reflect: true }) value = 0;
47
+
48
+ /** A custom label for assistive devices. */
49
+ @property() label = '';
50
+
51
+ updated(changedProps: Map<string, unknown>) {
52
+ super.updated(changedProps);
53
+
54
+ //
55
+ // This block is only required for Safari because it doesn't transition the circle when the custom properties
56
+ // change, possibly because of a mix of pixel + unit-less values in the calc() function. It seems like a Safari bug,
57
+ // but I couldn't pinpoint it so this works around the problem.
58
+ //
59
+ if (changedProps.has('value')) {
60
+ const radius = parseFloat(getComputedStyle(this.indicator).getPropertyValue('r'));
61
+ const circumference = 2 * Math.PI * radius;
62
+ const offset = circumference - (this.value / 100) * circumference;
63
+
64
+ this.indicatorOffset = `${offset}px`;
65
+ }
66
+ }
67
+
68
+ render() {
69
+ return html`
70
+ <div
71
+ part="base"
72
+ class="progress-ring"
73
+ role="progressbar"
74
+ aria-label=${this.label.length > 0 ? this.label : this.localize.term('progress')}
75
+ aria-describedby="label"
76
+ aria-valuemin="0"
77
+ aria-valuemax="100"
78
+ aria-valuenow="${this.value}"
79
+ style="--percentage: ${this.value / 100}"
80
+ >
81
+ <svg class="progress-ring__image">
82
+ <circle class="progress-ring__track"></circle>
83
+ <circle class="progress-ring__indicator" style="stroke-dashoffset: ${this.indicatorOffset}"></circle>
84
+ </svg>
85
+
86
+ <slot id="label" part="label" class="progress-ring__label"></slot>
87
+ </div>
88
+ `;
89
+ }
90
+ }
@@ -0,0 +1,66 @@
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 Progress rings are used to show the progress of a determinate operation in a circular fashion.
10
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-progress-ring--docs
11
+ * @status stable
12
+ * @since 2.0
13
+ *
14
+ * @slot - A label to show inside the ring.
15
+ *
16
+ * @csspart base - The component's base wrapper.
17
+ * @csspart label - The progress ring label.
18
+ *
19
+ * @cssproperty --size - The diameter of the progress ring (cannot be a percentage).
20
+ * @cssproperty --track-width - The width of the track.
21
+ * @cssproperty --track-color - The color of the track.
22
+ * @cssproperty --indicator-width - The width of the indicator. Defaults to the track width.
23
+ * @cssproperty --indicator-color - The color of the indicator.
24
+ * @cssproperty --indicator-transition-duration - The duration of the indicator's transition when the value changes.
25
+ */
26
+ import { computed, ref } from 'vue';
27
+ import '@synergy-design-system/components/components/progress-ring/progress-ring.js';
28
+
29
+ import type { SynProgressRing } from '@synergy-design-system/components';
30
+
31
+ // DOM Reference to the element
32
+ const nativeElement = ref<SynProgressRing>();
33
+
34
+ defineExpose({
35
+ nativeElement,
36
+ });
37
+
38
+ // Map attributes
39
+ const props = defineProps<{
40
+ /**
41
+ * The current progress as a percentage, 0 to 100.
42
+ */
43
+ value?: SynProgressRing['value'];
44
+
45
+ /**
46
+ * A custom label for assistive devices.
47
+ */
48
+ label?: SynProgressRing['label'];
49
+ }>();
50
+
51
+ // Make sure prop binding only forwards the props that are actually there.
52
+ // This is needed because :param="param" also adds an empty attribute
53
+ // when using web-components, which breaks optional arguments like size in SynInput
54
+ // @see https://github.com/vuejs/core/issues/5190#issuecomment-1003112498
55
+ const visibleProps = computed(() =>
56
+ Object.fromEntries(
57
+ Object.entries(props).filter(([, value]) => typeof value !== 'undefined'),
58
+ ),
59
+ );
60
+ </script>
61
+
62
+ <template>
63
+ <syn-progress-ring v-bind="visibleProps" ref="nativeElement">
64
+ <slot></slot>
65
+ </syn-progress-ring>
66
+ </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 { SynRadio } from '@synergy-design-system/components';
16
+ import type { SynBlurEvent } from '@synergy-design-system/components';
17
+ import type { SynFocusEvent } from '@synergy-design-system/components';
18
+ import '@synergy-design-system/components/components/radio/radio.js';
19
+
20
+ /**
21
+ * @summary Radios allow the user to select a single option from a group.
22
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-radio--docs
23
+ * @status stable
24
+ * @since 2.0
25
+ *
26
+ * @dependency syn-icon
27
+ *
28
+ * @slot - The radio's label.
29
+ *
30
+ * @event syn-blur - Emitted when the control loses focus.
31
+ * @event syn-focus - Emitted when the control gains focus.
32
+ *
33
+ * @csspart base - The component's base wrapper.
34
+ * @csspart control - The circular container that wraps the radio's checked state.
35
+ * @csspart control--checked - The radio control when the radio is checked.
36
+ * @csspart checked-icon - The checked icon, an `<syn-icon>` element.
37
+ * @csspart label - The container that wraps the radio's label.
38
+ */
39
+ @Component({
40
+ selector: 'syn-radio',
41
+ standalone: true,
42
+ template: '<ng-content></ng-content>',
43
+ })
44
+ export class SynRadioComponent {
45
+ public nativeElement: SynRadio;
46
+ private _ngZone: NgZone;
47
+
48
+ constructor(e: ElementRef, ngZone: NgZone) {
49
+ this.nativeElement = e.nativeElement;
50
+ this._ngZone = ngZone;
51
+ this.nativeElement.addEventListener('syn-blur', (e: SynBlurEvent) => {
52
+ this.synBlurEvent.emit(e);
53
+ });
54
+ this.nativeElement.addEventListener('syn-focus', (e: SynFocusEvent) => {
55
+ this.synFocusEvent.emit(e);
56
+ });
57
+ }
58
+
59
+ /**
60
+ * The radio's value.
61
+ * When selected, the radio group will receive this value.
62
+ */
63
+ @Input()
64
+ set value(v: SynRadio['value']) {
65
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.value = v));
66
+ }
67
+ get value(): SynRadio['value'] {
68
+ return this.nativeElement.value;
69
+ }
70
+
71
+ /**
72
+ * The radio's size.
73
+ * When used inside a radio group, the size will be determined by the radio group's size so this
74
+ attribute can typically be omitted.
75
+ */
76
+ @Input()
77
+ set size(v: SynRadio['size']) {
78
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.size = v));
79
+ }
80
+ get size(): SynRadio['size'] {
81
+ return this.nativeElement.size;
82
+ }
83
+
84
+ /**
85
+ * Disables the radio.
86
+ */
87
+ @Input()
88
+ set disabled(v: '' | SynRadio['disabled']) {
89
+ this._ngZone.runOutsideAngular(
90
+ () => (this.nativeElement.disabled = v === '' || v),
91
+ );
92
+ }
93
+ get disabled(): SynRadio['disabled'] {
94
+ return this.nativeElement.disabled;
95
+ }
96
+
97
+ /**
98
+ * Emitted when the control loses focus.
99
+ */
100
+ @Output() synBlurEvent = new EventEmitter<SynBlurEvent>();
101
+
102
+ /**
103
+ * Emitted when the control gains focus.
104
+ */
105
+ @Output() synFocusEvent = new EventEmitter<SynFocusEvent>();
106
+ }
107
+
108
+ export type { SynBlurEvent } from '@synergy-design-system/components';
109
+ export type { SynFocusEvent } from '@synergy-design-system/components';
@@ -0,0 +1,73 @@
1
+ import { css } from 'lit';
2
+
3
+ export default css`
4
+ :host(:focus-visible) .radio__control {
5
+ outline: var(--syn-focus-ring);
6
+ outline-offset: var(--syn-focus-ring-width);
7
+ }
8
+
9
+ /** #429: Use token for opacity */
10
+ .radio--disabled {
11
+ opacity: var(--syn-input-disabled-opacity);
12
+ }
13
+
14
+ /* Checked + hover */
15
+ .radio.radio--checked:not(.radio--disabled):hover .radio__control {
16
+ background-color: var(--syn-color-primary-950);
17
+ border-color: var(--syn-color-primary-950);
18
+ }
19
+
20
+ /* Hover */
21
+ .radio:not(.radio--checked):not(.radio--disabled):hover .radio__control {
22
+ border-color: var(--syn-color-primary-900);
23
+ }
24
+
25
+ /* Fix#456: Multi line radio fixes */
26
+ .radio__label {
27
+ margin-inline-start: var(--syn-spacing-x-small);
28
+ position: relative;
29
+ }
30
+
31
+ .radio--small .radio__label {
32
+ font: var(--syn-body-small-regular);
33
+ top: -3px;
34
+ }
35
+
36
+ .radio--medium .radio__label {
37
+ font: var(--syn-body-medium-regular);
38
+ top: -3px;
39
+ }
40
+
41
+ .radio--large .radio__label {
42
+ font: var(--syn-body-large-regular);
43
+ top: -2px;
44
+ }
45
+
46
+ /**
47
+ * #920: The new icons are instances in figma.
48
+ * The width of the system icon is 12px x 12px, so there is no inner padding.
49
+ * To accommodate for this, we need to set the width and height of the icon to 50% to get the same result as before.
50
+ */
51
+ .radio__checked-icon {
52
+ scale: 0.5;
53
+ }
54
+
55
+ /* /Fix#456 */
56
+
57
+ /* Size modifiers */
58
+ .radio--small {
59
+ --toggle-size: var(--syn-input-font-size-small);
60
+ }
61
+
62
+ .radio--medium {
63
+ --toggle-size: var(--syn-font-size-medium);
64
+ }
65
+
66
+ .radio--large {
67
+ --toggle-size: var(--syn-spacing-large);
68
+ }
69
+
70
+ .radio--small .radio__label, .radio--large .radio__label {
71
+ margin-inline-start: var(--syn-spacing-x-small);
72
+ }
73
+ `;
@@ -0,0 +1,48 @@
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/radio/radio.component.js';
9
+
10
+ import { type EventName } from '@lit/react';
11
+ import type { SynBlurEvent } from '@synergy-design-system/components';
12
+ import type { SynFocusEvent } from '@synergy-design-system/components';
13
+
14
+ const tagName = 'syn-radio';
15
+ Component.define('syn-radio');
16
+
17
+ /**
18
+ * @summary Radios allow the user to select a single option from a group.
19
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-radio--docs
20
+ * @status stable
21
+ * @since 2.0
22
+ *
23
+ * @dependency syn-icon
24
+ *
25
+ * @slot - The radio's label.
26
+ *
27
+ * @event syn-blur - Emitted when the control loses focus.
28
+ * @event syn-focus - Emitted when the control gains focus.
29
+ *
30
+ * @csspart base - The component's base wrapper.
31
+ * @csspart control - The circular container that wraps the radio's checked state.
32
+ * @csspart control--checked - The radio control when the radio is checked.
33
+ * @csspart checked-icon - The checked icon, an `<syn-icon>` element.
34
+ * @csspart label - The container that wraps the radio's label.
35
+ */
36
+ export const SynRadio = createComponent({
37
+ displayName: 'SynRadio',
38
+ elementClass: Component,
39
+ events: {
40
+ onSynBlur: 'syn-blur' as EventName<SynBlurEvent>,
41
+ onSynFocus: 'syn-focus' as EventName<SynFocusEvent>,
42
+ },
43
+ react: React,
44
+ tagName,
45
+ });
46
+
47
+ export type { SynBlurEvent } from '@synergy-design-system/components';
48
+ export type { SynFocusEvent } from '@synergy-design-system/components';
@@ -0,0 +1,124 @@
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: block;
15
+ }
16
+
17
+ :host(:focus-visible) {
18
+ outline: 0px;
19
+ }
20
+
21
+ .radio {
22
+ display: inline-flex;
23
+ align-items: top;
24
+ font-family: var(--syn-input-font-family);
25
+ font-size: var(--syn-input-font-size-medium);
26
+ font-weight: var(--syn-input-font-weight);
27
+ color: var(--syn-input-label-color);
28
+ vertical-align: middle;
29
+ cursor: pointer;
30
+ }
31
+
32
+ .radio--small {
33
+ --toggle-size: var(--syn-toggle-size-small);
34
+ font-size: var(--syn-input-font-size-small);
35
+ }
36
+
37
+ .radio--medium {
38
+ --toggle-size: var(--syn-toggle-size-medium);
39
+ font-size: var(--syn-input-font-size-medium);
40
+ }
41
+
42
+ .radio--large {
43
+ --toggle-size: var(--syn-toggle-size-large);
44
+ font-size: var(--syn-input-font-size-large);
45
+ }
46
+
47
+ .radio__checked-icon {
48
+ display: inline-flex;
49
+ width: var(--toggle-size);
50
+ height: var(--toggle-size);
51
+ }
52
+
53
+ .radio__control {
54
+ flex: 0 0 auto;
55
+ position: relative;
56
+ display: inline-flex;
57
+ align-items: center;
58
+ justify-content: center;
59
+ width: var(--toggle-size);
60
+ height: var(--toggle-size);
61
+ border: solid var(--syn-input-border-width) var(--syn-input-border-color);
62
+ border-radius: 50%;
63
+ background-color: var(--syn-input-background-color);
64
+ color: transparent;
65
+ transition:
66
+ var(--syn-transition-fast) border-color,
67
+ var(--syn-transition-fast) background-color,
68
+ var(--syn-transition-fast) color,
69
+ var(--syn-transition-fast) box-shadow;
70
+ }
71
+
72
+ .radio__input {
73
+ position: absolute;
74
+ opacity: 0;
75
+ padding: 0;
76
+ margin: 0;
77
+ pointer-events: none;
78
+ }
79
+
80
+ /* Hover */
81
+ .radio:not(.radio--checked):not(.radio--disabled) .radio__control:hover {
82
+ border-color: var(--syn-input-border-color-hover);
83
+ background-color: var(--syn-input-background-color-hover);
84
+ }
85
+
86
+ /* Checked */
87
+ .radio--checked .radio__control {
88
+ color: var(--syn-color-neutral-0);
89
+ border-color: var(--syn-color-primary-600);
90
+ background-color: var(--syn-color-primary-600);
91
+ }
92
+
93
+ /* Checked + hover */
94
+ .radio.radio--checked:not(.radio--disabled) .radio__control:hover {
95
+ border-color: var(--syn-color-primary-500);
96
+ background-color: var(--syn-color-primary-500);
97
+ }
98
+
99
+ /* Checked + focus */
100
+ :host(:focus-visible) .radio__control {
101
+ outline: var(--syn-focus-ring);
102
+ outline-offset: var(--syn-focus-ring-offset);
103
+ }
104
+
105
+ /* Disabled */
106
+ .radio--disabled {
107
+ opacity: 0.5;
108
+ cursor: not-allowed;
109
+ }
110
+
111
+ /* When the control isn't checked, hide the circle for Windows High Contrast mode a11y */
112
+ .radio:not(.radio--checked) svg circle {
113
+ opacity: 0;
114
+ }
115
+
116
+ .radio__label {
117
+ display: inline-block;
118
+ color: var(--syn-input-label-color);
119
+ line-height: var(--toggle-size);
120
+ margin-inline-start: 0.5em;
121
+ user-select: none;
122
+ -webkit-user-select: none;
123
+ }
124
+ `;
@@ -0,0 +1,129 @@
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 { property, state } from 'lit/decorators.js';
12
+ import { watch } from '../../internal/watch.js';
13
+ import componentStyles from '../../styles/component.styles.js';
14
+ import SynergyElement from '../../internal/synergy-element.js';
15
+ import SynIcon from '../icon/icon.component.js';
16
+ import styles from './radio.styles.js';
17
+ import customStyles from './radio.custom.styles.js';
18
+ import type { CSSResultGroup } from 'lit';
19
+ import { enableDefaultSettings } from '../../utilities/defaultSettings/decorator.js';
20
+
21
+ /**
22
+ * @summary Radios allow the user to select a single option from a group.
23
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-radio--docs
24
+ * @status stable
25
+ * @since 2.0
26
+ *
27
+ * @dependency syn-icon
28
+ *
29
+ * @slot - The radio's label.
30
+ *
31
+ * @event syn-blur - Emitted when the control loses focus.
32
+ * @event syn-focus - Emitted when the control gains focus.
33
+ *
34
+ * @csspart base - The component's base wrapper.
35
+ * @csspart control - The circular container that wraps the radio's checked state.
36
+ * @csspart control--checked - The radio control when the radio is checked.
37
+ * @csspart checked-icon - The checked icon, an `<syn-icon>` element.
38
+ * @csspart label - The container that wraps the radio's label.
39
+ */
40
+ @enableDefaultSettings('SynRadio')
41
+ export default class SynRadio extends SynergyElement {
42
+ static styles: CSSResultGroup = [componentStyles, styles, customStyles];
43
+ static dependencies = { 'syn-icon': SynIcon };
44
+
45
+ @state() checked = false;
46
+ @state() protected hasFocus = false;
47
+
48
+ /** The radio's value. When selected, the radio group will receive this value. */
49
+ @property() value: string | number;
50
+
51
+ /**
52
+ * The radio's size. When used inside a radio group, the size will be determined by the radio group's size so this
53
+ * attribute can typically be omitted.
54
+ */
55
+ @property({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';
56
+
57
+ /** Disables the radio. */
58
+ @property({ type: Boolean, reflect: true }) disabled = false;
59
+
60
+ constructor() {
61
+ super();
62
+ this.addEventListener('blur', this.handleBlur);
63
+ this.addEventListener('click', this.handleClick);
64
+ this.addEventListener('focus', this.handleFocus);
65
+ }
66
+
67
+ connectedCallback() {
68
+ super.connectedCallback();
69
+ this.setInitialAttributes();
70
+ }
71
+
72
+ private handleBlur = () => {
73
+ this.hasFocus = false;
74
+ this.emit('syn-blur');
75
+ };
76
+
77
+ private handleClick = () => {
78
+ if (!this.disabled) {
79
+ this.checked = true;
80
+ }
81
+ };
82
+
83
+ private handleFocus = () => {
84
+ this.hasFocus = true;
85
+ this.emit('syn-focus');
86
+ };
87
+
88
+ private setInitialAttributes() {
89
+ this.setAttribute('role', 'radio');
90
+ this.setAttribute('tabindex', '-1');
91
+ this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');
92
+ }
93
+
94
+ @watch('checked')
95
+ handleCheckedChange() {
96
+ this.setAttribute('aria-checked', this.checked ? 'true' : 'false');
97
+ this.setAttribute('tabindex', this.checked ? '0' : '-1');
98
+ }
99
+
100
+ @watch('disabled', { waitUntilFirstUpdate: true })
101
+ handleDisabledChange() {
102
+ this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');
103
+ }
104
+
105
+ render() {
106
+ return html`
107
+ <span
108
+ part="base"
109
+ class=${classMap({
110
+ radio: true,
111
+ 'radio--checked': this.checked,
112
+ 'radio--disabled': this.disabled,
113
+ 'radio--focused': this.hasFocus,
114
+ 'radio--small': this.size === 'small',
115
+ 'radio--medium': this.size === 'medium',
116
+ 'radio--large': this.size === 'large'
117
+ })}
118
+ >
119
+ <span part="${`control${this.checked ? ' control--checked' : ''}`}" class="radio__control">
120
+ ${this.checked
121
+ ? html` <syn-icon part="checked-icon" class="radio__checked-icon" library="system" name="radio"></syn-icon> `
122
+ : ''}
123
+ </span>
124
+
125
+ <slot part="label" class="radio__label"></slot>
126
+ </span>
127
+ `;
128
+ }
129
+ }