@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,79 @@
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 { SynOptgroup } from '@synergy-design-system/components';
16
+
17
+ import '@synergy-design-system/components/components/optgroup/optgroup.js';
18
+
19
+ /**
20
+ * @summary The <syn-optgroup> element creates a grouping for <syn-option>s within a <syn-select>.
21
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-optgroup--docs
22
+ * @status stable
23
+ * @since 1.3.0
24
+ *
25
+ * @dependency syn-divider
26
+ *
27
+ * @slot - The given options. Must be `<syn-option>` elements.
28
+ * @slot prefix - A presentational prefix icon or similar element.
29
+ * @slot label - The label for the optgroup
30
+ * @slot suffix - A presentational suffix icon or similar element.
31
+ *
32
+ * @csspart base - The component's base wrapper.
33
+ * @csspart label-container - The container that wraps prefix, label and base
34
+ * @csspart divider - The divider that is displayed above the content
35
+ * @csspart prefix - The container that wraps the prefix.
36
+ * @csspart suffix - The container that wraps the suffix.
37
+ * @csspart options - The container that wraps the <syn-option> elements.
38
+ *
39
+ * @cssproperty --display-divider - Display property of the divider. Defaults to "block"
40
+ */
41
+ @Component({
42
+ selector: 'syn-optgroup',
43
+ standalone: true,
44
+ template: '<ng-content></ng-content>',
45
+ })
46
+ export class SynOptgroupComponent {
47
+ public nativeElement: SynOptgroup;
48
+ private _ngZone: NgZone;
49
+
50
+ constructor(e: ElementRef, ngZone: NgZone) {
51
+ this.nativeElement = e.nativeElement;
52
+ this._ngZone = ngZone;
53
+ }
54
+
55
+ /**
56
+ * Disables all options in the optgroup.
57
+ */
58
+ @Input()
59
+ set disabled(v: '' | SynOptgroup['disabled']) {
60
+ this._ngZone.runOutsideAngular(
61
+ () => (this.nativeElement.disabled = v === '' || v),
62
+ );
63
+ }
64
+ get disabled(): SynOptgroup['disabled'] {
65
+ return this.nativeElement.disabled;
66
+ }
67
+
68
+ /**
69
+ * The optgroups label.
70
+ * If you need to display HTML, use the `label` slot instead.
71
+ */
72
+ @Input()
73
+ set label(v: SynOptgroup['label']) {
74
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.label = v));
75
+ }
76
+ get label(): SynOptgroup['label'] {
77
+ return this.nativeElement.label;
78
+ }
79
+ }
@@ -0,0 +1,41 @@
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/optgroup/optgroup.component.js';
9
+
10
+ const tagName = 'syn-optgroup';
11
+ Component.define('syn-optgroup');
12
+
13
+ /**
14
+ * @summary The <syn-optgroup> element creates a grouping for <syn-option>s within a <syn-select>.
15
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-optgroup--docs
16
+ * @status stable
17
+ * @since 1.3.0
18
+ *
19
+ * @dependency syn-divider
20
+ *
21
+ * @slot - The given options. Must be `<syn-option>` elements.
22
+ * @slot prefix - A presentational prefix icon or similar element.
23
+ * @slot label - The label for the optgroup
24
+ * @slot suffix - A presentational suffix icon or similar element.
25
+ *
26
+ * @csspart base - The component's base wrapper.
27
+ * @csspart label-container - The container that wraps prefix, label and base
28
+ * @csspart divider - The divider that is displayed above the content
29
+ * @csspart prefix - The container that wraps the prefix.
30
+ * @csspart suffix - The container that wraps the suffix.
31
+ * @csspart options - The container that wraps the <syn-option> elements.
32
+ *
33
+ * @cssproperty --display-divider - Display property of the divider. Defaults to "block"
34
+ */
35
+ export const SynOptgroup = createComponent({
36
+ displayName: 'SynOptgroup',
37
+ elementClass: Component,
38
+ events: {},
39
+ react: React,
40
+ tagName,
41
+ });
@@ -0,0 +1,59 @@
1
+ import { css } from 'lit';
2
+
3
+ export default css`
4
+ :host {
5
+ --display-divider: block;
6
+ }
7
+
8
+ .optgroup__divider {
9
+ --spacing: var(--syn-spacing-x-small);
10
+
11
+ display: var(--display-divider);
12
+ }
13
+
14
+ .optgroup__label-container {
15
+ align-items: center;
16
+ box-sizing: border-box;
17
+ color: var(--syn-color-neutral-950);
18
+ display: flex;
19
+ gap: var(--syn-spacing-small);
20
+ min-height: var(--option-min-height, var(--syn-input-height-medium));
21
+ }
22
+
23
+ /**
24
+ * Only show the label container when there is a label at all
25
+ */
26
+ .optgroup--has-prefix .optgroup__label-container,
27
+ .optgroup--has-label .optgroup__label-container,
28
+ .optgroup--has-suffix .optgroup__label-container {
29
+ padding: var(--option-padding, var(--syn-spacing-small) var(--syn-spacing-medium));
30
+ }
31
+
32
+ /**
33
+ * Format main label.
34
+ * Make sure this works for props and slotted content
35
+ */
36
+ .optgroup__label-content,
37
+ .optgroup__label::slotted(*) {
38
+ flex: 1;
39
+ font-family: var(--syn-font-sans);
40
+ font-size: var(--option-font-size, var(--syn-font-size-medium));
41
+ font-weight: var(--syn-font-weight-semibold);
42
+ line-height: var(--syn-line-height-normal);
43
+ }
44
+
45
+ /* Disabled Label */
46
+ .optgroup--is-disabled .optgroup__label-container {
47
+ opacity: var(--syn-input-disabled-opacity);
48
+ }
49
+
50
+ .optgroup__prefix,
51
+ .optgroup__suffix {
52
+ color: var(--syn-color-neutral-800);
53
+ font-size: var(--syn-spacing-large);
54
+ }
55
+
56
+ .optgroup__options ::slotted(syn-option[hidden]) {
57
+ display: none;
58
+ }
59
+ `;
@@ -0,0 +1,176 @@
1
+ /* eslint-disable @typescript-eslint/unbound-method */
2
+ import { classMap } from 'lit/directives/class-map.js';
3
+ import { html } from 'lit/static-html.js';
4
+ import { property, queryAssignedElements } from 'lit/decorators.js';
5
+ import type { CSSResultGroup } from 'lit';
6
+ import SynergyElement from '../../internal/synergy-element.js';
7
+ import { HasSlotController } from '../../internal/slot.js';
8
+ import SynDivider from '../divider/divider.component.js';
9
+ import type SynOption from '../option/option.component.js';
10
+ import styles from './optgroup.styles.js';
11
+
12
+ /**
13
+ * Handle the dataset value of the option when the disabled state changes.
14
+ * @param option The option to set the value for
15
+ * @param isDisabled The original disabled, usually from the parent optgroup
16
+ */
17
+ const handleInitialDisabledForOption = (option: SynOption, isDisabled: boolean) => {
18
+ /* eslint-disable no-param-reassign */
19
+ if (option.disabled) {
20
+ option.dataset.originallyDisabled = 'true';
21
+ } else {
22
+ delete option.dataset.originallyDisabled;
23
+ }
24
+
25
+ if (isDisabled) {
26
+ option.disabled = true;
27
+ }
28
+ /* eslint-enable no-param-reassign */
29
+ };
30
+
31
+ /**
32
+ * @summary The <syn-optgroup> element creates a grouping for <syn-option>s within a <syn-select>.
33
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-optgroup--docs
34
+ * @status stable
35
+ * @since 1.3.0
36
+ *
37
+ * @dependency syn-divider
38
+ *
39
+ * @slot - The given options. Must be `<syn-option>` elements.
40
+ * @slot prefix - A presentational prefix icon or similar element.
41
+ * @slot label - The label for the optgroup
42
+ * @slot suffix - A presentational suffix icon or similar element.
43
+ *
44
+ * @csspart base - The component's base wrapper.
45
+ * @csspart label-container - The container that wraps prefix, label and base
46
+ * @csspart divider - The divider that is displayed above the content
47
+ * @csspart prefix - The container that wraps the prefix.
48
+ * @csspart suffix - The container that wraps the suffix.
49
+ * @csspart options - The container that wraps the <syn-option> elements.
50
+ *
51
+ * @cssproperty --display-divider - Display property of the divider. Defaults to "block"
52
+ */
53
+ export default class SynOptgroup extends SynergyElement {
54
+ static styles: CSSResultGroup = styles;
55
+
56
+ static dependencies = {
57
+ 'syn-divider': SynDivider,
58
+ };
59
+
60
+ private readonly hasSlotController = new HasSlotController(this, '[default]', 'prefix', 'suffix', 'label');
61
+
62
+ private mutationObserver: MutationObserver;
63
+
64
+ private enableObserver() {
65
+ this.mutationObserver.observe(this, {
66
+ attributeFilter: ['disabled'],
67
+ childList: true,
68
+ subtree: true,
69
+ });
70
+ }
71
+
72
+ @queryAssignedElements({ selector: 'syn-option' }) assignedOptions: SynOption[];
73
+
74
+ /**
75
+ * Disables all options in the optgroup.
76
+ */
77
+ @property({ reflect: true, type: Boolean }) disabled = false;
78
+
79
+ /**
80
+ * The optgroups label. If you need to display HTML, use the `label` slot instead.
81
+ */
82
+ @property() label = '';
83
+
84
+ connectedCallback() {
85
+ super.connectedCallback();
86
+
87
+ /* eslint-disable no-param-reassign */
88
+ // eslint-disable-next-line complexity
89
+ this.mutationObserver = new MutationObserver(entries => {
90
+ // Check if the mutation is for this optgroup
91
+ const optgroupChanges = entries.filter(entry => entry.target === this);
92
+ const optionChanges = entries.filter(entry => (entry.target as HTMLElement).matches('syn-option'));
93
+
94
+ const stopObserver = optgroupChanges.length > 0 || optionChanges.length > 0;
95
+
96
+ if (stopObserver) {
97
+ this.mutationObserver.disconnect();
98
+ }
99
+
100
+ // If options disabled state are changed dynamically,
101
+ // we need to store the new "originallyDisabled" state
102
+ if (optionChanges.length > 0) {
103
+ optionChanges.forEach(optionMutation => {
104
+ handleInitialDisabledForOption(optionMutation.target as SynOption, this.disabled);
105
+ });
106
+ }
107
+
108
+ // If the optgroup is disabled, disable all options
109
+ // If the optgroup is enabled, reenable all options that were enabled before
110
+ if (optgroupChanges.length > 0) {
111
+ optgroupChanges.forEach(optgroupMutation => {
112
+ if (optgroupMutation.type === 'attributes') {
113
+ this.assignedOptions.forEach(option => {
114
+ option.disabled = this.disabled
115
+ ? true
116
+ : !!option.dataset?.originallyDisabled;
117
+ });
118
+ }
119
+
120
+ if (optgroupMutation.type === 'childList') {
121
+ optgroupMutation.addedNodes.forEach((node) => {
122
+ if (node instanceof HTMLElement && node.matches('syn-option')) {
123
+ handleInitialDisabledForOption(node as SynOption, this.disabled);
124
+ }
125
+ });
126
+ }
127
+ });
128
+ }
129
+
130
+ // Reenable the mutation observer when it was stopped.
131
+ // This is needed to make sure that we get future changes again
132
+ if (stopObserver) {
133
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
134
+ this.updateComplete.then(() => {
135
+ this.enableObserver();
136
+ });
137
+ }
138
+ });
139
+ /* eslint-enable no-param-reassign */
140
+
141
+ this.enableObserver();
142
+ }
143
+
144
+ render() {
145
+ const { disabled } = this;
146
+ const hasLabelSlot = this.hasSlotController.test('label');
147
+ const hasLabel = this.label ? true : !!hasLabelSlot;
148
+ return html`
149
+ <div
150
+ class=${classMap({
151
+ optgroup: true,
152
+ 'optgroup--has-label': hasLabel,
153
+ 'optgroup--has-prefix': this.hasSlotController.test('prefix'),
154
+ 'optgroup--has-suffix': this.hasSlotController.test('suffix'),
155
+ 'optgroup--is-disabled': this.disabled,
156
+ })}
157
+ role="${disabled ? 'presentation' : 'group'}"
158
+ part="base"
159
+ >
160
+ <syn-divider class="optgroup__divider" part="divider"></syn-divider>
161
+ <div class="optgroup__label-container" part="label-container">
162
+ <slot name="prefix" part="prefix" class="optgroup__prefix"></slot>
163
+ <slot name="label" part="label" class="optgroup__label">
164
+ <span class="optgroup__label-content">
165
+ ${this.label}
166
+ </span>
167
+ </slot>
168
+ <slot name="suffix" part="suffix" class="optgroup__suffix"></slot>
169
+ </div>
170
+ <div class="optgroup__options" role="group" part="options">
171
+ <slot></slot>
172
+ </div>
173
+ </div>
174
+ `;
175
+ }
176
+ }
@@ -0,0 +1,71 @@
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 The <syn-optgroup> element creates a grouping for <syn-option>s within a <syn-select>.
10
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-optgroup--docs
11
+ * @status stable
12
+ * @since 1.3.0
13
+ *
14
+ * @dependency syn-divider
15
+ *
16
+ * @slot - The given options. Must be `<syn-option>` elements.
17
+ * @slot prefix - A presentational prefix icon or similar element.
18
+ * @slot label - The label for the optgroup
19
+ * @slot suffix - A presentational suffix icon or similar element.
20
+ *
21
+ * @csspart base - The component's base wrapper.
22
+ * @csspart label-container - The container that wraps prefix, label and base
23
+ * @csspart divider - The divider that is displayed above the content
24
+ * @csspart prefix - The container that wraps the prefix.
25
+ * @csspart suffix - The container that wraps the suffix.
26
+ * @csspart options - The container that wraps the <syn-option> elements.
27
+ *
28
+ * @cssproperty --display-divider - Display property of the divider. Defaults to "block"
29
+ */
30
+ import { computed, ref } from 'vue';
31
+ import '@synergy-design-system/components/components/optgroup/optgroup.js';
32
+
33
+ import type { SynOptgroup } from '@synergy-design-system/components';
34
+
35
+ // DOM Reference to the element
36
+ const nativeElement = ref<SynOptgroup>();
37
+
38
+ defineExpose({
39
+ nativeElement,
40
+ });
41
+
42
+ // Map attributes
43
+ const props = defineProps<{
44
+ /**
45
+ * Disables all options in the optgroup.
46
+ */
47
+ disabled?: SynOptgroup['disabled'];
48
+
49
+ /**
50
+ * The optgroups label.
51
+ * If you need to display HTML, use the `label` slot instead.
52
+ */
53
+ label?: SynOptgroup['label'];
54
+ }>();
55
+
56
+ // Make sure prop binding only forwards the props that are actually there.
57
+ // This is needed because :param="param" also adds an empty attribute
58
+ // when using web-components, which breaks optional arguments like size in SynInput
59
+ // @see https://github.com/vuejs/core/issues/5190#issuecomment-1003112498
60
+ const visibleProps = computed(() =>
61
+ Object.fromEntries(
62
+ Object.entries(props).filter(([, value]) => typeof value !== 'undefined'),
63
+ ),
64
+ );
65
+ </script>
66
+
67
+ <template>
68
+ <syn-optgroup v-bind="visibleProps" ref="nativeElement">
69
+ <slot></slot>
70
+ </syn-optgroup>
71
+ </template>
@@ -0,0 +1,79 @@
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 { SynOption } from '@synergy-design-system/components';
16
+
17
+ import '@synergy-design-system/components/components/option/option.js';
18
+
19
+ /**
20
+ * @summary Options define the selectable items within various form controls such as [select](/components/select).
21
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-option--docs
22
+ * @status stable
23
+ * @since 2.0
24
+ *
25
+ * @dependency syn-icon
26
+ *
27
+ * @slot - The option's label.
28
+ * @slot prefix - Used to prepend an icon or similar element to the menu item.
29
+ * @slot suffix - Used to append an icon or similar element to the menu item.
30
+ *
31
+ * @csspart checked-icon - The checked icon, an `<syn-icon>` element.
32
+ * @csspart base - The component's base wrapper.
33
+ * @csspart label - The option's label.
34
+ * @csspart prefix - The container that wraps the prefix.
35
+ * @csspart suffix - The container that wraps the suffix.
36
+ */
37
+ @Component({
38
+ selector: 'syn-option',
39
+ standalone: true,
40
+ template: '<ng-content></ng-content>',
41
+ })
42
+ export class SynOptionComponent {
43
+ public nativeElement: SynOption;
44
+ private _ngZone: NgZone;
45
+
46
+ constructor(e: ElementRef, ngZone: NgZone) {
47
+ this.nativeElement = e.nativeElement;
48
+ this._ngZone = ngZone;
49
+ }
50
+
51
+ /**
52
+ * The option's value.
53
+ * When selected, the containing form control will receive this value.
54
+ * The value must be unique
55
+ from other options in the same group.
56
+ * Values may not contain spaces, as spaces are used as delimiters when listing
57
+ multiple values.
58
+ */
59
+ @Input()
60
+ set value(v: SynOption['value']) {
61
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.value = v));
62
+ }
63
+ get value(): SynOption['value'] {
64
+ return this.nativeElement.value;
65
+ }
66
+
67
+ /**
68
+ * Draws the option in a disabled state, preventing selection.
69
+ */
70
+ @Input()
71
+ set disabled(v: '' | SynOption['disabled']) {
72
+ this._ngZone.runOutsideAngular(
73
+ () => (this.nativeElement.disabled = v === '' || v),
74
+ );
75
+ }
76
+ get disabled(): SynOption['disabled'] {
77
+ return this.nativeElement.disabled;
78
+ }
79
+ }
@@ -0,0 +1,81 @@
1
+ import { css } from 'lit';
2
+
3
+ export default css`
4
+ /**
5
+ * The syn-option is now able to adjust its height from a parent item
6
+ * This is done by exposing multiple css variables to the outside:
7
+ *
8
+ * --option-min-height (defaults to 48px) The minimal height of an element
9
+ * --option-padding (defaults to var(--syn-spacing-small) var(--syn-spacing-medium)) The padding to use
10
+ * --option-font-size (defaults to var(--syn-font-size-medium)) The font size to use
11
+ * --option-icon-size (defaults to var(--syn-spacing-large)) The size of the checkmark
12
+ *
13
+ * See below for usage of these variables
14
+ */
15
+ .option {
16
+ font-size: var(--option-font-size, var(--syn-font-size-medium));
17
+
18
+ /* Height is dependent on line-height of .option__label, which does not fit completely to layout */
19
+ min-height: var(--option-min-height, var(--syn-input-height-medium));
20
+ padding: var(--option-padding, var(--syn-spacing-small) var(--syn-spacing-medium));
21
+ }
22
+
23
+ .option:not(.option--current) {
24
+ color: var(--syn-color-neutral-950);
25
+ }
26
+
27
+ /** #429: Use token for opacity */
28
+ .option--disabled {
29
+ opacity: var(--syn-input-disabled-opacity);
30
+ }
31
+
32
+ .option__label {
33
+ line-height: var(--syn-line-height-normal);
34
+ }
35
+
36
+ .option__check {
37
+ color: var(--syn-color-primary-600);
38
+ font-size: var(--option-icon-size, var(--syn-spacing-large));
39
+ }
40
+
41
+ .option .option__check {
42
+ padding-inline-end: var(--syn-spacing-small);
43
+ }
44
+
45
+ /* Invert the check mark when keyboard navigation is used */
46
+ .option--current .option__check {
47
+ color: var(--syn-color-neutral-0);
48
+ }
49
+
50
+ /* Use larger spacing between icons and content */
51
+ .option__prefix::slotted(*) {
52
+ margin-inline-end: var(--syn-spacing-small);
53
+ }
54
+
55
+ .option__suffix::slotted(*) {
56
+ margin-inline-start: var(--syn-spacing-small);
57
+ }
58
+
59
+ /* Set correct icon size when someone uses syn-icon in the slots */
60
+ .option__prefix::slotted(syn-icon),
61
+ .option__suffix::slotted(syn-icon) {
62
+ color: var(--syn-color-neutral-800);
63
+ font-size: var(--option-icon-size, var(--syn-spacing-large));
64
+ }
65
+
66
+ .option--current .option__prefix::slotted(syn-icon),
67
+ .option--current .option__suffix::slotted(syn-icon) {
68
+ color: var(--syn-color-neutral-0);
69
+ }
70
+
71
+ /* This is needed for the highlight styling of the options in syn-combobox */
72
+ .option__label::slotted(.syn-highlight-style) {
73
+ background-color: transparent;
74
+ color: var(--syn-color-neutral-950);
75
+ font: var(--syn-body-medium-bold);
76
+ }
77
+
78
+ :host([aria-selected='true']) .option__label::slotted(.syn-highlight-style) {
79
+ color: var(--syn-color-neutral-0);
80
+ }
81
+ `;
@@ -0,0 +1,37 @@
1
+ // ---------------------------------------------------------------------
2
+ // 🔒 AUTOGENERATED @synergy-design-system/react wrappers for @synergy-design-system/components
3
+ // Please do not edit this file directly!
4
+ // It will get recreated when running pnpm build.
5
+ // ---------------------------------------------------------------------
6
+ import * as React from 'react';
7
+ import { createComponent } from '@lit/react';
8
+ import Component from '@synergy-design-system/components/components/option/option.component.js';
9
+
10
+ const tagName = 'syn-option';
11
+ Component.define('syn-option');
12
+
13
+ /**
14
+ * @summary Options define the selectable items within various form controls such as [select](/components/select).
15
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-option--docs
16
+ * @status stable
17
+ * @since 2.0
18
+ *
19
+ * @dependency syn-icon
20
+ *
21
+ * @slot - The option's label.
22
+ * @slot prefix - Used to prepend an icon or similar element to the menu item.
23
+ * @slot suffix - Used to append an icon or similar element to the menu item.
24
+ *
25
+ * @csspart checked-icon - The checked icon, an `<syn-icon>` element.
26
+ * @csspart base - The component's base wrapper.
27
+ * @csspart label - The option's label.
28
+ * @csspart prefix - The container that wraps the prefix.
29
+ * @csspart suffix - The container that wraps the suffix.
30
+ */
31
+ export const SynOption = createComponent({
32
+ displayName: 'SynOption',
33
+ elementClass: Component,
34
+ events: {},
35
+ react: React,
36
+ tagName,
37
+ });