@solid-design-system/mcp 0.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 +1 -0
- package/LICENSE.md +10 -0
- package/README.md +408 -0
- package/dist/bin/start.d.ts +2 -0
- package/dist/bin/start.js +8 -0
- package/dist/build/build.d.ts +1 -0
- package/dist/build/build.js +36 -0
- package/dist/build/components.d.ts +9 -0
- package/dist/build/components.js +264 -0
- package/dist/build/icons.d.ts +12 -0
- package/dist/build/icons.js +79 -0
- package/dist/build/package-docs.d.ts +1 -0
- package/dist/build/package-docs.js +67 -0
- package/dist/build/static.d.ts +4 -0
- package/dist/build/static.js +39 -0
- package/dist/build/styles.d.ts +9 -0
- package/dist/build/styles.js +178 -0
- package/dist/build/templates.d.ts +1 -0
- package/dist/build/templates.js +239 -0
- package/dist/build/tokens.d.ts +4 -0
- package/dist/build/tokens.js +105 -0
- package/dist/server.d.ts +6 -0
- package/dist/server.js +20 -0
- package/dist/tools/components.d.ts +12 -0
- package/dist/tools/components.js +175 -0
- package/dist/tools/icon-search.d.ts +7 -0
- package/dist/tools/icon-search.js +184 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.js +7 -0
- package/dist/tools/quickstart.d.ts +2 -0
- package/dist/tools/quickstart.js +104 -0
- package/dist/tools/styles.d.ts +12 -0
- package/dist/tools/styles.js +167 -0
- package/dist/tools/templates.d.ts +11 -0
- package/dist/tools/templates.js +146 -0
- package/dist/tools/tokens.d.ts +7 -0
- package/dist/tools/tokens.js +198 -0
- package/dist/tools/version.d.ts +7 -0
- package/dist/tools/version.js +50 -0
- package/dist/utilities/components.d.ts +8 -0
- package/dist/utilities/components.js +24 -0
- package/dist/utilities/config.d.ts +40 -0
- package/dist/utilities/config.js +44 -0
- package/dist/utilities/file.d.ts +12 -0
- package/dist/utilities/file.js +28 -0
- package/dist/utilities/index.d.ts +10 -0
- package/dist/utilities/index.js +10 -0
- package/dist/utilities/input.d.ts +9 -0
- package/dist/utilities/input.js +19 -0
- package/dist/utilities/metadata.d.ts +33 -0
- package/dist/utilities/metadata.js +55 -0
- package/dist/utilities/stdio.d.ts +14 -0
- package/dist/utilities/stdio.js +57 -0
- package/dist/utilities/styles.d.ts +16 -0
- package/dist/utilities/styles.js +47 -0
- package/dist/utilities/templates.d.ts +5 -0
- package/dist/utilities/templates.js +18 -0
- package/dist/utilities/tokens.d.ts +6 -0
- package/dist/utilities/tokens.js +42 -0
- package/dist/utilities/version.d.ts +28 -0
- package/dist/utilities/version.js +21 -0
- package/metadata/packages/components/docs/customization.md +101 -0
- package/metadata/packages/components/docs/form-controls.md +28 -0
- package/metadata/packages/components/docs/installation.md +271 -0
- package/metadata/packages/components/docs/localization.md +158 -0
- package/metadata/packages/components/docs/usage.md +182 -0
- package/metadata/packages/components/sd-accordion/info.md +82 -0
- package/metadata/packages/components/sd-accordion/stories/open.md +8 -0
- package/metadata/packages/components/sd-accordion/stories/summary.md +17 -0
- package/metadata/packages/components/sd-accordion-group/info.md +70 -0
- package/metadata/packages/components/sd-accordion-group/stories/close-others.md +24 -0
- package/metadata/packages/components/sd-audio/info.md +80 -0
- package/metadata/packages/components/sd-audio/stories/animated.md +34 -0
- package/metadata/packages/components/sd-audio/stories/inverted.md +36 -0
- package/metadata/packages/components/sd-audio/stories/no-timestamps.md +34 -0
- package/metadata/packages/components/sd-audio/stories/reverse.md +35 -0
- package/metadata/packages/components/sd-audio/stories/speed.md +38 -0
- package/metadata/packages/components/sd-audio/stories/transcript.md +36 -0
- package/metadata/packages/components/sd-badge/info.md +69 -0
- package/metadata/packages/components/sd-badge/stories/inverted.md +9 -0
- package/metadata/packages/components/sd-badge/stories/overflow.md +11 -0
- package/metadata/packages/components/sd-badge/stories/size.md +13 -0
- package/metadata/packages/components/sd-badge/stories/variant.md +40 -0
- package/metadata/packages/components/sd-brandshape/info.md +65 -0
- package/metadata/packages/components/sd-brandshape/stories/image-translate-y.md +13 -0
- package/metadata/packages/components/sd-brandshape/stories/shapes.md +22 -0
- package/metadata/packages/components/sd-brandshape/stories/transparent-variants.md +24 -0
- package/metadata/packages/components/sd-brandshape/stories/variant.md +95 -0
- package/metadata/packages/components/sd-breadcrumb/info.md +57 -0
- package/metadata/packages/components/sd-breadcrumb-item/info.md +42 -0
- package/metadata/packages/components/sd-button/info.md +120 -0
- package/metadata/packages/components/sd-button/stories/as-link.md +12 -0
- package/metadata/packages/components/sd-button/stories/disabled.md +10 -0
- package/metadata/packages/components/sd-button/stories/icon.md +10 -0
- package/metadata/packages/components/sd-button/stories/inverted.md +10 -0
- package/metadata/packages/components/sd-button/stories/loading.md +10 -0
- package/metadata/packages/components/sd-button/stories/size.md +13 -0
- package/metadata/packages/components/sd-button/stories/variants.md +15 -0
- package/metadata/packages/components/sd-button/stories/visually-disabled.md +23 -0
- package/metadata/packages/components/sd-carousel/info.md +99 -0
- package/metadata/packages/components/sd-carousel/stories/autoplay-interval.md +66 -0
- package/metadata/packages/components/sd-carousel/stories/autoplay.md +23 -0
- package/metadata/packages/components/sd-carousel/stories/fade.md +18 -0
- package/metadata/packages/components/sd-carousel/stories/inverted.md +17 -0
- package/metadata/packages/components/sd-carousel/stories/loop.md +17 -0
- package/metadata/packages/components/sd-carousel/stories/slides-per-move.md +49 -0
- package/metadata/packages/components/sd-carousel/stories/slides-per-page.md +23 -0
- package/metadata/packages/components/sd-carousel/stories/variant.md +32 -0
- package/metadata/packages/components/sd-carousel-item/info.md +26 -0
- package/metadata/packages/components/sd-checkbox/info.md +88 -0
- package/metadata/packages/components/sd-checkbox/stories/checked.md +7 -0
- package/metadata/packages/components/sd-checkbox/stories/disabled.md +7 -0
- package/metadata/packages/components/sd-checkbox/stories/indeterminate.md +7 -0
- package/metadata/packages/components/sd-checkbox/stories/invalid.md +22 -0
- package/metadata/packages/components/sd-checkbox/stories/required.md +7 -0
- package/metadata/packages/components/sd-checkbox/stories/size.md +14 -0
- package/metadata/packages/components/sd-checkbox/stories/visually-disabled.md +11 -0
- package/metadata/packages/components/sd-checkbox-group/info.md +71 -0
- package/metadata/packages/components/sd-checkbox-group/stories/help-text.md +13 -0
- package/metadata/packages/components/sd-checkbox-group/stories/label.md +10 -0
- package/metadata/packages/components/sd-checkbox-group/stories/orientation.md +19 -0
- package/metadata/packages/components/sd-checkbox-group/stories/size.md +21 -0
- package/metadata/packages/components/sd-combobox/info.md +170 -0
- package/metadata/packages/components/sd-combobox/stories/async-options.md +27 -0
- package/metadata/packages/components/sd-combobox/stories/clearable.md +13 -0
- package/metadata/packages/components/sd-combobox/stories/custom-filter.md +20 -0
- package/metadata/packages/components/sd-combobox/stories/disabled.md +13 -0
- package/metadata/packages/components/sd-combobox/stories/floating-label.md +14 -0
- package/metadata/packages/components/sd-combobox/stories/focus.md +11 -0
- package/metadata/packages/components/sd-combobox/stories/help-text.md +36 -0
- package/metadata/packages/components/sd-combobox/stories/icons.md +15 -0
- package/metadata/packages/components/sd-combobox/stories/invalid.md +29 -0
- package/metadata/packages/components/sd-combobox/stories/label.md +26 -0
- package/metadata/packages/components/sd-combobox/stories/max-options-visible.md +23 -0
- package/metadata/packages/components/sd-combobox/stories/multiple.md +24 -0
- package/metadata/packages/components/sd-combobox/stories/placeholder.md +13 -0
- package/metadata/packages/components/sd-combobox/stories/placement.md +29 -0
- package/metadata/packages/components/sd-combobox/stories/required.md +20 -0
- package/metadata/packages/components/sd-combobox/stories/search.md +13 -0
- package/metadata/packages/components/sd-combobox/stories/size.md +38 -0
- package/metadata/packages/components/sd-combobox/stories/suggestion-container-height.md +12 -0
- package/metadata/packages/components/sd-combobox/stories/valid.md +29 -0
- package/metadata/packages/components/sd-combobox/stories/visually-disabled.md +17 -0
- package/metadata/packages/components/sd-datepicker/info.md +159 -0
- package/metadata/packages/components/sd-datepicker/stories/alignment.md +10 -0
- package/metadata/packages/components/sd-datepicker/stories/disabled-dates.md +11 -0
- package/metadata/packages/components/sd-datepicker/stories/disabled-weekends.md +7 -0
- package/metadata/packages/components/sd-datepicker/stories/disabled.md +8 -0
- package/metadata/packages/components/sd-datepicker/stories/floating-label.md +8 -0
- package/metadata/packages/components/sd-datepicker/stories/help-text.md +11 -0
- package/metadata/packages/components/sd-datepicker/stories/invalid.md +15 -0
- package/metadata/packages/components/sd-datepicker/stories/label.md +11 -0
- package/metadata/packages/components/sd-datepicker/stories/placeholder.md +7 -0
- package/metadata/packages/components/sd-datepicker/stories/range.md +7 -0
- package/metadata/packages/components/sd-datepicker/stories/required.md +7 -0
- package/metadata/packages/components/sd-datepicker/stories/size.md +14 -0
- package/metadata/packages/components/sd-datepicker/stories/valid.md +16 -0
- package/metadata/packages/components/sd-datepicker/stories/visible-month.md +7 -0
- package/metadata/packages/components/sd-datepicker/stories/visually-disabled.md +11 -0
- package/metadata/packages/components/sd-dialog/info.md +89 -0
- package/metadata/packages/components/sd-dialog/stories/headline.md +22 -0
- package/metadata/packages/components/sd-dialog/stories/no-close-button.md +32 -0
- package/metadata/packages/components/sd-dialog/stories/open.md +72 -0
- package/metadata/packages/components/sd-divider/info.md +51 -0
- package/metadata/packages/components/sd-divider/stories/inverted.md +7 -0
- package/metadata/packages/components/sd-divider/stories/orientation.md +11 -0
- package/metadata/packages/components/sd-divider/stories/size.md +10 -0
- package/metadata/packages/components/sd-drawer/info.md +89 -0
- package/metadata/packages/components/sd-drawer/stories/no-header.md +16 -0
- package/metadata/packages/components/sd-drawer/stories/open.md +23 -0
- package/metadata/packages/components/sd-drawer/stories/placement.md +23 -0
- package/metadata/packages/components/sd-dropdown/info.md +86 -0
- package/metadata/packages/components/sd-dropdown/stories/disabled.md +8 -0
- package/metadata/packages/components/sd-dropdown/stories/distance.md +8 -0
- package/metadata/packages/components/sd-dropdown/stories/no-auto-size.md +10 -0
- package/metadata/packages/components/sd-dropdown/stories/no-flip.md +8 -0
- package/metadata/packages/components/sd-dropdown/stories/open.md +8 -0
- package/metadata/packages/components/sd-dropdown/stories/placement.md +20 -0
- package/metadata/packages/components/sd-dropdown/stories/rounded.md +10 -0
- package/metadata/packages/components/sd-dropdown/stories/skidding.md +8 -0
- package/metadata/packages/components/sd-dropdown/stories/stay-open.md +12 -0
- package/metadata/packages/components/sd-expandable/info.md +79 -0
- package/metadata/packages/components/sd-expandable/stories/gradient.md +75 -0
- package/metadata/packages/components/sd-expandable/stories/inverted.md +33 -0
- package/metadata/packages/components/sd-expandable/stories/open.md +60 -0
- package/metadata/packages/components/sd-flipcard/info.md +84 -0
- package/metadata/packages/components/sd-flipcard/stories/aspect-ratios.md +26 -0
- package/metadata/packages/components/sd-flipcard/stories/flip-direction.md +17 -0
- package/metadata/packages/components/sd-flipcard/stories/placement.md +17 -0
- package/metadata/packages/components/sd-flipcard/stories/variants.md +51 -0
- package/metadata/packages/components/sd-header/info.md +60 -0
- package/metadata/packages/components/sd-header/stories/fixed.md +9 -0
- package/metadata/packages/components/sd-icon/info.md +35 -0
- package/metadata/packages/components/sd-icon/stories/color.md +15 -0
- package/metadata/packages/components/sd-icon/stories/custom-libraries.md +119 -0
- package/metadata/packages/components/sd-icon/stories/label.md +12 -0
- package/metadata/packages/components/sd-icon/stories/libraries.md +38 -0
- package/metadata/packages/components/sd-icon/stories/name.md +36 -0
- package/metadata/packages/components/sd-icon/stories/size.md +10 -0
- package/metadata/packages/components/sd-include/info.md +20 -0
- package/metadata/packages/components/sd-input/info.md +176 -0
- package/metadata/packages/components/sd-input/stories/clearable.md +7 -0
- package/metadata/packages/components/sd-input/stories/disabled.md +7 -0
- package/metadata/packages/components/sd-input/stories/floating-label.md +8 -0
- package/metadata/packages/components/sd-input/stories/help-text.md +11 -0
- package/metadata/packages/components/sd-input/stories/icon.md +13 -0
- package/metadata/packages/components/sd-input/stories/invalid.md +14 -0
- package/metadata/packages/components/sd-input/stories/label.md +11 -0
- package/metadata/packages/components/sd-input/stories/max-length.md +7 -0
- package/metadata/packages/components/sd-input/stories/max.md +7 -0
- package/metadata/packages/components/sd-input/stories/min-length.md +7 -0
- package/metadata/packages/components/sd-input/stories/min.md +7 -0
- package/metadata/packages/components/sd-input/stories/pattern.md +7 -0
- package/metadata/packages/components/sd-input/stories/placeholder.md +7 -0
- package/metadata/packages/components/sd-input/stories/read-only.md +8 -0
- package/metadata/packages/components/sd-input/stories/required.md +7 -0
- package/metadata/packages/components/sd-input/stories/size.md +14 -0
- package/metadata/packages/components/sd-input/stories/spin-buttons.md +14 -0
- package/metadata/packages/components/sd-input/stories/toggle-password.md +8 -0
- package/metadata/packages/components/sd-input/stories/type.md +80 -0
- package/metadata/packages/components/sd-input/stories/valid.md +15 -0
- package/metadata/packages/components/sd-input/stories/value.md +7 -0
- package/metadata/packages/components/sd-input/stories/visually-disabled.md +11 -0
- package/metadata/packages/components/sd-link/info.md +80 -0
- package/metadata/packages/components/sd-link/stories/as-link.md +12 -0
- package/metadata/packages/components/sd-link/stories/disabled.md +7 -0
- package/metadata/packages/components/sd-link/stories/icon.md +14 -0
- package/metadata/packages/components/sd-link/stories/inverted.md +7 -0
- package/metadata/packages/components/sd-link/stories/size.md +13 -0
- package/metadata/packages/components/sd-link/stories/standalone.md +29 -0
- package/metadata/packages/components/sd-link/stories/visually-disabled.md +17 -0
- package/metadata/packages/components/sd-loader/info.md +54 -0
- package/metadata/packages/components/sd-loader/stories/default.md +5 -0
- package/metadata/packages/components/sd-loader/stories/size.md +15 -0
- package/metadata/packages/components/sd-loader/stories/variants.md +19 -0
- package/metadata/packages/components/sd-map-marker/info.md +74 -0
- package/metadata/packages/components/sd-map-marker/stories/animated.md +13 -0
- package/metadata/packages/components/sd-map-marker/stories/as-link.md +13 -0
- package/metadata/packages/components/sd-map-marker/stories/not-interactive.md +11 -0
- package/metadata/packages/components/sd-map-marker/stories/slot.md +8 -0
- package/metadata/packages/components/sd-map-marker/stories/state.md +47 -0
- package/metadata/packages/components/sd-map-marker/stories/variant.md +21 -0
- package/metadata/packages/components/sd-menu/info.md +68 -0
- package/metadata/packages/components/sd-menu/stories/checkmark.md +12 -0
- package/metadata/packages/components/sd-menu/stories/disabled.md +12 -0
- package/metadata/packages/components/sd-menu/stories/grouping.md +20 -0
- package/metadata/packages/components/sd-menu/stories/icon.md +80 -0
- package/metadata/packages/components/sd-menu/stories/submenu.md +18 -0
- package/metadata/packages/components/sd-menu-item/info.md +36 -0
- package/metadata/packages/components/sd-menu-item/stories/checkmark.md +5 -0
- package/metadata/packages/components/sd-menu-item/stories/disabled.md +5 -0
- package/metadata/packages/components/sd-menu-item/stories/icon-indent.md +8 -0
- package/metadata/packages/components/sd-navigation-item/info.md +98 -0
- package/metadata/packages/components/sd-navigation-item/stories/accordion.md +15 -0
- package/metadata/packages/components/sd-navigation-item/stories/as-link.md +7 -0
- package/metadata/packages/components/sd-navigation-item/stories/chevron.md +10 -0
- package/metadata/packages/components/sd-navigation-item/stories/current.md +8 -0
- package/metadata/packages/components/sd-navigation-item/stories/description.md +11 -0
- package/metadata/packages/components/sd-navigation-item/stories/disabled.md +5 -0
- package/metadata/packages/components/sd-navigation-item/stories/divider.md +6 -0
- package/metadata/packages/components/sd-navigation-item/stories/indented.md +8 -0
- package/metadata/packages/components/sd-navigation-item/stories/orientation.md +6 -0
- package/metadata/packages/components/sd-navigation-item/stories/relaxed.md +8 -0
- package/metadata/packages/components/sd-navigation-item/stories/separated.md +14 -0
- package/metadata/packages/components/sd-navigation-item/stories/size.md +13 -0
- package/metadata/packages/components/sd-navigation-item/stories/stacked.md +8 -0
- package/metadata/packages/components/sd-notification/info.md +135 -0
- package/metadata/packages/components/sd-notification/stories/closable.md +13 -0
- package/metadata/packages/components/sd-notification/stories/duration-indicator.md +15 -0
- package/metadata/packages/components/sd-notification/stories/duration.md +16 -0
- package/metadata/packages/components/sd-notification/stories/open.md +5 -0
- package/metadata/packages/components/sd-notification/stories/toast-bottom-center.md +53 -0
- package/metadata/packages/components/sd-notification/stories/toast-notification.md +67 -0
- package/metadata/packages/components/sd-notification/stories/variants.md +20 -0
- package/metadata/packages/components/sd-optgroup/info.md +55 -0
- package/metadata/packages/components/sd-optgroup/stories/disabled.md +13 -0
- package/metadata/packages/components/sd-option/info.md +65 -0
- package/metadata/packages/components/sd-option/stories/checkbox.md +19 -0
- package/metadata/packages/components/sd-option/stories/disabled.md +22 -0
- package/metadata/packages/components/sd-option/stories/selected.md +23 -0
- package/metadata/packages/components/sd-option/stories/size.md +26 -0
- package/metadata/packages/components/sd-popup/info.md +66 -0
- package/metadata/packages/components/sd-progress-bar/info.md +73 -0
- package/metadata/packages/components/sd-progress-bar/stories/custom-height.md +5 -0
- package/metadata/packages/components/sd-progress-bar/stories/inverted.md +9 -0
- package/metadata/packages/components/sd-progress-bar/stories/label.md +16 -0
- package/metadata/packages/components/sd-progress-bar/stories/loading.md +5 -0
- package/metadata/packages/components/sd-progress-bar/stories/value-formatter.md +20 -0
- package/metadata/packages/components/sd-progress-bar/stories/value-max.md +6 -0
- package/metadata/packages/components/sd-progress-bar/stories/value-position.md +11 -0
- package/metadata/packages/components/sd-quickfact/info.md +84 -0
- package/metadata/packages/components/sd-quickfact/stories/expandable.md +46 -0
- package/metadata/packages/components/sd-quickfact/stories/open.md +15 -0
- package/metadata/packages/components/sd-quickfact/stories/summary.md +13 -0
- package/metadata/packages/components/sd-radio/info.md +47 -0
- package/metadata/packages/components/sd-radio/stories/disabled.md +9 -0
- package/metadata/packages/components/sd-radio/stories/invalid.md +22 -0
- package/metadata/packages/components/sd-radio/stories/size.md +26 -0
- package/metadata/packages/components/sd-radio/stories/visually-disabled.md +11 -0
- package/metadata/packages/components/sd-radio-button/info.md +81 -0
- package/metadata/packages/components/sd-radio-button/stories/checked.md +20 -0
- package/metadata/packages/components/sd-radio-button/stories/disabled.md +20 -0
- package/metadata/packages/components/sd-radio-button/stories/icon.md +17 -0
- package/metadata/packages/components/sd-radio-button/stories/label.md +19 -0
- package/metadata/packages/components/sd-radio-button/stories/size.md +54 -0
- package/metadata/packages/components/sd-radio-button/stories/visually-disabled.md +26 -0
- package/metadata/packages/components/sd-radio-group/info.md +91 -0
- package/metadata/packages/components/sd-radio-group/stories/disabled.md +10 -0
- package/metadata/packages/components/sd-radio-group/stories/help-text.md +12 -0
- package/metadata/packages/components/sd-radio-group/stories/invalid.md +23 -0
- package/metadata/packages/components/sd-radio-group/stories/label.md +9 -0
- package/metadata/packages/components/sd-radio-group/stories/orientation.md +20 -0
- package/metadata/packages/components/sd-radio-group/stories/required.md +28 -0
- package/metadata/packages/components/sd-radio-group/stories/size.md +20 -0
- package/metadata/packages/components/sd-range/info.md +101 -0
- package/metadata/packages/components/sd-range/stories/tooltip-formatter.md +13 -0
- package/metadata/packages/components/sd-range-tick/info.md +21 -0
- package/metadata/packages/components/sd-scrollable/info.md +87 -0
- package/metadata/packages/components/sd-scrollable/stories/buttons.md +15 -0
- package/metadata/packages/components/sd-scrollable/stories/inset.md +15 -0
- package/metadata/packages/components/sd-scrollable/stories/orientation.md +32 -0
- package/metadata/packages/components/sd-scrollable/stories/scrollbar.md +15 -0
- package/metadata/packages/components/sd-scrollable/stories/shadows.md +15 -0
- package/metadata/packages/components/sd-scrollable/stories/step.md +15 -0
- package/metadata/packages/components/sd-select/info.md +155 -0
- package/metadata/packages/components/sd-select/stories/clearable.md +13 -0
- package/metadata/packages/components/sd-select/stories/disabled.md +13 -0
- package/metadata/packages/components/sd-select/stories/floating-label.md +14 -0
- package/metadata/packages/components/sd-select/stories/help-text.md +23 -0
- package/metadata/packages/components/sd-select/stories/invalid.md +30 -0
- package/metadata/packages/components/sd-select/stories/label.md +23 -0
- package/metadata/packages/components/sd-select/stories/max-options-visible.md +24 -0
- package/metadata/packages/components/sd-select/stories/multiple.md +14 -0
- package/metadata/packages/components/sd-select/stories/placeholder.md +13 -0
- package/metadata/packages/components/sd-select/stories/placement.md +24 -0
- package/metadata/packages/components/sd-select/stories/required.md +13 -0
- package/metadata/packages/components/sd-select/stories/size.md +34 -0
- package/metadata/packages/components/sd-select/stories/use-tags.md +14 -0
- package/metadata/packages/components/sd-select/stories/valid.md +29 -0
- package/metadata/packages/components/sd-select/stories/visually-disabled.md +17 -0
- package/metadata/packages/components/sd-skeleton/info.md +57 -0
- package/metadata/packages/components/sd-skeleton/stories/variants.md +13 -0
- package/metadata/packages/components/sd-spinner/info.md +53 -0
- package/metadata/packages/components/sd-spinner/stories/size.md +15 -0
- package/metadata/packages/components/sd-spinner/stories/variants.md +43 -0
- package/metadata/packages/components/sd-step/info.md +80 -0
- package/metadata/packages/components/sd-step/stories/as-link.md +9 -0
- package/metadata/packages/components/sd-step/stories/current.md +9 -0
- package/metadata/packages/components/sd-step/stories/description-and-label-using-attributes.md +7 -0
- package/metadata/packages/components/sd-step/stories/description.md +28 -0
- package/metadata/packages/components/sd-step/stories/disabled.md +9 -0
- package/metadata/packages/components/sd-step/stories/horizontal-inline.md +9 -0
- package/metadata/packages/components/sd-step/stories/icon.md +10 -0
- package/metadata/packages/components/sd-step/stories/label.md +7 -0
- package/metadata/packages/components/sd-step/stories/no-tail.md +9 -0
- package/metadata/packages/components/sd-step/stories/not-interactive.md +9 -0
- package/metadata/packages/components/sd-step/stories/orientation.md +15 -0
- package/metadata/packages/components/sd-step/stories/size.md +19 -0
- package/metadata/packages/components/sd-step/stories/waiting.md +9 -0
- package/metadata/packages/components/sd-step-group/info.md +74 -0
- package/metadata/packages/components/sd-step-group/stories/active-step.md +17 -0
- package/metadata/packages/components/sd-step-group/stories/horizontal-inline.md +17 -0
- package/metadata/packages/components/sd-step-group/stories/icon.md +20 -0
- package/metadata/packages/components/sd-step-group/stories/manual-state.md +23 -0
- package/metadata/packages/components/sd-step-group/stories/not-interactive.md +17 -0
- package/metadata/packages/components/sd-step-group/stories/orientation.md +39 -0
- package/metadata/packages/components/sd-step-group/stories/size.md +53 -0
- package/metadata/packages/components/sd-switch/info.md +79 -0
- package/metadata/packages/components/sd-switch/stories/checked.md +5 -0
- package/metadata/packages/components/sd-switch/stories/disabled.md +5 -0
- package/metadata/packages/components/sd-switch/stories/invalid.md +18 -0
- package/metadata/packages/components/sd-switch/stories/required.md +5 -0
- package/metadata/packages/components/sd-tab/info.md +42 -0
- package/metadata/packages/components/sd-tab/stories/active.md +44 -0
- package/metadata/packages/components/sd-tab/stories/disabled.md +20 -0
- package/metadata/packages/components/sd-tab/stories/icon.md +29 -0
- package/metadata/packages/components/sd-tab/stories/variant.md +42 -0
- package/metadata/packages/components/sd-tab/stories/visually-disabled.md +24 -0
- package/metadata/packages/components/sd-tab-group/info.md +88 -0
- package/metadata/packages/components/sd-tab-group/stories/activation.md +52 -0
- package/metadata/packages/components/sd-tab-group/stories/scrollable.md +66 -0
- package/metadata/packages/components/sd-tab-panel/info.md +26 -0
- package/metadata/packages/components/sd-tab-panel/stories/open.md +9 -0
- package/metadata/packages/components/sd-tag/info.md +75 -0
- package/metadata/packages/components/sd-tag/stories/as-link.md +12 -0
- package/metadata/packages/components/sd-tag/stories/disabled.md +10 -0
- package/metadata/packages/components/sd-tag/stories/icon.md +10 -0
- package/metadata/packages/components/sd-tag/stories/removable.md +22 -0
- package/metadata/packages/components/sd-tag/stories/selected.md +20 -0
- package/metadata/packages/components/sd-tag/stories/size.md +11 -0
- package/metadata/packages/components/sd-teaser/info.md +85 -0
- package/metadata/packages/components/sd-teaser/stories/breakpoint.md +28 -0
- package/metadata/packages/components/sd-teaser/stories/default-and-headline-slot.md +14 -0
- package/metadata/packages/components/sd-teaser/stories/distribution.md +13 -0
- package/metadata/packages/components/sd-teaser/stories/inset.md +12 -0
- package/metadata/packages/components/sd-teaser/stories/media-slot.md +14 -0
- package/metadata/packages/components/sd-teaser/stories/meta-slot.md +16 -0
- package/metadata/packages/components/sd-teaser/stories/reverse.md +14 -0
- package/metadata/packages/components/sd-teaser/stories/variant.md +34 -0
- package/metadata/packages/components/sd-teaser-media/info.md +86 -0
- package/metadata/packages/components/sd-teaser-media/stories/default-media-and-headline-slot.md +15 -0
- package/metadata/packages/components/sd-teaser-media/stories/expandable-slot.md +10 -0
- package/metadata/packages/components/sd-teaser-media/stories/meta-slot.md +9 -0
- package/metadata/packages/components/sd-teaser-media/stories/variant.md +78 -0
- package/metadata/packages/components/sd-textarea/info.md +132 -0
- package/metadata/packages/components/sd-textarea/stories/disabled.md +7 -0
- package/metadata/packages/components/sd-textarea/stories/floating-label.md +8 -0
- package/metadata/packages/components/sd-textarea/stories/help-text.md +11 -0
- package/metadata/packages/components/sd-textarea/stories/invalid.md +24 -0
- package/metadata/packages/components/sd-textarea/stories/label.md +11 -0
- package/metadata/packages/components/sd-textarea/stories/max-length.md +15 -0
- package/metadata/packages/components/sd-textarea/stories/min-length.md +15 -0
- package/metadata/packages/components/sd-textarea/stories/placeholder.md +7 -0
- package/metadata/packages/components/sd-textarea/stories/readonly.md +16 -0
- package/metadata/packages/components/sd-textarea/stories/required.md +7 -0
- package/metadata/packages/components/sd-textarea/stories/rows.md +11 -0
- package/metadata/packages/components/sd-textarea/stories/size.md +16 -0
- package/metadata/packages/components/sd-textarea/stories/valid.md +22 -0
- package/metadata/packages/components/sd-textarea/stories/visually-disabled.md +18 -0
- package/metadata/packages/components/sd-theme-listener/info.md +20 -0
- package/metadata/packages/components/sd-theme-listener/stories/default.md +31 -0
- package/metadata/packages/components/sd-tooltip/info.md +101 -0
- package/metadata/packages/components/sd-tooltip/stories/close-trigger.md +19 -0
- package/metadata/packages/components/sd-tooltip/stories/custom-trigger.md +20 -0
- package/metadata/packages/components/sd-tooltip/stories/disabled.md +5 -0
- package/metadata/packages/components/sd-tooltip/stories/hoist.md +7 -0
- package/metadata/packages/components/sd-tooltip/stories/placement.md +43 -0
- package/metadata/packages/components/sd-tooltip/stories/size.md +11 -0
- package/metadata/packages/components/sd-tooltip/stories/trigger.md +10 -0
- package/metadata/packages/components/sd-video/info.md +70 -0
- package/metadata/packages/components/sd-video/stories/playing.md +11 -0
- package/metadata/packages/components/sd-video/stories/video-element-with-poster-slot.md +24 -0
- package/metadata/packages/icons/default/content.json +2267 -0
- package/metadata/packages/icons/default/system.json +1112 -0
- package/metadata/packages/icons/sd-multi-theming/content.json +27 -0
- package/metadata/packages/icons/sd-multi-theming/system.json +307 -0
- package/metadata/packages/icons/sd-status-assets/status.json +37 -0
- package/metadata/packages/quickstart/docs/quickstart.md +50 -0
- package/metadata/packages/styles/docs/installation.md +161 -0
- package/metadata/packages/styles/docs/usage.md +11 -0
- package/metadata/packages/styles/sd-chip/info.md +49 -0
- package/metadata/packages/styles/sd-chip/stories/variants.md +40 -0
- package/metadata/packages/styles/sd-container/info.md +39 -0
- package/metadata/packages/styles/sd-container/stories/custom-padding.md +7 -0
- package/metadata/packages/styles/sd-container/stories/padding.md +7 -0
- package/metadata/packages/styles/sd-container/stories/triangle-border.md +26 -0
- package/metadata/packages/styles/sd-container/stories/triangle-color.md +12 -0
- package/metadata/packages/styles/sd-container/stories/triangle-position.md +27 -0
- package/metadata/packages/styles/sd-container/stories/variants.md +36 -0
- package/metadata/packages/styles/sd-copyright/info.md +41 -0
- package/metadata/packages/styles/sd-copyright/stories/no-shadow.md +13 -0
- package/metadata/packages/styles/sd-copyright/stories/orientation.md +16 -0
- package/metadata/packages/styles/sd-copyright/stories/placement.md +21 -0
- package/metadata/packages/styles/sd-copyright/stories/variants.md +15 -0
- package/metadata/packages/styles/sd-display/info.md +42 -0
- package/metadata/packages/styles/sd-display/stories/inverted.md +7 -0
- package/metadata/packages/styles/sd-display/stories/size.md +13 -0
- package/metadata/packages/styles/sd-flag/info.md +45 -0
- package/metadata/packages/styles/sd-flag/stories/variants.md +40 -0
- package/metadata/packages/styles/sd-footnotes/info.md +49 -0
- package/metadata/packages/styles/sd-footnotes/stories/inverted.md +11 -0
- package/metadata/packages/styles/sd-footnotes/stories/variants.md +19 -0
- package/metadata/packages/styles/sd-headline/info.md +56 -0
- package/metadata/packages/styles/sd-headline/stories/inline.md +14 -0
- package/metadata/packages/styles/sd-headline/stories/inverted.md +7 -0
- package/metadata/packages/styles/sd-headline/stories/sizes.md +21 -0
- package/metadata/packages/styles/sd-hidden-links/info.md +55 -0
- package/metadata/packages/styles/sd-hidden-links/stories/debug.md +12 -0
- package/metadata/packages/styles/sd-hidden-links/stories/multiple-links.md +13 -0
- package/metadata/packages/styles/sd-hidden-links/stories/stack-links.md +10 -0
- package/metadata/packages/styles/sd-hidden-links/stories/surrounding-content.md +54 -0
- package/metadata/packages/styles/sd-hidden-links/stories/title-for-multiple-links.md +34 -0
- package/metadata/packages/styles/sd-interactive/info.md +50 -0
- package/metadata/packages/styles/sd-interactive/stories/disabled.md +6 -0
- package/metadata/packages/styles/sd-interactive/stories/inverted.md +7 -0
- package/metadata/packages/styles/sd-interactive/stories/reset.md +30 -0
- package/metadata/packages/styles/sd-leadtext/info.md +41 -0
- package/metadata/packages/styles/sd-leadtext/stories/inverted.md +11 -0
- package/metadata/packages/styles/sd-leadtext/stories/size.md +19 -0
- package/metadata/packages/styles/sd-list/info.md +49 -0
- package/metadata/packages/styles/sd-list/stories/inverted.md +20 -0
- package/metadata/packages/styles/sd-list/stories/levels.md +62 -0
- package/metadata/packages/styles/sd-list/stories/orientation.md +34 -0
- package/metadata/packages/styles/sd-list/stories/variants.md +34 -0
- package/metadata/packages/styles/sd-mark/info.md +30 -0
- package/metadata/packages/styles/sd-media/info.md +50 -0
- package/metadata/packages/styles/sd-media/stories/description.md +8 -0
- package/metadata/packages/styles/sd-media/stories/inverted.md +14 -0
- package/metadata/packages/styles/sd-meta/info.md +38 -0
- package/metadata/packages/styles/sd-meta/stories/inverted.md +11 -0
- package/metadata/packages/styles/sd-meta/stories/pipe.md +7 -0
- package/metadata/packages/styles/sd-meta/stories/size.md +11 -0
- package/metadata/packages/styles/sd-meta/stories/variants.md +11 -0
- package/metadata/packages/styles/sd-pagination/info.md +60 -0
- package/metadata/packages/styles/sd-pagination/stories/hidden-headline.md +37 -0
- package/metadata/packages/styles/sd-pagination/stories/inverted.md +36 -0
- package/metadata/packages/styles/sd-pagination/stories/truncation.md +34 -0
- package/metadata/packages/styles/sd-pagination/stories/variants.md +51 -0
- package/metadata/packages/styles/sd-paragraph/info.md +39 -0
- package/metadata/packages/styles/sd-paragraph/stories/inverted.md +11 -0
- package/metadata/packages/styles/sd-paragraph/stories/size.md +19 -0
- package/metadata/packages/styles/sd-prose/info.md +49 -0
- package/metadata/packages/styles/sd-prose/stories/full-width.md +22 -0
- package/metadata/packages/styles/sd-prose/stories/inverted.md +11 -0
- package/metadata/packages/styles/sd-prose/stories/styling-options.md +108 -0
- package/metadata/packages/styles/sd-status-badge/info.md +44 -0
- package/metadata/packages/styles/sd-status-badge/stories/variants.md +27 -0
- package/metadata/packages/styles/sd-table/info.md +43 -0
- package/metadata/packages/styles/sd-table/stories/slot.md +11 -0
- package/metadata/packages/styles/sd-table-cell/info.md +61 -0
- package/metadata/packages/styles/sd-table-cell/stories/divider.md +19 -0
- package/metadata/packages/styles/sd-table-cell/stories/shadow.md +137 -0
- package/metadata/packages/styles/sd-table-cell/stories/variants.md +39 -0
- package/metadata/packages/templates/accordion-group.md +163 -0
- package/metadata/packages/templates/audio.md +194 -0
- package/metadata/packages/templates/autocomplete.md +213 -0
- package/metadata/packages/templates/badge.md +149 -0
- package/metadata/packages/templates/bottom-navigation.md +263 -0
- package/metadata/packages/templates/brandshape.md +81 -0
- package/metadata/packages/templates/breadcrumb.md +361 -0
- package/metadata/packages/templates/button.md +107 -0
- package/metadata/packages/templates/carousel.md +64 -0
- package/metadata/packages/templates/checkbox-group.md +81 -0
- package/metadata/packages/templates/chip.md +35 -0
- package/metadata/packages/templates/combobox.md +92 -0
- package/metadata/packages/templates/datepicker.md +44 -0
- package/metadata/packages/templates/dialog.md +270 -0
- package/metadata/packages/templates/drawer.md +185 -0
- package/metadata/packages/templates/dropdown.md +52 -0
- package/metadata/packages/templates/expandable.md +61 -0
- package/metadata/packages/templates/flag.md +38 -0
- package/metadata/packages/templates/flipcard.md +66 -0
- package/metadata/packages/templates/footnotes.md +80 -0
- package/metadata/packages/templates/forms.md +248 -0
- package/metadata/packages/templates/header-navigation.md +1951 -0
- package/metadata/packages/templates/headline.md +204 -0
- package/metadata/packages/templates/input.md +27 -0
- package/metadata/packages/templates/interactive.md +28 -0
- package/metadata/packages/templates/link.md +83 -0
- package/metadata/packages/templates/list.md +27 -0
- package/metadata/packages/templates/map-marker.md +15 -0
- package/metadata/packages/templates/mark.md +39 -0
- package/metadata/packages/templates/media.md +22 -0
- package/metadata/packages/templates/menu.md +93 -0
- package/metadata/packages/templates/notification.md +100 -0
- package/metadata/packages/templates/pagination.md +340 -0
- package/metadata/packages/templates/quickfact.md +267 -0
- package/metadata/packages/templates/quote.md +97 -0
- package/metadata/packages/templates/radio-button-group.md +24 -0
- package/metadata/packages/templates/radio-group.md +51 -0
- package/metadata/packages/templates/range.md +135 -0
- package/metadata/packages/templates/select.md +63 -0
- package/metadata/packages/templates/skeleton.md +32 -0
- package/metadata/packages/templates/status-badge.md +252 -0
- package/metadata/packages/templates/step-group.md +150 -0
- package/metadata/packages/templates/supernumber.md +178 -0
- package/metadata/packages/templates/switch.md +51 -0
- package/metadata/packages/templates/tab-group.md +157 -0
- package/metadata/packages/templates/table.md +2612 -0
- package/metadata/packages/templates/tag.md +230 -0
- package/metadata/packages/templates/teaser-media.md +164 -0
- package/metadata/packages/templates/teaser.md +320 -0
- package/metadata/packages/templates/tooltip.md +104 -0
- package/metadata/packages/templates/video.md +71 -0
- package/metadata/packages/tokens/docs/installation.md +445 -0
- package/metadata/packages/tokens/docs/usage.md +338 -0
- package/metadata/packages/tokens/themes.json +3 -0
- package/metadata/packages/tokens/tokens.json +185 -0
- package/package.json +76 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import { join, basename, extname } from 'node:path';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { getAvailableTokenThemes, getTailwindThemeTokenNames, tokenPackageDocsPath } from '../utilities/index.js';
|
|
5
|
+
import { normalizeSafeSlug } from '../utilities/input.js';
|
|
6
|
+
const TAILWIND_MAPPING = `
|
|
7
|
+
CSS variable prefix → Tailwind utility
|
|
8
|
+
--background-color-* → bg-*
|
|
9
|
+
--text-color-* → text-*
|
|
10
|
+
--border-color-* → border-*
|
|
11
|
+
--fill-* → fill-*
|
|
12
|
+
--outline-color-* → outline-*
|
|
13
|
+
--spacing-* → p-*, m-*, gap-*, inset-*, …
|
|
14
|
+
--sizing-* → w-*, h-*, size-*
|
|
15
|
+
--text-{size} → text-{size}
|
|
16
|
+
--font-weight-* → font-*
|
|
17
|
+
--border-width-* → border-*
|
|
18
|
+
--radius-* → rounded-*
|
|
19
|
+
--aspect-* → aspect-*
|
|
20
|
+
--opacity-* → opacity-*
|
|
21
|
+
--shadow-* → shadow-*
|
|
22
|
+
--drop-shadow-* → drop-shadow-*
|
|
23
|
+
--transition-duration-* → duration-*
|
|
24
|
+
--animate-* → animate-*
|
|
25
|
+
`.trim();
|
|
26
|
+
const scoreMatch = (keyword, token) => {
|
|
27
|
+
const q = keyword.toLowerCase();
|
|
28
|
+
const t = token.toLowerCase();
|
|
29
|
+
const normalized = t.replace(/^--/, '');
|
|
30
|
+
if (t === q || normalized === q)
|
|
31
|
+
return 100;
|
|
32
|
+
if (normalized.startsWith(q) || t.startsWith(q))
|
|
33
|
+
return 80;
|
|
34
|
+
if (normalized.includes(q) || t.includes(q))
|
|
35
|
+
return 60;
|
|
36
|
+
return 0;
|
|
37
|
+
};
|
|
38
|
+
const readIfExists = async (filePath) => {
|
|
39
|
+
try {
|
|
40
|
+
return await fs.readFile(filePath, 'utf-8');
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
/** Lists all package-level token doc slugs (e.g. "installation", "usage"). */
|
|
47
|
+
const getAvailablePackageDocs = async () => {
|
|
48
|
+
try {
|
|
49
|
+
const entries = await fs.readdir(tokenPackageDocsPath, { withFileTypes: true });
|
|
50
|
+
return entries
|
|
51
|
+
.filter(d => d.isFile() && extname(d.name) === '.md')
|
|
52
|
+
.map(d => basename(d.name, '.md'))
|
|
53
|
+
.sort();
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Simple tool to list all available tokens in the Solid Design System.
|
|
61
|
+
* This tool fetches the token data from the Solid package and formats it for display.
|
|
62
|
+
* @param server - The MCP server instance to register the tool on.
|
|
63
|
+
*/
|
|
64
|
+
export const tokenInfoTool = (server) => {
|
|
65
|
+
server.registerTool('tokens', {
|
|
66
|
+
description: `Solid Design System tokens. ` +
|
|
67
|
+
`Call without arguments to list all tokens, usage guidance, and package docs. ` +
|
|
68
|
+
`Pass \`token\` (e.g. "--background-color-neutral-100" or "background") to search matching tokens. ` +
|
|
69
|
+
`Pass \`doc\` (e.g. "installation" or "usage") to get a package-level guide. ` +
|
|
70
|
+
`Do not combine \`doc\` with \`token\`.`,
|
|
71
|
+
inputSchema: {
|
|
72
|
+
token: z
|
|
73
|
+
.string()
|
|
74
|
+
.optional()
|
|
75
|
+
.describe('Token name or partial token text (e.g. "--background-color-neutral-100" or "spacing").'),
|
|
76
|
+
doc: z
|
|
77
|
+
.string()
|
|
78
|
+
.optional()
|
|
79
|
+
.describe('Package-level guide slug (e.g. "installation", "usage"). Omit to see available topics.')
|
|
80
|
+
},
|
|
81
|
+
title: 'Tokens'
|
|
82
|
+
}, async ({ token, doc }) => {
|
|
83
|
+
if (doc && token) {
|
|
84
|
+
return {
|
|
85
|
+
content: [
|
|
86
|
+
{
|
|
87
|
+
type: 'text',
|
|
88
|
+
text: 'Invalid arguments: `doc` cannot be combined with `token`. Use either `doc` alone or a token query.'
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
if (doc) {
|
|
94
|
+
const safeDoc = normalizeSafeSlug(doc);
|
|
95
|
+
if (!safeDoc) {
|
|
96
|
+
return {
|
|
97
|
+
content: [
|
|
98
|
+
{ type: 'text', text: 'Invalid arguments: `doc` contains an invalid path. Use a listed doc slug.' }
|
|
99
|
+
]
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
const content = await readIfExists(join(tokenPackageDocsPath, `${safeDoc}.md`));
|
|
103
|
+
if (!content) {
|
|
104
|
+
const available = await getAvailablePackageDocs();
|
|
105
|
+
return {
|
|
106
|
+
content: [
|
|
107
|
+
{
|
|
108
|
+
type: 'text',
|
|
109
|
+
text: `No package doc found for "${safeDoc}". Available docs:\n` + available.map(d => `- ${d}`).join('\n')
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
return { content: [{ type: 'text', text: content }] };
|
|
115
|
+
}
|
|
116
|
+
const tokenNames = getTailwindThemeTokenNames();
|
|
117
|
+
const themes = getAvailableTokenThemes();
|
|
118
|
+
const packageDocs = await getAvailablePackageDocs();
|
|
119
|
+
if (!tokenNames.length) {
|
|
120
|
+
return {
|
|
121
|
+
content: [
|
|
122
|
+
{
|
|
123
|
+
text: 'No design tokens found. Token metadata may not be built yet.',
|
|
124
|
+
type: 'text'
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
if (token) {
|
|
130
|
+
const sorted = tokenNames
|
|
131
|
+
.map(name => ({ token: name, score: scoreMatch(token, name) }))
|
|
132
|
+
.filter(item => item.score > 0)
|
|
133
|
+
.sort((a, b) => b.score - a.score || a.token.localeCompare(b.token));
|
|
134
|
+
if (!sorted.length) {
|
|
135
|
+
return {
|
|
136
|
+
content: [
|
|
137
|
+
{
|
|
138
|
+
type: 'text',
|
|
139
|
+
text: `No tokens found matching "${token}".`
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
const lines = sorted.map(({ token: tokenName }) => `- \`${tokenName}\``);
|
|
145
|
+
return {
|
|
146
|
+
content: [
|
|
147
|
+
{
|
|
148
|
+
text: [
|
|
149
|
+
`Found ${sorted.length} token(s) matching "${token}":`,
|
|
150
|
+
'',
|
|
151
|
+
lines.join('\n'),
|
|
152
|
+
'',
|
|
153
|
+
'Use Tailwind utility classes directly where available; use CSS variables via `var(--token-name)` in CSS.'
|
|
154
|
+
].join('\n'),
|
|
155
|
+
type: 'text'
|
|
156
|
+
}
|
|
157
|
+
]
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
content: [
|
|
162
|
+
{
|
|
163
|
+
text: [
|
|
164
|
+
`These are the design tokens of the Solid Design System. Each token is available both as a CSS custom property (CSS variable) and as a TailwindCSS utility class.`,
|
|
165
|
+
``,
|
|
166
|
+
`## How to use`,
|
|
167
|
+
``,
|
|
168
|
+
`### TailwindCSS (preferred)`,
|
|
169
|
+
`Use the semantic Tailwind utility classes directly. Do NOT use arbitrary value syntax like \`bg-[rgb(var(--sd-color-neutral-100))]\` or \`bg-[var(--sd-color-neutral-100)]\`.`,
|
|
170
|
+
`Instead, always use the mapped Tailwind class (e.g. \`bg-neutral-100\`).`,
|
|
171
|
+
``,
|
|
172
|
+
`### CSS`,
|
|
173
|
+
`Use the CSS custom properties via \`var(--property-name)\` (e.g. \`background-color: var(--sd-color-neutral-100)\`).`,
|
|
174
|
+
``,
|
|
175
|
+
`## CSS variable → Tailwind utility mapping`,
|
|
176
|
+
``,
|
|
177
|
+
TAILWIND_MAPPING,
|
|
178
|
+
``,
|
|
179
|
+
`## Available tokens (CSS variable names)`,
|
|
180
|
+
``,
|
|
181
|
+
tokenNames.join('\n'),
|
|
182
|
+
``,
|
|
183
|
+
`## Available Themes`,
|
|
184
|
+
``,
|
|
185
|
+
themes.length ? themes.map(theme => `- ${theme}`).join('\n') : '- none found',
|
|
186
|
+
``,
|
|
187
|
+
`## Package Docs`,
|
|
188
|
+
``,
|
|
189
|
+
`Use \`doc\` to retrieve any of the following guides:`,
|
|
190
|
+
``,
|
|
191
|
+
packageDocs.map(d => `- ${d}`).join('\n')
|
|
192
|
+
].join('\n'),
|
|
193
|
+
type: 'text'
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
};
|
|
197
|
+
});
|
|
198
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
/**
|
|
3
|
+
* Tool to get version information about the Solid Design System MCP Server.
|
|
4
|
+
* This allows LLMs to query the current version and basic information about this MCP server.
|
|
5
|
+
* @param server - The MCP server instance to register the tool on.
|
|
6
|
+
*/
|
|
7
|
+
export declare const versionTool: (server: McpServer) => void;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { getPackageInfo } from '../utilities/version.js';
|
|
2
|
+
/**
|
|
3
|
+
* Tool to get version information about the Solid Design System MCP Server.
|
|
4
|
+
* This allows LLMs to query the current version and basic information about this MCP server.
|
|
5
|
+
* @param server - The MCP server instance to register the tool on.
|
|
6
|
+
*/
|
|
7
|
+
export const versionTool = (server) => {
|
|
8
|
+
server.registerTool('version', {
|
|
9
|
+
description: 'Get version and basic information about the Solid Design System MCP Server.',
|
|
10
|
+
inputSchema: {},
|
|
11
|
+
title: 'Solid MCP Version Information'
|
|
12
|
+
},
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
14
|
+
async () => {
|
|
15
|
+
const packageJson = getPackageInfo();
|
|
16
|
+
const versionInfo = {
|
|
17
|
+
author: packageJson.author,
|
|
18
|
+
description: packageJson.description,
|
|
19
|
+
homepage: packageJson.homepage,
|
|
20
|
+
license: packageJson.license,
|
|
21
|
+
name: packageJson.name,
|
|
22
|
+
repository: packageJson.repository,
|
|
23
|
+
version: packageJson.version
|
|
24
|
+
};
|
|
25
|
+
return {
|
|
26
|
+
content: [
|
|
27
|
+
{
|
|
28
|
+
text: `Solid Design System MCP Server Information:
|
|
29
|
+
**Version:** ${versionInfo.version}
|
|
30
|
+
**Name:** ${versionInfo.name}
|
|
31
|
+
**Description:** ${versionInfo.description}
|
|
32
|
+
|
|
33
|
+
**Author:** ${versionInfo.author?.name || 'N/A'}
|
|
34
|
+
**License:** ${versionInfo.license || 'N/A'}
|
|
35
|
+
**Repository:** ${versionInfo.repository?.url || 'N/A'}
|
|
36
|
+
**Homepage:** ${versionInfo.homepage || 'N/A'}
|
|
37
|
+
|
|
38
|
+
This MCP server provides tools to interact with the Solid Design System, including:
|
|
39
|
+
- Component information and documentation
|
|
40
|
+
- Design tokens and styling information
|
|
41
|
+
- CSS utility styles information
|
|
42
|
+
- Template and pattern information
|
|
43
|
+
|
|
44
|
+
For more information about available tools, you can explore the other MCP tools provided by this server.`,
|
|
45
|
+
type: 'text'
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { componentPath } from './config.js';
|
|
4
|
+
function extractDescription(infoContent) {
|
|
5
|
+
const match = infoContent.match(/`<[^>]+>`\s*[\u2014\u2013-]+\s*(.+)/);
|
|
6
|
+
if (match)
|
|
7
|
+
return match[1].trim();
|
|
8
|
+
return '';
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Get a list of all available components in the Solid Design System.
|
|
12
|
+
* @returns A list of all sd-* tag names with built metadata.
|
|
13
|
+
*/
|
|
14
|
+
export const getAvailableComponents = async () => {
|
|
15
|
+
const entries = await fs.readdir(componentPath, { withFileTypes: true });
|
|
16
|
+
const dirs = entries
|
|
17
|
+
.filter(d => d.isDirectory() && d.name.startsWith('sd-'))
|
|
18
|
+
.map(d => d.name)
|
|
19
|
+
.sort();
|
|
20
|
+
return Promise.all(dirs.map(async (name) => {
|
|
21
|
+
const infoMd = await fs.readFile(join(componentPath, name, 'info.md'), 'utf-8').catch(() => '');
|
|
22
|
+
return { name, description: extractDescription(infoMd) };
|
|
23
|
+
}));
|
|
24
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/** Base metadata directory */
|
|
2
|
+
export declare const metaDataPath: string;
|
|
3
|
+
/**
|
|
4
|
+
* Components package metadata — one sub-directory per sd-* component.
|
|
5
|
+
* Each component dir contains: docs.md, api.json, templates.json
|
|
6
|
+
*/
|
|
7
|
+
export declare const componentPath: string;
|
|
8
|
+
/** Package-level docs for the components package (Installation, Localization, etc.) */
|
|
9
|
+
export declare const componentPackageDocsPath: string;
|
|
10
|
+
/**
|
|
11
|
+
* Styles package metadata — one sub-directory per style utility (e.g. sd-chip).
|
|
12
|
+
* Each style dir contains: docs.md, classes.txt
|
|
13
|
+
*/
|
|
14
|
+
export declare const stylesPath: string;
|
|
15
|
+
/** Package-level docs for the styles package (Installation, Usage, etc.) */
|
|
16
|
+
export declare const stylePackageDocsPath: string;
|
|
17
|
+
/** Package-level docs for quickstart entrypoint */
|
|
18
|
+
export declare const quickstartPackageDocsPath: string;
|
|
19
|
+
/**
|
|
20
|
+
* Templates package metadata — one sub-directory per template (e.g. button, forms).
|
|
21
|
+
* Each template dir contains: stories.ts, components.json
|
|
22
|
+
*/
|
|
23
|
+
export declare const templatesPackagePath: string;
|
|
24
|
+
/** Tokens package metadata */
|
|
25
|
+
export declare const tokensPath: string;
|
|
26
|
+
/** Icons package metadata */
|
|
27
|
+
export declare const iconsPath: string;
|
|
28
|
+
/** Docs package source stories (MD/MDX) */
|
|
29
|
+
export declare const docsSourceStoriesPath: string;
|
|
30
|
+
/** Docs package generated markdown metadata */
|
|
31
|
+
export declare const docsPackagePath: string;
|
|
32
|
+
/** Package-level docs for the tokens package (Installation, Usage, etc.) */
|
|
33
|
+
export declare const tokenPackageDocsPath: string;
|
|
34
|
+
/** Root of all static AI-rule markdown files */
|
|
35
|
+
export declare const staticPath: string;
|
|
36
|
+
/** Static AI rules for styles */
|
|
37
|
+
export declare const staticStylesPath: string;
|
|
38
|
+
/** Static AI rules for templates */
|
|
39
|
+
export declare const templatesPath: string;
|
|
40
|
+
export type Framework = 'vanilla';
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { fileURLToPath } from 'node:url';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
// Get the current file's directory
|
|
4
|
+
const currentFilename = fileURLToPath(import.meta.url);
|
|
5
|
+
const currentDirname = dirname(currentFilename);
|
|
6
|
+
/** Base metadata directory */
|
|
7
|
+
export const metaDataPath = join(currentDirname, '../../metadata');
|
|
8
|
+
/**
|
|
9
|
+
* Components package metadata — one sub-directory per sd-* component.
|
|
10
|
+
* Each component dir contains: docs.md, api.json, templates.json
|
|
11
|
+
*/
|
|
12
|
+
export const componentPath = join(currentDirname, '../../metadata/packages/components');
|
|
13
|
+
/** Package-level docs for the components package (Installation, Localization, etc.) */
|
|
14
|
+
export const componentPackageDocsPath = join(currentDirname, '../../metadata/packages/components/docs');
|
|
15
|
+
/**
|
|
16
|
+
* Styles package metadata — one sub-directory per style utility (e.g. sd-chip).
|
|
17
|
+
* Each style dir contains: docs.md, classes.txt
|
|
18
|
+
*/
|
|
19
|
+
export const stylesPath = join(currentDirname, '../../metadata/packages/styles');
|
|
20
|
+
/** Package-level docs for the styles package (Installation, Usage, etc.) */
|
|
21
|
+
export const stylePackageDocsPath = join(currentDirname, '../../metadata/packages/styles/docs');
|
|
22
|
+
/** Package-level docs for quickstart entrypoint */
|
|
23
|
+
export const quickstartPackageDocsPath = join(currentDirname, '../../metadata/packages/quickstart/docs');
|
|
24
|
+
/**
|
|
25
|
+
* Templates package metadata — one sub-directory per template (e.g. button, forms).
|
|
26
|
+
* Each template dir contains: stories.ts, components.json
|
|
27
|
+
*/
|
|
28
|
+
export const templatesPackagePath = join(currentDirname, '../../metadata/packages/templates');
|
|
29
|
+
/** Tokens package metadata */
|
|
30
|
+
export const tokensPath = join(currentDirname, '../../metadata/packages/tokens');
|
|
31
|
+
/** Icons package metadata */
|
|
32
|
+
export const iconsPath = join(currentDirname, '../../metadata/packages/icons');
|
|
33
|
+
/** Docs package source stories (MD/MDX) */
|
|
34
|
+
export const docsSourceStoriesPath = join(currentDirname, '../../../docs/src/stories');
|
|
35
|
+
/** Docs package generated markdown metadata */
|
|
36
|
+
export const docsPackagePath = join(currentDirname, '../../metadata/packages/docs');
|
|
37
|
+
/** Package-level docs for the tokens package (Installation, Usage, etc.) */
|
|
38
|
+
export const tokenPackageDocsPath = join(currentDirname, '../../metadata/packages/tokens/docs');
|
|
39
|
+
/** Root of all static AI-rule markdown files */
|
|
40
|
+
export const staticPath = join(currentDirname, '../../metadata/static');
|
|
41
|
+
/** Static AI rules for styles */
|
|
42
|
+
export const staticStylesPath = join(currentDirname, '../../metadata/static/styles');
|
|
43
|
+
/** Static AI rules for templates */
|
|
44
|
+
export const templatesPath = join(currentDirname, '../../metadata/static/templates');
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get the absolute path to the wanted file or directory, relative from the current one.
|
|
3
|
+
* @param path - The relative path to the file or directory.
|
|
4
|
+
* @returns The absolute path to the file or directory.
|
|
5
|
+
*/
|
|
6
|
+
export declare const getAbsolutePath: (fileName?: string) => string;
|
|
7
|
+
/**
|
|
8
|
+
* Create a new directory.
|
|
9
|
+
* @param dirName - The name of the directory to create, relative to the current file.
|
|
10
|
+
* @returns The absolute path to the created directory.
|
|
11
|
+
*/
|
|
12
|
+
export declare const createPath: (dirName: string) => Promise<string>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { fileURLToPath } from 'url';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import fs from 'fs/promises';
|
|
4
|
+
/**
|
|
5
|
+
* Get the absolute path to the wanted file or directory, relative from the current one.
|
|
6
|
+
* @param path - The relative path to the file or directory.
|
|
7
|
+
* @returns The absolute path to the file or directory.
|
|
8
|
+
*/
|
|
9
|
+
export const getAbsolutePath = (fileName = '') => {
|
|
10
|
+
const filename = fileURLToPath(import.meta.url);
|
|
11
|
+
const dirname = path.dirname(filename);
|
|
12
|
+
return path.isAbsolute(fileName) ? fileName : path.resolve(dirname, fileName);
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Create a new directory.
|
|
16
|
+
* @param dirName - The name of the directory to create, relative to the current file.
|
|
17
|
+
* @returns The absolute path to the created directory.
|
|
18
|
+
*/
|
|
19
|
+
export const createPath = async (dirName) => {
|
|
20
|
+
const absolutePath = getAbsolutePath(dirName);
|
|
21
|
+
try {
|
|
22
|
+
await fs.mkdir(absolutePath, { recursive: true });
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
console.error(`Failed to create directory at ${absolutePath}:`, error);
|
|
26
|
+
}
|
|
27
|
+
return absolutePath;
|
|
28
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './components.js';
|
|
2
|
+
export * from './config.js';
|
|
3
|
+
export * from './file.js';
|
|
4
|
+
export * from './input.js';
|
|
5
|
+
export * from './metadata.js';
|
|
6
|
+
export * from './stdio.js';
|
|
7
|
+
export * from './styles.js';
|
|
8
|
+
export * from './templates.js';
|
|
9
|
+
export * from './tokens.js';
|
|
10
|
+
export * from './version.js';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './components.js';
|
|
2
|
+
export * from './config.js';
|
|
3
|
+
export * from './file.js';
|
|
4
|
+
export * from './input.js';
|
|
5
|
+
export * from './metadata.js';
|
|
6
|
+
export * from './stdio.js';
|
|
7
|
+
export * from './styles.js';
|
|
8
|
+
export * from './templates.js';
|
|
9
|
+
export * from './tokens.js';
|
|
10
|
+
export * from './version.js';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Trim leading/trailing slashes from a slug-like value. */
|
|
2
|
+
export declare const trimSlashes: (value: string) => string;
|
|
3
|
+
/**
|
|
4
|
+
* Validates a path-like slug made of one or multiple segments.
|
|
5
|
+
* Prevents path traversal and null-byte based bypasses.
|
|
6
|
+
*/
|
|
7
|
+
export declare const isSafePathSlug: (value: string) => boolean;
|
|
8
|
+
/** Normalizes and validates a user-provided slug. Returns null if invalid. */
|
|
9
|
+
export declare const normalizeSafeSlug: (value: string) => string | null;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const INVALID_SEGMENTS = new Set(['.', '..']);
|
|
2
|
+
/** Trim leading/trailing slashes from a slug-like value. */
|
|
3
|
+
export const trimSlashes = (value) => value.replace(/^\/+|\/+$/g, '');
|
|
4
|
+
/**
|
|
5
|
+
* Validates a path-like slug made of one or multiple segments.
|
|
6
|
+
* Prevents path traversal and null-byte based bypasses.
|
|
7
|
+
*/
|
|
8
|
+
export const isSafePathSlug = (value) => {
|
|
9
|
+
const parts = value.split('/').filter(Boolean);
|
|
10
|
+
return parts.length > 0 && parts.every(part => !INVALID_SEGMENTS.has(part) && !part.includes('\0'));
|
|
11
|
+
};
|
|
12
|
+
/** Normalizes and validates a user-provided slug. Returns null if invalid. */
|
|
13
|
+
export const normalizeSafeSlug = (value) => {
|
|
14
|
+
const normalized = trimSlashes(value.trim());
|
|
15
|
+
if (!normalized || !isSafePathSlug(normalized)) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
return normalized;
|
|
19
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filter function type for filtering metadata files.
|
|
3
|
+
*/
|
|
4
|
+
export type Filter = (fileName: string) => boolean;
|
|
5
|
+
/**
|
|
6
|
+
* MetadataFile type representing a structured metadata file.
|
|
7
|
+
*/
|
|
8
|
+
export interface MetadataFile {
|
|
9
|
+
content: string;
|
|
10
|
+
filename: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get structured metadata for a specific metadata folder.
|
|
14
|
+
* Will NOT crawl recursively, but will return all files in the metadata directory.
|
|
15
|
+
* @param folder - The name of the folder to get metadata for.
|
|
16
|
+
* @param filter - Optional filter function to apply to the filenames.
|
|
17
|
+
* If provided, only files that pass the filter will be included in the result.
|
|
18
|
+
*/
|
|
19
|
+
export declare const getStructuredMetaData: (folder: string, filter?: Filter) => Promise<({
|
|
20
|
+
content: string;
|
|
21
|
+
filename: string;
|
|
22
|
+
} | null)[]>;
|
|
23
|
+
/**
|
|
24
|
+
* Get structured metadata for a specific component.
|
|
25
|
+
* Will NOT crawl recursively, but will return all files in the component's metadata directory.
|
|
26
|
+
* @param componentName - The name of the component to get metadata for.
|
|
27
|
+
* @param filter - Optional filter function to apply to the filenames.
|
|
28
|
+
* If provided, only files that pass the filter will be included in the result.
|
|
29
|
+
*/
|
|
30
|
+
export declare const getStructuredMetaDataForComponent: (componentName: string, filter?: Filter) => Promise<({
|
|
31
|
+
content: string;
|
|
32
|
+
filename: string;
|
|
33
|
+
} | null)[]>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import { existsSync, statSync } from 'node:fs';
|
|
3
|
+
import { basename, join } from 'node:path';
|
|
4
|
+
import { componentPath } from './config.js';
|
|
5
|
+
import { getAbsolutePath } from './file.js';
|
|
6
|
+
const defaultFilter = () => true;
|
|
7
|
+
/**
|
|
8
|
+
* Get structured metadata for a specific metadata folder.
|
|
9
|
+
* Will NOT crawl recursively, but will return all files in the metadata directory.
|
|
10
|
+
* @param folder - The name of the folder to get metadata for.
|
|
11
|
+
* @param filter - Optional filter function to apply to the filenames.
|
|
12
|
+
* If provided, only files that pass the filter will be included in the result.
|
|
13
|
+
*/
|
|
14
|
+
export const getStructuredMetaData = async (folder, filter = defaultFilter) => {
|
|
15
|
+
const absolutePath = getAbsolutePath(folder);
|
|
16
|
+
// If the directory does not exist, return an empty array
|
|
17
|
+
if (!existsSync(absolutePath)) {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
const files = await fs.readdir(absolutePath);
|
|
21
|
+
const metadata = await Promise.all(files
|
|
22
|
+
.filter(file => {
|
|
23
|
+
// We only allow entries that are
|
|
24
|
+
// 1. are files
|
|
25
|
+
// 2. pass the filter function
|
|
26
|
+
const stats = statSync(join(absolutePath, file));
|
|
27
|
+
return stats.isFile() && filter(file);
|
|
28
|
+
})
|
|
29
|
+
.map(async (file) => {
|
|
30
|
+
const filename = basename(file);
|
|
31
|
+
const exists = await fs.stat(`${absolutePath}/${file}`);
|
|
32
|
+
if (!exists.isFile()) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const content = await fs.readFile(`${absolutePath}/${file}`, 'utf-8');
|
|
36
|
+
return {
|
|
37
|
+
content,
|
|
38
|
+
filename
|
|
39
|
+
};
|
|
40
|
+
})
|
|
41
|
+
// Makes sure we only return valid metadata files
|
|
42
|
+
.filter(Boolean));
|
|
43
|
+
return metadata;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Get structured metadata for a specific component.
|
|
47
|
+
* Will NOT crawl recursively, but will return all files in the component's metadata directory.
|
|
48
|
+
* @param componentName - The name of the component to get metadata for.
|
|
49
|
+
* @param filter - Optional filter function to apply to the filenames.
|
|
50
|
+
* If provided, only files that pass the filter will be included in the result.
|
|
51
|
+
*/
|
|
52
|
+
export const getStructuredMetaDataForComponent = (componentName, filter = defaultFilter) => {
|
|
53
|
+
const absolutePath = getAbsolutePath(`${componentPath}/${componentName}`);
|
|
54
|
+
return getStructuredMetaData(absolutePath, filter);
|
|
55
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses command line arguments and returns the action to take
|
|
3
|
+
*/
|
|
4
|
+
export declare const parseCommandLineArgs: (args?: string[]) => {
|
|
5
|
+
action: "version";
|
|
6
|
+
} | {
|
|
7
|
+
action: "help";
|
|
8
|
+
} | {
|
|
9
|
+
action: "continue";
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Handles command line arguments and exits if necessary
|
|
13
|
+
*/
|
|
14
|
+
export declare const handleCommandLineArgs: () => void;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { getVersion } from './version.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parses command line arguments and returns the action to take
|
|
4
|
+
*/
|
|
5
|
+
export const parseCommandLineArgs = (args = process.argv.slice(2)) => {
|
|
6
|
+
if (args.includes('--version') || args.includes('-v')) {
|
|
7
|
+
return { action: 'version' };
|
|
8
|
+
}
|
|
9
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
10
|
+
return { action: 'help' };
|
|
11
|
+
}
|
|
12
|
+
return { action: 'continue' };
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Handles command line arguments and exits if necessary
|
|
16
|
+
*/
|
|
17
|
+
export const handleCommandLineArgs = () => {
|
|
18
|
+
const result = parseCommandLineArgs();
|
|
19
|
+
if (result.action === 'version') {
|
|
20
|
+
const version = getVersion();
|
|
21
|
+
process.stdout.write(`Solid Design System MCP Server v${version}\n`);
|
|
22
|
+
process.exit(0);
|
|
23
|
+
}
|
|
24
|
+
if (result.action === 'help') {
|
|
25
|
+
const version = getVersion();
|
|
26
|
+
process.stdout.write(`Solid Design System MCP Server v${version}
|
|
27
|
+
|
|
28
|
+
USAGE:
|
|
29
|
+
solid-mcp [OPTIONS]
|
|
30
|
+
|
|
31
|
+
DESCRIPTION:
|
|
32
|
+
Model Context Protocol (MCP) server for the Solid Design System.
|
|
33
|
+
Provides tools for LLMs to interact with Solid components, design tokens,
|
|
34
|
+
styles, and template guidance.
|
|
35
|
+
|
|
36
|
+
OPTIONS:
|
|
37
|
+
-h, --help Show this help message and exit
|
|
38
|
+
-v, --version Show version information and exit
|
|
39
|
+
|
|
40
|
+
EXAMPLES:
|
|
41
|
+
solid-mcp # Start the MCP server
|
|
42
|
+
solid-mcp --version # Show version
|
|
43
|
+
solid-mcp --help # Show this help
|
|
44
|
+
|
|
45
|
+
ABOUT:
|
|
46
|
+
This server provides the following tools for LLMs:
|
|
47
|
+
• Component information and documentation
|
|
48
|
+
• Design tokens and styling information
|
|
49
|
+
• Template and pattern information
|
|
50
|
+
|
|
51
|
+
For more information, visit:
|
|
52
|
+
https://github.com/solid-design-system/solid
|
|
53
|
+
|
|
54
|
+
`);
|
|
55
|
+
process.exit(0);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get a list of all available style utilities in the Solid Design System.
|
|
3
|
+
* @returns Sorted list of style entries (name + description).
|
|
4
|
+
*/
|
|
5
|
+
export declare const getAvailableStyles: () => Promise<{
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
}[]>;
|
|
9
|
+
/**
|
|
10
|
+
* Get info for a specific style utility.
|
|
11
|
+
* @param name Style name with or without the "sd-" prefix.
|
|
12
|
+
*/
|
|
13
|
+
export declare const getStyleInfo: (name: string) => Promise<{
|
|
14
|
+
docs: string | null;
|
|
15
|
+
classes: string[];
|
|
16
|
+
}>;
|