@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,446 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create comprehensive implementation guides for major feature development
|
|
3
|
+
globs: ["**/.cursor/rules/implementation-guides/**/*.md"]
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Implementation Guide Documentation Rules for React + Vite
|
|
8
|
+
|
|
9
|
+
## 📋 Pre-Development Documentation Requirements
|
|
10
|
+
|
|
11
|
+
### 🚨 MANDATORY: Implementation Guide Creation
|
|
12
|
+
|
|
13
|
+
**BEFORE starting ANY major feature development, you MUST:**
|
|
14
|
+
|
|
15
|
+
1. **Create a comprehensive implementation guide** in `/implementation_guides/`
|
|
16
|
+
2. **Document the complete approach** before writing any code
|
|
17
|
+
3. **Get stakeholder review** of the implementation plan
|
|
18
|
+
4. **Update guides with lessons learned** during and after implementation
|
|
19
|
+
|
|
20
|
+
### 🎯 What Constitutes a "Major Feature"
|
|
21
|
+
|
|
22
|
+
**Always create implementation guides for:**
|
|
23
|
+
|
|
24
|
+
- ✅ New page/view components with complex functionality
|
|
25
|
+
- ✅ New reusable component libraries or design system additions
|
|
26
|
+
- ✅ Integration with external APIs or services
|
|
27
|
+
- ✅ Authentication, authorization, or security features
|
|
28
|
+
- ✅ Data management patterns (stores, state management)
|
|
29
|
+
- ✅ Routing or navigation changes
|
|
30
|
+
- ✅ Performance optimization initiatives
|
|
31
|
+
- ✅ Accessibility improvements or compliance work
|
|
32
|
+
- ✅ Build process, tooling, or infrastructure changes
|
|
33
|
+
- ✅ Any feature requiring more than 2 hours of development time
|
|
34
|
+
|
|
35
|
+
**Skip implementation guides for:**
|
|
36
|
+
|
|
37
|
+
- ❌ Simple bug fixes (< 30 minutes)
|
|
38
|
+
- ❌ Minor text or styling tweaks
|
|
39
|
+
- ❌ Documentation updates
|
|
40
|
+
- ❌ Dependency version updates (unless breaking changes)
|
|
41
|
+
|
|
42
|
+
## 📁 Implementation Guide Structure
|
|
43
|
+
|
|
44
|
+
### 📍 File Location & Naming
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
implementation_guides/
|
|
48
|
+
├── feature-name-YYYY-MM-DD.md # New feature guides
|
|
49
|
+
├── integration-api-name-YYYY-MM-DD.md # API integration guides
|
|
50
|
+
├── component-library-YYYY-MM-DD.md # Component development guides
|
|
51
|
+
└── performance-optimization-YYYY-MM-DD.md # Performance guides
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Naming Convention:**
|
|
55
|
+
|
|
56
|
+
- Use kebab-case for file names
|
|
57
|
+
- Include date for chronological tracking
|
|
58
|
+
- Be descriptive but concise
|
|
59
|
+
- Examples:
|
|
60
|
+
- `user-dashboard-2025-01-15.md`
|
|
61
|
+
- `modus-table-component-2025-01-15.md`
|
|
62
|
+
- `auth0-integration-2025-01-15.md`
|
|
63
|
+
|
|
64
|
+
### 📋 Required Implementation Guide Template
|
|
65
|
+
|
|
66
|
+
Every implementation guide MUST include these sections:
|
|
67
|
+
|
|
68
|
+
````markdown
|
|
69
|
+
# [Feature Name] Implementation Guide
|
|
70
|
+
|
|
71
|
+
**Date:** YYYY-MM-DD
|
|
72
|
+
**Author:** [Your Name]
|
|
73
|
+
**Status:** [Planning | In Progress | Complete | Archived]
|
|
74
|
+
|
|
75
|
+
## 🎯 Overview & Objectives
|
|
76
|
+
|
|
77
|
+
### Problem Statement
|
|
78
|
+
|
|
79
|
+
- What problem are we solving?
|
|
80
|
+
- Why is this feature needed?
|
|
81
|
+
- What are the success criteria?
|
|
82
|
+
|
|
83
|
+
### Goals & Requirements
|
|
84
|
+
|
|
85
|
+
- [ ] Functional requirement 1
|
|
86
|
+
- [ ] Functional requirement 2
|
|
87
|
+
- [ ] Non-functional requirement 1 (performance, accessibility, etc.)
|
|
88
|
+
|
|
89
|
+
## 🏗️ Technical Architecture
|
|
90
|
+
|
|
91
|
+
### Component Architecture
|
|
92
|
+
|
|
93
|
+
- High-level component structure
|
|
94
|
+
- Data flow diagrams
|
|
95
|
+
- State management approach
|
|
96
|
+
|
|
97
|
+
### Dependencies & Integrations
|
|
98
|
+
|
|
99
|
+
- New dependencies required
|
|
100
|
+
- External API integrations
|
|
101
|
+
- Modus Web Components usage
|
|
102
|
+
|
|
103
|
+
### File Structure Changes
|
|
104
|
+
|
|
105
|
+
```text
|
|
106
|
+
src/
|
|
107
|
+
├── components/
|
|
108
|
+
│ └── NewComponent.tsx
|
|
109
|
+
├── pages/
|
|
110
|
+
│ └── NewPage.tsx
|
|
111
|
+
├── hooks/
|
|
112
|
+
│ └── useNewFeature.ts
|
|
113
|
+
└── contexts/
|
|
114
|
+
└── NewFeatureContext.tsx
|
|
115
|
+
```
|
|
116
|
+
````
|
|
117
|
+
|
|
118
|
+
## 🎨 Design System Integration
|
|
119
|
+
|
|
120
|
+
### Modus Components Used
|
|
121
|
+
|
|
122
|
+
- List specific Modus Web Components
|
|
123
|
+
- Color variables and theming approach
|
|
124
|
+
- Accessibility considerations
|
|
125
|
+
|
|
126
|
+
## 🔧 Implementation Plan
|
|
127
|
+
|
|
128
|
+
### Phase 1: Foundation
|
|
129
|
+
|
|
130
|
+
- [ ] Task 1
|
|
131
|
+
- [ ] Task 2
|
|
132
|
+
- [ ] Task 3
|
|
133
|
+
|
|
134
|
+
### Phase 2: Core Features
|
|
135
|
+
|
|
136
|
+
- [ ] Task 1
|
|
137
|
+
- [ ] Task 2
|
|
138
|
+
|
|
139
|
+
### Phase 3: Polish & Testing
|
|
140
|
+
|
|
141
|
+
- [ ] Task 1
|
|
142
|
+
- [ ] Task 2
|
|
143
|
+
|
|
144
|
+
## 🧪 Testing Strategy
|
|
145
|
+
|
|
146
|
+
### Unit Testing
|
|
147
|
+
|
|
148
|
+
- Components to test
|
|
149
|
+
- Test scenarios
|
|
150
|
+
- Mock requirements
|
|
151
|
+
|
|
152
|
+
### Integration Testing
|
|
153
|
+
|
|
154
|
+
- API integration tests
|
|
155
|
+
- Component interaction tests
|
|
156
|
+
|
|
157
|
+
### Accessibility Testing
|
|
158
|
+
|
|
159
|
+
- WCAG compliance checklist
|
|
160
|
+
- Screen reader testing
|
|
161
|
+
- Keyboard navigation testing
|
|
162
|
+
|
|
163
|
+
## 🚀 Deployment Considerations
|
|
164
|
+
|
|
165
|
+
### Build Process
|
|
166
|
+
|
|
167
|
+
- Any build changes required
|
|
168
|
+
- Environment variables needed
|
|
169
|
+
- Asset optimization
|
|
170
|
+
|
|
171
|
+
### Performance Impact
|
|
172
|
+
|
|
173
|
+
- Bundle size impact
|
|
174
|
+
- Runtime performance considerations
|
|
175
|
+
- Caching strategies
|
|
176
|
+
|
|
177
|
+
## 📚 Documentation Updates
|
|
178
|
+
|
|
179
|
+
### User Documentation
|
|
180
|
+
|
|
181
|
+
- [ ] Update README.md
|
|
182
|
+
- [ ] Add component documentation
|
|
183
|
+
- [ ] Update API documentation
|
|
184
|
+
|
|
185
|
+
### Developer Documentation
|
|
186
|
+
|
|
187
|
+
- [ ] Update contributing guidelines
|
|
188
|
+
- [ ] Add code examples
|
|
189
|
+
- [ ] Update architecture docs
|
|
190
|
+
|
|
191
|
+
## 🔄 Post-Implementation Review
|
|
192
|
+
|
|
193
|
+
### Lessons Learned
|
|
194
|
+
|
|
195
|
+
_[Update this section during/after implementation]_
|
|
196
|
+
|
|
197
|
+
#### What Went Well
|
|
198
|
+
|
|
199
|
+
-
|
|
200
|
+
|
|
201
|
+
#### Challenges Encountered
|
|
202
|
+
|
|
203
|
+
-
|
|
204
|
+
|
|
205
|
+
#### Solutions & Workarounds
|
|
206
|
+
|
|
207
|
+
-
|
|
208
|
+
|
|
209
|
+
#### Future Improvements
|
|
210
|
+
|
|
211
|
+
-
|
|
212
|
+
|
|
213
|
+
### Performance Metrics
|
|
214
|
+
|
|
215
|
+
_[Update with actual metrics after implementation]_
|
|
216
|
+
|
|
217
|
+
- Bundle size impact:
|
|
218
|
+
- Load time impact:
|
|
219
|
+
- Runtime performance:
|
|
220
|
+
|
|
221
|
+
### Accessibility Audit Results
|
|
222
|
+
|
|
223
|
+
_[Update after accessibility testing]_
|
|
224
|
+
|
|
225
|
+
- WCAG compliance level achieved:
|
|
226
|
+
- Screen reader compatibility:
|
|
227
|
+
- Keyboard navigation:
|
|
228
|
+
|
|
229
|
+
## 📖 References & Resources
|
|
230
|
+
|
|
231
|
+
### Documentation Links
|
|
232
|
+
|
|
233
|
+
- [Modus Web Components Storybook](https://trimble-oss.github.io/modus-wc-2.0/main/)
|
|
234
|
+
- [React Documentation](https://react.dev/)
|
|
235
|
+
- [Vite Documentation](https://vitejs.dev/)
|
|
236
|
+
- [Project-specific documentation links]
|
|
237
|
+
|
|
238
|
+
### Related Implementation Guides
|
|
239
|
+
|
|
240
|
+
- [Link to related guides in this folder]
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
**Last Updated:** YYYY-MM-DD
|
|
245
|
+
|
|
246
|
+
````
|
|
247
|
+
|
|
248
|
+
## 🔄 Implementation Guide Lifecycle
|
|
249
|
+
|
|
250
|
+
### 📝 Pre-Development Phase
|
|
251
|
+
|
|
252
|
+
1. **Create Implementation Guide**
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
# Create new guide with proper naming
|
|
256
|
+
touch implementation_guides/feature-name-$(date +%Y-%m-%d).md
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
2. **Fill Out Complete Template**
|
|
260
|
+
|
|
261
|
+
- All sections must be completed before coding begins
|
|
262
|
+
- Get team/stakeholder review of the plan
|
|
263
|
+
|
|
264
|
+
3. **During Development**
|
|
265
|
+
|
|
266
|
+
- Document any deviations from original plan
|
|
267
|
+
|
|
268
|
+
### 🛠️ During Implementation Phase
|
|
269
|
+
|
|
270
|
+
#### Critical: Update guides in real-time as you encounter issues
|
|
271
|
+
|
|
272
|
+
#### When You Encounter Problems
|
|
273
|
+
|
|
274
|
+
1. **Document the Issue**
|
|
275
|
+
|
|
276
|
+
```markdown
|
|
277
|
+
#### Challenge: [Brief Description]
|
|
278
|
+
|
|
279
|
+
**Date:** YYYY-MM-DD
|
|
280
|
+
**Problem:** Detailed description of what went wrong
|
|
281
|
+
**Impact:** How this affected the implementation
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
2. **Document the Solution**
|
|
285
|
+
|
|
286
|
+
```markdown
|
|
287
|
+
**Solution:** Step-by-step solution implemented
|
|
288
|
+
**Code Changes:** Link to commits or describe changes
|
|
289
|
+
**Time Impact:** Additional time required
|
|
290
|
+
**Prevention:** How to avoid this in future implementations
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
3. **Update Architecture if Needed**
|
|
294
|
+
- Revise technical architecture section
|
|
295
|
+
- Update component diagrams
|
|
296
|
+
- Adjust implementation timeline
|
|
297
|
+
|
|
298
|
+
#### Regular Progress Updates
|
|
299
|
+
|
|
300
|
+
- ✅ Update task completion status daily
|
|
301
|
+
- ✅ Note any scope changes or requirement updates
|
|
302
|
+
- ✅ Document performance observations
|
|
303
|
+
- ✅ Record accessibility testing results
|
|
304
|
+
|
|
305
|
+
### 🏆 Quality Standards
|
|
306
|
+
|
|
307
|
+
**Every implementation guide must:**
|
|
308
|
+
|
|
309
|
+
- [ ] ✅ **Complete Template**: All required sections filled out
|
|
310
|
+
- [ ] ✅ **Technical Accuracy**: Architecture matches actual implementation
|
|
311
|
+
- [ ] ✅ **Lessons Learned**: Post-implementation section completed
|
|
312
|
+
- [ ] ✅ **Performance Data**: Actual metrics recorded
|
|
313
|
+
- [ ] ✅ **Accessibility Results**: WCAG compliance documented
|
|
314
|
+
- [ ] ✅ **Future References**: Clear enough for future developers to understand
|
|
315
|
+
|
|
316
|
+
## 🚫 Common Anti-Patterns to Avoid
|
|
317
|
+
|
|
318
|
+
### ❌ Don't Skip Implementation Guides
|
|
319
|
+
|
|
320
|
+
- **Never start major development without a guide**
|
|
321
|
+
- **Don't create guides after the fact** - they lose their planning value
|
|
322
|
+
- **Don't leave guides incomplete** - they become technical debt
|
|
323
|
+
|
|
324
|
+
### ❌ Don't Create Shallow Guides
|
|
325
|
+
|
|
326
|
+
- **Avoid vague descriptions** - be specific about technical approaches
|
|
327
|
+
- **Don't skip the architecture section** - future developers need this context
|
|
328
|
+
- **Don't ignore lessons learned** - this is the most valuable section
|
|
329
|
+
|
|
330
|
+
### ❌ Don't Forget Updates
|
|
331
|
+
|
|
332
|
+
- **Don't let guides become stale** - update them as you learn
|
|
333
|
+
- **Don't ignore problems** - document every challenge encountered
|
|
334
|
+
- **Don't skip the post-implementation review** - this prevents future issues
|
|
335
|
+
|
|
336
|
+
## 📋 Implementation Guide Checklist
|
|
337
|
+
|
|
338
|
+
**Before Starting Development:**
|
|
339
|
+
|
|
340
|
+
- [ ] ✅ Implementation guide created with proper naming convention
|
|
341
|
+
- [ ] ✅ All template sections completed thoroughly
|
|
342
|
+
- [ ] ✅ Technical architecture reviewed and approved
|
|
343
|
+
- [ ] ✅ Dependencies and integrations identified
|
|
344
|
+
- [ ] ✅ Testing strategy defined
|
|
345
|
+
- [ ] ✅ Performance impact estimated
|
|
346
|
+
- [ ] ✅ Accessibility requirements documented
|
|
347
|
+
|
|
348
|
+
**During Development:**
|
|
349
|
+
|
|
350
|
+
- [ ] ✅ Guide updated with real-time progress
|
|
351
|
+
- [ ] ✅ Challenges documented as they occur
|
|
352
|
+
- [ ] ✅ Solutions recorded with implementation details
|
|
353
|
+
- [ ] ✅ Architecture updated if deviations occur
|
|
354
|
+
- [ ] ✅ Performance observations noted
|
|
355
|
+
|
|
356
|
+
**After Implementation:**
|
|
357
|
+
|
|
358
|
+
- [ ] ✅ Post-implementation review completed
|
|
359
|
+
- [ ] ✅ Lessons learned documented thoroughly
|
|
360
|
+
- [ ] ✅ Performance metrics recorded
|
|
361
|
+
- [ ] ✅ Accessibility audit results documented
|
|
362
|
+
- [ ] ✅ Future improvements identified
|
|
363
|
+
- [ ] ✅ Status updated to "Complete"
|
|
364
|
+
|
|
365
|
+
## 🎯 Success Metrics
|
|
366
|
+
|
|
367
|
+
**Implementation guides are successful when:**
|
|
368
|
+
|
|
369
|
+
- 🎯 **Reduce Development Time**: Future similar features take less time
|
|
370
|
+
- 🎯 **Improve Code Quality**: Consistent patterns and fewer bugs
|
|
371
|
+
- 🎯 **Knowledge Retention**: Team members can understand and maintain features
|
|
372
|
+
- 🎯 **Risk Mitigation**: Common pitfalls are documented and avoided
|
|
373
|
+
- 🎯 **Stakeholder Alignment**: Clear expectations and deliverables
|
|
374
|
+
|
|
375
|
+
## 🚀 React + Vite Specific Considerations
|
|
376
|
+
|
|
377
|
+
### Component Architecture Patterns
|
|
378
|
+
|
|
379
|
+
```tsx
|
|
380
|
+
// ✅ CORRECT: Functional component with hooks
|
|
381
|
+
export default function NewComponent({ prop1, prop2 }: ComponentProps) {
|
|
382
|
+
const [state, setState] = useState(initialValue);
|
|
383
|
+
|
|
384
|
+
useEffect(() => {
|
|
385
|
+
// Side effects
|
|
386
|
+
}, [dependencies]);
|
|
387
|
+
|
|
388
|
+
return (
|
|
389
|
+
<div className="component-styles">
|
|
390
|
+
{/* Component JSX */}
|
|
391
|
+
</div>
|
|
392
|
+
);
|
|
393
|
+
}
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
### State Management Patterns
|
|
397
|
+
|
|
398
|
+
```tsx
|
|
399
|
+
// ✅ CORRECT: Context for global state
|
|
400
|
+
export const FeatureContext = createContext<FeatureContextType | undefined>(undefined);
|
|
401
|
+
|
|
402
|
+
export function FeatureProvider({ children }: { children: ReactNode }) {
|
|
403
|
+
const [featureState, setFeatureState] = useState(initialState);
|
|
404
|
+
|
|
405
|
+
return (
|
|
406
|
+
<FeatureContext.Provider value={{ featureState, setFeatureState }}>
|
|
407
|
+
{children}
|
|
408
|
+
</FeatureContext.Provider>
|
|
409
|
+
);
|
|
410
|
+
}
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
### Routing Patterns
|
|
414
|
+
|
|
415
|
+
```tsx
|
|
416
|
+
// ✅ CORRECT: React Router setup
|
|
417
|
+
import { BrowserRouter, Routes, Route } from 'react-router-dom';
|
|
418
|
+
|
|
419
|
+
function App() {
|
|
420
|
+
return (
|
|
421
|
+
<BrowserRouter>
|
|
422
|
+
<Routes>
|
|
423
|
+
<Route path="/feature" element={<FeaturePage />} />
|
|
424
|
+
</Routes>
|
|
425
|
+
</BrowserRouter>
|
|
426
|
+
);
|
|
427
|
+
}
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
### Vite-Specific Patterns
|
|
431
|
+
|
|
432
|
+
```tsx
|
|
433
|
+
// ✅ CORRECT: Environment variables
|
|
434
|
+
const apiUrl = import.meta.env.VITE_API_URL;
|
|
435
|
+
|
|
436
|
+
// ✅ CORRECT: Dynamic imports for code splitting
|
|
437
|
+
const LazyComponent = lazy(() => import('./LazyComponent'));
|
|
438
|
+
|
|
439
|
+
// ✅ CORRECT: Asset imports
|
|
440
|
+
import logoUrl from './assets/logo.svg';
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
**Remember: Implementation guides are living documents that serve as both planning tools and historical records. They are essential for maintaining code quality, team knowledge, and project success. Never skip this critical step in the development process.**
|
|
446
|
+
````
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Essential state management patterns for Modus Accordion components in React
|
|
3
|
+
globs: ["**/components/ModusAccordion*.tsx", "**/demos/**/page.tsx"]
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Modus Accordion State Management - Short
|
|
8
|
+
|
|
9
|
+
Essential state management patterns for Modus Accordion components in React.
|
|
10
|
+
|
|
11
|
+
## Key Rules
|
|
12
|
+
|
|
13
|
+
- **Let Modus components manage their own state** - Don't try to control accordion state from React
|
|
14
|
+
- **Use `expanded` for initial state only** - Set initial state, then let component handle changes
|
|
15
|
+
- **Use `onExpandedChange` for tracking** - Monitor state changes without controlling them
|
|
16
|
+
- **Use refs for programmatic control** - Access component methods when needed
|
|
17
|
+
- **Avoid real-time synchronization** - Don't sync React state with accordion state
|
|
18
|
+
- **Handle events properly** - Use `onExpandedChange` to track state changes
|
|
19
|
+
- **Don't use `useEffect` for state sync** - Let components manage their own state
|
|
20
|
+
|
|
21
|
+
## Reference
|
|
22
|
+
|
|
23
|
+
For detailed state management patterns, event handling, and advanced accordion usage, fetch the full rule: `modus-accordion-state-management-react`
|