@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,199 @@
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 { query } from 'lit/decorators.js';
11
+ import { state } from 'lit/decorators.js';
12
+ import { classMap } from 'lit/directives/class-map.js';
13
+ import type { SynAttributesChangedEvent } from '../../events/syn-attributes-changed.js';
14
+ import componentStyles from '../../styles/component.styles.js';
15
+ import SynergyElement from '../../internal/synergy-element.js';
16
+ import styles from './menu.styles.js';
17
+ import customStyles from './menu.custom.styles.js';
18
+ import type { CSSResultGroup } from 'lit';
19
+ import type SynMenuItem from '../menu-item/menu-item.component.js';
20
+
21
+ export interface MenuSelectEventDetail {
22
+ item: SynMenuItem;
23
+ }
24
+
25
+ /**
26
+ * @summary Menus provide a list of options for the user to choose from.
27
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-menu--docs
28
+ * @status stable
29
+ * @since 2.0
30
+ *
31
+ * @slot - The menu's content, including menu items, menu labels, and dividers.
32
+ *
33
+ * @event {{ item: SynMenuItem }} syn-select - Emitted when a menu item is selected.
34
+ */
35
+ export default class SynMenu extends SynergyElement {
36
+ static styles: CSSResultGroup = [componentStyles, styles, customStyles];
37
+
38
+ @query('slot') defaultSlot: HTMLSlotElement;
39
+ @state() hasMenuItemsWithCheckmarks = false;
40
+
41
+ private handleUpdateCheckmarks(items: SynMenuItem[]) {
42
+ // #368: Treat a menu as having checkmarks if it has any checkboxes or items with loading states
43
+ // The loading indicator has to be checked as well, as it's specially placed over the check mark
44
+ this.hasMenuItemsWithCheckmarks = items.some(item => item.type === 'checkbox' || item.loading);
45
+ }
46
+
47
+ private updateCheckMarksByChildPropChange = (e: SynAttributesChangedEvent) => {
48
+ e.stopImmediatePropagation();
49
+ this.handleUpdateCheckmarks(this.getAllItems());
50
+ };
51
+
52
+ disconnectedCallback() {
53
+ this.removeEventListener('syn-attributes-changed', this.updateCheckMarksByChildPropChange);
54
+ }
55
+
56
+ connectedCallback() {
57
+ super.connectedCallback();
58
+ this.setAttribute('role', 'menu');
59
+ this.addEventListener('syn-attributes-changed', this.updateCheckMarksByChildPropChange);
60
+ }
61
+
62
+ private handleClick(event: MouseEvent) {
63
+ const menuItemTypes = ['menuitem', 'menuitemcheckbox'];
64
+
65
+ const composedPath = event.composedPath();
66
+ const target = composedPath.find((el: Element) => menuItemTypes.includes(el?.getAttribute?.('role') || ''));
67
+
68
+ if (!target) return;
69
+
70
+ const closestMenu = composedPath.find((el: Element) => el?.getAttribute?.('role') === 'menu');
71
+ const clickHasSubmenu = closestMenu !== this;
72
+
73
+ // Make sure we're the menu thats supposed to be handling the click event.
74
+ if (clickHasSubmenu) return;
75
+
76
+ // This isn't true. But we use it for TypeScript checks below.
77
+ const item = target as SynMenuItem;
78
+
79
+ if (item.type === 'checkbox') {
80
+ item.checked = !item.checked;
81
+ }
82
+
83
+ this.emit('syn-select', { detail: { item } });
84
+ }
85
+
86
+ private handleKeyDown(event: KeyboardEvent) {
87
+ // Make a selection when pressing enter or space
88
+ if (event.key === 'Enter' || event.key === ' ') {
89
+ const item = this.getCurrentItem();
90
+ event.preventDefault();
91
+ event.stopPropagation();
92
+
93
+ // Simulate a click to support @click handlers on menu items that also work with the keyboard
94
+ item?.click();
95
+ }
96
+
97
+ // Move the selection when pressing down or up
98
+ else if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {
99
+ const items = this.getAllItems();
100
+ const activeItem = this.getCurrentItem();
101
+ let index = activeItem ? items.indexOf(activeItem) : 0;
102
+
103
+ if (items.length > 0) {
104
+ event.preventDefault();
105
+ event.stopPropagation();
106
+
107
+ if (event.key === 'ArrowDown') {
108
+ index++;
109
+ } else if (event.key === 'ArrowUp') {
110
+ index--;
111
+ } else if (event.key === 'Home') {
112
+ index = 0;
113
+ } else if (event.key === 'End') {
114
+ index = items.length - 1;
115
+ }
116
+
117
+ if (index < 0) {
118
+ index = items.length - 1;
119
+ }
120
+ if (index > items.length - 1) {
121
+ index = 0;
122
+ }
123
+
124
+ this.setCurrentItem(items[index]);
125
+ items[index].focus();
126
+ }
127
+ }
128
+ }
129
+
130
+ private handleMouseDown(event: MouseEvent) {
131
+ const target = event.target as HTMLElement;
132
+
133
+ if (this.isMenuItem(target)) {
134
+ this.setCurrentItem(target as SynMenuItem);
135
+ }
136
+ }
137
+
138
+ private handleSlotChange() {
139
+ const items = this.getAllItems();
140
+ this.handleUpdateCheckmarks(items);
141
+
142
+ // Reset the roving tab index when the slotted items change
143
+ if (items.length > 0) {
144
+ this.setCurrentItem(items[0]);
145
+ }
146
+ }
147
+
148
+ private isMenuItem(item: HTMLElement) {
149
+ return (
150
+ item.tagName.toLowerCase() === 'syn-menu-item' ||
151
+ ['menuitem', 'menuitemcheckbox', 'menuitemradio'].includes(item.getAttribute('role') ?? '')
152
+ );
153
+ }
154
+
155
+ /** @internal Gets all slotted menu items, ignoring dividers, headers, and other elements. */
156
+ getAllItems() {
157
+ return [...this.defaultSlot.assignedElements({ flatten: true })].filter((el: HTMLElement) => {
158
+ if (el.inert || !this.isMenuItem(el)) {
159
+ return false;
160
+ }
161
+ return true;
162
+ }) as SynMenuItem[];
163
+ }
164
+
165
+ /**
166
+ * @internal Gets the current menu item, which is the menu item that has `tabindex="0"` within the roving tab index.
167
+ * The menu item may or may not have focus, but for keyboard interaction purposes it's considered the "active" item.
168
+ */
169
+ getCurrentItem() {
170
+ return this.getAllItems().find(i => i.getAttribute('tabindex') === '0');
171
+ }
172
+
173
+ /**
174
+ * @internal Sets the current menu item to the specified element. This sets `tabindex="0"` on the target element and
175
+ * `tabindex="-1"` to all other items. This method must be called prior to setting focus on a menu item.
176
+ */
177
+ setCurrentItem(item: SynMenuItem) {
178
+ const items = this.getAllItems();
179
+
180
+ // Update tab indexes
181
+ items.forEach(i => {
182
+ i.setAttribute('tabindex', i === item ? '0' : '-1');
183
+ });
184
+ }
185
+
186
+ render() {
187
+ return html`
188
+ <slot
189
+ class=${classMap({
190
+ 'menu--no-checkmarks': !this.hasMenuItemsWithCheckmarks,
191
+ })}
192
+ @slotchange=${this.handleSlotChange}
193
+ @click=${this.handleClick}
194
+ @keydown=${this.handleKeyDown}
195
+ @mousedown=${this.handleMouseDown}
196
+ ></slot>
197
+ `;
198
+ }
199
+ }
@@ -0,0 +1,48 @@
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 Menus provide a list of options for the user to choose from.
10
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-menu--docs
11
+ * @status stable
12
+ * @since 2.0
13
+ *
14
+ * @slot - The menu's content, including menu items, menu labels, and dividers.
15
+ *
16
+ * @event {{ item: SynMenuItem }} syn-select - Emitted when a menu item is selected.
17
+ */
18
+ import { computed, ref } from 'vue';
19
+ import '@synergy-design-system/components/components/menu/menu.js';
20
+
21
+ import type { SynSelectEvent } from '@synergy-design-system/components';
22
+ import type { SynMenu } from '@synergy-design-system/components';
23
+
24
+ // DOM Reference to the element
25
+ const nativeElement = ref<SynMenu>();
26
+
27
+ defineExpose({
28
+ nativeElement,
29
+ });
30
+
31
+ // Map events
32
+ defineEmits<{
33
+ /**
34
+ * Emitted when a menu item is selected.
35
+ */
36
+ 'syn-select': [e: SynSelectEvent];
37
+ }>();
38
+ </script>
39
+
40
+ <script lang="ts">
41
+ export type { SynSelectEvent } from '@synergy-design-system/components';
42
+ </script>
43
+
44
+ <template>
45
+ <syn-menu @syn-select="$emit('syn-select', $event)" ref="nativeElement">
46
+ <slot></slot>
47
+ </syn-menu>
48
+ </template>
@@ -0,0 +1,121 @@
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 { SynMenuItem } from '@synergy-design-system/components';
16
+
17
+ import '@synergy-design-system/components/components/menu-item/menu-item.js';
18
+
19
+ /**
20
+ * @summary Menu items provide options for the user to pick from in a menu.
21
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-menu-item--docs
22
+ * @status stable
23
+ * @since 2.0
24
+ *
25
+ * @dependency syn-icon
26
+ * @dependency syn-popup
27
+ * @dependency syn-spinner
28
+ *
29
+ * @slot - The menu item's label.
30
+ * @slot prefix - Used to prepend an icon or similar element to the menu item.
31
+ * @slot suffix - Used to append an icon or similar element to the menu item.
32
+ * @slot submenu - Used to denote a nested menu.
33
+ *
34
+ * @csspart base - The component's base wrapper.
35
+ * @csspart checked-icon - The checked icon, which is only visible when the menu item is checked.
36
+ * @csspart prefix - The prefix container.
37
+ * @csspart label - The menu item label.
38
+ * @csspart suffix - The suffix container.
39
+ * @csspart spinner - The spinner that shows when the menu item is in the loading state.
40
+ * @csspart spinner__base - The spinner's base part.
41
+ * @csspart submenu-icon - The submenu icon, visible only when the menu item has a submenu (not yet implemented).
42
+ *
43
+ * @cssproperty [--submenu-offset=-2px] - The distance submenus shift to overlap the parent menu.
44
+ */
45
+ @Component({
46
+ selector: 'syn-menu-item',
47
+ standalone: true,
48
+ template: '<ng-content></ng-content>',
49
+ })
50
+ export class SynMenuItemComponent {
51
+ public nativeElement: SynMenuItem;
52
+ private _ngZone: NgZone;
53
+
54
+ constructor(e: ElementRef, ngZone: NgZone) {
55
+ this.nativeElement = e.nativeElement;
56
+ this._ngZone = ngZone;
57
+ }
58
+
59
+ /**
60
+ * The type of menu item to render.
61
+ * To use `checked`, this value must be set to `checkbox`.
62
+ */
63
+ @Input()
64
+ set type(v: SynMenuItem['type']) {
65
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.type = v));
66
+ }
67
+ get type(): SynMenuItem['type'] {
68
+ return this.nativeElement.type;
69
+ }
70
+
71
+ /**
72
+ * Draws the item in a checked state.
73
+ */
74
+ @Input()
75
+ set checked(v: '' | SynMenuItem['checked']) {
76
+ this._ngZone.runOutsideAngular(
77
+ () => (this.nativeElement.checked = v === '' || v),
78
+ );
79
+ }
80
+ get checked(): SynMenuItem['checked'] {
81
+ return this.nativeElement.checked;
82
+ }
83
+
84
+ /**
85
+ * A unique value to store in the menu item.
86
+ * This can be used as a way to identify menu items when selected.
87
+ */
88
+ @Input()
89
+ set value(v: SynMenuItem['value']) {
90
+ this._ngZone.runOutsideAngular(() => (this.nativeElement.value = v));
91
+ }
92
+ get value(): SynMenuItem['value'] {
93
+ return this.nativeElement.value;
94
+ }
95
+
96
+ /**
97
+ * Draws the menu item in a loading state.
98
+ */
99
+ @Input()
100
+ set loading(v: '' | SynMenuItem['loading']) {
101
+ this._ngZone.runOutsideAngular(
102
+ () => (this.nativeElement.loading = v === '' || v),
103
+ );
104
+ }
105
+ get loading(): SynMenuItem['loading'] {
106
+ return this.nativeElement.loading;
107
+ }
108
+
109
+ /**
110
+ * Draws the menu item in a disabled state, preventing selection.
111
+ */
112
+ @Input()
113
+ set disabled(v: '' | SynMenuItem['disabled']) {
114
+ this._ngZone.runOutsideAngular(
115
+ () => (this.nativeElement.disabled = v === '' || v),
116
+ );
117
+ }
118
+ get disabled(): SynMenuItem['disabled'] {
119
+ return this.nativeElement.disabled;
120
+ }
121
+ }
@@ -0,0 +1,128 @@
1
+ import { css } from 'lit';
2
+
3
+ export default css`
4
+ :host {
5
+ /* Custom override for hiding the checkmark in menus it is not needed */
6
+ --display-checkmark: flex;
7
+ }
8
+
9
+ .menu-item {
10
+ color: var(--syn-typography-color-text);
11
+ font-size: var(--syn-font-size-medium);
12
+ padding: var(--syn-spacing-small) var(--syn-spacing-medium);
13
+ }
14
+
15
+ /** #429: Use token for opacity */
16
+ .menu-item.menu-item--disabled {
17
+ opacity: var(--syn-opacity-50);
18
+ }
19
+
20
+ /**
21
+ * Handling for slotted prefix and suffix
22
+ */
23
+ .menu-item .menu-item__prefix::slotted(*) {
24
+ margin-inline-end: var(--syn-spacing-small);
25
+ }
26
+
27
+ .menu-item .menu-item__suffix::slotted(*) {
28
+ margin-inline-start: var(--syn-spacing-small);
29
+ }
30
+
31
+ /**
32
+ * Set the default font size to make icons appear correct
33
+ */
34
+ .menu-item .menu-item__prefix::slotted(syn-icon),
35
+ .menu-item .menu-item__suffix::slotted(syn-icon) {
36
+ color: var(--syn-color-neutral-800);
37
+ font-size: var(--syn-font-size-x-large);
38
+ }
39
+
40
+ :host(:focus-visible) .menu-item .menu-item__prefix::slotted(syn-icon),
41
+ :host(:focus-visible) .menu-item .menu-item__suffix::slotted(syn-icon) {
42
+ color: var(--syn-color-neutral-0);
43
+ }
44
+
45
+ /**
46
+ * Adjust the size of icons
47
+ */
48
+ .menu-item .menu-item__chevron,
49
+ .menu-item .menu-item__check {
50
+ display: var(--display-checkmark);
51
+ font-size: var(--syn-font-size-x-large);
52
+ width: var(--syn-font-size-x-large);
53
+ }
54
+
55
+ /**
56
+ * This makes sure the chevron does not take any space if we do not have children
57
+ */
58
+ .menu-item .menu-item__chevron {
59
+ display: none;
60
+ margin-inline-start: var(--syn-spacing-small);
61
+ }
62
+
63
+ .menu-item .menu-item__check {
64
+ color: var(--syn-color-primary-600);
65
+ margin-inline-end: var(--syn-spacing-small);
66
+ }
67
+
68
+ /**
69
+ * When in loading state, do not show the checkmark as it would bleed through
70
+ */
71
+ .menu-item--loading .menu-item__check {
72
+ visibility: hidden;
73
+ }
74
+
75
+ /**
76
+ * Make sure the checkbox is also visible when the item is active
77
+ */
78
+ :host(:focus-visible) .menu-item--checked .menu-item__check {
79
+ color: var(--syn-color-neutral-0);
80
+ }
81
+
82
+ /**
83
+ * Special handling for the submenu chevron:
84
+ * We are using the "chevron-down" icon per default as
85
+ * we do not want all chevrons to be part of the bundle
86
+ * Therefore, we have to transform it into the right direction
87
+ */
88
+ .menu-item .menu-item__chevron syn-icon {
89
+ transform: rotate(-90deg);
90
+ }
91
+
92
+ .menu-item--rtl .menu-item__chevron syn-icon {
93
+ transform: rotate(90deg);
94
+ }
95
+
96
+ .menu-item.menu-item--loading *:not(syn-spinner) {
97
+ opacity: var(--syn-opacity-50);
98
+ }
99
+
100
+ /**
101
+ * Make sure to show the chevron if there are children
102
+ */
103
+ .menu-item--has-submenu .menu-item__chevron {
104
+ display: flex;
105
+ }
106
+
107
+ /**
108
+ * Adjustments for the spinner in loading state
109
+ */
110
+ .menu-item--loading syn-spinner {
111
+ --track-width: 2px;
112
+
113
+ font-size: var(--syn-font-size-medium);
114
+ left: var(--syn-spacing-medium);
115
+ }
116
+
117
+ /**
118
+ * Highlight checked items
119
+ */
120
+ .menu-item--checked .menu-item__label {
121
+ font-weight: var(--syn-font-weight-semibold);
122
+ }
123
+
124
+ /* Needed if we do not show the checkmark */
125
+ :host(:not([type="checkmark"]):not([loading])) .menu-item__label {
126
+ min-height: var(--syn-font-size-x-large);
127
+ }
128
+ `;
@@ -0,0 +1,45 @@
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/menu-item/menu-item.component.js';
9
+
10
+ const tagName = 'syn-menu-item';
11
+ Component.define('syn-menu-item');
12
+
13
+ /**
14
+ * @summary Menu items provide options for the user to pick from in a menu.
15
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-menu-item--docs
16
+ * @status stable
17
+ * @since 2.0
18
+ *
19
+ * @dependency syn-icon
20
+ * @dependency syn-popup
21
+ * @dependency syn-spinner
22
+ *
23
+ * @slot - The menu item's label.
24
+ * @slot prefix - Used to prepend an icon or similar element to the menu item.
25
+ * @slot suffix - Used to append an icon or similar element to the menu item.
26
+ * @slot submenu - Used to denote a nested menu.
27
+ *
28
+ * @csspart base - The component's base wrapper.
29
+ * @csspart checked-icon - The checked icon, which is only visible when the menu item is checked.
30
+ * @csspart prefix - The prefix container.
31
+ * @csspart label - The menu item label.
32
+ * @csspart suffix - The suffix container.
33
+ * @csspart spinner - The spinner that shows when the menu item is in the loading state.
34
+ * @csspart spinner__base - The spinner's base part.
35
+ * @csspart submenu-icon - The submenu icon, visible only when the menu item has a submenu (not yet implemented).
36
+ *
37
+ * @cssproperty [--submenu-offset=-2px] - The distance submenus shift to overlap the parent menu.
38
+ */
39
+ export const SynMenuItem = createComponent({
40
+ displayName: 'SynMenuItem',
41
+ elementClass: Component,
42
+ events: {},
43
+ react: React,
44
+ tagName,
45
+ });
@@ -0,0 +1,164 @@
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
+ --submenu-offset: -2px;
15
+
16
+ display: block;
17
+ }
18
+
19
+ :host([inert]) {
20
+ display: none;
21
+ }
22
+
23
+ .menu-item {
24
+ position: relative;
25
+ display: flex;
26
+ align-items: stretch;
27
+ font-family: var(--syn-font-sans);
28
+ font-size: var(--syn-font-size-medium);
29
+ font-weight: var(--syn-font-weight-normal);
30
+ line-height: var(--syn-line-height-normal);
31
+ letter-spacing: var(--syn-letter-spacing-normal);
32
+ color: var(--syn-color-neutral-700);
33
+ padding: var(--syn-spacing-2x-small) var(--syn-spacing-2x-small);
34
+ transition: var(--syn-transition-fast) fill;
35
+ user-select: none;
36
+ -webkit-user-select: none;
37
+ white-space: nowrap;
38
+ cursor: pointer;
39
+ }
40
+
41
+ .menu-item.menu-item--disabled {
42
+ outline: none;
43
+ opacity: 0.5;
44
+ cursor: not-allowed;
45
+ }
46
+
47
+ .menu-item.menu-item--loading {
48
+ outline: none;
49
+ cursor: wait;
50
+ }
51
+
52
+ .menu-item.menu-item--loading *:not(syn-spinner) {
53
+ opacity: 0.5;
54
+ }
55
+
56
+ .menu-item--loading syn-spinner {
57
+ --indicator-color: currentColor;
58
+ --track-width: 1px;
59
+ position: absolute;
60
+ font-size: 0.75em;
61
+ top: calc(50% - 0.5em);
62
+ left: 0.65rem;
63
+ opacity: 1;
64
+ }
65
+
66
+ .menu-item .menu-item__label {
67
+ flex: 1 1 auto;
68
+ display: inline-block;
69
+ text-overflow: ellipsis;
70
+ overflow: hidden;
71
+ }
72
+
73
+ .menu-item .menu-item__prefix {
74
+ flex: 0 0 auto;
75
+ display: flex;
76
+ align-items: center;
77
+ }
78
+
79
+ .menu-item .menu-item__prefix::slotted(*) {
80
+ margin-inline-end: var(--syn-spacing-x-small);
81
+ }
82
+
83
+ .menu-item .menu-item__suffix {
84
+ flex: 0 0 auto;
85
+ display: flex;
86
+ align-items: center;
87
+ }
88
+
89
+ .menu-item .menu-item__suffix::slotted(*) {
90
+ margin-inline-start: var(--syn-spacing-x-small);
91
+ }
92
+
93
+ /* Safe triangle */
94
+ .menu-item--submenu-expanded::after {
95
+ content: '';
96
+ position: fixed;
97
+ z-index: calc(var(--syn-z-index-dropdown) - 1);
98
+ top: 0;
99
+ right: 0;
100
+ bottom: 0;
101
+ left: 0;
102
+ clip-path: polygon(
103
+ var(--safe-triangle-cursor-x, 0) var(--safe-triangle-cursor-y, 0),
104
+ var(--safe-triangle-submenu-start-x, 0) var(--safe-triangle-submenu-start-y, 0),
105
+ var(--safe-triangle-submenu-end-x, 0) var(--safe-triangle-submenu-end-y, 0)
106
+ );
107
+ }
108
+
109
+ :host(:focus-visible) {
110
+ outline: none;
111
+ }
112
+
113
+ :host(:hover:not([aria-disabled='true'], :focus-visible)) .menu-item,
114
+ .menu-item--submenu-expanded {
115
+ background-color: var(--syn-color-neutral-100);
116
+ color: var(--syn-color-neutral-1000);
117
+ }
118
+
119
+ :host(:focus-visible) .menu-item {
120
+ outline: none;
121
+ background-color: var(--syn-color-primary-600);
122
+ color: var(--syn-color-neutral-0);
123
+ opacity: 1;
124
+ }
125
+
126
+ .menu-item .menu-item__check,
127
+ .menu-item .menu-item__chevron {
128
+ flex: 0 0 auto;
129
+ display: flex;
130
+ align-items: center;
131
+ justify-content: center;
132
+ width: 1.5em;
133
+ visibility: hidden;
134
+ }
135
+
136
+ .menu-item--checked .menu-item__check,
137
+ .menu-item--has-submenu .menu-item__chevron {
138
+ visibility: visible;
139
+ }
140
+
141
+ /* Add elevation and z-index to submenus */
142
+ syn-popup::part(popup) {
143
+ box-shadow: var(--syn-shadow-large);
144
+ z-index: var(--syn-z-index-dropdown);
145
+ margin-left: var(--submenu-offset);
146
+ }
147
+
148
+ .menu-item--rtl syn-popup::part(popup) {
149
+ margin-left: calc(-1 * var(--submenu-offset));
150
+ }
151
+
152
+ @media (forced-colors: active) {
153
+ :host(:hover:not([aria-disabled='true'])) .menu-item,
154
+ :host(:focus-visible) .menu-item {
155
+ outline: dashed 1px SelectedItem;
156
+ outline-offset: -1px;
157
+ }
158
+ }
159
+
160
+ ::slotted(syn-menu) {
161
+ max-width: var(--auto-size-available-width) !important;
162
+ max-height: var(--auto-size-available-height) !important;
163
+ }
164
+ `;