@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.
- package/CHANGELOG.md +1 -0
- package/README.md +539 -3
- package/dist/bin/create-checksum.d.ts +2 -0
- package/dist/bin/create-checksum.js +23 -0
- package/dist/bin/start.d.ts +2 -0
- package/dist/bin/start.js +8 -0
- package/dist/build/assets.d.ts +4 -0
- package/dist/build/assets.js +57 -0
- package/dist/build/build.d.ts +1 -0
- package/dist/build/build.js +33 -0
- package/dist/build/components.d.ts +4 -0
- package/dist/build/components.js +132 -0
- package/dist/build/frameworks.d.ts +4 -0
- package/dist/build/frameworks.js +61 -0
- package/dist/build/static.d.ts +4 -0
- package/dist/build/static.js +52 -0
- package/dist/build/styles.d.ts +4 -0
- package/dist/build/styles.js +58 -0
- package/dist/build/tokens.d.ts +4 -0
- package/dist/build/tokens.js +59 -0
- package/dist/server.d.ts +6 -0
- package/dist/server.js +20 -0
- package/dist/tools/asset-info.d.ts +8 -0
- package/dist/tools/asset-info.js +108 -0
- package/dist/tools/asset-list.d.ts +6 -0
- package/dist/tools/asset-list.js +40 -0
- package/dist/tools/component-info.d.ts +6 -0
- package/dist/tools/component-info.js +35 -0
- package/dist/tools/component-list.d.ts +7 -0
- package/dist/tools/component-list.js +42 -0
- package/dist/tools/davinci-migration.d.ts +3 -0
- package/dist/tools/davinci-migration.js +66 -0
- package/dist/tools/framework-info.d.ts +7 -0
- package/dist/tools/framework-info.js +59 -0
- package/dist/tools/index.d.ts +13 -0
- package/dist/tools/index.js +13 -0
- package/dist/tools/migration-info.d.ts +6 -0
- package/dist/tools/migration-info.js +27 -0
- package/dist/tools/styles-info.d.ts +7 -0
- package/dist/tools/styles-info.js +28 -0
- package/dist/tools/styles-list.d.ts +7 -0
- package/dist/tools/styles-list.js +42 -0
- package/dist/tools/template-info.d.ts +6 -0
- package/dist/tools/template-info.js +34 -0
- package/dist/tools/template-list.d.ts +7 -0
- package/dist/tools/template-list.js +42 -0
- package/dist/tools/tokens.d.ts +7 -0
- package/dist/tools/tokens.js +24 -0
- package/dist/tools/version.d.ts +7 -0
- package/dist/tools/version.js +51 -0
- package/dist/utilities/assets.d.ts +1 -0
- package/dist/utilities/assets.js +3 -0
- package/dist/utilities/checksum.d.ts +36 -0
- package/dist/utilities/checksum.js +93 -0
- package/dist/utilities/components.d.ts +25 -0
- package/dist/utilities/components.js +86 -0
- package/dist/utilities/config.d.ts +76 -0
- package/dist/utilities/config.js +77 -0
- package/dist/utilities/file.d.ts +12 -0
- package/dist/utilities/file.js +31 -0
- package/dist/utilities/index.d.ts +12 -0
- package/dist/utilities/index.js +12 -0
- package/dist/utilities/metadata.d.ts +28 -0
- package/dist/utilities/metadata.js +57 -0
- package/dist/utilities/migration.d.ts +1 -0
- package/dist/utilities/migration.js +10 -0
- package/dist/utilities/stdio.d.ts +14 -0
- package/dist/utilities/stdio.js +60 -0
- package/dist/utilities/storybook/build-docs.d.ts +2 -0
- package/dist/utilities/storybook/build-docs.js +42 -0
- package/dist/utilities/storybook/configs.d.ts +13 -0
- package/dist/utilities/storybook/configs.js +85 -0
- package/dist/utilities/storybook/docs-scraper.d.ts +26 -0
- package/dist/utilities/storybook/docs-scraper.js +97 -0
- package/dist/utilities/storybook/index.d.ts +5 -0
- package/dist/utilities/storybook/index.js +4 -0
- package/dist/utilities/storybook/scraper.d.ts +14 -0
- package/dist/utilities/storybook/scraper.js +196 -0
- package/dist/utilities/storybook/storybook-manager.d.ts +29 -0
- package/dist/utilities/storybook/storybook-manager.js +139 -0
- package/dist/utilities/storybook/types.d.ts +22 -0
- package/dist/utilities/storybook/types.js +1 -0
- package/dist/utilities/styles.d.ts +6 -0
- package/dist/utilities/styles.js +24 -0
- package/dist/utilities/templates.d.ts +12 -0
- package/dist/utilities/templates.js +28 -0
- package/dist/utilities/tokens.d.ts +1 -0
- package/dist/utilities/tokens.js +21 -0
- package/dist/utilities/version.d.ts +10 -0
- package/dist/utilities/version.js +21 -0
- package/metadata/checksum.txt +1 -0
- package/metadata/davinci-migration/migration-guide.md +1859 -0
- package/metadata/packages/angular/LIMITATIONS.md +32 -0
- package/metadata/packages/angular/README.md +393 -0
- package/metadata/packages/assets/CHANGELOG.md +189 -0
- package/metadata/packages/assets/README.md +78 -0
- package/metadata/packages/components/components/syn-accordion/component.angular.ts +80 -0
- package/metadata/packages/components/components/syn-accordion/component.react.ts +30 -0
- package/metadata/packages/components/components/syn-accordion/component.styles.ts +15 -0
- package/metadata/packages/components/components/syn-accordion/component.ts +111 -0
- package/metadata/packages/components/components/syn-accordion/component.vue +64 -0
- package/metadata/packages/components/components/syn-alert/component.angular.ts +158 -0
- package/metadata/packages/components/components/syn-alert/component.custom.styles.ts +90 -0
- package/metadata/packages/components/components/syn-alert/component.react.ts +60 -0
- package/metadata/packages/components/components/syn-alert/component.styles.ts +110 -0
- package/metadata/packages/components/components/syn-alert/component.ts +324 -0
- package/metadata/packages/components/components/syn-alert/component.vue +130 -0
- package/metadata/packages/components/components/syn-badge/component.angular.ts +53 -0
- package/metadata/packages/components/components/syn-badge/component.custom.styles.ts +61 -0
- package/metadata/packages/components/components/syn-badge/component.react.ts +29 -0
- package/metadata/packages/components/components/syn-badge/component.styles.ts +59 -0
- package/metadata/packages/components/components/syn-badge/component.ts +65 -0
- package/metadata/packages/components/components/syn-badge/component.vue +53 -0
- package/metadata/packages/components/components/syn-breadcrumb/component.angular.ts +58 -0
- package/metadata/packages/components/components/syn-breadcrumb/component.custom.styles.ts +5 -0
- package/metadata/packages/components/components/syn-breadcrumb/component.react.ts +32 -0
- package/metadata/packages/components/components/syn-breadcrumb/component.styles.ts +18 -0
- package/metadata/packages/components/components/syn-breadcrumb/component.ts +110 -0
- package/metadata/packages/components/components/syn-breadcrumb/component.vue +58 -0
- package/metadata/packages/components/components/syn-breadcrumb-item/component.angular.ts +88 -0
- package/metadata/packages/components/components/syn-breadcrumb-item/component.custom.styles.ts +74 -0
- package/metadata/packages/components/components/syn-breadcrumb-item/component.react.ts +37 -0
- package/metadata/packages/components/components/syn-breadcrumb-item/component.styles.ts +95 -0
- package/metadata/packages/components/components/syn-breadcrumb-item/component.ts +139 -0
- package/metadata/packages/components/components/syn-breadcrumb-item/component.vue +76 -0
- package/metadata/packages/components/components/syn-button/component.angular.ts +318 -0
- package/metadata/packages/components/components/syn-button/component.custom.styles.ts +206 -0
- package/metadata/packages/components/components/syn-button/component.react.ts +56 -0
- package/metadata/packages/components/components/syn-button/component.styles.ts +368 -0
- package/metadata/packages/components/components/syn-button/component.ts +322 -0
- package/metadata/packages/components/components/syn-button/component.vue +204 -0
- package/metadata/packages/components/components/syn-button-group/component.angular.ts +55 -0
- package/metadata/packages/components/components/syn-button-group/component.react.ts +29 -0
- package/metadata/packages/components/components/syn-button-group/component.styles.ts +21 -0
- package/metadata/packages/components/components/syn-button-group/component.ts +103 -0
- package/metadata/packages/components/components/syn-button-group/component.vue +55 -0
- package/metadata/packages/components/components/syn-card/component.angular.ts +69 -0
- package/metadata/packages/components/components/syn-card/component.custom.styles.ts +55 -0
- package/metadata/packages/components/components/syn-card/component.react.ts +41 -0
- package/metadata/packages/components/components/syn-card/component.styles.ts +77 -0
- package/metadata/packages/components/components/syn-card/component.ts +68 -0
- package/metadata/packages/components/components/syn-card/component.vue +67 -0
- package/metadata/packages/components/components/syn-checkbox/component.angular.ts +260 -0
- package/metadata/packages/components/components/syn-checkbox/component.custom.styles.ts +53 -0
- package/metadata/packages/components/components/syn-checkbox/component.react.ts +64 -0
- package/metadata/packages/components/components/syn-checkbox/component.styles.ts +130 -0
- package/metadata/packages/components/components/syn-checkbox/component.ts +291 -0
- package/metadata/packages/components/components/syn-checkbox/component.vue +186 -0
- package/metadata/packages/components/components/syn-combobox/component.angular.ts +436 -0
- package/metadata/packages/components/components/syn-combobox/component.custom.styles.ts +35 -0
- package/metadata/packages/components/components/syn-combobox/component.react.ts +109 -0
- package/metadata/packages/components/components/syn-combobox/component.styles.ts +406 -0
- package/metadata/packages/components/components/syn-combobox/component.ts +1139 -0
- package/metadata/packages/components/components/syn-combobox/component.vue +304 -0
- package/metadata/packages/components/components/syn-details/component.angular.ts +184 -0
- package/metadata/packages/components/components/syn-details/component.custom.styles.ts +140 -0
- package/metadata/packages/components/components/syn-details/component.react.ts +63 -0
- package/metadata/packages/components/components/syn-details/component.styles.ts +90 -0
- package/metadata/packages/components/components/syn-details/component.ts +266 -0
- package/metadata/packages/components/components/syn-details/component.vue +134 -0
- package/metadata/packages/components/components/syn-dialog/component.angular.ts +201 -0
- package/metadata/packages/components/components/syn-dialog/component.custom.styles.ts +54 -0
- package/metadata/packages/components/components/syn-dialog/component.react.ts +91 -0
- package/metadata/packages/components/components/syn-dialog/component.styles.ts +129 -0
- package/metadata/packages/components/components/syn-dialog/component.ts +366 -0
- package/metadata/packages/components/components/syn-dialog/component.vue +169 -0
- package/metadata/packages/components/components/syn-divider/component.angular.ts +55 -0
- package/metadata/packages/components/components/syn-divider/component.custom.styles.ts +8 -0
- package/metadata/packages/components/components/syn-divider/component.react.ts +29 -0
- package/metadata/packages/components/components/syn-divider/component.styles.ts +31 -0
- package/metadata/packages/components/components/syn-divider/component.ts +42 -0
- package/metadata/packages/components/components/syn-divider/component.vue +51 -0
- package/metadata/packages/components/components/syn-drawer/component.angular.ts +234 -0
- package/metadata/packages/components/components/syn-drawer/component.custom.styles.ts +78 -0
- package/metadata/packages/components/components/syn-drawer/component.react.ts +98 -0
- package/metadata/packages/components/components/syn-drawer/component.styles.ts +165 -0
- package/metadata/packages/components/components/syn-drawer/component.ts +496 -0
- package/metadata/packages/components/components/syn-drawer/component.vue +188 -0
- package/metadata/packages/components/components/syn-dropdown/component.angular.ts +223 -0
- package/metadata/packages/components/components/syn-dropdown/component.custom.styles.ts +5 -0
- package/metadata/packages/components/components/syn-dropdown/component.react.ts +59 -0
- package/metadata/packages/components/components/syn-dropdown/component.styles.ts +60 -0
- package/metadata/packages/components/components/syn-dropdown/component.ts +484 -0
- package/metadata/packages/components/components/syn-dropdown/component.vue +159 -0
- package/metadata/packages/components/components/syn-file/component.angular.ts +359 -0
- package/metadata/packages/components/components/syn-file/component.react.ts +85 -0
- package/metadata/packages/components/components/syn-file/component.styles.ts +179 -0
- package/metadata/packages/components/components/syn-file/component.ts +631 -0
- package/metadata/packages/components/components/syn-file/component.vue +251 -0
- package/metadata/packages/components/components/syn-header/component.angular.ts +132 -0
- package/metadata/packages/components/components/syn-header/component.react.ts +65 -0
- package/metadata/packages/components/components/syn-header/component.styles.ts +128 -0
- package/metadata/packages/components/components/syn-header/component.ts +260 -0
- package/metadata/packages/components/components/syn-header/component.vue +117 -0
- package/metadata/packages/components/components/syn-icon/component.angular.ts +115 -0
- package/metadata/packages/components/components/syn-icon/component.custom.styles.ts +5 -0
- package/metadata/packages/components/components/syn-icon/component.react.ts +41 -0
- package/metadata/packages/components/components/syn-icon/component.styles.ts +25 -0
- package/metadata/packages/components/components/syn-icon/component.ts +234 -0
- package/metadata/packages/components/components/syn-icon/component.vue +100 -0
- package/metadata/packages/components/components/syn-icon-button/component.angular.ts +185 -0
- package/metadata/packages/components/components/syn-icon-button/component.custom.styles.ts +68 -0
- package/metadata/packages/components/components/syn-icon-button/component.react.ts +42 -0
- package/metadata/packages/components/components/syn-icon-button/component.styles.ts +59 -0
- package/metadata/packages/components/components/syn-icon-button/component.ts +154 -0
- package/metadata/packages/components/components/syn-icon-button/component.vue +132 -0
- package/metadata/packages/components/components/syn-input/component.angular.ts +606 -0
- package/metadata/packages/components/components/syn-input/component.custom.styles.ts +278 -0
- package/metadata/packages/components/components/syn-input/component.react.ts +91 -0
- package/metadata/packages/components/components/syn-input/component.styles.ts +287 -0
- package/metadata/packages/components/components/syn-input/component.ts +942 -0
- package/metadata/packages/components/components/syn-input/component.vue +370 -0
- package/metadata/packages/components/components/syn-menu/component.angular.ts +52 -0
- package/metadata/packages/components/components/syn-menu/component.custom.styles.ts +29 -0
- package/metadata/packages/components/components/syn-menu/component.react.ts +36 -0
- package/metadata/packages/components/components/syn-menu/component.styles.ts +27 -0
- package/metadata/packages/components/components/syn-menu/component.ts +199 -0
- package/metadata/packages/components/components/syn-menu/component.vue +48 -0
- package/metadata/packages/components/components/syn-menu-item/component.angular.ts +121 -0
- package/metadata/packages/components/components/syn-menu-item/component.custom.styles.ts +128 -0
- package/metadata/packages/components/components/syn-menu-item/component.react.ts +45 -0
- package/metadata/packages/components/components/syn-menu-item/component.styles.ts +164 -0
- package/metadata/packages/components/components/syn-menu-item/component.ts +209 -0
- package/metadata/packages/components/components/syn-menu-item/component.vue +91 -0
- package/metadata/packages/components/components/syn-menu-label/component.angular.ts +48 -0
- package/metadata/packages/components/components/syn-menu-label/component.custom.styles.ts +24 -0
- package/metadata/packages/components/components/syn-menu-label/component.react.ts +35 -0
- package/metadata/packages/components/components/syn-menu-label/component.styles.ts +28 -0
- package/metadata/packages/components/components/syn-menu-label/component.ts +54 -0
- package/metadata/packages/components/components/syn-menu-label/component.vue +41 -0
- package/metadata/packages/components/components/syn-nav-item/component.angular.ts +242 -0
- package/metadata/packages/components/components/syn-nav-item/component.react.ts +82 -0
- package/metadata/packages/components/components/syn-nav-item/component.styles.ts +337 -0
- package/metadata/packages/components/components/syn-nav-item/component.ts +492 -0
- package/metadata/packages/components/components/syn-nav-item/component.vue +182 -0
- package/metadata/packages/components/components/syn-optgroup/component.angular.ts +79 -0
- package/metadata/packages/components/components/syn-optgroup/component.react.ts +41 -0
- package/metadata/packages/components/components/syn-optgroup/component.styles.ts +59 -0
- package/metadata/packages/components/components/syn-optgroup/component.ts +176 -0
- package/metadata/packages/components/components/syn-optgroup/component.vue +71 -0
- package/metadata/packages/components/components/syn-option/component.angular.ts +79 -0
- package/metadata/packages/components/components/syn-option/component.custom.styles.ts +81 -0
- package/metadata/packages/components/components/syn-option/component.react.ts +37 -0
- package/metadata/packages/components/components/syn-option/component.styles.ts +96 -0
- package/metadata/packages/components/components/syn-option/component.ts +174 -0
- package/metadata/packages/components/components/syn-option/component.vue +71 -0
- package/metadata/packages/components/components/syn-popup/component.angular.ts +385 -0
- package/metadata/packages/components/components/syn-popup/component.react.ts +55 -0
- package/metadata/packages/components/components/syn-popup/component.styles.ts +70 -0
- package/metadata/packages/components/components/syn-popup/component.ts +583 -0
- package/metadata/packages/components/components/syn-popup/component.vue +240 -0
- package/metadata/packages/components/components/syn-prio-nav/component.angular.ts +67 -0
- package/metadata/packages/components/components/syn-prio-nav/component.react.ts +54 -0
- package/metadata/packages/components/components/syn-prio-nav/component.styles.ts +48 -0
- package/metadata/packages/components/components/syn-prio-nav/component.ts +287 -0
- package/metadata/packages/components/components/syn-prio-nav/component.vue +60 -0
- package/metadata/packages/components/components/syn-progress-bar/component.angular.ts +85 -0
- package/metadata/packages/components/components/syn-progress-bar/component.custom.styles.ts +22 -0
- package/metadata/packages/components/components/syn-progress-bar/component.react.ts +37 -0
- package/metadata/packages/components/components/syn-progress-bar/component.styles.ts +94 -0
- package/metadata/packages/components/components/syn-progress-bar/component.ts +74 -0
- package/metadata/packages/components/components/syn-progress-bar/component.vue +71 -0
- package/metadata/packages/components/components/syn-progress-ring/component.angular.ts +72 -0
- package/metadata/packages/components/components/syn-progress-ring/component.custom.styles.ts +17 -0
- package/metadata/packages/components/components/syn-progress-ring/component.react.ts +37 -0
- package/metadata/packages/components/components/syn-progress-ring/component.styles.ts +77 -0
- package/metadata/packages/components/components/syn-progress-ring/component.ts +90 -0
- package/metadata/packages/components/components/syn-progress-ring/component.vue +66 -0
- package/metadata/packages/components/components/syn-radio/component.angular.ts +109 -0
- package/metadata/packages/components/components/syn-radio/component.custom.styles.ts +64 -0
- package/metadata/packages/components/components/syn-radio/component.react.ts +48 -0
- package/metadata/packages/components/components/syn-radio/component.styles.ts +124 -0
- package/metadata/packages/components/components/syn-radio/component.ts +129 -0
- package/metadata/packages/components/components/syn-radio/component.vue +99 -0
- package/metadata/packages/components/components/syn-radio-button/component.angular.ts +123 -0
- package/metadata/packages/components/components/syn-radio-button/component.react.ts +49 -0
- package/metadata/packages/components/components/syn-radio-button/component.styles.ts +37 -0
- package/metadata/packages/components/components/syn-radio-button/component.ts +149 -0
- package/metadata/packages/components/components/syn-radio-button/component.vue +105 -0
- package/metadata/packages/components/components/syn-radio-group/component.angular.ts +204 -0
- package/metadata/packages/components/components/syn-radio-group/component.custom.styles.ts +22 -0
- package/metadata/packages/components/components/syn-radio-group/component.react.ts +56 -0
- package/metadata/packages/components/components/syn-radio-group/component.styles.ts +44 -0
- package/metadata/packages/components/components/syn-radio-group/component.ts +418 -0
- package/metadata/packages/components/components/syn-radio-group/component.vue +158 -0
- package/metadata/packages/components/components/syn-range/component.angular.ts +334 -0
- package/metadata/packages/components/components/syn-range/component.react.ts +92 -0
- package/metadata/packages/components/components/syn-range/component.styles.ts +284 -0
- package/metadata/packages/components/components/syn-range/component.ts +878 -0
- package/metadata/packages/components/components/syn-range/component.vue +240 -0
- package/metadata/packages/components/components/syn-range-tick/component.angular.ts +59 -0
- package/metadata/packages/components/components/syn-range-tick/component.react.ts +33 -0
- package/metadata/packages/components/components/syn-range-tick/component.styles.ts +34 -0
- package/metadata/packages/components/components/syn-range-tick/component.ts +50 -0
- package/metadata/packages/components/components/syn-range-tick/component.vue +57 -0
- package/metadata/packages/components/components/syn-resize-observer/component.styles.ts +16 -0
- package/metadata/packages/components/components/syn-resize-observer/component.ts +98 -0
- package/metadata/packages/components/components/syn-select/component.angular.ts +441 -0
- package/metadata/packages/components/components/syn-select/component.custom.styles.ts +176 -0
- package/metadata/packages/components/components/syn-select/component.react.ts +101 -0
- package/metadata/packages/components/components/syn-select/component.styles.ts +316 -0
- package/metadata/packages/components/components/syn-select/component.ts +1054 -0
- package/metadata/packages/components/components/syn-select/component.vue +303 -0
- package/metadata/packages/components/components/syn-side-nav/component.angular.ts +231 -0
- package/metadata/packages/components/components/syn-side-nav/component.react.ts +95 -0
- package/metadata/packages/components/components/syn-side-nav/component.styles.ts +160 -0
- package/metadata/packages/components/components/syn-side-nav/component.ts +492 -0
- package/metadata/packages/components/components/syn-side-nav/component.vue +201 -0
- package/metadata/packages/components/components/syn-spinner/component.angular.ts +44 -0
- package/metadata/packages/components/components/syn-spinner/component.custom.styles.ts +31 -0
- package/metadata/packages/components/components/syn-spinner/component.react.ts +31 -0
- package/metadata/packages/components/components/syn-spinner/component.styles.ts +55 -0
- package/metadata/packages/components/components/syn-spinner/component.ts +42 -0
- package/metadata/packages/components/components/syn-spinner/component.vue +35 -0
- package/metadata/packages/components/components/syn-switch/component.angular.ts +244 -0
- package/metadata/packages/components/components/syn-switch/component.custom.styles.ts +112 -0
- package/metadata/packages/components/components/syn-switch/component.react.ts +63 -0
- package/metadata/packages/components/components/syn-switch/component.styles.ts +177 -0
- package/metadata/packages/components/components/syn-switch/component.ts +274 -0
- package/metadata/packages/components/components/syn-switch/component.vue +178 -0
- package/metadata/packages/components/components/syn-tab/component.angular.ts +109 -0
- package/metadata/packages/components/components/syn-tab/component.custom.styles.ts +92 -0
- package/metadata/packages/components/components/syn-tab/component.react.ts +42 -0
- package/metadata/packages/components/components/syn-tab/component.styles.ts +77 -0
- package/metadata/packages/components/components/syn-tab/component.ts +132 -0
- package/metadata/packages/components/components/syn-tab/component.vue +91 -0
- package/metadata/packages/components/components/syn-tab-group/component.angular.ts +166 -0
- package/metadata/packages/components/components/syn-tab-group/component.custom.styles.ts +248 -0
- package/metadata/packages/components/components/syn-tab-group/component.react.ts +58 -0
- package/metadata/packages/components/components/syn-tab-group/component.styles.ts +200 -0
- package/metadata/packages/components/components/syn-tab-group/component.ts +557 -0
- package/metadata/packages/components/components/syn-tab-group/component.vue +126 -0
- package/metadata/packages/components/components/syn-tab-panel/component.angular.ts +68 -0
- package/metadata/packages/components/components/syn-tab-panel/component.custom.styles.ts +8 -0
- package/metadata/packages/components/components/syn-tab-panel/component.react.ts +31 -0
- package/metadata/packages/components/components/syn-tab-panel/component.styles.ts +27 -0
- package/metadata/packages/components/components/syn-tab-panel/component.ts +67 -0
- package/metadata/packages/components/components/syn-tab-panel/component.vue +60 -0
- package/metadata/packages/components/components/syn-tag/component.angular.ts +83 -0
- package/metadata/packages/components/components/syn-tag/component.custom.styles.ts +120 -0
- package/metadata/packages/components/components/syn-tag/component.react.ts +43 -0
- package/metadata/packages/components/components/syn-tag/component.styles.ts +65 -0
- package/metadata/packages/components/components/syn-tag/component.ts +90 -0
- package/metadata/packages/components/components/syn-tag/component.vue +81 -0
- package/metadata/packages/components/components/syn-textarea/component.angular.ts +394 -0
- package/metadata/packages/components/components/syn-textarea/component.custom.styles.ts +18 -0
- package/metadata/packages/components/components/syn-textarea/component.react.ts +60 -0
- package/metadata/packages/components/components/syn-textarea/component.styles.ts +187 -0
- package/metadata/packages/components/components/syn-textarea/component.ts +401 -0
- package/metadata/packages/components/components/syn-textarea/component.vue +244 -0
- package/metadata/packages/components/components/syn-tooltip/component.angular.ts +212 -0
- package/metadata/packages/components/components/syn-tooltip/component.custom.styles.ts +13 -0
- package/metadata/packages/components/components/syn-tooltip/component.react.ts +63 -0
- package/metadata/packages/components/components/syn-tooltip/component.styles.ts +64 -0
- package/metadata/packages/components/components/syn-tooltip/component.ts +319 -0
- package/metadata/packages/components/components/syn-tooltip/component.vue +158 -0
- package/metadata/packages/components/components/syn-validate/component.angular.ts +128 -0
- package/metadata/packages/components/components/syn-validate/component.react.ts +36 -0
- package/metadata/packages/components/components/syn-validate/component.styles.ts +9 -0
- package/metadata/packages/components/components/syn-validate/component.ts +437 -0
- package/metadata/packages/components/components/syn-validate/component.vue +98 -0
- package/metadata/packages/components/migration/BREAKING_CHANGES.md +489 -0
- package/metadata/packages/components/static/CHANGELOG.md +1100 -0
- package/metadata/packages/components/static/LIMITATIONS.md +269 -0
- package/metadata/packages/components/static/README.md +248 -0
- package/metadata/packages/react/LIMITATIONS.md +31 -0
- package/metadata/packages/react/README.md +262 -0
- package/metadata/packages/styles/CHANGELOG.md +76 -0
- package/metadata/packages/styles/README.md +132 -0
- package/metadata/packages/styles/index.css +309 -0
- package/metadata/packages/styles/link-list.css +47 -0
- package/metadata/packages/styles/link.css +79 -0
- package/metadata/packages/styles/tables.css +143 -0
- package/metadata/packages/styles/typography.css +52 -0
- package/metadata/packages/tokens/CHANGELOG.md +431 -0
- package/metadata/packages/tokens/README.md +408 -0
- package/metadata/packages/tokens/dark.css +268 -0
- package/metadata/packages/tokens/index.js +1294 -0
- package/metadata/packages/tokens/light.css +268 -0
- package/metadata/packages/vue/LIMITATIONS.md +53 -0
- package/metadata/packages/vue/README.md +252 -0
- package/metadata/static/angular/index.md +6 -0
- package/metadata/static/assets/index.md +10 -0
- package/metadata/static/component-info/index.md +24 -0
- package/metadata/static/component-list/index.md +34 -0
- package/metadata/static/components/index.md +10 -0
- package/metadata/static/components/syn-accordion/docs.md +428 -0
- package/metadata/static/components/syn-alert/docs.md +231 -0
- package/metadata/static/components/syn-badge/docs.md +128 -0
- package/metadata/static/components/syn-breadcrumb/docs.md +265 -0
- package/metadata/static/components/syn-breadcrumb-item/docs.md +49 -0
- package/metadata/static/components/syn-button/docs.md +402 -0
- package/metadata/static/components/syn-card/docs.md +273 -0
- package/metadata/static/components/syn-checkbox/docs.md +77 -0
- package/metadata/static/components/syn-combobox/docs.md +2402 -0
- package/metadata/static/components/syn-details/docs.md +220 -0
- package/metadata/static/components/syn-dialog/docs.md +222 -0
- package/metadata/static/components/syn-divider/docs.md +77 -0
- package/metadata/static/components/syn-drawer/docs.md +271 -0
- package/metadata/static/components/syn-dropdown/docs.md +316 -0
- package/metadata/static/components/syn-file/docs.md +215 -0
- package/metadata/static/components/syn-header/docs.md +134 -0
- package/metadata/static/components/syn-icon/docs.md +177 -0
- package/metadata/static/components/syn-icon-button/docs.md +142 -0
- package/metadata/static/components/syn-input/docs.md +460 -0
- package/metadata/static/components/syn-menu/docs.md +162 -0
- package/metadata/static/components/syn-menu-item/docs.md +196 -0
- package/metadata/static/components/syn-menu-label/docs.md +29 -0
- package/metadata/static/components/syn-nav-item/docs.md +161 -0
- package/metadata/static/components/syn-optgroup/docs.md +167 -0
- package/metadata/static/components/syn-option/docs.md +137 -0
- package/metadata/static/components/syn-prio-nav/docs.md +54 -0
- package/metadata/static/components/syn-progress-bar/docs.md +77 -0
- package/metadata/static/components/syn-progress-ring/docs.md +89 -0
- package/metadata/static/components/syn-radio/docs.md +123 -0
- package/metadata/static/components/syn-radio-group/docs.md +363 -0
- package/metadata/static/components/syn-range/docs.md +419 -0
- package/metadata/static/components/syn-range-tick/docs.md +110 -0
- package/metadata/static/components/syn-select/docs.md +730 -0
- package/metadata/static/components/syn-side-nav/docs.md +593 -0
- package/metadata/static/components/syn-spinner/docs.md +45 -0
- package/metadata/static/components/syn-switch/docs.md +74 -0
- package/metadata/static/components/syn-tab/docs.md +47 -0
- package/metadata/static/components/syn-tab-group/docs.md +1094 -0
- package/metadata/static/components/syn-tab-panel/docs.md +91 -0
- package/metadata/static/components/syn-tag/docs.md +50 -0
- package/metadata/static/components/syn-textarea/docs.md +215 -0
- package/metadata/static/components/syn-tooltip/docs.md +144 -0
- package/metadata/static/components/syn-validate/docs.md +225 -0
- package/metadata/static/migration/index.md +10 -0
- package/metadata/static/react/index.md +8 -0
- package/metadata/static/setup/icon-usage.md +239 -0
- package/metadata/static/setup/prerequisites.md +171 -0
- package/metadata/static/styles/index.md +11 -0
- package/metadata/static/styles/syn-body.md +5 -0
- package/metadata/static/styles/syn-heading.md +5 -0
- package/metadata/static/styles/syn-link-list.md +325 -0
- package/metadata/static/styles/syn-link.md +156 -0
- package/metadata/static/styles/syn-table-cell.md +125 -0
- package/metadata/static/styles/syn-table.md +201 -0
- package/metadata/static/styles/syn-weight.md +5 -0
- package/metadata/static/templates/appshell.md +2061 -0
- package/metadata/static/templates/breadcrumb.md +375 -0
- package/metadata/static/templates/footer.md +342 -0
- package/metadata/static/templates/forms.md +369 -0
- package/metadata/static/templates/index.md +9 -0
- package/metadata/static/templates/table.md +1426 -0
- package/metadata/static/vue/index.md +6 -0
- 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
|
+
`;
|