@julianoczkowski/create-trimble-app 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +191 -0
- package/bin/create-trimble-app.js +9 -0
- package/package.json +67 -0
- package/src/cli.js +134 -0
- package/src/frameworks.js +28 -0
- package/src/scaffold.js +209 -0
- package/src/utils/file.js +47 -0
- package/src/utils/git.js +140 -0
- package/src/utils/install.js +25 -0
- package/src/utils/logger.js +124 -0
- package/templates/angular/.cursor/commands/remove-dev-content.md +394 -0
- package/templates/angular/.cursor/mcp.json +13 -0
- package/templates/angular/.cursor/rules/modus-angular-20.mdc +82 -0
- package/templates/angular/.cursor/rules/modus-angular-accordion-state-management-short.mdc +45 -0
- package/templates/angular/.cursor/rules/modus-angular-accordion-state-management.mdc +322 -0
- package/templates/angular/.cursor/rules/modus-angular-best-practices.mdc +472 -0
- package/templates/angular/.cursor/rules/modus-angular-border-usage-short.mdc +48 -0
- package/templates/angular/.cursor/rules/modus-angular-border-usage.mdc +286 -0
- package/templates/angular/.cursor/rules/modus-angular-button-group-usage-short.mdc +47 -0
- package/templates/angular/.cursor/rules/modus-angular-button-group-usage.mdc +263 -0
- package/templates/angular/.cursor/rules/modus-angular-checkbox-value-inversion-short.mdc +36 -0
- package/templates/angular/.cursor/rules/modus-angular-checkbox-value-inversion.mdc +92 -0
- package/templates/angular/.cursor/rules/modus-angular-chrome-devtools-testing-short.mdc +34 -0
- package/templates/angular/.cursor/rules/modus-angular-chrome-devtools-testing.mdc +185 -0
- package/templates/angular/.cursor/rules/modus-angular-color-usage-short.mdc +56 -0
- package/templates/angular/.cursor/rules/modus-angular-color-usage.mdc +208 -0
- package/templates/angular/.cursor/rules/modus-angular-components-reference.mdc +114 -0
- package/templates/angular/.cursor/rules/modus-angular-design-system.mdc +273 -0
- package/templates/angular/.cursor/rules/modus-angular-development-workflow-short.mdc +43 -0
- package/templates/angular/.cursor/rules/modus-angular-development-workflow.mdc +145 -0
- package/templates/angular/.cursor/rules/modus-angular-essentials.mdc +272 -0
- package/templates/angular/.cursor/rules/modus-angular-forms-validation-short.mdc +56 -0
- package/templates/angular/.cursor/rules/modus-angular-forms-validation.mdc +124 -0
- package/templates/angular/.cursor/rules/modus-angular-icon-names.mdc +70 -0
- package/templates/angular/.cursor/rules/modus-angular-icons-short.mdc +40 -0
- package/templates/angular/.cursor/rules/modus-angular-icons.mdc +137 -0
- package/templates/angular/.cursor/rules/modus-angular-implementation-guides-short.mdc +36 -0
- package/templates/angular/.cursor/rules/modus-angular-implementation-guides.mdc +301 -0
- package/templates/angular/.cursor/rules/modus-angular-integration-short.mdc +60 -0
- package/templates/angular/.cursor/rules/modus-angular-integration.mdc +1096 -0
- package/templates/angular/.cursor/rules/modus-angular-master.mdc +164 -0
- package/templates/angular/.cursor/rules/modus-angular-modal-usage-short.mdc +51 -0
- package/templates/angular/.cursor/rules/modus-angular-modal-usage.mdc +115 -0
- package/templates/angular/.cursor/rules/modus-angular-navbar-usage-short.mdc +49 -0
- package/templates/angular/.cursor/rules/modus-angular-navbar-usage.mdc +146 -0
- package/templates/angular/.cursor/rules/modus-angular-no-emojis.mdc +66 -0
- package/templates/angular/.cursor/rules/modus-angular-opacity-utilities-short.mdc +43 -0
- package/templates/angular/.cursor/rules/modus-angular-opacity-utilities.mdc +160 -0
- package/templates/angular/.cursor/rules/modus-angular-select-vs-dropdown-menu-short.mdc +51 -0
- package/templates/angular/.cursor/rules/modus-angular-select-vs-dropdown-menu.mdc +83 -0
- package/templates/angular/.cursor/rules/modus-angular-semantic-html-short.mdc +36 -0
- package/templates/angular/.cursor/rules/modus-angular-semantic-html.mdc +81 -0
- package/templates/angular/.cursor/rules/modus-angular-side-navigation-usage-short.mdc +50 -0
- package/templates/angular/.cursor/rules/modus-angular-side-navigation-usage.mdc +136 -0
- package/templates/angular/.cursor/rules/modus-angular-table-usage-short.mdc +52 -0
- package/templates/angular/.cursor/rules/modus-angular-table-usage.mdc +151 -0
- package/templates/angular/.cursor/rules/modus-angular-tailwind-usage-short.mdc +44 -0
- package/templates/angular/.cursor/rules/modus-angular-tailwind-usage.mdc +242 -0
- package/templates/angular/.cursor/rules/modus-angular-themes-short.mdc +54 -0
- package/templates/angular/.cursor/rules/modus-angular-themes.mdc +222 -0
- package/templates/angular/.cursor/rules/modus-angular-utility-panel-usage-short.mdc +52 -0
- package/templates/angular/.cursor/rules/modus-angular-utility-panel-usage.mdc +130 -0
- package/templates/angular/.cursor/rules/ux/gestalt-laws-detailed.mdc +514 -0
- package/templates/angular/.cursor/rules/ux/ux-ui-foundations.mdc +235 -0
- package/templates/angular/.cursor/skills/run-lint-checks/SKILL.md +169 -0
- package/templates/angular/.editorconfig +17 -0
- package/templates/angular/.github/dependabot.yml +19 -0
- package/templates/angular/.github/workflows/a11y-check.yml +135 -0
- package/templates/angular/.github/workflows/ci.yml +44 -0
- package/templates/angular/.husky/pre-commit +32 -0
- package/templates/angular/.postcssrc.json +5 -0
- package/templates/angular/.vscode/extensions.json +4 -0
- package/templates/angular/.vscode/launch.json +20 -0
- package/templates/angular/.vscode/tasks.json +42 -0
- package/templates/angular/CLAUDE.md +148 -0
- package/templates/angular/README.md +92 -0
- package/templates/angular/amplify.yml +25 -0
- package/templates/angular/angular.json +106 -0
- package/templates/angular/data/modusIcons.ts +861 -0
- package/templates/angular/package-lock.json +11030 -0
- package/templates/angular/package.json +66 -0
- package/templates/angular/public/angular-icon.svg +12 -0
- package/templates/angular/public/favicon.ico +0 -0
- package/templates/angular/public/modus-icons.css +49 -0
- package/templates/angular/public/vite.svg +1 -0
- package/templates/angular/scripts/README.md +410 -0
- package/templates/angular/scripts/check-border-violations.js +352 -0
- package/templates/angular/scripts/check-icon-names.js +402 -0
- package/templates/angular/scripts/check-inline-styles.js +292 -0
- package/templates/angular/scripts/check-modus-colors.js +282 -0
- package/templates/angular/scripts/check-modus-icons.js +263 -0
- package/templates/angular/scripts/check-opacity-utilities.js +426 -0
- package/templates/angular/scripts/check-semantic-html.js +452 -0
- package/templates/angular/scripts/check-typescript.js +109 -0
- package/templates/angular/src/app/app.config.ts +29 -0
- package/templates/angular/src/app/app.css +0 -0
- package/templates/angular/src/app/app.html +4 -0
- package/templates/angular/src/app/app.routes.ts +351 -0
- package/templates/angular/src/app/app.spec.ts +27 -0
- package/templates/angular/src/app/app.ts +47 -0
- package/templates/angular/src/app/components/README.md +77 -0
- package/templates/angular/src/app/components/index.ts +53 -0
- package/templates/angular/src/app/components/modus-accordion.component.ts +50 -0
- package/templates/angular/src/app/components/modus-alert.component.ts +133 -0
- package/templates/angular/src/app/components/modus-autocomplete.component.ts +262 -0
- package/templates/angular/src/app/components/modus-avatar.component.ts +75 -0
- package/templates/angular/src/app/components/modus-badge.component.ts +84 -0
- package/templates/angular/src/app/components/modus-breadcrumbs.component.ts +65 -0
- package/templates/angular/src/app/components/modus-button-group.component.ts +82 -0
- package/templates/angular/src/app/components/modus-button.component.ts +292 -0
- package/templates/angular/src/app/components/modus-card.component.ts +73 -0
- package/templates/angular/src/app/components/modus-checkbox.component.ts +117 -0
- package/templates/angular/src/app/components/modus-chip.component.ts +97 -0
- package/templates/angular/src/app/components/modus-collapse.component.ts +118 -0
- package/templates/angular/src/app/components/modus-date.component.ts +165 -0
- package/templates/angular/src/app/components/modus-dropdown-menu.component.ts +108 -0
- package/templates/angular/src/app/components/modus-file-dropzone.component.ts +121 -0
- package/templates/angular/src/app/components/modus-handle.component.ts +96 -0
- package/templates/angular/src/app/components/modus-icon.component.ts +81 -0
- package/templates/angular/src/app/components/modus-input-feedback.component.ts +54 -0
- package/templates/angular/src/app/components/modus-input-label.component.ts +62 -0
- package/templates/angular/src/app/components/modus-loader.component.ts +48 -0
- package/templates/angular/src/app/components/modus-logo.component.ts +115 -0
- package/templates/angular/src/app/components/modus-menu-item.component.ts +116 -0
- package/templates/angular/src/app/components/modus-menu.component.ts +58 -0
- package/templates/angular/src/app/components/modus-modal.component.ts +70 -0
- package/templates/angular/src/app/components/modus-navbar.component.ts +303 -0
- package/templates/angular/src/app/components/modus-number-input.component.ts +174 -0
- package/templates/angular/src/app/components/modus-pagination.component.ts +74 -0
- package/templates/angular/src/app/components/modus-panel.component.ts +61 -0
- package/templates/angular/src/app/components/modus-progress.component.ts +62 -0
- package/templates/angular/src/app/components/modus-radio.component.ts +102 -0
- package/templates/angular/src/app/components/modus-rating.component.ts +80 -0
- package/templates/angular/src/app/components/modus-select.component.ts +131 -0
- package/templates/angular/src/app/components/modus-side-navigation.component.ts +90 -0
- package/templates/angular/src/app/components/modus-skeleton.component.ts +54 -0
- package/templates/angular/src/app/components/modus-slider.component.ts +132 -0
- package/templates/angular/src/app/components/modus-stepper.component.ts +65 -0
- package/templates/angular/src/app/components/modus-switch.component.ts +118 -0
- package/templates/angular/src/app/components/modus-table.component.ts +204 -0
- package/templates/angular/src/app/components/modus-tabs.component.ts +82 -0
- package/templates/angular/src/app/components/modus-text-input.component.ts +221 -0
- package/templates/angular/src/app/components/modus-textarea.component.ts +168 -0
- package/templates/angular/src/app/components/modus-theme-switcher.component.ts +45 -0
- package/templates/angular/src/app/components/modus-time-input.component.ts +172 -0
- package/templates/angular/src/app/components/modus-toast.component.ts +63 -0
- package/templates/angular/src/app/components/modus-toolbar.component.ts +43 -0
- package/templates/angular/src/app/components/modus-tooltip.component.ts +83 -0
- package/templates/angular/src/app/components/modus-typography.component.ts +79 -0
- package/templates/angular/src/app/components/modus-utility-panel.component.ts +275 -0
- package/templates/angular/src/app/components/theme-demo.component.ts +1242 -0
- package/templates/angular/src/app/data/component-demos.ts +360 -0
- package/templates/angular/src/app/data/modus-icons.ts +806 -0
- package/templates/angular/src/app/demos/accordion/accordion-demo.component.ts +212 -0
- package/templates/angular/src/app/demos/alert/alert-demo.component.ts +108 -0
- package/templates/angular/src/app/demos/autocomplete/autocomplete-demo.component.ts +174 -0
- package/templates/angular/src/app/demos/avatar/avatar-demo.component.ts +149 -0
- package/templates/angular/src/app/demos/badge/badge-demo.component.ts +148 -0
- package/templates/angular/src/app/demos/breadcrumbs/breadcrumbs-demo.component.ts +96 -0
- package/templates/angular/src/app/demos/button/button-demo.component.ts +256 -0
- package/templates/angular/src/app/demos/button-group/button-group-demo.component.ts +215 -0
- package/templates/angular/src/app/demos/card/card-demo.component.ts +180 -0
- package/templates/angular/src/app/demos/checkbox/checkbox-demo.component.ts +71 -0
- package/templates/angular/src/app/demos/chip/chip-demo.component.ts +183 -0
- package/templates/angular/src/app/demos/date/date-demo.component.ts +193 -0
- package/templates/angular/src/app/demos/dropdown/dropdown-demo.component.ts +196 -0
- package/templates/angular/src/app/demos/file-dropzone/file-dropzone-demo.component.ts +176 -0
- package/templates/angular/src/app/demos/handle/handle-demo.component.ts +265 -0
- package/templates/angular/src/app/demos/icon/icon-demo.component.ts +65 -0
- package/templates/angular/src/app/demos/input-feedback/input-feedback-demo.component.ts +189 -0
- package/templates/angular/src/app/demos/input-label/input-label-demo.component.ts +330 -0
- package/templates/angular/src/app/demos/loader/loader-demo.component.ts +143 -0
- package/templates/angular/src/app/demos/logo/logo-demo.component.ts +191 -0
- package/templates/angular/src/app/demos/menu/menu-demo.component.ts +72 -0
- package/templates/angular/src/app/demos/modal/modal-demo.component.ts +278 -0
- package/templates/angular/src/app/demos/navbar/navbar-demo.component.ts +135 -0
- package/templates/angular/src/app/demos/number-input/number-input-demo.component.ts +175 -0
- package/templates/angular/src/app/demos/pagination/pagination-demo.component.ts +134 -0
- package/templates/angular/src/app/demos/panel/panel-demo.component.ts +235 -0
- package/templates/angular/src/app/demos/progress/progress-demo.component.ts +169 -0
- package/templates/angular/src/app/demos/radio/radio-demo.component.ts +161 -0
- package/templates/angular/src/app/demos/rating/rating-demo.component.ts +97 -0
- package/templates/angular/src/app/demos/select/select-demo.component.ts +107 -0
- package/templates/angular/src/app/demos/shared/demo-example-clean.component.ts +41 -0
- package/templates/angular/src/app/demos/shared/demo-example.component.ts +42 -0
- package/templates/angular/src/app/demos/shared/demo-page.component.ts +97 -0
- package/templates/angular/src/app/demos/shared/index.ts +3 -0
- package/templates/angular/src/app/demos/side-navigation/side-navigation-demo.component.ts +524 -0
- package/templates/angular/src/app/demos/skeleton/skeleton-demo.component.ts +112 -0
- package/templates/angular/src/app/demos/slider/slider-demo.component.ts +76 -0
- package/templates/angular/src/app/demos/stepper/stepper-demo.component.ts +79 -0
- package/templates/angular/src/app/demos/switch/switch-demo.component.ts +113 -0
- package/templates/angular/src/app/demos/table/table-demo.component.ts +405 -0
- package/templates/angular/src/app/demos/tabs/tabs-demo.component.ts +318 -0
- package/templates/angular/src/app/demos/text-input/text-input-demo.component.ts +160 -0
- package/templates/angular/src/app/demos/textarea/textarea-demo.component.ts +95 -0
- package/templates/angular/src/app/demos/theme-switcher/theme-switcher-demo.component.ts +38 -0
- package/templates/angular/src/app/demos/time-input/time-input-demo.component.ts +130 -0
- package/templates/angular/src/app/demos/toast/toast-demo.component.ts +258 -0
- package/templates/angular/src/app/demos/toolbar/toolbar-demo.component.ts +54 -0
- package/templates/angular/src/app/demos/tooltip/tooltip-demo.component.ts +163 -0
- package/templates/angular/src/app/demos/utility-panel/utility-panel-demo.component.ts +197 -0
- package/templates/angular/src/app/dev/dev-config.ts +119 -0
- package/templates/angular/src/app/dev/dev-panel/dev-panel.component.ts +215 -0
- package/templates/angular/src/app/dev/dev-panel.service.ts +63 -0
- package/templates/angular/src/app/dev/index.ts +8 -0
- package/templates/angular/src/app/dev/theme-switcher-dropdown/theme-switcher-dropdown.component.ts +134 -0
- package/templates/angular/src/app/dev-pages/color-palette/color-palette.component.ts +229 -0
- package/templates/angular/src/app/dev-pages/components-gallery/components-gallery.component.ts +486 -0
- package/templates/angular/src/app/dev-pages/icons/icons.component.ts +149 -0
- package/templates/angular/src/app/pages/home/home.component.ts +251 -0
- package/templates/angular/src/app/services/README.md +57 -0
- package/templates/angular/src/app/services/theme.service.ts +163 -0
- package/templates/angular/src/environments/environment.development.ts +8 -0
- package/templates/angular/src/environments/environment.ts +8 -0
- package/templates/angular/src/index.html +14 -0
- package/templates/angular/src/main.ts +6 -0
- package/templates/angular/src/styles.css +1328 -0
- package/templates/angular/tsconfig.app.json +15 -0
- package/templates/angular/tsconfig.json +35 -0
- package/templates/angular/tsconfig.spec.json +14 -0
- package/templates/config.json +23 -0
- package/templates/react/.cursor/commands/remove-dev-content.md +311 -0
- package/templates/react/.cursor/mcp.json +13 -0
- package/templates/react/.cursor/rules/README.md +240 -0
- package/templates/react/.cursor/rules/border-usage-guidelines-short.mdc +22 -0
- package/templates/react/.cursor/rules/border-usage-guidelines.mdc +380 -0
- package/templates/react/.cursor/rules/chrome-devtools-testing-react-short.mdc +23 -0
- package/templates/react/.cursor/rules/development-workflow-react-short.mdc +23 -0
- package/templates/react/.cursor/rules/development-workflow-react.mdc +292 -0
- package/templates/react/.cursor/rules/implementation-guides-react-short.mdc +23 -0
- package/templates/react/.cursor/rules/implementation-guides-react.mdc +446 -0
- package/templates/react/.cursor/rules/modus-accordion-state-management-react-short.mdc +23 -0
- package/templates/react/.cursor/rules/modus-accordion-state-management-react.mdc +445 -0
- package/templates/react/.cursor/rules/modus-button-group-usage-react-short.mdc +23 -0
- package/templates/react/.cursor/rules/modus-button-group-usage-react.mdc +117 -0
- package/templates/react/.cursor/rules/modus-checkbox-value-inversion-react-short.mdc +23 -0
- package/templates/react/.cursor/rules/modus-checkbox-value-inversion-react.mdc +492 -0
- package/templates/react/.cursor/rules/modus-color-usage-react-short.mdc +23 -0
- package/templates/react/.cursor/rules/modus-color-usage-react.mdc +420 -0
- package/templates/react/.cursor/rules/modus-components-reference.mdc +366 -0
- package/templates/react/.cursor/rules/modus-icon-names.mdc +63 -0
- package/templates/react/.cursor/rules/modus-icons-react-short.mdc +24 -0
- package/templates/react/.cursor/rules/modus-icons-react.mdc +402 -0
- package/templates/react/.cursor/rules/modus-modal-implementation-react-short.mdc +23 -0
- package/templates/react/.cursor/rules/modus-modal-implementation-react.mdc +831 -0
- package/templates/react/.cursor/rules/modus-navbar-side-navigation-react-short.mdc +23 -0
- package/templates/react/.cursor/rules/modus-navbar-side-navigation-react.mdc +247 -0
- package/templates/react/.cursor/rules/modus-no-emojis-react-short.mdc +23 -0
- package/templates/react/.cursor/rules/modus-opacity-utilities-react-short.mdc +70 -0
- package/templates/react/.cursor/rules/modus-opacity-utilities-react.mdc +208 -0
- package/templates/react/.cursor/rules/modus-react-best-practices-short.mdc +23 -0
- package/templates/react/.cursor/rules/modus-react-best-practices.mdc +508 -0
- package/templates/react/.cursor/rules/modus-react-essentials.mdc +209 -0
- package/templates/react/.cursor/rules/modus-react-integration-short.mdc +23 -0
- package/templates/react/.cursor/rules/modus-react-integration.mdc +509 -0
- package/templates/react/.cursor/rules/modus-react-key-warnings-short.mdc +23 -0
- package/templates/react/.cursor/rules/modus-react-key-warnings.mdc +805 -0
- package/templates/react/.cursor/rules/modus-react-master.mdc +160 -0
- package/templates/react/.cursor/rules/modus-select-vs-dropdown-menu-react-short.mdc +23 -0
- package/templates/react/.cursor/rules/modus-select-vs-dropdown-menu-react.mdc +442 -0
- package/templates/react/.cursor/rules/modus-semantic-html-react-short.mdc +23 -0
- package/templates/react/.cursor/rules/modus-semantic-html-react.mdc +427 -0
- package/templates/react/.cursor/rules/modus-tailwind-usage-react-short.mdc +23 -0
- package/templates/react/.cursor/rules/modus-tailwind-usage-react.mdc +642 -0
- package/templates/react/.cursor/rules/modus-themes-react-short.mdc +23 -0
- package/templates/react/.cursor/rules/modus-themes-react.mdc +506 -0
- package/templates/react/.cursor/rules/ux/gestalt-laws-detailed.mdc +456 -0
- package/templates/react/.cursor/rules/ux/ux-ui-foundations.mdc +211 -0
- package/templates/react/.cursor/skills/create-modus-form-component/SKILL.md +518 -0
- package/templates/react/.cursor/skills/create-modus-wrapper-component/SKILL.md +252 -0
- package/templates/react/.cursor/skills/fix-modus-component-event-issues/SKILL.md +345 -0
- package/templates/react/.cursor/skills/handle-modus-checkbox-value-bug/SKILL.md +202 -0
- package/templates/react/.cursor/skills/implement-modus-modal-with-refs/SKILL.md +386 -0
- package/templates/react/.cursor/skills/integrate-modus-icons/SKILL.md +300 -0
- package/templates/react/.cursor/skills/run-lint-checks/SKILL.md +235 -0
- package/templates/react/.cursor/skills/set-up-modus-event-listeners/SKILL.md +284 -0
- package/templates/react/.cursor/skills/style-modus-components-with-tailwind/SKILL.md +382 -0
- package/templates/react/.env.development +3 -0
- package/templates/react/.env.production +3 -0
- package/templates/react/.github/CODEOWNERS +28 -0
- package/templates/react/.github/ISSUE_TEMPLATE/bug_report.yml +176 -0
- package/templates/react/.github/ISSUE_TEMPLATE/config.yml +20 -0
- package/templates/react/.github/ISSUE_TEMPLATE/documentation.yml +115 -0
- package/templates/react/.github/ISSUE_TEMPLATE/feature_request.yml +171 -0
- package/templates/react/.github/ISSUE_TEMPLATE/question.yml +139 -0
- package/templates/react/.github/copilot-instructions.md +80 -0
- package/templates/react/.github/instructions/components.instructions.md +82 -0
- package/templates/react/.github/instructions/demos.instructions.md +82 -0
- package/templates/react/.github/instructions/pages.instructions.md +76 -0
- package/templates/react/.github/instructions/styles.instructions.md +77 -0
- package/templates/react/.github/instructions/typescript.instructions.md +101 -0
- package/templates/react/.github/pull_request_template.md +188 -0
- package/templates/react/.github/workflows/ci.yml +43 -0
- package/templates/react/.github/workflows/claude-code-review.yml +44 -0
- package/templates/react/.github/workflows/claude.yml +50 -0
- package/templates/react/.husky/pre-commit +28 -0
- package/templates/react/.vscode/extensions.json +8 -0
- package/templates/react/CLAUDE.md +119 -0
- package/templates/react/CODE_OF_CONDUCT.md +79 -0
- package/templates/react/CONTRIBUTING.md +65 -0
- package/templates/react/LICENSE +21 -0
- package/templates/react/README.md +728 -0
- package/templates/react/SECURITY.md +50 -0
- package/templates/react/eslint.config.js +23 -0
- package/templates/react/index.html +13 -0
- package/templates/react/package-lock.json +5209 -0
- package/templates/react/package.json +49 -0
- package/templates/react/postcss.config.js +6 -0
- package/templates/react/public/react.svg +1 -0
- package/templates/react/public/vite.svg +1 -0
- package/templates/react/readme_assets/getting_started_header.png +0 -0
- package/templates/react/readme_assets/hero.png +0 -0
- package/templates/react/readme_assets/modus_comp.png +0 -0
- package/templates/react/readme_assets/modus_figma_mcp.png +0 -0
- package/templates/react/readme_assets/teaser_comp.gif +0 -0
- package/templates/react/scripts/README.md +343 -0
- package/templates/react/scripts/check-border-violations.js +483 -0
- package/templates/react/scripts/check-icon-names.js +486 -0
- package/templates/react/scripts/check-inline-styles.js +364 -0
- package/templates/react/scripts/check-modus-colors.js +247 -0
- package/templates/react/scripts/check-modus-icons.js +256 -0
- package/templates/react/scripts/check-opacity-utilities.js +481 -0
- package/templates/react/scripts/check-semantic-html.js +476 -0
- package/templates/react/scripts/check-typescript.js +109 -0
- package/templates/react/src/App.css +42 -0
- package/templates/react/src/App.tsx +54 -0
- package/templates/react/src/assets/react.svg +1 -0
- package/templates/react/src/components/DemoExample.tsx +61 -0
- package/templates/react/src/components/DemoPage.tsx +81 -0
- package/templates/react/src/components/ModusAccordion.tsx +89 -0
- package/templates/react/src/components/ModusAlert.tsx +85 -0
- package/templates/react/src/components/ModusAutocomplete.tsx +207 -0
- package/templates/react/src/components/ModusAvatar.tsx +50 -0
- package/templates/react/src/components/ModusBadge.tsx +82 -0
- package/templates/react/src/components/ModusBreadcrumbs.tsx +75 -0
- package/templates/react/src/components/ModusButton.tsx +244 -0
- package/templates/react/src/components/ModusButtonGroup.tsx +91 -0
- package/templates/react/src/components/ModusCard.tsx +70 -0
- package/templates/react/src/components/ModusCheckbox.tsx +168 -0
- package/templates/react/src/components/ModusChip.tsx +93 -0
- package/templates/react/src/components/ModusDate.tsx +154 -0
- package/templates/react/src/components/ModusDropdownMenu.tsx +148 -0
- package/templates/react/src/components/ModusFileDropzone.tsx +140 -0
- package/templates/react/src/components/ModusHandle.tsx +101 -0
- package/templates/react/src/components/ModusIcon.tsx +49 -0
- package/templates/react/src/components/ModusInputFeedback.tsx +52 -0
- package/templates/react/src/components/ModusInputLabel.tsx +50 -0
- package/templates/react/src/components/ModusLoader.tsx +42 -0
- package/templates/react/src/components/ModusLogo.tsx +102 -0
- package/templates/react/src/components/ModusMenu.tsx +119 -0
- package/templates/react/src/components/ModusMenuItem.tsx +86 -0
- package/templates/react/src/components/ModusModal.tsx +145 -0
- package/templates/react/src/components/ModusNavbar.tsx +504 -0
- package/templates/react/src/components/ModusNumberInput.tsx +230 -0
- package/templates/react/src/components/ModusPagination.tsx +94 -0
- package/templates/react/src/components/ModusPanel.tsx +92 -0
- package/templates/react/src/components/ModusProgress.tsx +70 -0
- package/templates/react/src/components/ModusProvider.tsx +18 -0
- package/templates/react/src/components/ModusRadio.tsx +114 -0
- package/templates/react/src/components/ModusRating.tsx +108 -0
- package/templates/react/src/components/ModusSelect.tsx +171 -0
- package/templates/react/src/components/ModusSideNavigation.tsx +149 -0
- package/templates/react/src/components/ModusSkeleton.tsx +42 -0
- package/templates/react/src/components/ModusSlider.tsx +128 -0
- package/templates/react/src/components/ModusStepper.tsx +85 -0
- package/templates/react/src/components/ModusSwitch.tsx +130 -0
- package/templates/react/src/components/ModusTable.tsx +309 -0
- package/templates/react/src/components/ModusTabs.tsx +114 -0
- package/templates/react/src/components/ModusTextInput.tsx +179 -0
- package/templates/react/src/components/ModusTextarea.tsx +164 -0
- package/templates/react/src/components/ModusThemeSwitcher.tsx +58 -0
- package/templates/react/src/components/ModusTimeInput.tsx +176 -0
- package/templates/react/src/components/ModusToast.tsx +207 -0
- package/templates/react/src/components/ModusToolbar.tsx +70 -0
- package/templates/react/src/components/ModusTooltip.tsx +97 -0
- package/templates/react/src/components/ModusUtilityPanel.tsx +198 -0
- package/templates/react/src/components/ThemeSwitcherDropdown.tsx +117 -0
- package/templates/react/src/components/ThemeToggleSimple.tsx +157 -0
- package/templates/react/src/config/routes.ts +196 -0
- package/templates/react/src/contexts/ThemeContext.tsx +81 -0
- package/templates/react/src/contexts/ThemeContextData.tsx +89 -0
- package/templates/react/src/data/modusIcons.ts +865 -0
- package/templates/react/src/demos/accordion-demo/page.tsx +236 -0
- package/templates/react/src/demos/alert-demo/page.tsx +94 -0
- package/templates/react/src/demos/autocomplete-demo/page.tsx +166 -0
- package/templates/react/src/demos/avatar-demo/page.tsx +135 -0
- package/templates/react/src/demos/badge-demo/page.tsx +174 -0
- package/templates/react/src/demos/breadcrumbs-demo/page.tsx +88 -0
- package/templates/react/src/demos/button-demo/page.tsx +261 -0
- package/templates/react/src/demos/button-group-demo/page.tsx +231 -0
- package/templates/react/src/demos/card-demo/page.tsx +241 -0
- package/templates/react/src/demos/checkbox-demo/page.tsx +79 -0
- package/templates/react/src/demos/chip-demo/page.tsx +197 -0
- package/templates/react/src/demos/date-demo/page.tsx +179 -0
- package/templates/react/src/demos/dropdown-demo/page.tsx +150 -0
- package/templates/react/src/demos/file-dropzone-demo/page.tsx +186 -0
- package/templates/react/src/demos/handle-demo/page.tsx +313 -0
- package/templates/react/src/demos/icon-demo/page.tsx +72 -0
- package/templates/react/src/demos/input-feedback-demo/page.tsx +202 -0
- package/templates/react/src/demos/input-label-demo/page.tsx +392 -0
- package/templates/react/src/demos/loader-demo/page.tsx +138 -0
- package/templates/react/src/demos/logo-demo/page.tsx +292 -0
- package/templates/react/src/demos/menu-demo/page.tsx +70 -0
- package/templates/react/src/demos/modal-demo/page.tsx +332 -0
- package/templates/react/src/demos/navbar-demo/page.tsx +141 -0
- package/templates/react/src/demos/number-input-demo/page.tsx +180 -0
- package/templates/react/src/demos/pagination-demo/page.tsx +147 -0
- package/templates/react/src/demos/panel-demo/page.tsx +376 -0
- package/templates/react/src/demos/progress-demo/page.tsx +185 -0
- package/templates/react/src/demos/radio-demo/page.tsx +242 -0
- package/templates/react/src/demos/rating-demo/page.tsx +97 -0
- package/templates/react/src/demos/select-demo/page.tsx +111 -0
- package/templates/react/src/demos/side-navigation-demo/page.tsx +775 -0
- package/templates/react/src/demos/skeleton-demo/page.tsx +107 -0
- package/templates/react/src/demos/slider-demo/page.tsx +78 -0
- package/templates/react/src/demos/stepper-demo/page.tsx +86 -0
- package/templates/react/src/demos/switch-demo/page.tsx +146 -0
- package/templates/react/src/demos/table-demo/page.tsx +489 -0
- package/templates/react/src/demos/tabs-demo/page.tsx +187 -0
- package/templates/react/src/demos/text-input-demo/page.tsx +151 -0
- package/templates/react/src/demos/textarea-demo/page.tsx +73 -0
- package/templates/react/src/demos/theme-switcher-demo/page.tsx +26 -0
- package/templates/react/src/demos/time-input-demo/page.tsx +148 -0
- package/templates/react/src/demos/toast-demo/page.tsx +302 -0
- package/templates/react/src/demos/toolbar-demo/page.tsx +49 -0
- package/templates/react/src/demos/tooltip-demo/page.tsx +209 -0
- package/templates/react/src/demos/typography-test/page.tsx +28 -0
- package/templates/react/src/demos/utility-panel-demo/page.tsx +197 -0
- package/templates/react/src/dev/DevPanel.tsx +219 -0
- package/templates/react/src/dev/DevPanelContext.ts +14 -0
- package/templates/react/src/dev/DevPanelProvider.tsx +63 -0
- package/templates/react/src/dev/DevRoutes.tsx +98 -0
- package/templates/react/src/dev/config.ts +127 -0
- package/templates/react/src/dev/index.ts +8 -0
- package/templates/react/src/dev/useDevPanel.ts +17 -0
- package/templates/react/src/dev-pages/ColorPalettePage.tsx +347 -0
- package/templates/react/src/dev-pages/ComponentsGalleryPage.tsx +489 -0
- package/templates/react/src/dev-pages/IconsPage.tsx +137 -0
- package/templates/react/src/dev-pages/index.ts +3 -0
- package/templates/react/src/hooks/useTheme.ts +15 -0
- package/templates/react/src/index.css +635 -0
- package/templates/react/src/main.tsx +14 -0
- package/templates/react/src/pages/HomePage.tsx +283 -0
- package/templates/react/src/vite-env.d.ts +9 -0
- package/templates/react/tailwind.config.js +58 -0
- package/templates/react/tsconfig.app.json +27 -0
- package/templates/react/tsconfig.json +7 -0
- package/templates/react/tsconfig.node.json +25 -0
- package/templates/react/vite.config.ts +18 -0
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Essential border usage rules for Modus Design System integration
|
|
3
|
+
globs: ["**/*.tsx", "**/*.css"]
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Border Usage Guidelines - Modus Design System
|
|
8
|
+
|
|
9
|
+
## 🎨 CRITICAL: Use Design System Border Utilities
|
|
10
|
+
|
|
11
|
+
When working with borders in this Vite + React app, always use our custom design system border utilities instead of Tailwind color classes or inline styles.
|
|
12
|
+
|
|
13
|
+
## ❌ NEVER Do These
|
|
14
|
+
|
|
15
|
+
### 1. Tailwind Color Classes in Borders
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
// ❌ WRONG - Tailwind color classes
|
|
19
|
+
<div className="border border-red-500">Error message</div>
|
|
20
|
+
<div className="border-2 border-green-500">Success message</div>
|
|
21
|
+
<div className="border border-blue-500">Info message</div>
|
|
22
|
+
<div className="border border-yellow-500">Warning message</div>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### 2. Inline Border Styles
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
// ❌ WRONG - Inline styles
|
|
29
|
+
<div style={{ border: "1px solid var(--border)" }}>Content</div>
|
|
30
|
+
<div style={{ border: "2px solid var(--modus-wc-color-success)" }}>Content</div>
|
|
31
|
+
<div style={{ border: "1px dashed var(--modus-wc-color-warning)" }}>Content</div>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### 3. Generic Tailwind Border Classes
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
// ❌ WRONG - Generic Tailwind classes
|
|
38
|
+
<div className="border border-gray-300">Content</div>
|
|
39
|
+
<div className="border-2 border-slate-400">Content</div>
|
|
40
|
+
<div className="border border-zinc-500">Content</div>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## ✅ ALWAYS Do These
|
|
44
|
+
|
|
45
|
+
### 1. Use Design System Border Utilities
|
|
46
|
+
|
|
47
|
+
```tsx
|
|
48
|
+
// ✅ CORRECT - Design system utilities
|
|
49
|
+
<div className="border-default">Default border</div>
|
|
50
|
+
<div className="border-success">Success border</div>
|
|
51
|
+
<div className="border-warning">Warning border</div>
|
|
52
|
+
<div className="border-destructive">Error border</div>
|
|
53
|
+
<div className="border-primary">Primary border</div>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 2. Use Thick Border Utilities for Emphasis
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
// ✅ CORRECT - Thick borders for emphasis
|
|
60
|
+
<div className="border-thick-border">Default thick border</div>
|
|
61
|
+
<div className="border-thick-success">Success thick border</div>
|
|
62
|
+
<div className="border-thick-warning">Warning thick border</div>
|
|
63
|
+
<div className="border-thick-destructive">Error thick border</div>
|
|
64
|
+
<div className="border-thick-primary">Primary thick border</div>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 3. Use Directional Border Utilities
|
|
68
|
+
|
|
69
|
+
```tsx
|
|
70
|
+
// ✅ CORRECT - Directional borders
|
|
71
|
+
<div className="border-top-default">Top border only</div>
|
|
72
|
+
<div className="border-bottom-default">Bottom border only</div>
|
|
73
|
+
<div className="border-left-default">Left border only</div>
|
|
74
|
+
<div className="border-right-default">Right border only</div>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 4. Use Dashed Border Utilities
|
|
78
|
+
|
|
79
|
+
```tsx
|
|
80
|
+
// ✅ CORRECT - Dashed borders
|
|
81
|
+
<div className="border-dashed">1px dashed border</div>
|
|
82
|
+
<div className="border-thick-dashed">2px dashed border</div>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## 🎯 Available Border Utilities
|
|
86
|
+
|
|
87
|
+
### Standard Borders (1px)
|
|
88
|
+
|
|
89
|
+
```tsx
|
|
90
|
+
// Default borders
|
|
91
|
+
border-default // 1px solid var(--border)
|
|
92
|
+
border-success // 1px solid var(--modus-wc-color-success)
|
|
93
|
+
border-warning // 1px solid var(--modus-wc-color-warning)
|
|
94
|
+
border-destructive // 1px solid var(--modus-wc-color-error)
|
|
95
|
+
border-primary // 1px solid var(--modus-wc-color-info)
|
|
96
|
+
|
|
97
|
+
// Dashed borders
|
|
98
|
+
border-dashed // 1px dashed var(--border)
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Thick Borders (2px)
|
|
102
|
+
|
|
103
|
+
```tsx
|
|
104
|
+
// Thick borders
|
|
105
|
+
border - thick - border; // 2px solid var(--border)
|
|
106
|
+
border - thick - success; // 2px solid var(--modus-wc-color-success)
|
|
107
|
+
border - thick - warning; // 2px solid var(--modus-wc-color-warning)
|
|
108
|
+
border - thick - destructive; // 2px solid var(--modus-wc-color-error)
|
|
109
|
+
border - thick - primary; // 2px solid var(--modus-wc-color-info)
|
|
110
|
+
|
|
111
|
+
// Thick dashed borders
|
|
112
|
+
border - thick - dashed; // 2px dashed var(--border)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Directional Borders
|
|
116
|
+
|
|
117
|
+
```tsx
|
|
118
|
+
// Directional borders (1px)
|
|
119
|
+
border-top-default // border-top: 1px solid var(--border)
|
|
120
|
+
border-bottom-default // border-bottom: 1px solid var(--border)
|
|
121
|
+
border-left-default // border-left: 1px solid var(--border)
|
|
122
|
+
border-right-default // border-right: 1px solid var(--border)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## 🎨 Context-Specific Usage
|
|
126
|
+
|
|
127
|
+
### Success States
|
|
128
|
+
|
|
129
|
+
```tsx
|
|
130
|
+
// ✅ CORRECT - Success borders
|
|
131
|
+
<div className="border-success">Success message</div>
|
|
132
|
+
<div className="border-thick-success">Important success</div>
|
|
133
|
+
<div className="border-top-success">Success indicator</div>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Warning States
|
|
137
|
+
|
|
138
|
+
```tsx
|
|
139
|
+
// ✅ CORRECT - Warning borders
|
|
140
|
+
<div className="border-warning">Warning message</div>
|
|
141
|
+
<div className="border-thick-warning">Important warning</div>
|
|
142
|
+
<div className="border-dashed border-warning">Dashed warning</div>
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Error States
|
|
146
|
+
|
|
147
|
+
```tsx
|
|
148
|
+
// ✅ CORRECT - Error borders
|
|
149
|
+
<div className="border-destructive">Error message</div>
|
|
150
|
+
<div className="border-thick-destructive">Critical error</div>
|
|
151
|
+
<div className="border-bottom-destructive">Error indicator</div>
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Primary/Info States
|
|
155
|
+
|
|
156
|
+
```tsx
|
|
157
|
+
// ✅ CORRECT - Primary borders
|
|
158
|
+
<div className="border-primary">Info message</div>
|
|
159
|
+
<div className="border-thick-primary">Important info</div>
|
|
160
|
+
<div className="border-left-primary">Info indicator</div>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Default/Neutral States
|
|
164
|
+
|
|
165
|
+
```tsx
|
|
166
|
+
// ✅ CORRECT - Default borders
|
|
167
|
+
<div className="border-default">Default content</div>
|
|
168
|
+
<div className="border-thick-border">Emphasized content</div>
|
|
169
|
+
<div className="border-dashed">Dashed content</div>
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## 🚨 Common Violations and Fixes
|
|
173
|
+
|
|
174
|
+
### ❌ Violation: Tailwind Color Classes
|
|
175
|
+
|
|
176
|
+
```tsx
|
|
177
|
+
// ❌ WRONG
|
|
178
|
+
<div className="border border-red-500">Error</div>
|
|
179
|
+
<div className="border-2 border-green-500">Success</div>
|
|
180
|
+
<div className="border border-blue-500">Info</div>
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### ✅ Fix: Use Design System Colors
|
|
184
|
+
|
|
185
|
+
```tsx
|
|
186
|
+
// ✅ CORRECT
|
|
187
|
+
<div className="border-destructive">Error</div>
|
|
188
|
+
<div className="border-thick-success">Success</div>
|
|
189
|
+
<div className="border-primary">Info</div>
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### ❌ Violation: Inline Styles
|
|
193
|
+
|
|
194
|
+
```tsx
|
|
195
|
+
// ❌ WRONG
|
|
196
|
+
<div style={{ border: "1px solid var(--border)" }}>Content</div>
|
|
197
|
+
<div style={{ border: "2px solid var(--modus-wc-color-success)" }}>Content</div>
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### ✅ Fix: Use Utility Classes
|
|
201
|
+
|
|
202
|
+
```tsx
|
|
203
|
+
// ✅ CORRECT
|
|
204
|
+
<div className="border-default">Content</div>
|
|
205
|
+
<div className="border-thick-success">Content</div>
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### ❌ Violation: Generic Tailwind Classes
|
|
209
|
+
|
|
210
|
+
```tsx
|
|
211
|
+
// ❌ WRONG
|
|
212
|
+
<div className="border border-gray-300">Content</div>
|
|
213
|
+
<div className="border-2 border-slate-400">Content</div>
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### ✅ Fix: Use Design System Utilities
|
|
217
|
+
|
|
218
|
+
```tsx
|
|
219
|
+
// ✅ CORRECT
|
|
220
|
+
<div className="border-default">Content</div>
|
|
221
|
+
<div className="border-thick-border">Content</div>
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
## 🔧 Linting and Validation
|
|
225
|
+
|
|
226
|
+
### Pre-commit Hooks
|
|
227
|
+
|
|
228
|
+
The project includes pre-commit hooks that automatically check for border violations:
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
# Manual linting
|
|
232
|
+
npm run lint:borders
|
|
233
|
+
|
|
234
|
+
# All linting checks
|
|
235
|
+
npm run lint:all
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Common Linter Messages
|
|
239
|
+
|
|
240
|
+
```text
|
|
241
|
+
❌ Found: className="border border-red-500"
|
|
242
|
+
✅ Use instead: className="border-destructive"
|
|
243
|
+
|
|
244
|
+
❌ Found: className="border-2 border-green-500"
|
|
245
|
+
✅ Use instead: className="border-thick-success"
|
|
246
|
+
|
|
247
|
+
❌ Found: style={{ border: "1px solid var(--border)" }}
|
|
248
|
+
✅ Use instead: className="border-default"
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## 🎯 Design System Benefits
|
|
252
|
+
|
|
253
|
+
### 1. Theme Consistency
|
|
254
|
+
|
|
255
|
+
```tsx
|
|
256
|
+
// ✅ Automatically adapts to light/dark themes
|
|
257
|
+
<div className="border-success">Always uses design system colors</div>
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### 2. Brand Compliance
|
|
261
|
+
|
|
262
|
+
```tsx
|
|
263
|
+
// ✅ Uses official Modus color variables
|
|
264
|
+
<div className="border-primary">Uses var(--modus-wc-color-info)</div>
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### 3. Maintainability
|
|
268
|
+
|
|
269
|
+
```tsx
|
|
270
|
+
// ✅ Easy to update globally
|
|
271
|
+
// Change border thickness in index.css affects all components
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### 4. Performance
|
|
275
|
+
|
|
276
|
+
```tsx
|
|
277
|
+
// ✅ No inline styles, better performance
|
|
278
|
+
<div className="border-default">Optimized rendering</div>
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## 📚 Reference Implementation
|
|
282
|
+
|
|
283
|
+
### Card Components
|
|
284
|
+
|
|
285
|
+
```tsx
|
|
286
|
+
// ✅ CORRECT - Card with proper borders
|
|
287
|
+
<div className="bg-card border-default rounded-lg p-4">
|
|
288
|
+
<h3 className="text-lg font-semibold">Card Title</h3>
|
|
289
|
+
<p className="text-muted-foreground">Card content</p>
|
|
290
|
+
</div>
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Alert Components
|
|
294
|
+
|
|
295
|
+
```tsx
|
|
296
|
+
// ✅ CORRECT - Alert with contextual borders
|
|
297
|
+
<div className="bg-success/5 border border-success rounded-lg p-4">
|
|
298
|
+
<div className="flex items-center">
|
|
299
|
+
<i className="modus-icons text-success mr-2">check_circle</i>
|
|
300
|
+
<span className="text-success font-medium">Success message</span>
|
|
301
|
+
</div>
|
|
302
|
+
</div>
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
### Form Components
|
|
306
|
+
|
|
307
|
+
```tsx
|
|
308
|
+
// ✅ CORRECT - Form field with error border
|
|
309
|
+
<div className="border-destructive rounded-md p-3">
|
|
310
|
+
<input
|
|
311
|
+
className="w-full bg-transparent outline-none"
|
|
312
|
+
placeholder="Enter value"
|
|
313
|
+
/>
|
|
314
|
+
</div>
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## 🚀 Quick Reference
|
|
318
|
+
|
|
319
|
+
### Most Common Patterns
|
|
320
|
+
|
|
321
|
+
```tsx
|
|
322
|
+
// Default content
|
|
323
|
+
className = "border-default";
|
|
324
|
+
|
|
325
|
+
// Success states
|
|
326
|
+
className = "border-success";
|
|
327
|
+
className = "border-thick-success";
|
|
328
|
+
|
|
329
|
+
// Warning states
|
|
330
|
+
className = "border-warning";
|
|
331
|
+
className = "border-thick-warning";
|
|
332
|
+
|
|
333
|
+
// Error states
|
|
334
|
+
className = "border-destructive";
|
|
335
|
+
className = "border-thick-destructive";
|
|
336
|
+
|
|
337
|
+
// Primary states
|
|
338
|
+
className = "border-primary";
|
|
339
|
+
className = "border-thick-primary";
|
|
340
|
+
|
|
341
|
+
// Dashed borders
|
|
342
|
+
className = "border-dashed";
|
|
343
|
+
className = "border-thick-dashed";
|
|
344
|
+
|
|
345
|
+
// Directional borders
|
|
346
|
+
className = "border-top-default";
|
|
347
|
+
className = "border-bottom-default";
|
|
348
|
+
className = "border-left-default";
|
|
349
|
+
className = "border-right-default";
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
## 📝 Quick Checklist
|
|
353
|
+
|
|
354
|
+
- [ ] ✅ Using design system border utilities
|
|
355
|
+
- [ ] ✅ No Tailwind color classes in borders
|
|
356
|
+
- [ ] ✅ No inline border styles
|
|
357
|
+
- [ ] ✅ Using appropriate border thickness (default vs thick)
|
|
358
|
+
- [ ] ✅ Using contextual colors (success, warning, error, primary)
|
|
359
|
+
- [ ] ✅ Passing border linting checks
|
|
360
|
+
- [ ] ✅ Following design system patterns
|
|
361
|
+
- [ ] ✅ Using directional borders when appropriate
|
|
362
|
+
|
|
363
|
+
## 🔗 Related Documentation
|
|
364
|
+
|
|
365
|
+
- **Border Utilities**: Defined in `src/index.css`
|
|
366
|
+
- **Linting Script**: `scripts/check-border-violations.js`
|
|
367
|
+
- **Design System Colors**: `src/index.css` CSS variables
|
|
368
|
+
- **Pre-commit Hooks**: `.husky/pre-commit`
|
|
369
|
+
|
|
370
|
+
## 🎨 Design System Integration
|
|
371
|
+
|
|
372
|
+
All border utilities are defined in `src/index.css` and use the official Modus design system color variables:
|
|
373
|
+
|
|
374
|
+
- `var(--border)` - Default border color
|
|
375
|
+
- `var(--modus-wc-color-success)` - Success color
|
|
376
|
+
- `var(--modus-wc-color-warning)` - Warning color
|
|
377
|
+
- `var(--modus-wc-color-error)` - Error color
|
|
378
|
+
- `var(--modus-wc-color-info)` - Primary/Info color
|
|
379
|
+
|
|
380
|
+
This ensures consistent theming and automatic adaptation to light/dark modes.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Mandatory Chrome DevTools MCP usage for comprehensive React + Vite testing
|
|
3
|
+
globs: ["**/*.tsx", "**/*.ts"]
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Chrome DevTools Testing - Short
|
|
8
|
+
|
|
9
|
+
Mandatory Chrome DevTools MCP usage for comprehensive React + Vite testing.
|
|
10
|
+
|
|
11
|
+
## Key Rules
|
|
12
|
+
|
|
13
|
+
- **Always use Chrome DevTools MCP** - Never skip browser testing
|
|
14
|
+
- **Test before completion** - Validate all implementations in browser
|
|
15
|
+
- **Check console for errors** - Look for JavaScript errors and warnings
|
|
16
|
+
- **Inspect DOM structure** - Verify proper semantic HTML and component rendering
|
|
17
|
+
- **Test interactive elements** - Verify Modus Web Components work correctly
|
|
18
|
+
- **Performance testing** - Use DevTools for performance analysis
|
|
19
|
+
- **Cross-browser validation** - Test in Chrome, Firefox, Safari
|
|
20
|
+
|
|
21
|
+
## Reference
|
|
22
|
+
|
|
23
|
+
For detailed testing workflows, patterns, and comprehensive checklists, fetch the full rule: `chrome-devtools-testing-react`
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Essential linting and quality checks for React + Vite development
|
|
3
|
+
globs: ["**/*.tsx", "**/*.ts", "**/*.css"]
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Development Workflow - Short
|
|
8
|
+
|
|
9
|
+
Essential linting and quality checks for React + Vite development.
|
|
10
|
+
|
|
11
|
+
## Key Rules
|
|
12
|
+
|
|
13
|
+
- **Run linting commands during development** - `npm run lint:all` before commits
|
|
14
|
+
- **Fix violations before committing** - No violations in committed code
|
|
15
|
+
- **Check inline styles** - `npm run lint:styles` to catch inline style violations
|
|
16
|
+
- **Verify design system colors** - `npm run lint:colors` for color compliance
|
|
17
|
+
- **Validate Modus icons** - `npm run lint:icons` for icon usage
|
|
18
|
+
- **Check semantic HTML** - `npm run lint:semantic` for HTML compliance
|
|
19
|
+
- **Verify border usage** - `npm run lint:borders` for border compliance
|
|
20
|
+
|
|
21
|
+
## Reference
|
|
22
|
+
|
|
23
|
+
For detailed linting commands, quality gates, and development workflow patterns, fetch the full rule: `development-workflow-react`
|