@synergy-design-system/mcp 2.15.0 → 3.0.1
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 +24 -0
- package/README.md +826 -303
- package/dist/bin/start.js +57 -6
- package/dist/middleware/compose.d.ts +15 -0
- package/dist/middleware/compose.js +10 -0
- package/dist/middleware/compression.d.ts +19 -0
- package/dist/middleware/compression.js +35 -0
- package/dist/middleware/error-handler.d.ts +13 -0
- package/dist/middleware/error-handler.js +42 -0
- package/dist/middleware/index.d.ts +9 -0
- package/dist/middleware/index.js +8 -0
- package/dist/middleware/logging.d.ts +14 -0
- package/dist/middleware/logging.js +64 -0
- package/dist/middleware/types.d.ts +20 -0
- package/dist/middleware/types.js +4 -0
- package/dist/resources/asset-list.d.ts +7 -0
- package/dist/resources/asset-list.js +34 -0
- package/dist/resources/component-cluster-list.d.ts +7 -0
- package/dist/resources/component-cluster-list.js +30 -0
- package/dist/resources/component-list.d.ts +7 -0
- package/dist/resources/component-list.js +31 -0
- package/dist/resources/index.d.ts +5 -0
- package/dist/resources/index.js +5 -0
- package/dist/resources/styles-list.d.ts +7 -0
- package/dist/resources/styles-list.js +31 -0
- package/dist/resources/templates-list.d.ts +7 -0
- package/dist/resources/templates-list.js +28 -0
- package/dist/server.js +5 -1
- package/dist/tools/asset-info.js +41 -85
- package/dist/tools/asset-list.js +22 -31
- package/dist/tools/component-cluster-list.d.ts +6 -0
- package/dist/tools/component-cluster-list.js +30 -0
- package/dist/tools/component-info.js +38 -21
- package/dist/tools/component-list.js +35 -30
- package/dist/tools/davinci-migration-info.d.ts +2 -0
- package/dist/tools/davinci-migration-info.js +21 -0
- package/dist/tools/davinci-migration-list.d.ts +2 -0
- package/dist/tools/davinci-migration-list.js +20 -0
- package/dist/tools/index.d.ts +6 -5
- package/dist/tools/index.js +6 -5
- package/dist/tools/migration-info.js +12 -37
- package/dist/tools/migration-list.js +7 -13
- package/dist/tools/setup.d.ts +6 -0
- package/dist/tools/setup.js +31 -0
- package/dist/tools/styles-info.d.ts +1 -2
- package/dist/tools/styles-info.js +24 -20
- package/dist/tools/styles-list.js +19 -33
- package/dist/tools/template-info.js +19 -20
- package/dist/tools/template-list.d.ts +1 -1
- package/dist/tools/template-list.js +17 -32
- package/dist/tools/{tokens.d.ts → token-info.d.ts} +2 -2
- package/dist/tools/token-info.js +31 -0
- package/dist/tools/tokens-list.d.ts +6 -0
- package/dist/tools/tokens-list.js +52 -0
- package/dist/transports/http.d.ts +14 -0
- package/dist/transports/http.js +157 -0
- package/dist/transports/index.d.ts +23 -0
- package/dist/transports/index.js +23 -0
- package/dist/transports/stdio.d.ts +10 -0
- package/dist/transports/stdio.js +21 -0
- package/dist/types/tool-response.d.ts +13 -0
- package/dist/types/tool-response.js +7 -0
- package/dist/utilities/cli.d.ts +27 -0
- package/dist/utilities/cli.js +170 -0
- package/dist/utilities/compression.d.ts +7 -0
- package/dist/utilities/compression.js +45 -0
- package/dist/utilities/config.d.ts +122 -80
- package/dist/utilities/config.js +212 -81
- package/dist/utilities/davinci.d.ts +12 -0
- package/dist/utilities/davinci.js +55 -0
- package/dist/utilities/index.d.ts +10 -10
- package/dist/utilities/index.js +10 -10
- package/dist/utilities/local-file-logger.d.ts +2 -0
- package/dist/utilities/local-file-logger.js +22 -0
- package/dist/utilities/logger.d.ts +12 -0
- package/dist/utilities/logger.js +30 -0
- package/dist/utilities/logging-context.d.ts +8 -0
- package/dist/utilities/logging-context.js +7 -0
- package/dist/utilities/logging-service.d.ts +2 -0
- package/dist/utilities/logging-service.js +24 -0
- package/dist/utilities/logging-types.d.ts +19 -0
- package/dist/utilities/metadata.d.ts +10 -17
- package/dist/utilities/metadata.js +34 -51
- package/dist/utilities/migration.d.ts +2 -1
- package/dist/utilities/migration.js +33 -30
- package/dist/utilities/rules.d.ts +8 -0
- package/dist/utilities/rules.js +37 -0
- package/dist/utilities/server.d.ts +7 -0
- package/dist/utilities/server.js +12 -0
- package/dist/utilities/token-counter.d.ts +14 -0
- package/dist/utilities/token-counter.js +53 -0
- package/package.json +20 -30
- package/rules/asset-info.md +10 -0
- package/rules/asset-list.md +10 -0
- package/rules/component-cluster-list.md +5 -0
- package/{metadata/static/angular/index.md → rules/component-info-angular.md} +2 -1
- package/{metadata/static/react/index.md → rules/component-info-react.md} +2 -1
- package/{metadata/static/vue/index.md → rules/component-info-vue.md} +4 -1
- package/{metadata/static/component-list/index.md → rules/component-list.md} +5 -7
- package/rules/styles-info.md +9 -0
- package/{metadata/static/styles/index.md → rules/styles-list.md} +0 -2
- package/{metadata/static/templates/index.md → rules/template-info.md} +0 -1
- package/rules/template-list.md +7 -0
- package/dist/bin/create-checksum.d.ts +0 -2
- package/dist/bin/create-checksum.js +0 -24
- package/dist/build/assets.d.ts +0 -4
- package/dist/build/assets.js +0 -57
- package/dist/build/build.js +0 -35
- package/dist/build/components.d.ts +0 -4
- package/dist/build/components.js +0 -133
- package/dist/build/fonts.d.ts +0 -4
- package/dist/build/fonts.js +0 -49
- package/dist/build/frameworks.d.ts +0 -4
- package/dist/build/frameworks.js +0 -61
- package/dist/build/static.d.ts +0 -4
- package/dist/build/static.js +0 -65
- package/dist/build/styles.d.ts +0 -4
- package/dist/build/styles.js +0 -58
- package/dist/build/tokens.d.ts +0 -4
- package/dist/build/tokens.js +0 -59
- package/dist/tools/davinci-migration.d.ts +0 -3
- package/dist/tools/davinci-migration.js +0 -66
- package/dist/tools/font-info.d.ts +0 -6
- package/dist/tools/font-info.js +0 -35
- package/dist/tools/framework-info.d.ts +0 -7
- package/dist/tools/framework-info.js +0 -58
- package/dist/tools/tokens.js +0 -24
- package/dist/tools/version.d.ts +0 -7
- package/dist/tools/version.js +0 -53
- package/dist/utilities/assets.d.ts +0 -2
- package/dist/utilities/assets.js +0 -3
- package/dist/utilities/checksum.d.ts +0 -36
- package/dist/utilities/checksum.js +0 -94
- package/dist/utilities/components.d.ts +0 -25
- package/dist/utilities/components.js +0 -86
- package/dist/utilities/file.d.ts +0 -12
- package/dist/utilities/file.js +0 -31
- package/dist/utilities/fonts.d.ts +0 -2
- package/dist/utilities/fonts.js +0 -3
- package/dist/utilities/stdio.d.ts +0 -14
- package/dist/utilities/stdio.js +0 -60
- package/dist/utilities/storybook/build-docs.d.ts +0 -2
- package/dist/utilities/storybook/build-docs.js +0 -43
- package/dist/utilities/storybook/configs.d.ts +0 -13
- package/dist/utilities/storybook/configs.js +0 -85
- package/dist/utilities/storybook/docs-scraper.d.ts +0 -26
- package/dist/utilities/storybook/docs-scraper.js +0 -96
- package/dist/utilities/storybook/index.d.ts +0 -5
- package/dist/utilities/storybook/index.js +0 -4
- package/dist/utilities/storybook/scraper.d.ts +0 -14
- package/dist/utilities/storybook/scraper.js +0 -243
- package/dist/utilities/storybook/storybook-manager.d.ts +0 -29
- package/dist/utilities/storybook/storybook-manager.js +0 -138
- package/dist/utilities/storybook/types.d.ts +0 -22
- package/dist/utilities/storybook/types.js +0 -1
- package/dist/utilities/styles.d.ts +0 -6
- package/dist/utilities/styles.js +0 -24
- package/dist/utilities/templates.d.ts +0 -12
- package/dist/utilities/templates.js +0 -28
- package/dist/utilities/tokens.d.ts +0 -1
- package/dist/utilities/tokens.js +0 -21
- package/dist/utilities/version.d.ts +0 -28
- package/dist/utilities/version.js +0 -21
- package/metadata/checksum.txt +0 -1
- package/metadata/davinci-migration/migration-guide.md +0 -1859
- package/metadata/packages/angular/LIMITATIONS.md +0 -32
- package/metadata/packages/angular/README.md +0 -393
- package/metadata/packages/assets/BREAKING_CHANGES.md +0 -305
- package/metadata/packages/assets/CHANGELOG.md +0 -374
- package/metadata/packages/assets/README.md +0 -103
- package/metadata/packages/components/components/syn-accordion/component.angular.ts +0 -80
- package/metadata/packages/components/components/syn-accordion/component.react.ts +0 -30
- package/metadata/packages/components/components/syn-accordion/component.styles.ts +0 -15
- package/metadata/packages/components/components/syn-accordion/component.ts +0 -111
- package/metadata/packages/components/components/syn-accordion/component.vue +0 -64
- package/metadata/packages/components/components/syn-alert/component.angular.ts +0 -169
- package/metadata/packages/components/components/syn-alert/component.react.ts +0 -60
- package/metadata/packages/components/components/syn-alert/component.styles.ts +0 -203
- package/metadata/packages/components/components/syn-alert/component.ts +0 -322
- package/metadata/packages/components/components/syn-alert/component.vue +0 -135
- package/metadata/packages/components/components/syn-badge/component.angular.ts +0 -53
- package/metadata/packages/components/components/syn-badge/component.custom.styles.ts +0 -62
- package/metadata/packages/components/components/syn-badge/component.react.ts +0 -29
- package/metadata/packages/components/components/syn-badge/component.styles.ts +0 -52
- package/metadata/packages/components/components/syn-badge/component.ts +0 -58
- package/metadata/packages/components/components/syn-badge/component.vue +0 -53
- package/metadata/packages/components/components/syn-breadcrumb/component.angular.ts +0 -58
- package/metadata/packages/components/components/syn-breadcrumb/component.custom.styles.ts +0 -5
- package/metadata/packages/components/components/syn-breadcrumb/component.react.ts +0 -32
- package/metadata/packages/components/components/syn-breadcrumb/component.styles.ts +0 -11
- package/metadata/packages/components/components/syn-breadcrumb/component.ts +0 -103
- package/metadata/packages/components/components/syn-breadcrumb/component.vue +0 -58
- package/metadata/packages/components/components/syn-breadcrumb-item/component.angular.ts +0 -88
- package/metadata/packages/components/components/syn-breadcrumb-item/component.custom.styles.ts +0 -78
- package/metadata/packages/components/components/syn-breadcrumb-item/component.react.ts +0 -37
- package/metadata/packages/components/components/syn-breadcrumb-item/component.styles.ts +0 -88
- package/metadata/packages/components/components/syn-breadcrumb-item/component.ts +0 -132
- package/metadata/packages/components/components/syn-breadcrumb-item/component.vue +0 -76
- package/metadata/packages/components/components/syn-button/component.angular.ts +0 -318
- package/metadata/packages/components/components/syn-button/component.custom.styles.ts +0 -245
- package/metadata/packages/components/components/syn-button/component.react.ts +0 -56
- package/metadata/packages/components/components/syn-button/component.styles.ts +0 -361
- package/metadata/packages/components/components/syn-button/component.ts +0 -315
- package/metadata/packages/components/components/syn-button/component.vue +0 -204
- package/metadata/packages/components/components/syn-button-group/component.angular.ts +0 -79
- package/metadata/packages/components/components/syn-button-group/component.custom.styles.ts +0 -5
- package/metadata/packages/components/components/syn-button-group/component.react.ts +0 -29
- package/metadata/packages/components/components/syn-button-group/component.styles.ts +0 -14
- package/metadata/packages/components/components/syn-button-group/component.ts +0 -171
- package/metadata/packages/components/components/syn-button-group/component.vue +0 -67
- package/metadata/packages/components/components/syn-card/component.angular.ts +0 -83
- package/metadata/packages/components/components/syn-card/component.custom.styles.ts +0 -60
- package/metadata/packages/components/components/syn-card/component.react.ts +0 -41
- package/metadata/packages/components/components/syn-card/component.styles.ts +0 -70
- package/metadata/packages/components/components/syn-card/component.ts +0 -65
- package/metadata/packages/components/components/syn-card/component.vue +0 -73
- package/metadata/packages/components/components/syn-checkbox/component.angular.ts +0 -273
- package/metadata/packages/components/components/syn-checkbox/component.react.ts +0 -64
- package/metadata/packages/components/components/syn-checkbox/component.styles.ts +0 -183
- package/metadata/packages/components/components/syn-checkbox/component.ts +0 -287
- package/metadata/packages/components/components/syn-checkbox/component.vue +0 -191
- package/metadata/packages/components/components/syn-combobox/component.angular.ts +0 -516
- package/metadata/packages/components/components/syn-combobox/component.react.ts +0 -118
- package/metadata/packages/components/components/syn-combobox/component.styles.ts +0 -393
- package/metadata/packages/components/components/syn-combobox/component.ts +0 -1684
- package/metadata/packages/components/components/syn-combobox/component.vue +0 -350
- package/metadata/packages/components/components/syn-details/component.angular.ts +0 -186
- package/metadata/packages/components/components/syn-details/component.react.ts +0 -65
- package/metadata/packages/components/components/syn-details/component.styles.ts +0 -181
- package/metadata/packages/components/components/syn-details/component.ts +0 -261
- package/metadata/packages/components/components/syn-details/component.vue +0 -136
- package/metadata/packages/components/components/syn-dialog/component.angular.ts +0 -201
- package/metadata/packages/components/components/syn-dialog/component.react.ts +0 -91
- package/metadata/packages/components/components/syn-dialog/component.styles.ts +0 -130
- package/metadata/packages/components/components/syn-dialog/component.ts +0 -367
- package/metadata/packages/components/components/syn-dialog/component.vue +0 -169
- package/metadata/packages/components/components/syn-divider/component.angular.ts +0 -55
- package/metadata/packages/components/components/syn-divider/component.react.ts +0 -29
- package/metadata/packages/components/components/syn-divider/component.styles.ts +0 -22
- package/metadata/packages/components/components/syn-divider/component.ts +0 -34
- package/metadata/packages/components/components/syn-divider/component.vue +0 -51
- package/metadata/packages/components/components/syn-drawer/component.angular.ts +0 -234
- package/metadata/packages/components/components/syn-drawer/component.custom.styles.ts +0 -78
- package/metadata/packages/components/components/syn-drawer/component.react.ts +0 -98
- package/metadata/packages/components/components/syn-drawer/component.styles.ts +0 -158
- package/metadata/packages/components/components/syn-drawer/component.ts +0 -489
- package/metadata/packages/components/components/syn-drawer/component.vue +0 -188
- package/metadata/packages/components/components/syn-dropdown/component.angular.ts +0 -208
- package/metadata/packages/components/components/syn-dropdown/component.react.ts +0 -59
- package/metadata/packages/components/components/syn-dropdown/component.styles.ts +0 -51
- package/metadata/packages/components/components/syn-dropdown/component.ts +0 -469
- package/metadata/packages/components/components/syn-dropdown/component.vue +0 -152
- package/metadata/packages/components/components/syn-file/component.angular.ts +0 -372
- package/metadata/packages/components/components/syn-file/component.react.ts +0 -85
- package/metadata/packages/components/components/syn-file/component.styles.ts +0 -197
- package/metadata/packages/components/components/syn-file/component.ts +0 -645
- package/metadata/packages/components/components/syn-file/component.vue +0 -256
- package/metadata/packages/components/components/syn-header/component.angular.ts +0 -149
- package/metadata/packages/components/components/syn-header/component.react.ts +0 -68
- package/metadata/packages/components/components/syn-header/component.styles.ts +0 -143
- package/metadata/packages/components/components/syn-header/component.ts +0 -310
- package/metadata/packages/components/components/syn-header/component.vue +0 -126
- package/metadata/packages/components/components/syn-icon/component.angular.ts +0 -115
- package/metadata/packages/components/components/syn-icon/component.custom.styles.ts +0 -5
- package/metadata/packages/components/components/syn-icon/component.react.ts +0 -41
- package/metadata/packages/components/components/syn-icon/component.styles.ts +0 -18
- package/metadata/packages/components/components/syn-icon/component.ts +0 -227
- package/metadata/packages/components/components/syn-icon/component.vue +0 -100
- package/metadata/packages/components/components/syn-icon-button/component.angular.ts +0 -185
- package/metadata/packages/components/components/syn-icon-button/component.custom.styles.ts +0 -79
- package/metadata/packages/components/components/syn-icon-button/component.react.ts +0 -42
- package/metadata/packages/components/components/syn-icon-button/component.styles.ts +0 -52
- package/metadata/packages/components/components/syn-icon-button/component.ts +0 -147
- package/metadata/packages/components/components/syn-icon-button/component.vue +0 -132
- package/metadata/packages/components/components/syn-input/component.angular.ts +0 -608
- package/metadata/packages/components/components/syn-input/component.custom.styles.ts +0 -278
- package/metadata/packages/components/components/syn-input/component.react.ts +0 -91
- package/metadata/packages/components/components/syn-input/component.styles.ts +0 -280
- package/metadata/packages/components/components/syn-input/component.ts +0 -941
- package/metadata/packages/components/components/syn-input/component.vue +0 -370
- package/metadata/packages/components/components/syn-menu/component.angular.ts +0 -52
- package/metadata/packages/components/components/syn-menu/component.react.ts +0 -36
- package/metadata/packages/components/components/syn-menu/component.styles.ts +0 -37
- package/metadata/packages/components/components/syn-menu/component.ts +0 -191
- package/metadata/packages/components/components/syn-menu/component.vue +0 -48
- package/metadata/packages/components/components/syn-menu-item/component.angular.ts +0 -121
- package/metadata/packages/components/components/syn-menu-item/component.react.ts +0 -45
- package/metadata/packages/components/components/syn-menu-item/component.styles.ts +0 -285
- package/metadata/packages/components/components/syn-menu-item/component.ts +0 -201
- package/metadata/packages/components/components/syn-menu-item/component.vue +0 -91
- package/metadata/packages/components/components/syn-menu-label/component.angular.ts +0 -48
- package/metadata/packages/components/components/syn-menu-label/component.react.ts +0 -35
- package/metadata/packages/components/components/syn-menu-label/component.styles.ts +0 -31
- package/metadata/packages/components/components/syn-menu-label/component.ts +0 -46
- package/metadata/packages/components/components/syn-menu-label/component.vue +0 -41
- package/metadata/packages/components/components/syn-nav-item/component.angular.ts +0 -242
- package/metadata/packages/components/components/syn-nav-item/component.react.ts +0 -82
- package/metadata/packages/components/components/syn-nav-item/component.styles.ts +0 -333
- package/metadata/packages/components/components/syn-nav-item/component.ts +0 -491
- package/metadata/packages/components/components/syn-nav-item/component.vue +0 -182
- package/metadata/packages/components/components/syn-optgroup/component.angular.ts +0 -79
- package/metadata/packages/components/components/syn-optgroup/component.react.ts +0 -41
- package/metadata/packages/components/components/syn-optgroup/component.styles.ts +0 -61
- package/metadata/packages/components/components/syn-optgroup/component.ts +0 -176
- package/metadata/packages/components/components/syn-optgroup/component.vue +0 -71
- package/metadata/packages/components/components/syn-option/component.angular.ts +0 -79
- package/metadata/packages/components/components/syn-option/component.react.ts +0 -37
- package/metadata/packages/components/components/syn-option/component.styles.ts +0 -165
- package/metadata/packages/components/components/syn-option/component.ts +0 -191
- package/metadata/packages/components/components/syn-option/component.vue +0 -71
- package/metadata/packages/components/components/syn-pagination/component.angular.ts +0 -201
- package/metadata/packages/components/components/syn-pagination/component.react.ts +0 -56
- package/metadata/packages/components/components/syn-pagination/component.styles.ts +0 -128
- package/metadata/packages/components/components/syn-pagination/component.ts +0 -452
- package/metadata/packages/components/components/syn-pagination/component.vue +0 -144
- package/metadata/packages/components/components/syn-popup/component.angular.ts +0 -372
- package/metadata/packages/components/components/syn-popup/component.react.ts +0 -55
- package/metadata/packages/components/components/syn-popup/component.styles.ts +0 -70
- package/metadata/packages/components/components/syn-popup/component.ts +0 -582
- package/metadata/packages/components/components/syn-popup/component.vue +0 -233
- package/metadata/packages/components/components/syn-prio-nav/component.angular.ts +0 -67
- package/metadata/packages/components/components/syn-prio-nav/component.react.ts +0 -54
- package/metadata/packages/components/components/syn-prio-nav/component.styles.ts +0 -48
- package/metadata/packages/components/components/syn-prio-nav/component.ts +0 -288
- package/metadata/packages/components/components/syn-prio-nav/component.vue +0 -60
- package/metadata/packages/components/components/syn-progress-bar/component.angular.ts +0 -85
- package/metadata/packages/components/components/syn-progress-bar/component.custom.styles.ts +0 -24
- package/metadata/packages/components/components/syn-progress-bar/component.react.ts +0 -37
- package/metadata/packages/components/components/syn-progress-bar/component.styles.ts +0 -87
- package/metadata/packages/components/components/syn-progress-bar/component.ts +0 -67
- package/metadata/packages/components/components/syn-progress-bar/component.vue +0 -71
- package/metadata/packages/components/components/syn-progress-ring/component.angular.ts +0 -72
- package/metadata/packages/components/components/syn-progress-ring/component.custom.styles.ts +0 -19
- package/metadata/packages/components/components/syn-progress-ring/component.react.ts +0 -37
- package/metadata/packages/components/components/syn-progress-ring/component.styles.ts +0 -70
- package/metadata/packages/components/components/syn-progress-ring/component.ts +0 -83
- package/metadata/packages/components/components/syn-progress-ring/component.vue +0 -66
- package/metadata/packages/components/components/syn-radio/component.angular.ts +0 -122
- package/metadata/packages/components/components/syn-radio/component.react.ts +0 -48
- package/metadata/packages/components/components/syn-radio/component.styles.ts +0 -179
- package/metadata/packages/components/components/syn-radio/component.ts +0 -131
- package/metadata/packages/components/components/syn-radio/component.vue +0 -104
- package/metadata/packages/components/components/syn-radio-button/component.angular.ts +0 -123
- package/metadata/packages/components/components/syn-radio-button/component.react.ts +0 -49
- package/metadata/packages/components/components/syn-radio-button/component.styles.ts +0 -30
- package/metadata/packages/components/components/syn-radio-button/component.ts +0 -142
- package/metadata/packages/components/components/syn-radio-button/component.vue +0 -105
- package/metadata/packages/components/components/syn-radio-group/component.angular.ts +0 -204
- package/metadata/packages/components/components/syn-radio-group/component.react.ts +0 -56
- package/metadata/packages/components/components/syn-radio-group/component.styles.ts +0 -58
- package/metadata/packages/components/components/syn-radio-group/component.ts +0 -440
- package/metadata/packages/components/components/syn-radio-group/component.vue +0 -158
- package/metadata/packages/components/components/syn-range/component.angular.ts +0 -347
- package/metadata/packages/components/components/syn-range/component.react.ts +0 -92
- package/metadata/packages/components/components/syn-range/component.styles.ts +0 -310
- package/metadata/packages/components/components/syn-range/component.ts +0 -933
- package/metadata/packages/components/components/syn-range/component.vue +0 -245
- package/metadata/packages/components/components/syn-range-tick/component.angular.ts +0 -59
- package/metadata/packages/components/components/syn-range-tick/component.react.ts +0 -33
- package/metadata/packages/components/components/syn-range-tick/component.styles.ts +0 -34
- package/metadata/packages/components/components/syn-range-tick/component.ts +0 -50
- package/metadata/packages/components/components/syn-range-tick/component.vue +0 -57
- package/metadata/packages/components/components/syn-resize-observer/component.styles.ts +0 -9
- package/metadata/packages/components/components/syn-resize-observer/component.ts +0 -91
- package/metadata/packages/components/components/syn-select/component.angular.ts +0 -439
- package/metadata/packages/components/components/syn-select/component.react.ts +0 -101
- package/metadata/packages/components/components/syn-select/component.styles.ts +0 -380
- package/metadata/packages/components/components/syn-select/component.ts +0 -1056
- package/metadata/packages/components/components/syn-select/component.vue +0 -301
- package/metadata/packages/components/components/syn-side-nav/component.angular.ts +0 -210
- package/metadata/packages/components/components/syn-side-nav/component.react.ts +0 -95
- package/metadata/packages/components/components/syn-side-nav/component.styles.ts +0 -142
- package/metadata/packages/components/components/syn-side-nav/component.ts +0 -458
- package/metadata/packages/components/components/syn-side-nav/component.vue +0 -188
- package/metadata/packages/components/components/syn-spinner/component.angular.ts +0 -44
- package/metadata/packages/components/components/syn-spinner/component.custom.styles.ts +0 -32
- package/metadata/packages/components/components/syn-spinner/component.react.ts +0 -31
- package/metadata/packages/components/components/syn-spinner/component.styles.ts +0 -48
- package/metadata/packages/components/components/syn-spinner/component.ts +0 -35
- package/metadata/packages/components/components/syn-spinner/component.vue +0 -35
- package/metadata/packages/components/components/syn-switch/component.angular.ts +0 -257
- package/metadata/packages/components/components/syn-switch/component.react.ts +0 -63
- package/metadata/packages/components/components/syn-switch/component.styles.ts +0 -252
- package/metadata/packages/components/components/syn-switch/component.ts +0 -279
- package/metadata/packages/components/components/syn-switch/component.vue +0 -183
- package/metadata/packages/components/components/syn-tab/component.angular.ts +0 -109
- package/metadata/packages/components/components/syn-tab/component.custom.styles.ts +0 -94
- package/metadata/packages/components/components/syn-tab/component.react.ts +0 -42
- package/metadata/packages/components/components/syn-tab/component.styles.ts +0 -70
- package/metadata/packages/components/components/syn-tab/component.ts +0 -125
- package/metadata/packages/components/components/syn-tab/component.vue +0 -91
- package/metadata/packages/components/components/syn-tab-group/component.angular.ts +0 -166
- package/metadata/packages/components/components/syn-tab-group/component.custom.styles.ts +0 -218
- package/metadata/packages/components/components/syn-tab-group/component.react.ts +0 -58
- package/metadata/packages/components/components/syn-tab-group/component.styles.ts +0 -193
- package/metadata/packages/components/components/syn-tab-group/component.ts +0 -551
- package/metadata/packages/components/components/syn-tab-group/component.vue +0 -126
- package/metadata/packages/components/components/syn-tab-panel/component.angular.ts +0 -68
- package/metadata/packages/components/components/syn-tab-panel/component.custom.styles.ts +0 -8
- package/metadata/packages/components/components/syn-tab-panel/component.react.ts +0 -31
- package/metadata/packages/components/components/syn-tab-panel/component.styles.ts +0 -20
- package/metadata/packages/components/components/syn-tab-panel/component.ts +0 -60
- package/metadata/packages/components/components/syn-tab-panel/component.vue +0 -60
- package/metadata/packages/components/components/syn-tag/component.angular.ts +0 -83
- package/metadata/packages/components/components/syn-tag/component.custom.styles.ts +0 -121
- package/metadata/packages/components/components/syn-tag/component.react.ts +0 -43
- package/metadata/packages/components/components/syn-tag/component.styles.ts +0 -58
- package/metadata/packages/components/components/syn-tag/component.ts +0 -83
- package/metadata/packages/components/components/syn-tag/component.vue +0 -81
- package/metadata/packages/components/components/syn-tag-group/component.angular.ts +0 -83
- package/metadata/packages/components/components/syn-tag-group/component.react.ts +0 -33
- package/metadata/packages/components/components/syn-tag-group/component.styles.ts +0 -49
- package/metadata/packages/components/components/syn-tag-group/component.ts +0 -95
- package/metadata/packages/components/components/syn-tag-group/component.vue +0 -69
- package/metadata/packages/components/components/syn-textarea/component.angular.ts +0 -396
- package/metadata/packages/components/components/syn-textarea/component.react.ts +0 -60
- package/metadata/packages/components/components/syn-textarea/component.styles.ts +0 -208
- package/metadata/packages/components/components/syn-textarea/component.ts +0 -400
- package/metadata/packages/components/components/syn-textarea/component.vue +0 -244
- package/metadata/packages/components/components/syn-tooltip/component.angular.ts +0 -196
- package/metadata/packages/components/components/syn-tooltip/component.react.ts +0 -63
- package/metadata/packages/components/components/syn-tooltip/component.styles.ts +0 -62
- package/metadata/packages/components/components/syn-tooltip/component.ts +0 -312
- package/metadata/packages/components/components/syn-tooltip/component.vue +0 -150
- package/metadata/packages/components/components/syn-validate/component.angular.ts +0 -137
- package/metadata/packages/components/components/syn-validate/component.react.ts +0 -44
- package/metadata/packages/components/components/syn-validate/component.styles.ts +0 -9
- package/metadata/packages/components/components/syn-validate/component.ts +0 -590
- package/metadata/packages/components/components/syn-validate/component.vue +0 -107
- package/metadata/packages/components/migration/BREAKING_CHANGES.md +0 -908
- package/metadata/packages/components/static/CHANGELOG.md +0 -2155
- package/metadata/packages/components/static/LIMITATIONS.md +0 -433
- package/metadata/packages/components/static/README.md +0 -231
- package/metadata/packages/fonts/CHANGELOG.md +0 -57
- package/metadata/packages/fonts/README.md +0 -164
- package/metadata/packages/fonts/package.json +0 -72
- package/metadata/packages/react/LIMITATIONS.md +0 -31
- package/metadata/packages/react/README.md +0 -262
- package/metadata/packages/styles/BREAKING_CHANGES.md +0 -105
- package/metadata/packages/styles/CHANGELOG.md +0 -188
- package/metadata/packages/styles/README.md +0 -132
- package/metadata/packages/styles/index.css +0 -300
- package/metadata/packages/styles/link-list.css +0 -47
- package/metadata/packages/styles/link.css +0 -81
- package/metadata/packages/styles/tables.css +0 -132
- package/metadata/packages/styles/typography.css +0 -52
- package/metadata/packages/tokens/BREAKING_CHANGES.md +0 -180
- package/metadata/packages/tokens/CHANGELOG.md +0 -959
- package/metadata/packages/tokens/README.md +0 -435
- package/metadata/packages/tokens/dark.css +0 -454
- package/metadata/packages/tokens/index.js +0 -2224
- package/metadata/packages/tokens/light.css +0 -454
- package/metadata/packages/tokens/sick2018_dark.css +0 -454
- package/metadata/packages/tokens/sick2018_light.css +0 -454
- package/metadata/packages/tokens/sick2025_dark.css +0 -454
- package/metadata/packages/tokens/sick2025_light.css +0 -454
- package/metadata/packages/vue/LIMITATIONS.md +0 -53
- package/metadata/packages/vue/README.md +0 -252
- package/metadata/static/assets/index.md +0 -10
- package/metadata/static/components/index.md +0 -10
- package/metadata/static/components/syn-accordion/docs.md +0 -449
- package/metadata/static/components/syn-alert/docs.md +0 -282
- package/metadata/static/components/syn-badge/docs.md +0 -106
- package/metadata/static/components/syn-breadcrumb/docs.md +0 -265
- package/metadata/static/components/syn-breadcrumb-item/docs.md +0 -49
- package/metadata/static/components/syn-button/docs.md +0 -472
- package/metadata/static/components/syn-button-group/docs.md +0 -259
- package/metadata/static/components/syn-card/docs.md +0 -314
- package/metadata/static/components/syn-checkbox/docs.md +0 -176
- package/metadata/static/components/syn-combobox/docs.md +0 -2633
- package/metadata/static/components/syn-details/docs.md +0 -227
- package/metadata/static/components/syn-dialog/docs.md +0 -220
- package/metadata/static/components/syn-divider/docs.md +0 -77
- package/metadata/static/components/syn-drawer/docs.md +0 -269
- package/metadata/static/components/syn-dropdown/docs.md +0 -316
- package/metadata/static/components/syn-file/docs.md +0 -239
- package/metadata/static/components/syn-header/docs.md +0 -209
- package/metadata/static/components/syn-icon/docs.md +0 -177
- package/metadata/static/components/syn-icon-button/docs.md +0 -142
- package/metadata/static/components/syn-input/docs.md +0 -462
- package/metadata/static/components/syn-menu/docs.md +0 -162
- package/metadata/static/components/syn-menu-item/docs.md +0 -216
- package/metadata/static/components/syn-menu-label/docs.md +0 -29
- package/metadata/static/components/syn-nav-item/docs.md +0 -166
- package/metadata/static/components/syn-optgroup/docs.md +0 -167
- package/metadata/static/components/syn-option/docs.md +0 -137
- package/metadata/static/components/syn-pagination/docs.md +0 -102
- package/metadata/static/components/syn-popup/docs.md +0 -812
- package/metadata/static/components/syn-prio-nav/docs.md +0 -54
- package/metadata/static/components/syn-progress-bar/docs.md +0 -77
- package/metadata/static/components/syn-progress-ring/docs.md +0 -89
- package/metadata/static/components/syn-radio/docs.md +0 -178
- package/metadata/static/components/syn-radio-group/docs.md +0 -484
- package/metadata/static/components/syn-range/docs.md +0 -438
- package/metadata/static/components/syn-range-tick/docs.md +0 -110
- package/metadata/static/components/syn-select/docs.md +0 -811
- package/metadata/static/components/syn-side-nav/docs.md +0 -593
- package/metadata/static/components/syn-spinner/docs.md +0 -45
- package/metadata/static/components/syn-switch/docs.md +0 -121
- package/metadata/static/components/syn-tab/docs.md +0 -47
- package/metadata/static/components/syn-tab-group/docs.md +0 -1094
- package/metadata/static/components/syn-tab-panel/docs.md +0 -91
- package/metadata/static/components/syn-tag/docs.md +0 -50
- package/metadata/static/components/syn-tag-group/docs.md +0 -269
- package/metadata/static/components/syn-textarea/docs.md +0 -215
- package/metadata/static/components/syn-tooltip/docs.md +0 -217
- package/metadata/static/components/syn-validate/docs.md +0 -305
- package/metadata/static/fonts/index.md +0 -4
- package/metadata/static/migration/index.md +0 -57
- package/metadata/static/migration/v2-2018-to-v2-2025.md +0 -481
- package/metadata/static/migration/v2-2018-to-v3-2018.md +0 -147
- package/metadata/static/migration/v2-2018-to-v3-2025.md +0 -150
- package/metadata/static/migration/v2-2025-to-v3-2025.md +0 -133
- package/metadata/static/setup/icon-usage.md +0 -411
- package/metadata/static/setup/prerequisites.md +0 -319
- package/metadata/static/styles/syn-body.md +0 -5
- package/metadata/static/styles/syn-heading.md +0 -5
- package/metadata/static/styles/syn-link-list.md +0 -325
- package/metadata/static/styles/syn-link.md +0 -156
- package/metadata/static/styles/syn-table-cell.md +0 -127
- package/metadata/static/styles/syn-table.md +0 -201
- package/metadata/static/styles/syn-weight.md +0 -5
- package/metadata/static/templates/appshell.md +0 -2053
- package/metadata/static/templates/breadcrumb.md +0 -379
- package/metadata/static/templates/footer.md +0 -340
- package/metadata/static/templates/forms.md +0 -558
- package/metadata/static/templates/localization.md +0 -279
- package/metadata/static/templates/table.md +0 -1425
- package/metadata/static/templates/tag-group.md +0 -833
- /package/dist/{build/build.d.ts → utilities/logging-types.js} +0 -0
- /package/{metadata/static/component-info/index.md → rules/component-info.md} +0 -0
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import storybookOutput from '@synergy-design-system/docs/dist/index.json' with { type: 'json' };
|
|
2
|
-
import { staticComponentPath, staticStylesPath, templatesPath, } from '../config.js';
|
|
3
|
-
/**
|
|
4
|
-
* Get stories from Storybook output based on a prefix.
|
|
5
|
-
* @param prefix Prefix to filter stories by
|
|
6
|
-
* @returns List of stories matching the prefix
|
|
7
|
-
*/
|
|
8
|
-
const getStoriesFromStorybook = (prefix) => {
|
|
9
|
-
const foundStories = Object
|
|
10
|
-
.entries(storybookOutput.entries)
|
|
11
|
-
.filter(([key]) => key.startsWith(`${prefix}-`) && key.endsWith('-docs'))
|
|
12
|
-
.map(([, value]) => value)
|
|
13
|
-
.reduce((acc, story) => {
|
|
14
|
-
const componentName = story.id.split('--')[0].replace(`${prefix}-`, '');
|
|
15
|
-
acc[componentName] = story.id;
|
|
16
|
-
return acc;
|
|
17
|
-
}, {});
|
|
18
|
-
return foundStories;
|
|
19
|
-
};
|
|
20
|
-
const componentStories = getStoriesFromStorybook('components');
|
|
21
|
-
const styleStories = getStoriesFromStorybook('styles');
|
|
22
|
-
const templateStories = getStoriesFromStorybook('templates');
|
|
23
|
-
/**
|
|
24
|
-
* Configuration for scraping component documentation
|
|
25
|
-
*/
|
|
26
|
-
export const componentScrapingConfig = {
|
|
27
|
-
formatContent: (component, stories) => {
|
|
28
|
-
const content = stories.map(story => `
|
|
29
|
-
## ${story.heading}
|
|
30
|
-
|
|
31
|
-
${story.description}
|
|
32
|
-
|
|
33
|
-
\`\`\`html
|
|
34
|
-
${story.example}
|
|
35
|
-
\`\`\`
|
|
36
|
-
`).join('\n---\n');
|
|
37
|
-
return content;
|
|
38
|
-
},
|
|
39
|
-
generateOutputPath: (component) => `${staticComponentPath}/${component}/docs.md`,
|
|
40
|
-
generateStoryId: (component) => componentStories[component],
|
|
41
|
-
getItems: async () => Promise.resolve(Object.keys(componentStories)),
|
|
42
|
-
outputPath: staticComponentPath,
|
|
43
|
-
};
|
|
44
|
-
/**
|
|
45
|
-
* Configuration for scraping styles documentation
|
|
46
|
-
*/
|
|
47
|
-
export const stylesScrapingConfig = {
|
|
48
|
-
formatContent: (style, stories) => {
|
|
49
|
-
const content = stories.map(story => `
|
|
50
|
-
## ${story.heading}
|
|
51
|
-
|
|
52
|
-
${story.description}
|
|
53
|
-
|
|
54
|
-
\`\`\`html
|
|
55
|
-
${story.example}
|
|
56
|
-
\`\`\`
|
|
57
|
-
`).join('\n---\n');
|
|
58
|
-
return content;
|
|
59
|
-
},
|
|
60
|
-
generateOutputPath: (style) => `${staticStylesPath}/${style}.md`,
|
|
61
|
-
generateStoryId: (component) => styleStories[component],
|
|
62
|
-
getItems: async () => Promise.resolve(Object.keys(styleStories)),
|
|
63
|
-
outputPath: staticStylesPath,
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* Configuration for scraping template documentation
|
|
67
|
-
*/
|
|
68
|
-
export const templateScrapingConfig = {
|
|
69
|
-
formatContent: (template, stories) => {
|
|
70
|
-
const content = stories.map(story => `
|
|
71
|
-
## ${story.heading}
|
|
72
|
-
|
|
73
|
-
${story.description}
|
|
74
|
-
|
|
75
|
-
\`\`\`html
|
|
76
|
-
${story.example}
|
|
77
|
-
\`\`\`
|
|
78
|
-
`).join('\n---\n');
|
|
79
|
-
return content;
|
|
80
|
-
},
|
|
81
|
-
generateOutputPath: (template) => `${templatesPath}/${template}.md`,
|
|
82
|
-
generateStoryId: (component) => templateStories[component],
|
|
83
|
-
getItems: async () => Promise.resolve(Object.keys(templateStories)),
|
|
84
|
-
outputPath: staticStylesPath,
|
|
85
|
-
};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ScrapingConfig } from './types.js';
|
|
2
|
-
export declare class DocsScraper {
|
|
3
|
-
private baseUrl;
|
|
4
|
-
constructor(baseUrl?: string);
|
|
5
|
-
/**
|
|
6
|
-
* Run the scraping process for a specific configuration
|
|
7
|
-
*/
|
|
8
|
-
scrapeWithConfig(config: ScrapingConfig): Promise<void>;
|
|
9
|
-
/**
|
|
10
|
-
* Scrape component documentation
|
|
11
|
-
*/
|
|
12
|
-
scrapeComponents(): Promise<void>;
|
|
13
|
-
/**
|
|
14
|
-
* Scrape styles documentation
|
|
15
|
-
*/
|
|
16
|
-
scrapeStyles(): Promise<void>;
|
|
17
|
-
/**
|
|
18
|
-
* Scrape styles documentation
|
|
19
|
-
*/
|
|
20
|
-
scrapeTemplates(): Promise<void>;
|
|
21
|
-
/**
|
|
22
|
-
* Scrape all documentation types
|
|
23
|
-
*/
|
|
24
|
-
scrapeAll(): Promise<void>;
|
|
25
|
-
}
|
|
26
|
-
export declare function runDocsScraper(type?: 'components' | 'styles' | 'templates' | 'all', baseUrl?: string): Promise<void>;
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { StorybookScraper } from './scraper.js';
|
|
2
|
-
import { componentScrapingConfig, stylesScrapingConfig, templateScrapingConfig, } from './configs.js';
|
|
3
|
-
export class DocsScraper {
|
|
4
|
-
baseUrl;
|
|
5
|
-
constructor(baseUrl = 'http://localhost:6006') {
|
|
6
|
-
this.baseUrl = baseUrl;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Run the scraping process for a specific configuration
|
|
10
|
-
*/
|
|
11
|
-
async scrapeWithConfig(config) {
|
|
12
|
-
try {
|
|
13
|
-
console.log(`Using Storybook server at ${this.baseUrl}`);
|
|
14
|
-
// Create scraper and run
|
|
15
|
-
const scraper = new StorybookScraper(config);
|
|
16
|
-
await scraper.scrapeAll(this.baseUrl);
|
|
17
|
-
}
|
|
18
|
-
catch (error) {
|
|
19
|
-
console.error('Error during scraping process:', error);
|
|
20
|
-
throw error;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Scrape component documentation
|
|
25
|
-
*/
|
|
26
|
-
async scrapeComponents() {
|
|
27
|
-
console.log('Starting component documentation scraping...');
|
|
28
|
-
await this.scrapeWithConfig(componentScrapingConfig);
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Scrape styles documentation
|
|
32
|
-
*/
|
|
33
|
-
async scrapeStyles() {
|
|
34
|
-
console.log('Starting styles documentation scraping...');
|
|
35
|
-
await this.scrapeWithConfig(stylesScrapingConfig);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Scrape styles documentation
|
|
39
|
-
*/
|
|
40
|
-
async scrapeTemplates() {
|
|
41
|
-
console.log('Starting templates documentation scraping...');
|
|
42
|
-
await this.scrapeWithConfig(templateScrapingConfig);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Scrape all documentation types
|
|
46
|
-
*/
|
|
47
|
-
async scrapeAll() {
|
|
48
|
-
console.log('Starting comprehensive documentation scraping...');
|
|
49
|
-
try {
|
|
50
|
-
console.log(`Using Storybook server at ${this.baseUrl}`);
|
|
51
|
-
// Scrape components
|
|
52
|
-
console.log('Scraping component documentation...');
|
|
53
|
-
const componentScraper = new StorybookScraper(componentScrapingConfig);
|
|
54
|
-
await componentScraper.scrapeAll(this.baseUrl);
|
|
55
|
-
// Scrape styles
|
|
56
|
-
console.log('Scraping styles documentation...');
|
|
57
|
-
const stylesScraper = new StorybookScraper(stylesScrapingConfig);
|
|
58
|
-
await stylesScraper.scrapeAll(this.baseUrl);
|
|
59
|
-
// Scrape templates
|
|
60
|
-
console.log('Scraping templates documentation...');
|
|
61
|
-
const templatesScraper = new StorybookScraper(templateScrapingConfig);
|
|
62
|
-
await templatesScraper.scrapeAll(this.baseUrl);
|
|
63
|
-
console.log('All documentation scraping completed successfully!');
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
console.error('Error during comprehensive scraping process:', error);
|
|
67
|
-
throw error;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
// CLI usage helper
|
|
72
|
-
export async function runDocsScraper(type = 'all', baseUrl = 'http://localhost:6006') {
|
|
73
|
-
const scraper = new DocsScraper(baseUrl);
|
|
74
|
-
try {
|
|
75
|
-
switch (type) {
|
|
76
|
-
case 'components':
|
|
77
|
-
await scraper.scrapeComponents();
|
|
78
|
-
break;
|
|
79
|
-
case 'styles':
|
|
80
|
-
await scraper.scrapeStyles();
|
|
81
|
-
break;
|
|
82
|
-
case 'templates':
|
|
83
|
-
await scraper.scrapeTemplates();
|
|
84
|
-
break;
|
|
85
|
-
case 'all':
|
|
86
|
-
await scraper.scrapeAll();
|
|
87
|
-
break;
|
|
88
|
-
default:
|
|
89
|
-
throw new Error(`Unknown scraping type: ${type}`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
catch (error) {
|
|
93
|
-
console.error('Scraping failed:', error);
|
|
94
|
-
throw error;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { StaticServerManager } from './storybook-manager.js';
|
|
2
|
-
export { StorybookScraper } from './scraper.js';
|
|
3
|
-
export { DocsScraper, runDocsScraper } from './docs-scraper.js';
|
|
4
|
-
export { componentScrapingConfig, stylesScrapingConfig } from './configs.js';
|
|
5
|
-
export type { ScrapingConfig, ScrapedStory, StorybookServer } from './types.js';
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Browser } from 'playwright';
|
|
2
|
-
import { ScrapedStory, ScrapingConfig } from './types.js';
|
|
3
|
-
export declare class StorybookScraper {
|
|
4
|
-
private config;
|
|
5
|
-
constructor(config: ScrapingConfig);
|
|
6
|
-
/**
|
|
7
|
-
* Scrape a single story from Storybook
|
|
8
|
-
*/
|
|
9
|
-
static scrapeStoryDocs(storyId: string, baseUrl?: string, browser?: Browser): Promise<ScrapedStory[]>;
|
|
10
|
-
/**
|
|
11
|
-
* Scrape all configured items and write documentation
|
|
12
|
-
*/
|
|
13
|
-
scrapeAll(baseUrl?: string): Promise<void>;
|
|
14
|
-
}
|
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
import { dirname } from 'node:path';
|
|
2
|
-
import { mkdir, writeFile } from 'node:fs/promises';
|
|
3
|
-
import { chromium } from 'playwright';
|
|
4
|
-
import prettier from 'prettier';
|
|
5
|
-
import storybookOutput from '@synergy-design-system/docs/dist/index.json' with { type: 'json' };
|
|
6
|
-
/**
|
|
7
|
-
* Check if a story should be skipped based on its tags
|
|
8
|
-
* @param storyId The story ID to check (e.g., "components-syn-combobox--async-options")
|
|
9
|
-
* @returns true if the story should be skipped, false otherwise
|
|
10
|
-
*/
|
|
11
|
-
function shouldSkipStory(storyId) {
|
|
12
|
-
const entries = storybookOutput.entries;
|
|
13
|
-
const storyEntry = entries[storyId];
|
|
14
|
-
return storyEntry?.tags?.includes('skip_mcp') || false;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Check if a story heading should be skipped by finding the corresponding story ID
|
|
18
|
-
* @param docsStoryId The docs story ID (e.g., "components-syn-combobox--docs")
|
|
19
|
-
* @param heading The story heading (e.g., "Async Options")
|
|
20
|
-
* @returns true if the story should be skipped, false otherwise
|
|
21
|
-
*/
|
|
22
|
-
function shouldSkipStoryByHeading(docsStoryId, heading) {
|
|
23
|
-
// Get the component prefix from docs story ID
|
|
24
|
-
// (e.g., "components-syn-combobox" from "components-syn-combobox--docs")
|
|
25
|
-
const componentPrefix = docsStoryId.replace('--docs', '');
|
|
26
|
-
// Find matching story by converting heading to potential story ID format
|
|
27
|
-
// Story names are typically converted from "Async Options" to "async-options"
|
|
28
|
-
const potentialStorySlug = heading.toLowerCase().replace(/\s+/g, '-');
|
|
29
|
-
const potentialStoryId = `${componentPrefix}--${potentialStorySlug}`;
|
|
30
|
-
// Check if this potential story ID exists and should be skipped
|
|
31
|
-
return shouldSkipStory(potentialStoryId);
|
|
32
|
-
}
|
|
33
|
-
export class StorybookScraper {
|
|
34
|
-
config;
|
|
35
|
-
constructor(config) {
|
|
36
|
-
this.config = config;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Scrape a single story from Storybook
|
|
40
|
-
*/
|
|
41
|
-
static async scrapeStoryDocs(storyId, baseUrl = 'http://localhost:6006', browser) {
|
|
42
|
-
const shouldCloseBrowser = !browser;
|
|
43
|
-
const browserInstance = browser || await chromium.launch({
|
|
44
|
-
headless: true,
|
|
45
|
-
});
|
|
46
|
-
const page = await browserInstance.newPage({
|
|
47
|
-
viewport: {
|
|
48
|
-
height: 768,
|
|
49
|
-
width: 1024,
|
|
50
|
-
},
|
|
51
|
-
});
|
|
52
|
-
const scrapingReport = {
|
|
53
|
-
error: null,
|
|
54
|
-
foundStories: 0,
|
|
55
|
-
processedStories: 0,
|
|
56
|
-
status: 'pending',
|
|
57
|
-
storyDetails: [],
|
|
58
|
-
storyId,
|
|
59
|
-
};
|
|
60
|
-
try {
|
|
61
|
-
// Navigate to the Storybook docs page
|
|
62
|
-
await page.goto(`${baseUrl}/iframe?viewMode=docs&id=${storyId}&globals=`);
|
|
63
|
-
// Wait for the content to load
|
|
64
|
-
await page.waitForSelector('.sb-anchor');
|
|
65
|
-
// Extract the stories metadata first
|
|
66
|
-
// We get basic info and identify stories that need iframe content
|
|
67
|
-
const rawStoryMetadata = await page.evaluate(() => Array.from(document.querySelectorAll('.sb-anchor'))
|
|
68
|
-
// eslint-disable-next-line complexity
|
|
69
|
-
.map((story, index) => {
|
|
70
|
-
const description = story.querySelector(':scope > p')?.textContent || '';
|
|
71
|
-
const heading = story.querySelector('h3')?.textContent || '';
|
|
72
|
-
const hasIframe = !!story.querySelector('.sb-story iframe');
|
|
73
|
-
let exampleSource = '';
|
|
74
|
-
if (!hasIframe) {
|
|
75
|
-
// #1152: The example source is usually in the #root-inner element.
|
|
76
|
-
// However, for at least one story (tag-group-template), the #root-inner container is missing.
|
|
77
|
-
// I am not sure why, but I think a fallback would be just to check the first element for the time being.
|
|
78
|
-
const exampleWithRoot = story.querySelector('.sb-story #root-inner')?.innerHTML || '';
|
|
79
|
-
const exampleWithoutRoot = story.querySelector('.sb-story > div')?.innerHTML || '';
|
|
80
|
-
exampleSource = exampleWithRoot || exampleWithoutRoot;
|
|
81
|
-
}
|
|
82
|
-
return {
|
|
83
|
-
description,
|
|
84
|
-
exampleSource,
|
|
85
|
-
hasIframe,
|
|
86
|
-
heading,
|
|
87
|
-
index,
|
|
88
|
-
};
|
|
89
|
-
})
|
|
90
|
-
.filter(x => x.heading));
|
|
91
|
-
// Filter out stories that should be skipped based on their tags
|
|
92
|
-
const storyMetadata = rawStoryMetadata.filter(story => {
|
|
93
|
-
const shouldSkip = shouldSkipStoryByHeading(storyId, story.heading);
|
|
94
|
-
if (shouldSkip) {
|
|
95
|
-
console.log(`Skipping story "${story.heading}" due to skip_mcp tag`);
|
|
96
|
-
}
|
|
97
|
-
return !shouldSkip;
|
|
98
|
-
});
|
|
99
|
-
// Process each story and handle iframe content if needed
|
|
100
|
-
const results = await Promise.all(storyMetadata.map(async (storyMeta) => {
|
|
101
|
-
let { exampleSource } = storyMeta;
|
|
102
|
-
// If no inline content and there's an iframe, try to get content from iframe
|
|
103
|
-
if (!exampleSource && storyMeta.hasIframe) {
|
|
104
|
-
try {
|
|
105
|
-
const storySection = page.locator('.sb-anchor').nth(storyMeta.index);
|
|
106
|
-
// Storybook uses lazy loading, so the iframe may not be loaded until we scroll it into view
|
|
107
|
-
await storySection.scrollIntoViewIfNeeded();
|
|
108
|
-
await page.waitForTimeout(1000);
|
|
109
|
-
const frame = storySection.frameLocator('iframe');
|
|
110
|
-
const frameContent = await frame.locator('#root-inner').innerHTML();
|
|
111
|
-
exampleSource = frameContent || '';
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
// If iframe content extraction fails, continue with empty content
|
|
115
|
-
console.log(`Failed to extract iframe content for story "${storyMeta.heading}"`, error);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
// Replace all lit internal comments
|
|
119
|
-
// Lit comments look like this: <!----> or <!--?lit$SOMENUMBER$-->
|
|
120
|
-
const example = exampleSource
|
|
121
|
-
// Remove comments that start with ?lit (with any content after)
|
|
122
|
-
.replace(/<!--\?lit\$[^>]*-->/g, '')
|
|
123
|
-
// Remove empty comments
|
|
124
|
-
.replace(/<!--\s*-->/g, '')
|
|
125
|
-
// Clean up any resulting multiple consecutive whitespace/newlines
|
|
126
|
-
.replace(/\n\s*\n\s*\n/g, '\n\n')
|
|
127
|
-
// Remove all data attributes as they may be dynamic data
|
|
128
|
-
.replace(/ data-[^=]+="[^"]*"/g, '')
|
|
129
|
-
// Trim leading/trailing whitespace
|
|
130
|
-
.trim();
|
|
131
|
-
return {
|
|
132
|
-
description: storyMeta.description,
|
|
133
|
-
example,
|
|
134
|
-
heading: storyMeta.heading,
|
|
135
|
-
};
|
|
136
|
-
}));
|
|
137
|
-
// Filter out stories without examples
|
|
138
|
-
const validResults = results.filter(x => x.heading && x.example);
|
|
139
|
-
scrapingReport.foundStories = validResults.length;
|
|
140
|
-
if (validResults.length === 0) {
|
|
141
|
-
throw new Error(`No stories found for ${storyId}`);
|
|
142
|
-
}
|
|
143
|
-
const processedStories = await Promise.all(validResults.map(async (story, index) => {
|
|
144
|
-
try {
|
|
145
|
-
const formattedExample = await prettier.format(story.example, {
|
|
146
|
-
parser: 'html',
|
|
147
|
-
});
|
|
148
|
-
scrapingReport.storyDetails.push({
|
|
149
|
-
heading: story.heading,
|
|
150
|
-
status: 'success',
|
|
151
|
-
});
|
|
152
|
-
scrapingReport.processedStories += 1;
|
|
153
|
-
return {
|
|
154
|
-
description: story.description,
|
|
155
|
-
example: formattedExample,
|
|
156
|
-
heading: story.heading,
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
catch (error) {
|
|
160
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
161
|
-
scrapingReport.storyDetails.push({
|
|
162
|
-
error: errorMessage,
|
|
163
|
-
heading: story.heading || `Story ${index + 1}`,
|
|
164
|
-
status: 'error',
|
|
165
|
-
});
|
|
166
|
-
throw error;
|
|
167
|
-
}
|
|
168
|
-
}));
|
|
169
|
-
scrapingReport.status = 'success';
|
|
170
|
-
return processedStories;
|
|
171
|
-
}
|
|
172
|
-
catch (error) {
|
|
173
|
-
scrapingReport.error = error instanceof Error ? error : new Error(String(error));
|
|
174
|
-
scrapingReport.status = 'error';
|
|
175
|
-
return [];
|
|
176
|
-
}
|
|
177
|
-
finally {
|
|
178
|
-
await page.close();
|
|
179
|
-
if (shouldCloseBrowser) {
|
|
180
|
-
await browserInstance.close();
|
|
181
|
-
}
|
|
182
|
-
// Generate final report
|
|
183
|
-
if (scrapingReport.status !== 'success') {
|
|
184
|
-
console.log(`📊 Scraping Report for ${storyId}:`);
|
|
185
|
-
console.log(' Status: ❌ Error');
|
|
186
|
-
console.log(` Found Stories: ${scrapingReport.foundStories}`);
|
|
187
|
-
console.log(` Processed Stories: ${scrapingReport.processedStories}`);
|
|
188
|
-
if (scrapingReport.storyDetails.length > 0) {
|
|
189
|
-
console.log(' Story Details:');
|
|
190
|
-
scrapingReport.storyDetails.forEach((detail, index) => {
|
|
191
|
-
const statusIcon = detail.status === 'success' ? '✅' : '❌';
|
|
192
|
-
console.log(` ${index + 1}. ${statusIcon} ${detail.heading}`);
|
|
193
|
-
if (detail.error) {
|
|
194
|
-
console.log(` Error: ${detail.error}`);
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
if (scrapingReport.error) {
|
|
199
|
-
console.log(` Error Details: ${scrapingReport.error.message}`);
|
|
200
|
-
}
|
|
201
|
-
console.log(''); // Empty line for readability
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Scrape all configured items and write documentation
|
|
207
|
-
*/
|
|
208
|
-
async scrapeAll(baseUrl = 'http://localhost:6006') {
|
|
209
|
-
console.log('Starting scraping process...');
|
|
210
|
-
const items = await this.config.getItems();
|
|
211
|
-
// Create a single browser instance for all scraping operations
|
|
212
|
-
const browser = await chromium.launch({
|
|
213
|
-
headless: true,
|
|
214
|
-
});
|
|
215
|
-
try {
|
|
216
|
-
const scrapedPages = await Promise.all(items.map(async (item) => {
|
|
217
|
-
const storyId = this.config.generateStoryId(item);
|
|
218
|
-
const stories = await StorybookScraper.scrapeStoryDocs(storyId, baseUrl, browser);
|
|
219
|
-
return {
|
|
220
|
-
item,
|
|
221
|
-
stories,
|
|
222
|
-
};
|
|
223
|
-
}));
|
|
224
|
-
console.log('Writing documentation files...');
|
|
225
|
-
// Write out the results
|
|
226
|
-
await Promise.all(scrapedPages.map(async ({ item, stories }) => {
|
|
227
|
-
const filePath = this.config.generateOutputPath(item);
|
|
228
|
-
// Ensure the directory exists before writing
|
|
229
|
-
const dir = dirname(filePath);
|
|
230
|
-
await mkdir(dir, { recursive: true });
|
|
231
|
-
const content = await prettier.format(this.config.formatContent(item, stories), {
|
|
232
|
-
parser: 'markdown',
|
|
233
|
-
});
|
|
234
|
-
await writeFile(filePath, content, 'utf-8');
|
|
235
|
-
}));
|
|
236
|
-
console.log('Scraping process completed successfully!');
|
|
237
|
-
}
|
|
238
|
-
finally {
|
|
239
|
-
// Always close the browser, even if an error occurs
|
|
240
|
-
await browser.close();
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { StorybookServer } from './types.js';
|
|
2
|
-
export declare class StaticServerManager {
|
|
3
|
-
private server;
|
|
4
|
-
private serverInfo;
|
|
5
|
-
/**
|
|
6
|
-
* Check if a port is available
|
|
7
|
-
*/
|
|
8
|
-
private static isPortAvailable;
|
|
9
|
-
/**
|
|
10
|
-
* Find an available port starting from the default port
|
|
11
|
-
*/
|
|
12
|
-
private static findAvailablePort;
|
|
13
|
-
/**
|
|
14
|
-
* Start the static file server for Storybook
|
|
15
|
-
*/
|
|
16
|
-
start(port?: number): Promise<StorybookServer>;
|
|
17
|
-
/**
|
|
18
|
-
* Stop the static server
|
|
19
|
-
*/
|
|
20
|
-
stop(): Promise<void>;
|
|
21
|
-
/**
|
|
22
|
-
* Get the current server information
|
|
23
|
-
*/
|
|
24
|
-
getServer(): StorybookServer | null;
|
|
25
|
-
/**
|
|
26
|
-
* Check if static server is currently running
|
|
27
|
-
*/
|
|
28
|
-
isRunning(): boolean;
|
|
29
|
-
}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-misused-promises */
|
|
2
|
-
import { createServer } from 'http';
|
|
3
|
-
import { promisify } from 'node:util';
|
|
4
|
-
import { exec } from 'node:child_process';
|
|
5
|
-
import { dirname, resolve } from 'path';
|
|
6
|
-
import { fileURLToPath } from 'url';
|
|
7
|
-
import handler from 'serve-handler';
|
|
8
|
-
const execAsync = promisify(exec);
|
|
9
|
-
// Get current directory for resolving the Storybook build path
|
|
10
|
-
const filename = fileURLToPath(import.meta.url);
|
|
11
|
-
const currentDir = dirname(filename);
|
|
12
|
-
export class StaticServerManager {
|
|
13
|
-
server = null;
|
|
14
|
-
serverInfo = null;
|
|
15
|
-
/**
|
|
16
|
-
* Check if a port is available
|
|
17
|
-
*/
|
|
18
|
-
static async isPortAvailable(port) {
|
|
19
|
-
try {
|
|
20
|
-
const { stdout } = await execAsync(`lsof -ti:${port}`);
|
|
21
|
-
return stdout.trim() === '';
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Find an available port starting from the default port
|
|
29
|
-
*/
|
|
30
|
-
static async findAvailablePort(startPort = 6006) {
|
|
31
|
-
let port = startPort;
|
|
32
|
-
// eslint-disable-next-line no-await-in-loop
|
|
33
|
-
while (!(await StaticServerManager.isPortAvailable(port))) {
|
|
34
|
-
port += 1;
|
|
35
|
-
if (port > startPort + 100) {
|
|
36
|
-
throw new Error('Could not find available port for static server');
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return port;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Start the static file server for Storybook
|
|
43
|
-
*/
|
|
44
|
-
async start(port = 6006) {
|
|
45
|
-
if (this.serverInfo?.isRunning) {
|
|
46
|
-
console.log('Static server is already running');
|
|
47
|
-
return this.serverInfo;
|
|
48
|
-
}
|
|
49
|
-
const availablePort = await StaticServerManager.findAvailablePort(port);
|
|
50
|
-
const url = `http://localhost:${availablePort}`;
|
|
51
|
-
const storybookDistPath = resolve(currentDir, '../../../../docs/dist');
|
|
52
|
-
console.log(`Starting static server on port ${availablePort}...`);
|
|
53
|
-
console.log(`Serving files from: ${storybookDistPath}`);
|
|
54
|
-
this.server = createServer((request, response) => {
|
|
55
|
-
// Add custom URL rewriting before serve-handler
|
|
56
|
-
const originalUrl = request.url || '';
|
|
57
|
-
// Handle iframe.html -> iframe rewrite manually
|
|
58
|
-
if (originalUrl.startsWith('/iframe.html')) {
|
|
59
|
-
const rewrittenUrl = originalUrl.replace('/iframe.html', '/iframe');
|
|
60
|
-
request.url = rewrittenUrl;
|
|
61
|
-
}
|
|
62
|
-
return handler(request, response, {
|
|
63
|
-
headers: [
|
|
64
|
-
{
|
|
65
|
-
headers: [
|
|
66
|
-
{
|
|
67
|
-
key: 'Cache-Control',
|
|
68
|
-
value: 'public, max-age=3600',
|
|
69
|
-
},
|
|
70
|
-
],
|
|
71
|
-
source: '**',
|
|
72
|
-
},
|
|
73
|
-
],
|
|
74
|
-
public: storybookDistPath,
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
// Start listening and wait for the server to be ready
|
|
78
|
-
await new Promise((resolvePromise, reject) => {
|
|
79
|
-
if (!this.server) {
|
|
80
|
-
reject(new Error('Server instance not created'));
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
// Handle server errors
|
|
84
|
-
this.server.on('error', (error) => {
|
|
85
|
-
console.error('Static server error:', error);
|
|
86
|
-
reject(error);
|
|
87
|
-
});
|
|
88
|
-
// Server is ready when listening event fires
|
|
89
|
-
this.server.on('listening', () => {
|
|
90
|
-
console.log(`✓ Static server started successfully at ${url}`);
|
|
91
|
-
resolvePromise();
|
|
92
|
-
});
|
|
93
|
-
// Start the server
|
|
94
|
-
this.server.listen(availablePort);
|
|
95
|
-
});
|
|
96
|
-
this.serverInfo = {
|
|
97
|
-
isRunning: true,
|
|
98
|
-
port: availablePort,
|
|
99
|
-
url,
|
|
100
|
-
};
|
|
101
|
-
console.log(`Static server ready at ${url}`);
|
|
102
|
-
return this.serverInfo;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Stop the static server
|
|
106
|
-
*/
|
|
107
|
-
async stop() {
|
|
108
|
-
if (!this.server || !this.serverInfo) {
|
|
109
|
-
console.log('No static server to stop');
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
console.log('Stopping static server...');
|
|
113
|
-
await new Promise((resolvePromise) => {
|
|
114
|
-
if (!this.server) {
|
|
115
|
-
resolvePromise();
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
this.server.close(() => {
|
|
119
|
-
this.serverInfo = null;
|
|
120
|
-
this.server = null;
|
|
121
|
-
console.log('Static server stopped successfully');
|
|
122
|
-
resolvePromise();
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Get the current server information
|
|
128
|
-
*/
|
|
129
|
-
getServer() {
|
|
130
|
-
return this.serverInfo;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Check if static server is currently running
|
|
134
|
-
*/
|
|
135
|
-
isRunning() {
|
|
136
|
-
return this.serverInfo?.isRunning ?? false;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export interface ScrapingConfig {
|
|
2
|
-
/** The output directory path */
|
|
3
|
-
outputPath: string;
|
|
4
|
-
/** Function to get the list of items to scrape */
|
|
5
|
-
getItems: () => Promise<string[]> | string[];
|
|
6
|
-
/** Function to generate the story ID from an item */
|
|
7
|
-
generateStoryId: (item: string) => string;
|
|
8
|
-
/** Function to generate the output file path from an item */
|
|
9
|
-
generateOutputPath: (item: string) => string;
|
|
10
|
-
/** Function to format the scraped content */
|
|
11
|
-
formatContent: (item: string, stories: ScrapedStory[]) => string;
|
|
12
|
-
}
|
|
13
|
-
export interface ScrapedStory {
|
|
14
|
-
heading: string;
|
|
15
|
-
description: string;
|
|
16
|
-
example: string;
|
|
17
|
-
}
|
|
18
|
-
export interface StorybookServer {
|
|
19
|
-
port: number;
|
|
20
|
-
url: string;
|
|
21
|
-
isRunning: boolean;
|
|
22
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export declare const getStylesMetaData: () => Promise<(import("./metadata.js").MetadataFile | null)[]>;
|
|
2
|
-
/**
|
|
3
|
-
* Get a list of all available styles in the Synergy Design System.
|
|
4
|
-
* @returns A list of all available styles in the Synergy Design System.
|
|
5
|
-
*/
|
|
6
|
-
export declare const getAvailableStyles: () => Promise<string[]>;
|