@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,366 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Comprehensive reference guide for all Modus Design System components
|
|
3
|
+
globs: ["**/components/**/*.tsx", "**/demos/**/*.tsx"]
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Modus Components Reference
|
|
8
|
+
|
|
9
|
+
Comprehensive reference guide for all Modus Design System components available in this React + Vite application.
|
|
10
|
+
|
|
11
|
+
## Component Categories
|
|
12
|
+
|
|
13
|
+
### Layout & Navigation Components
|
|
14
|
+
|
|
15
|
+
#### ModusAccordion
|
|
16
|
+
|
|
17
|
+
- **Location**: `src/components/ModusAccordion.tsx`
|
|
18
|
+
- **Purpose**: Collapsible content sections with expandable/collapsible panels
|
|
19
|
+
- **Key Features**: Multiple accordion items, custom headers, bordered options, expand/collapse events
|
|
20
|
+
- **Usage**: FAQ sections, content organization, collapsible forms
|
|
21
|
+
|
|
22
|
+
#### ModusBreadcrumbs
|
|
23
|
+
|
|
24
|
+
- **Location**: `src/components/ModusBreadcrumbs.tsx`
|
|
25
|
+
- **Purpose**: Navigation breadcrumb trail showing current page hierarchy
|
|
26
|
+
- **Key Features**: Clickable breadcrumb items, customizable size, aria-label support
|
|
27
|
+
- **Usage**: Page navigation, showing user location in site hierarchy
|
|
28
|
+
|
|
29
|
+
#### ModusNavbar
|
|
30
|
+
|
|
31
|
+
- **Location**: `src/components/ModusNavbar.tsx`
|
|
32
|
+
- **Purpose**: Main application navigation bar with user controls and menus
|
|
33
|
+
- **Key Features**: User card, search, notifications, apps menu, condensed mode, multiple slots
|
|
34
|
+
- **Usage**: Primary application header, user account management, global navigation
|
|
35
|
+
|
|
36
|
+
#### ModusSideNavigation
|
|
37
|
+
|
|
38
|
+
- **Location**: `src/components/ModusSideNavigation.tsx`
|
|
39
|
+
- **Purpose**: Collapsible sidebar navigation menu
|
|
40
|
+
- **Key Features**: Expandable/collapsible, auto-collapse on select, custom width, menu integration
|
|
41
|
+
- **Usage**: Main application navigation, sidebar menus, mobile navigation
|
|
42
|
+
|
|
43
|
+
#### ModusTabs
|
|
44
|
+
|
|
45
|
+
- **Location**: `src/components/ModusTabs.tsx`
|
|
46
|
+
- **Purpose**: Tabbed interface for organizing content into panels
|
|
47
|
+
- **Key Features**: Multiple tab styles, icon support, disabled tabs, tab change events
|
|
48
|
+
- **Usage**: Content organization, multi-step forms, settings panels
|
|
49
|
+
|
|
50
|
+
#### ModusToolbar
|
|
51
|
+
|
|
52
|
+
- **Location**: `src/components/ModusToolbar.tsx`
|
|
53
|
+
- **Purpose**: Toolbar container with start, center, and end content slots
|
|
54
|
+
- **Key Features**: Flexible content slots, accessibility support, custom styling
|
|
55
|
+
- **Usage**: Action toolbars, form controls, content management interfaces
|
|
56
|
+
|
|
57
|
+
#### ModusUtilityPanel
|
|
58
|
+
|
|
59
|
+
- **Location**: `src/components/ModusUtilityPanel.tsx`
|
|
60
|
+
- **Purpose**: Slide-out utility panel for additional content or controls
|
|
61
|
+
- **Key Features**: Left/right positioning, push content option, custom width, header/footer slots
|
|
62
|
+
- **Usage**: Settings panels, additional information, secondary content
|
|
63
|
+
|
|
64
|
+
### Form & Input Components
|
|
65
|
+
|
|
66
|
+
#### ModusAutocomplete
|
|
67
|
+
|
|
68
|
+
- **Location**: `src/components/ModusAutocomplete.tsx`
|
|
69
|
+
- **Purpose**: Text input with dropdown suggestions and multi-select capability
|
|
70
|
+
- **Key Features**: Debounced search, multi-select, custom items, no results handling
|
|
71
|
+
- **Usage**: Search inputs, tag selection, data filtering
|
|
72
|
+
|
|
73
|
+
#### ModusCheckbox
|
|
74
|
+
|
|
75
|
+
- **Location**: `src/components/ModusCheckbox.tsx`
|
|
76
|
+
- **Purpose**: Checkbox input with label and validation support
|
|
77
|
+
- **Key Features**: Indeterminate state, size variants, value inversion bug handling
|
|
78
|
+
- **Usage**: Form checkboxes, agreement toggles, multi-select lists
|
|
79
|
+
|
|
80
|
+
#### ModusDate
|
|
81
|
+
|
|
82
|
+
- **Location**: `src/components/ModusDate.tsx`
|
|
83
|
+
- **Purpose**: Date input with calendar picker and validation
|
|
84
|
+
- **Key Features**: Min/max date constraints, feedback system, size variants
|
|
85
|
+
- **Usage**: Date selection, birth date inputs, appointment scheduling
|
|
86
|
+
|
|
87
|
+
#### ModusDropdownMenu
|
|
88
|
+
|
|
89
|
+
- **Location**: `src/components/ModusDropdownMenu.tsx`
|
|
90
|
+
- **Purpose**: Dropdown menu with button trigger and menu items
|
|
91
|
+
- **Key Features**: Customizable button, menu positioning, item selection events
|
|
92
|
+
- **Usage**: Action menus, option selection, context menus
|
|
93
|
+
|
|
94
|
+
#### ModusNumberInput
|
|
95
|
+
|
|
96
|
+
- **Location**: `src/components/ModusNumberInput.tsx`
|
|
97
|
+
- **Purpose**: Number input with validation and currency support
|
|
98
|
+
- **Key Features**: Min/max constraints, step values, currency symbols, feedback system
|
|
99
|
+
- **Usage**: Quantity inputs, price fields, numeric data entry
|
|
100
|
+
|
|
101
|
+
#### ModusRadio
|
|
102
|
+
|
|
103
|
+
- **Location**: `src/components/ModusRadio.tsx`
|
|
104
|
+
- **Purpose**: Radio button input for single selection from options
|
|
105
|
+
- **Key Features**: Grouped selection, size variants, validation support
|
|
106
|
+
- **Usage**: Single-choice forms, option selection, preference settings
|
|
107
|
+
|
|
108
|
+
#### ModusSelect
|
|
109
|
+
|
|
110
|
+
- **Location**: `src/components/ModusSelect.tsx`
|
|
111
|
+
- **Purpose**: Dropdown select input with options list
|
|
112
|
+
- **Key Features**: Option management, validation feedback, size variants
|
|
113
|
+
- **Usage**: Country selection, category selection, option lists
|
|
114
|
+
|
|
115
|
+
#### ModusSlider
|
|
116
|
+
|
|
117
|
+
- **Location**: `src/components/ModusSlider.tsx`
|
|
118
|
+
- **Purpose**: Range slider input for numeric value selection
|
|
119
|
+
- **Key Features**: Min/max/step values, size variants, accessibility support
|
|
120
|
+
- **Usage**: Volume controls, price ranges, preference sliders
|
|
121
|
+
|
|
122
|
+
#### ModusSwitch
|
|
123
|
+
|
|
124
|
+
- **Location**: `src/components/ModusSwitch.tsx`
|
|
125
|
+
- **Purpose**: Toggle switch for boolean values
|
|
126
|
+
- **Key Features**: On/off states, indeterminate state, size variants
|
|
127
|
+
- **Usage**: Settings toggles, feature enable/disable, boolean preferences
|
|
128
|
+
|
|
129
|
+
#### ModusTextarea
|
|
130
|
+
|
|
131
|
+
- **Location**: `src/components/ModusTextarea.tsx`
|
|
132
|
+
- **Purpose**: Multi-line text input with validation and feedback
|
|
133
|
+
- **Key Features**: Row configuration, character limits, feedback system, size variants
|
|
134
|
+
- **Usage**: Comments, descriptions, long-form text input
|
|
135
|
+
|
|
136
|
+
#### ModusTextInput
|
|
137
|
+
|
|
138
|
+
- **Location**: `src/components/ModusTextInput.tsx`
|
|
139
|
+
- **Purpose**: Single-line text input with various types and features
|
|
140
|
+
- **Key Features**: Multiple input types, clear/search buttons, validation, mobile optimization
|
|
141
|
+
- **Usage**: Username, email, search, general text input
|
|
142
|
+
|
|
143
|
+
#### ModusTimeInput
|
|
144
|
+
|
|
145
|
+
- **Location**: `src/components/ModusTimeInput.tsx`
|
|
146
|
+
- **Purpose**: Time input with time picker and validation
|
|
147
|
+
- **Key Features**: 12/24 hour format, seconds support, datalist options, feedback system
|
|
148
|
+
- **Usage**: Time selection, appointment times, duration inputs
|
|
149
|
+
|
|
150
|
+
### Display & Feedback Components
|
|
151
|
+
|
|
152
|
+
#### ModusAlert
|
|
153
|
+
|
|
154
|
+
- **Location**: `src/components/ModusAlert.tsx`
|
|
155
|
+
- **Purpose**: Alert messages with different severity levels
|
|
156
|
+
- **Key Features**: Info/success/warning/error variants, dismissible option, custom icons
|
|
157
|
+
- **Usage**: Notifications, validation messages, system alerts
|
|
158
|
+
|
|
159
|
+
#### ModusBadge
|
|
160
|
+
|
|
161
|
+
- **Location**: `src/components/ModusBadge.tsx`
|
|
162
|
+
- **Purpose**: Small status indicators and labels
|
|
163
|
+
- **Key Features**: Color variants, size options, filled/text/counter styles
|
|
164
|
+
- **Usage**: Status indicators, notification counts, category labels
|
|
165
|
+
|
|
166
|
+
#### ModusCard
|
|
167
|
+
|
|
168
|
+
- **Location**: `src/components/ModusCard.tsx`
|
|
169
|
+
- **Purpose**: Content container with header, body, and footer sections
|
|
170
|
+
- **Key Features**: Multiple layouts, padding options, bordered styling, slot-based content
|
|
171
|
+
- **Usage**: Content cards, product displays, information panels
|
|
172
|
+
|
|
173
|
+
#### ModusChip
|
|
174
|
+
|
|
175
|
+
- **Location**: `src/components/ModusChip.tsx`
|
|
176
|
+
- **Purpose**: Small interactive elements for tags and selections
|
|
177
|
+
- **Key Features**: Active/disabled states, remove functionality, size variants
|
|
178
|
+
- **Usage**: Tags, filters, removable items, selection indicators
|
|
179
|
+
|
|
180
|
+
#### ModusDivider
|
|
181
|
+
|
|
182
|
+
- **Location**: `src/components/ModusDivider.tsx`
|
|
183
|
+
- **Purpose**: Visual separator between content sections
|
|
184
|
+
- **Key Features**: Horizontal/vertical orientation, thickness options, color variants
|
|
185
|
+
- **Usage**: Content separation, visual hierarchy, layout structure
|
|
186
|
+
|
|
187
|
+
#### ModusInputFeedback
|
|
188
|
+
|
|
189
|
+
- **Location**: `src/components/ModusInputFeedback.tsx`
|
|
190
|
+
- **Purpose**: Feedback messages for form inputs
|
|
191
|
+
- **Key Features**: Error/info/success/warning levels, custom icons, size variants
|
|
192
|
+
- **Usage**: Form validation, input guidance, status messages
|
|
193
|
+
|
|
194
|
+
#### ModusInputLabel
|
|
195
|
+
|
|
196
|
+
- **Location**: `src/components/ModusInputLabel.tsx`
|
|
197
|
+
- **Purpose**: Label component for form inputs
|
|
198
|
+
- **Key Features**: Required indicator, sub-label support, size variants
|
|
199
|
+
- **Usage**: Form field labels, input descriptions, accessibility
|
|
200
|
+
|
|
201
|
+
#### ModusLoader
|
|
202
|
+
|
|
203
|
+
- **Location**: `src/components/ModusLoader.tsx`
|
|
204
|
+
- **Purpose**: Loading indicators with various animations
|
|
205
|
+
- **Key Features**: Multiple variants (spinner, ball, bars, dots, infinity, ring), color options
|
|
206
|
+
- **Usage**: Loading states, async operations, progress indication
|
|
207
|
+
|
|
208
|
+
#### ModusProgress
|
|
209
|
+
|
|
210
|
+
- **Location**: `src/components/ModusProgress.tsx`
|
|
211
|
+
- **Purpose**: Progress bars for showing completion status
|
|
212
|
+
- **Key Features**: Linear/radial variants, indeterminate mode, custom labels
|
|
213
|
+
- **Usage**: File uploads, process completion, step indicators
|
|
214
|
+
|
|
215
|
+
#### ModusSkeleton
|
|
216
|
+
|
|
217
|
+
- **Location**: `src/components/ModusSkeleton.tsx`
|
|
218
|
+
- **Purpose**: Placeholder content while loading
|
|
219
|
+
- **Key Features**: Circle/rectangle shapes, customizable dimensions
|
|
220
|
+
- **Usage**: Loading placeholders, content previews, skeleton screens
|
|
221
|
+
|
|
222
|
+
#### ModusToast
|
|
223
|
+
|
|
224
|
+
- **Location**: `src/components/ModusToast.tsx`
|
|
225
|
+
- **Purpose**: Temporary notification messages
|
|
226
|
+
- **Key Features**: Multiple positions, auto-dismiss, action buttons, severity variants
|
|
227
|
+
- **Usage**: Success messages, error notifications, temporary alerts
|
|
228
|
+
|
|
229
|
+
#### ModusTooltip
|
|
230
|
+
|
|
231
|
+
- **Location**: `src/components/ModusTooltip.tsx`
|
|
232
|
+
- **Purpose**: Hover tooltips for additional information
|
|
233
|
+
- **Key Features**: Multiple positions, disabled state, force open option
|
|
234
|
+
- **Usage**: Help text, additional information, accessibility support
|
|
235
|
+
|
|
236
|
+
### Data & Table Components
|
|
237
|
+
|
|
238
|
+
#### ModusTable
|
|
239
|
+
|
|
240
|
+
- **Location**: `src/components/ModusTable.tsx`
|
|
241
|
+
- **Purpose**: Data table with sorting, pagination, and editing capabilities
|
|
242
|
+
- **Key Features**: Column configuration, row selection, inline editing, pagination
|
|
243
|
+
- **Usage**: Data display, data management, admin interfaces
|
|
244
|
+
|
|
245
|
+
#### ModusPagination
|
|
246
|
+
|
|
247
|
+
- **Location**: `src/components/ModusPagination.tsx`
|
|
248
|
+
- **Purpose**: Page navigation for large datasets
|
|
249
|
+
- **Key Features**: Page size options, custom button text, accessibility support
|
|
250
|
+
- **Usage**: Table pagination, content pagination, data navigation
|
|
251
|
+
|
|
252
|
+
### Interactive Components
|
|
253
|
+
|
|
254
|
+
#### ModusButton
|
|
255
|
+
|
|
256
|
+
- **Location**: `src/components/ModusButton.tsx`
|
|
257
|
+
- **Purpose**: Interactive button with various styles and states
|
|
258
|
+
- **Key Features**: Color variants, size options, icon support, disabled states
|
|
259
|
+
- **Usage**: Actions, form submissions, navigation, user interactions
|
|
260
|
+
|
|
261
|
+
#### ModusMenu
|
|
262
|
+
|
|
263
|
+
- **Location**: `src/components/ModusMenu.tsx`
|
|
264
|
+
- **Purpose**: Menu container with menu items
|
|
265
|
+
- **Key Features**: Vertical/horizontal orientation, item selection, bordered styling
|
|
266
|
+
- **Usage**: Navigation menus, context menus, option lists
|
|
267
|
+
|
|
268
|
+
#### ModusMenuItem
|
|
269
|
+
|
|
270
|
+
- **Location**: `src/components/ModusMenuItem.tsx`
|
|
271
|
+
- **Purpose**: Individual menu item with selection and interaction
|
|
272
|
+
- **Key Features**: Icons, sub-labels, disabled state, selection handling
|
|
273
|
+
- **Usage**: Menu options, dropdown items, navigation links
|
|
274
|
+
|
|
275
|
+
#### ModusRating
|
|
276
|
+
|
|
277
|
+
- **Location**: `src/components/ModusRating.tsx`
|
|
278
|
+
- **Purpose**: Star or emoji rating input
|
|
279
|
+
- **Key Features**: Multiple variants (star, heart, smiley, thumb), half ratings, custom labels
|
|
280
|
+
- **Usage**: Product ratings, feedback collection, satisfaction surveys
|
|
281
|
+
|
|
282
|
+
#### ModusStepper
|
|
283
|
+
|
|
284
|
+
- **Location**: `src/components/ModusStepper.tsx`
|
|
285
|
+
- **Purpose**: Step indicator for multi-step processes
|
|
286
|
+
- **Key Features**: Horizontal/vertical orientation, color variants, custom content
|
|
287
|
+
- **Usage**: Multi-step forms, process indicators, workflow navigation
|
|
288
|
+
|
|
289
|
+
### Media & Icon Components
|
|
290
|
+
|
|
291
|
+
#### ModusAvatar
|
|
292
|
+
|
|
293
|
+
- **Location**: `src/components/ModusAvatar.tsx`
|
|
294
|
+
- **Purpose**: User profile image or initials display
|
|
295
|
+
- **Key Features**: Image support, fallback to initials, size variants, shape options
|
|
296
|
+
- **Usage**: User profiles, contact lists, user identification
|
|
297
|
+
|
|
298
|
+
#### ModusIcon
|
|
299
|
+
|
|
300
|
+
- **Location**: `src/components/ModusIcon.tsx`
|
|
301
|
+
- **Purpose**: Icon display using Modus icon system
|
|
302
|
+
- **Key Features**: Size variants, decorative/informative modes, custom colors
|
|
303
|
+
- **Usage**: UI icons, status indicators, visual elements
|
|
304
|
+
|
|
305
|
+
### System & Utility Components
|
|
306
|
+
|
|
307
|
+
#### ModusProvider
|
|
308
|
+
|
|
309
|
+
- **Location**: `src/components/ModusProvider.tsx`
|
|
310
|
+
- **Purpose**: Root provider for Modus Design System integration
|
|
311
|
+
- **Key Features**: CSS imports, theme support, component registration
|
|
312
|
+
- **Usage**: App root wrapper, design system initialization
|
|
313
|
+
|
|
314
|
+
#### ModusThemeSwitcher
|
|
315
|
+
|
|
316
|
+
- **Location**: `src/components/ModusThemeSwitcher.tsx`
|
|
317
|
+
- **Purpose**: Theme switching control for light/dark modes
|
|
318
|
+
- **Key Features**: Theme configuration, change events, accessibility support
|
|
319
|
+
- **Usage**: Theme controls, user preferences, dark mode toggle
|
|
320
|
+
|
|
321
|
+
## Component Usage Patterns
|
|
322
|
+
|
|
323
|
+
### Event Handling
|
|
324
|
+
|
|
325
|
+
- Most components use `useEffect` with `useRef` for event listener management
|
|
326
|
+
- Custom events are properly typed with TypeScript interfaces
|
|
327
|
+
- Event cleanup is handled in useEffect return functions
|
|
328
|
+
|
|
329
|
+
### State Management
|
|
330
|
+
|
|
331
|
+
- Components follow controlled/uncontrolled patterns as appropriate
|
|
332
|
+
- Modus Web Components manage their own internal state
|
|
333
|
+
- React state is used for external control when needed
|
|
334
|
+
|
|
335
|
+
### Accessibility
|
|
336
|
+
|
|
337
|
+
- All components include proper ARIA attributes
|
|
338
|
+
- Keyboard navigation is supported where applicable
|
|
339
|
+
- Screen reader compatibility is maintained
|
|
340
|
+
|
|
341
|
+
### Styling
|
|
342
|
+
|
|
343
|
+
- Components use Modus Design System colors and utilities
|
|
344
|
+
- Custom classes can be applied via `customClass` prop
|
|
345
|
+
- Theme-aware styling is built-in
|
|
346
|
+
|
|
347
|
+
## Import Pattern
|
|
348
|
+
|
|
349
|
+
```typescript
|
|
350
|
+
import ModusComponentName from "./components/ModusComponentName";
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
## Common Props
|
|
354
|
+
|
|
355
|
+
- `customClass`: Additional CSS classes
|
|
356
|
+
- `ariaLabel`: Accessibility label
|
|
357
|
+
- `disabled`: Disabled state
|
|
358
|
+
- `size`: Size variant (sm, md, lg)
|
|
359
|
+
- Event handlers: `onEventName` pattern
|
|
360
|
+
|
|
361
|
+
## Notes
|
|
362
|
+
|
|
363
|
+
- All components are TypeScript-enabled with proper type definitions
|
|
364
|
+
- Components follow React best practices and hooks patterns
|
|
365
|
+
- Integration with Modus Web Components is handled through proper event binding
|
|
366
|
+
- Components are designed to be composable and reusable
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Complete list of valid Modus icon names for reference
|
|
3
|
+
globs: ["**/*.tsx", "**/*.ts"]
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 📋 Complete Icon Names List
|
|
8
|
+
|
|
9
|
+
**Only these names are allowed** when using Modus icons. Always verify icon names against this list before using them.
|
|
10
|
+
|
|
11
|
+
### A-C
|
|
12
|
+
|
|
13
|
+
accessibility, accessibility_circle, add, add_bold, add_circle, add_heavy, address, advanced_instructions, alarm_add, alarm_off, alarm_on, alert, alert_outlined, align_bottom, align_center_horiz, align_center_vert, align_left, align_right, align_top, angle_90, antenna, apps, arc, arrow_back, arrow_down, arrow_down_circle, arrow_expand_diagonal_left, arrow_expand_diagonal_right, arrow_left, arrow_left_circle, arrow_next, arrow_right, arrow_right_circle, arrow_up, arrow_up_circle, artificial_intelligence, backup_restore_cloud, backup_restore_file, bar_graph, bar_graph_line, bar_graph_square, barcode, battery_0_horizontal, battery_0_vertical, battery_25_horizontal, battery_25_vertical, battery_50_horizontal, battery_50_vertical, battery_75_horizontal, battery_75_vertical, battery_charging_horizontal, battery_charging_vertical, battery_full_horizontal, battery_full_vertical, between, bolt, bookings, bookings_open, box_select, briefcase, brightness, brush, bug, bug_report, building_corporate, buildings, calculate, calculator, calculator_symbols, calendar, calendar_add, calendar_and_key, calendar_blank, calendar_booking, calendar_cancel, calendar_check, calendar_clock, calendar_event, calendar_loading_unloading, calendar_loading_unloading_date, calendar_plus, calendar_rebook, calendar_reserve, calendar_show, calendar_time_slot, calendar_week, camera, camera_disabled, camera_photo_add, cancel_circle, cancel_square, cancel_square_outlined, caret_down, caret_down_bold, caret_left, caret_left_bold, caret_right, caret_right_bold, caret_up, caret_up_bold, cell_merge, cell_properties, cell_split, certificate, chat, check, check_bold, check_circle, check_circle_outlined, check_heavy, chevron_double_down, chevron_double_left, chevron_double_right, chevron_double_up, chevron_left, chevron_left_bold, chevron_right, chevron_right_bold, circle_notch, circle_outline, clipboard, clipboard_actions, clipboard_check, clipboard_empty, clipboard_planning, clock, clock_add, clock_checkmark, clock_delay_warning, clock_delayed, clock_locked, clock_question_mark, close, close_bold, close_heavy, cloud, cloud_connected, cloud_disconnected, cloud_download, cloud_upload, code, coffee_cup, collapse, collapse_bold, color_picker, column_copy, column_cut, column_delete, column_insert_after, column_insert_before, column_paste_after, column_paste_before, column_properties, columns, combine, comment, comment_add, comment_empty, comment_message, comment_message_disabled, compare_arrows, compass, component, contacts, contrast, copy_content, costs, credit_card, crop, cube, curly_brackets, cursor, cursor_add, cursor_remove
|
|
14
|
+
|
|
15
|
+
### D-H
|
|
16
|
+
|
|
17
|
+
dashboard, data_missing, data_transfer_off, day_mostly_cloudy, day_partly_cloudy, delete, delivery_truck, delivery_truck_allocate, delivery_truck_motion, document, download, download_line, download_xls, drag_corner, drag_horizontal, drag_indicator, drag_vertical, drivers, drizzle, drone, earnings_statement, edit_combination, email, email_add, envelope, eraser, exclamation_mark, expand, expand_bold, expand_less, expand_less_bold, expand_less_circle, expand_more, expand_more_bold, expand_more_circle, export, factory, fast_forward, fast_rewind, file, file_bar_graph, file_check_in, file_check_out, file_cloud, file_copy, file_edit, file_merge, file_missing, file_new, file_secure, file_table, file_type_bmpf, file_type_csv, file_type_cur, file_type_doc, file_type_ico, file_type_key, file_type_log, file_type_numbers, file_type_pdf, file_type_pem, file_type_rfi, file_type_rfq, file_type_rtf, file_type_text, file_type_tif, file_type_tmp, file_type_xls, filter, filter_list, filter_off, first_page, flag, flag_finish, floorplan, flowchart, fog, folder_closed, folder_locked, folder_new, folder_open, folder_personal, folder_project, folder_public, folder_share, folder_unlocked, footprints, forestry, forklift, frame, freight_market, freight_matching, freight_trolley, full_screen, function, gantt_chart, gavel, gears, greater_than_equal_to, group_items, hail, hail_heavy, hail_light, hammer, hand, hard_hat, headset, heart, helicopter, help, help_outlined, history, home, hourglass
|
|
18
|
+
|
|
19
|
+
### I-O
|
|
20
|
+
|
|
21
|
+
ice, icons_shapes, image, image_add, image_disabled, image_scene, in_cab_device, in_field_device, info, info_outlined, info_token, inspect, invoice, invoice_euro, invoice_pound, invoice_yen, item_begins_with, item_contains, item_does_not_contain, item_does_not_equal, item_ends_with, item_equals, key, keyboard, keyboard_keys, labs, language, last_page, launch, launch_bold, layer, learn, less_than_equal_to, lightbulb_off, lightbulb_on, lightning, line_diagonal, line_graph, link, link_broken, link_off, list_bulleted, list_numbered, list_shapes, location, location_add, location_add_multiple, location_arrow, location_disabled, location_point, lock, lock_open, magic_wand, manage_accounts, manage_people, map, map_2d, map_marker, map_marker_circle, map_marker_multiple, map_markers, map_poi, master_data, megaphone, menu, menu_circle, mic, mix, mobile_app_version, monetarization, moon, more_circle, more_horizontal, more_vertical, mouse, move, move_last_down, move_last_left, move_last_right, move_last_up, night_mostly_cloudy, night_partly_cloudy, no_package, no_truck, not_synced_bold, notifications, notifications_off, object_mirror, object_outline, object_rotate, offers, overcast
|
|
22
|
+
|
|
23
|
+
### P-S
|
|
24
|
+
|
|
25
|
+
package, package_delivered, package_delivery, package_missing, package_pickup, package_sent, pager, paint_bucket, palette, pan, paper_plane, paperclip, password, pause_circle, payment_instant, pen, pencil, people_add, people_couple, people_group, person, person_account, person_add, person_clock, person_edit, person_remove, phone, phone_call, phone_hang_up, phone_mobile, pin, pin_add, pin_straight, pin_straight_cancel, play_circle, point_marker_tool, polygon, polygon_area_tool, polygon_concave, polygon_cone, polygon_drag_rectangle, polygon_line_tool, polygon_merge, polygon_select, printer, pulse, qr_code, question, quick_login, rain, rain_heavy, rain_icy, raindrop, redo, redo_bold, refresh, refresh_bold, remove, remove_bold, remove_circle, remove_heavy, reply, rewind, row_add, row_copy, row_cut, row_delete, row_highlighted, row_insert_after, row_insert_before, row_paste_after, row_paste_before, row_properties, row_remove, rows_show_less, rows_show_more, rss_feed, ruler, satellite, save_as, save_disk, scan_barcode, schema, scissors, screen, screenshot, search, server, server_round, settings, share, shield, shopping_cart, shopping_cart_minus, shopping_cart_plus, shortcut, shovel, show_less_caret, show_more_caret, sign_in, sign_out, signal, smiley_dissatisfied, smiley_dissatisfied_outlined, smiley_neutral, smiley_neutral_outlined, smiley_satisfied, smiley_satisfied_outlined, smiley_somewhat_dissatisfied, smiley_somewhat_dissatisfied_outlined, smiley_somewhat_satisfied, smiley_somewhat_satisfied_outlined, snow_heavy, snow_light, snow_particle, snowflake, snowflakes, sort, sort_alpha_down, sort_alpha_up, sort_arrow_down, sort_arrow_up, sort_down, sort_up, star, star_half, star_locked, star_northern, star_outlined, stars, stop_circle, street_measurement, submit_expense, sun, swap, switch_account, switch_left, switch_right, sync, sync_bold, sync_off
|
|
26
|
+
|
|
27
|
+
### T-Z and Numbers
|
|
28
|
+
|
|
29
|
+
table, tablet, tag, tag_disabled, template, text_align_left, text_align_right, text_bold, text_centered, text_grow, text_input, text_input_long, text_input_short, text_italic, text_marker, text_shrink, text_strikethrough, text_truncated, text_underlined, thermometer_cold, thermometer_hot, thumbs_down, thumbs_up, thunderstorm_heavy, thunderstorm_light, ticket, ticket_plane, time_off_work, time_slot_not_reserved, time_slot_reserved, timer, timer_countdown, timesheet, timesheet_approve, toggle_center, toggle_left_panel, toggle_off, toggle_on, toggle_right_panel, traffic_cone, tree_structure, triangle_down, triangle_left, triangle_right, triangle_up, trimble_logo, truck_add, truck_warning_delay, tune, tune_circle, uncombine, undo, undo_bold, unfold_less, unfold_more, unit_selector, unsorted_arrows, update, upload, upload_xls, user_account, user_active, user_guide, user_inactive, user_passkey, user_permissions, video, video_add, video_disabled, view_grid, view_list, visibility_off, visibility_on, volume_down, volume_mute, volume_up, vr_xr, warehouse, warning, warning_outlined, web, wheelbarrow, widgets, wifi, wifi_no_internet, wifi_off, wind, window, window_dock_undock, window_fit, window_resize, window_side_panel, window_template, window_views, window_wireframe, wintery_mix, wrench, zoom_box, zoom_in, zoom_out, 2_layers, 2_layers_off, 360, add_square, archive_square, auto_target, avoidance_zone, background_dark, background_light, base_station, bullseye, bullseye_off, bullseye_warning, clip, compactor, corner, dashboard_tiles, design_package, device_cb460, device_tsc7, devices_group, devices_status, dozer, easting, edit_mode, electric_meter_off, electric_meter_off_outline, electric_meter_outline_rounded, electric_meter_rounded, electric_meter_rounded_warn, elevation, gnss, gnss_r8, gnss_r8s_base, gnss_rpt, gnss_rts, gnss_sps986, gps, grader, hex, horizontal_accuracy, image_square, image_square_off, image_square_off_outline, image_square_outline, machine, machines, measure_up, northing, orbit, orthogonal, perspective, prism_pole, prism_pole_extend, receiver_generic_error_filled, receiver_generic_error_outline, receiver_generic_filled, receiver_generic_off_filled, receiver_generic_off_outline, receiver_generic_outline, receiver_generic_warn_filled, receiver_generic_warn_outline, ri, rpt, rts, rts_off, rts_rpt, select_area, sx10, sync_filled, todo, todo_add, total_station, total_station_lost, unarchive_square, vertical_accuracy, view_2_rows, view_3_column, visibility_part_outline, workers_queue, x12, x7, x7_card, x7_settings, xr10, zoom_center
|
|
30
|
+
|
|
31
|
+
## 📖 Icon Categories by Usage
|
|
32
|
+
|
|
33
|
+
### Navigation & UI
|
|
34
|
+
|
|
35
|
+
`arrow_left`, `arrow_right`, `arrow_up`, `arrow_down`, `chevron_left`, `chevron_right`, `menu`, `close`, `home`, `settings`, `search`
|
|
36
|
+
|
|
37
|
+
### Actions & Operations
|
|
38
|
+
|
|
39
|
+
`add`, `remove`, `edit_combination`, `delete`, `save_disk`, `download`, `upload`, `copy_content`
|
|
40
|
+
|
|
41
|
+
### Status & Feedback
|
|
42
|
+
|
|
43
|
+
`check`, `check_circle`, `warning`, `alert`, `info`, `cancel_circle`, `help`
|
|
44
|
+
|
|
45
|
+
### Files & Documents
|
|
46
|
+
|
|
47
|
+
`file`, `folder_open`, `folder_closed`, `document`, `image`, `video`
|
|
48
|
+
|
|
49
|
+
### Communication
|
|
50
|
+
|
|
51
|
+
`email`, `phone`, `chat`, `comment`, `notifications`
|
|
52
|
+
|
|
53
|
+
### Time & Calendar
|
|
54
|
+
|
|
55
|
+
`calendar`, `clock`, `timer`, `history`
|
|
56
|
+
|
|
57
|
+
### User & Account
|
|
58
|
+
|
|
59
|
+
`person`, `people_group`, `user_account`, `key`, `lock`
|
|
60
|
+
|
|
61
|
+
### Data & Analytics
|
|
62
|
+
|
|
63
|
+
`bar_graph`, `line_graph`, `dashboard`
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Essential icon usage rules for Modus Design System
|
|
3
|
+
globs: ["**/*.tsx", "**/*.ts"]
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Modus Icons - Short
|
|
8
|
+
|
|
9
|
+
Essential icon usage rules for Modus Design System.
|
|
10
|
+
**REFERENCE**: For allowed list of Modus icon names see `.cursor/rules/modus-icon-names.mdc`
|
|
11
|
+
|
|
12
|
+
## Key Rules
|
|
13
|
+
|
|
14
|
+
- **Use Modus icons exclusively** - `<i className="modus-icons">icon-name</i>`
|
|
15
|
+
- **Never use other icon libraries** - No Font Awesome, Material Icons, Heroicons, etc.
|
|
16
|
+
- **Use valid icon names only** - Check Modus Icons documentation for valid names
|
|
17
|
+
- **Size with Tailwind classes** - `text-sm`, `text-lg`, `text-xl` for sizing
|
|
18
|
+
- **Color with design system** - `text-primary`, `text-foreground`, `text-muted-foreground`
|
|
19
|
+
- **Use CDN import** - Ensure Modus Icons CDN is loaded
|
|
20
|
+
- **Test icon rendering** - Verify icons display correctly in all themes
|
|
21
|
+
|
|
22
|
+
## Reference
|
|
23
|
+
|
|
24
|
+
For detailed icon usage patterns, sizing guidelines, and advanced icon techniques, fetch the full rule: `modus-icons-react`
|