@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,176 @@
|
|
|
1
|
+
name: 🐛 Bug Report
|
|
2
|
+
description: Report a bug or unexpected behavior in the Modus React App
|
|
3
|
+
title: "[BUG] "
|
|
4
|
+
labels: ["bug", "needs-triage"]
|
|
5
|
+
assignees: ["julianoczkowski"]
|
|
6
|
+
|
|
7
|
+
body:
|
|
8
|
+
- type: markdown
|
|
9
|
+
attributes:
|
|
10
|
+
value: |
|
|
11
|
+
Thank you for taking the time to report a bug! Please fill out this form as completely as possible to help us understand and reproduce the issue.
|
|
12
|
+
|
|
13
|
+
- type: checkboxes
|
|
14
|
+
id: prerequisites
|
|
15
|
+
attributes:
|
|
16
|
+
label: Prerequisites
|
|
17
|
+
description: Please confirm you have completed the following steps
|
|
18
|
+
options:
|
|
19
|
+
- label: I have searched existing issues to avoid duplicates
|
|
20
|
+
required: true
|
|
21
|
+
- label: I have tested this with the latest version of the React app
|
|
22
|
+
required: true
|
|
23
|
+
- label: I have run `npm run lint:colors` to check for color violations
|
|
24
|
+
required: false
|
|
25
|
+
- label: I have run `npm run lint:styles` to check for inline style violations
|
|
26
|
+
required: false
|
|
27
|
+
- label: I have run `npm run lint:semantic` to check for semantic HTML violations
|
|
28
|
+
required: false
|
|
29
|
+
|
|
30
|
+
- type: textarea
|
|
31
|
+
id: description
|
|
32
|
+
attributes:
|
|
33
|
+
label: Bug Description
|
|
34
|
+
description: A clear and concise description of what the bug is
|
|
35
|
+
placeholder: Describe the bug...
|
|
36
|
+
validations:
|
|
37
|
+
required: true
|
|
38
|
+
|
|
39
|
+
- type: textarea
|
|
40
|
+
id: reproduction
|
|
41
|
+
attributes:
|
|
42
|
+
label: Steps to Reproduce
|
|
43
|
+
description: Detailed steps to reproduce the behavior
|
|
44
|
+
placeholder: |
|
|
45
|
+
1. Go to '...'
|
|
46
|
+
2. Click on '...'
|
|
47
|
+
3. Scroll down to '...'
|
|
48
|
+
4. See error
|
|
49
|
+
validations:
|
|
50
|
+
required: true
|
|
51
|
+
|
|
52
|
+
- type: textarea
|
|
53
|
+
id: expected
|
|
54
|
+
attributes:
|
|
55
|
+
label: Expected Behavior
|
|
56
|
+
description: What you expected to happen
|
|
57
|
+
placeholder: Describe what should happen...
|
|
58
|
+
validations:
|
|
59
|
+
required: true
|
|
60
|
+
|
|
61
|
+
- type: textarea
|
|
62
|
+
id: actual
|
|
63
|
+
attributes:
|
|
64
|
+
label: Actual Behavior
|
|
65
|
+
description: What actually happened
|
|
66
|
+
placeholder: Describe what actually happened...
|
|
67
|
+
validations:
|
|
68
|
+
required: true
|
|
69
|
+
|
|
70
|
+
- type: textarea
|
|
71
|
+
id: screenshots
|
|
72
|
+
attributes:
|
|
73
|
+
label: Screenshots
|
|
74
|
+
description: If applicable, add screenshots to help explain your problem
|
|
75
|
+
placeholder: Drag and drop images here or paste URLs
|
|
76
|
+
|
|
77
|
+
- type: dropdown
|
|
78
|
+
id: browser
|
|
79
|
+
attributes:
|
|
80
|
+
label: Browser
|
|
81
|
+
description: Which browser are you using?
|
|
82
|
+
options:
|
|
83
|
+
- Chrome
|
|
84
|
+
- Firefox
|
|
85
|
+
- Safari
|
|
86
|
+
- Edge
|
|
87
|
+
- Other (please specify in additional context)
|
|
88
|
+
validations:
|
|
89
|
+
required: true
|
|
90
|
+
|
|
91
|
+
- type: input
|
|
92
|
+
id: browser-version
|
|
93
|
+
attributes:
|
|
94
|
+
label: Browser Version
|
|
95
|
+
description: What version of the browser are you using?
|
|
96
|
+
placeholder: e.g., Chrome 120.0.0.0
|
|
97
|
+
validations:
|
|
98
|
+
required: true
|
|
99
|
+
|
|
100
|
+
- type: dropdown
|
|
101
|
+
id: os
|
|
102
|
+
attributes:
|
|
103
|
+
label: Operating System
|
|
104
|
+
description: Which operating system are you using?
|
|
105
|
+
options:
|
|
106
|
+
- Windows
|
|
107
|
+
- macOS
|
|
108
|
+
- Linux
|
|
109
|
+
- Other (please specify in additional context)
|
|
110
|
+
validations:
|
|
111
|
+
required: true
|
|
112
|
+
|
|
113
|
+
- type: input
|
|
114
|
+
id: node-version
|
|
115
|
+
attributes:
|
|
116
|
+
label: Node.js Version
|
|
117
|
+
description: What version of Node.js are you using?
|
|
118
|
+
placeholder: e.g., 18.17.0
|
|
119
|
+
validations:
|
|
120
|
+
required: true
|
|
121
|
+
|
|
122
|
+
- type: input
|
|
123
|
+
id: npm-version
|
|
124
|
+
attributes:
|
|
125
|
+
label: npm/yarn Version
|
|
126
|
+
description: What version of npm or yarn are you using?
|
|
127
|
+
placeholder: e.g., npm 9.6.7 or yarn 1.22.19
|
|
128
|
+
validations:
|
|
129
|
+
required: true
|
|
130
|
+
|
|
131
|
+
- type: dropdown
|
|
132
|
+
id: theme
|
|
133
|
+
attributes:
|
|
134
|
+
label: Modus Theme
|
|
135
|
+
description: Which Modus theme were you using when the bug occurred?
|
|
136
|
+
options:
|
|
137
|
+
- Classic Light
|
|
138
|
+
- Classic Dark
|
|
139
|
+
- Modern Light
|
|
140
|
+
- Modern Dark
|
|
141
|
+
- Connect Light
|
|
142
|
+
- Connect Dark
|
|
143
|
+
- Not applicable
|
|
144
|
+
validations:
|
|
145
|
+
required: false
|
|
146
|
+
|
|
147
|
+
- type: textarea
|
|
148
|
+
id: console-errors
|
|
149
|
+
attributes:
|
|
150
|
+
label: Console Errors
|
|
151
|
+
description: Any errors shown in the browser console
|
|
152
|
+
placeholder: Paste console errors here...
|
|
153
|
+
render: text
|
|
154
|
+
|
|
155
|
+
- type: textarea
|
|
156
|
+
id: additional-context
|
|
157
|
+
attributes:
|
|
158
|
+
label: Additional Context
|
|
159
|
+
description: Add any other context about the problem here
|
|
160
|
+
placeholder: Any additional information that might be helpful...
|
|
161
|
+
|
|
162
|
+
- type: checkboxes
|
|
163
|
+
id: component-related
|
|
164
|
+
attributes:
|
|
165
|
+
label: Component Related
|
|
166
|
+
description: Is this bug related to specific components?
|
|
167
|
+
options:
|
|
168
|
+
- label: Modus Web Components (buttons, alerts, etc.)
|
|
169
|
+
- label: React Components (ModusIcon, custom components)
|
|
170
|
+
- label: Theme switching functionality
|
|
171
|
+
- label: Icon system
|
|
172
|
+
- label: Color system
|
|
173
|
+
- label: Vite build process
|
|
174
|
+
- label: Development tools (linting, MCP servers)
|
|
175
|
+
- label: TypeScript integration
|
|
176
|
+
- label: Tailwind CSS integration
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: 💬 GitHub Discussions
|
|
4
|
+
url: https://github.com/julianoczkowski/modus-react-app/discussions
|
|
5
|
+
about: Ask questions and discuss ideas with the community
|
|
6
|
+
- name: 🔒 Security Vulnerability
|
|
7
|
+
url: https://mailto:julian.oczkowski@trimble.com
|
|
8
|
+
about: Report security vulnerabilities privately via email
|
|
9
|
+
- name: 📚 Modus Web Components Documentation
|
|
10
|
+
url: https://trimble-oss.github.io/modus-wc-2.0/main/
|
|
11
|
+
about: Official Modus Web Components documentation and examples
|
|
12
|
+
- name: 🎨 Modus Figma MCP Integration
|
|
13
|
+
url: https://trimble-oss.github.io/modus-wc-2.0/main/?path=/docs/documentation-modus-figma-mcp-integration-guide--docs
|
|
14
|
+
about: Learn about Figma to code integration with AI assistance
|
|
15
|
+
- name: ⚡ Vite Documentation
|
|
16
|
+
url: https://vitejs.dev/
|
|
17
|
+
about: Official Vite documentation for build tool configuration
|
|
18
|
+
- name: 🎨 Tailwind CSS Documentation
|
|
19
|
+
url: https://tailwindcss.com/docs
|
|
20
|
+
about: Official Tailwind CSS documentation for styling
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
name: 📚 Documentation Issue
|
|
2
|
+
description: Report an issue with documentation or suggest documentation improvements
|
|
3
|
+
title: "[DOCS] "
|
|
4
|
+
labels: ["documentation", "needs-triage"]
|
|
5
|
+
assignees: ["julianoczkowski"]
|
|
6
|
+
|
|
7
|
+
body:
|
|
8
|
+
- type: markdown
|
|
9
|
+
attributes:
|
|
10
|
+
value: |
|
|
11
|
+
Thank you for helping improve our documentation! Please provide details about the documentation issue or improvement.
|
|
12
|
+
|
|
13
|
+
- type: checkboxes
|
|
14
|
+
id: prerequisites
|
|
15
|
+
attributes:
|
|
16
|
+
label: Prerequisites
|
|
17
|
+
description: Please confirm you have completed the following steps
|
|
18
|
+
options:
|
|
19
|
+
- label: I have searched existing issues to avoid duplicates
|
|
20
|
+
required: true
|
|
21
|
+
- label: I have checked the latest version of the documentation
|
|
22
|
+
required: true
|
|
23
|
+
|
|
24
|
+
- type: dropdown
|
|
25
|
+
id: type
|
|
26
|
+
attributes:
|
|
27
|
+
label: Documentation Issue Type
|
|
28
|
+
description: What type of documentation issue is this?
|
|
29
|
+
options:
|
|
30
|
+
- Missing documentation
|
|
31
|
+
- Incorrect information
|
|
32
|
+
- Outdated information
|
|
33
|
+
- Unclear instructions
|
|
34
|
+
- Broken links
|
|
35
|
+
- Typos/grammar
|
|
36
|
+
- Code examples not working
|
|
37
|
+
- Missing code examples
|
|
38
|
+
- Improvement suggestion
|
|
39
|
+
- Other
|
|
40
|
+
validations:
|
|
41
|
+
required: true
|
|
42
|
+
|
|
43
|
+
- type: dropdown
|
|
44
|
+
id: location
|
|
45
|
+
attributes:
|
|
46
|
+
label: Documentation Location
|
|
47
|
+
description: Where is the documentation issue located?
|
|
48
|
+
options:
|
|
49
|
+
- README.md
|
|
50
|
+
- CONTRIBUTING.md
|
|
51
|
+
- SECURITY.md
|
|
52
|
+
- Code comments
|
|
53
|
+
- TypeScript definitions
|
|
54
|
+
- Development rules (.cursor/rules/)
|
|
55
|
+
- Package.json descriptions
|
|
56
|
+
- Vite configuration
|
|
57
|
+
- Tailwind configuration
|
|
58
|
+
- Component documentation
|
|
59
|
+
- Other (please specify)
|
|
60
|
+
validations:
|
|
61
|
+
required: true
|
|
62
|
+
|
|
63
|
+
- type: textarea
|
|
64
|
+
id: current-content
|
|
65
|
+
attributes:
|
|
66
|
+
label: Current Content
|
|
67
|
+
description: What does the current documentation say? (copy/paste the relevant section)
|
|
68
|
+
placeholder: Paste the current documentation content here...
|
|
69
|
+
render: markdown
|
|
70
|
+
|
|
71
|
+
- type: textarea
|
|
72
|
+
id: issue-description
|
|
73
|
+
attributes:
|
|
74
|
+
label: Issue Description
|
|
75
|
+
description: Describe the problem with the current documentation
|
|
76
|
+
placeholder: Explain what's wrong or missing...
|
|
77
|
+
validations:
|
|
78
|
+
required: true
|
|
79
|
+
|
|
80
|
+
- type: textarea
|
|
81
|
+
id: suggested-content
|
|
82
|
+
attributes:
|
|
83
|
+
label: Suggested Content
|
|
84
|
+
description: What should the documentation say instead?
|
|
85
|
+
placeholder: Provide your suggested improvement...
|
|
86
|
+
render: markdown
|
|
87
|
+
|
|
88
|
+
- type: textarea
|
|
89
|
+
id: context
|
|
90
|
+
attributes:
|
|
91
|
+
label: Additional Context
|
|
92
|
+
description: Any additional context that would help improve the documentation
|
|
93
|
+
placeholder: Any additional information...
|
|
94
|
+
|
|
95
|
+
- type: checkboxes
|
|
96
|
+
id: areas
|
|
97
|
+
attributes:
|
|
98
|
+
label: Related Areas
|
|
99
|
+
description: Which areas does this documentation issue affect?
|
|
100
|
+
options:
|
|
101
|
+
- label: Installation/Setup
|
|
102
|
+
- label: Development workflow
|
|
103
|
+
- label: Component usage
|
|
104
|
+
- label: Color system
|
|
105
|
+
- label: Icon system
|
|
106
|
+
- label: Theme system
|
|
107
|
+
- label: Vite configuration
|
|
108
|
+
- label: Tailwind CSS integration
|
|
109
|
+
- label: Build/Deployment
|
|
110
|
+
- label: Contributing guidelines
|
|
111
|
+
- label: Security information
|
|
112
|
+
- label: Troubleshooting
|
|
113
|
+
- label: API reference
|
|
114
|
+
- label: Examples/tutorials
|
|
115
|
+
- label: TypeScript integration
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
name: ✨ Feature Request
|
|
2
|
+
description: Suggest a new feature or enhancement for the Modus React App
|
|
3
|
+
title: "[FEATURE] "
|
|
4
|
+
labels: ["enhancement", "needs-triage"]
|
|
5
|
+
assignees: ["julianoczkowski"]
|
|
6
|
+
|
|
7
|
+
body:
|
|
8
|
+
- type: markdown
|
|
9
|
+
attributes:
|
|
10
|
+
value: |
|
|
11
|
+
Thank you for suggesting a new feature! Please provide as much detail as possible to help us understand your request.
|
|
12
|
+
|
|
13
|
+
- type: checkboxes
|
|
14
|
+
id: prerequisites
|
|
15
|
+
attributes:
|
|
16
|
+
label: Prerequisites
|
|
17
|
+
description: Please confirm you have completed the following steps
|
|
18
|
+
options:
|
|
19
|
+
- label: I have searched existing issues and feature requests to avoid duplicates
|
|
20
|
+
required: true
|
|
21
|
+
- label: This feature aligns with the app's scope (React + Vite + Modus Design System integration)
|
|
22
|
+
required: true
|
|
23
|
+
- label: I have considered if this should be a separate package/plugin instead
|
|
24
|
+
required: true
|
|
25
|
+
|
|
26
|
+
- type: textarea
|
|
27
|
+
id: problem
|
|
28
|
+
attributes:
|
|
29
|
+
label: Problem Statement
|
|
30
|
+
description: What problem does this feature solve? What use case does it address?
|
|
31
|
+
placeholder: Describe the problem or use case this feature would solve...
|
|
32
|
+
validations:
|
|
33
|
+
required: true
|
|
34
|
+
|
|
35
|
+
- type: textarea
|
|
36
|
+
id: solution
|
|
37
|
+
attributes:
|
|
38
|
+
label: Proposed Solution
|
|
39
|
+
description: Describe your ideal solution for this feature
|
|
40
|
+
placeholder: Describe what you'd like to see implemented...
|
|
41
|
+
validations:
|
|
42
|
+
required: true
|
|
43
|
+
|
|
44
|
+
- type: textarea
|
|
45
|
+
id: alternatives
|
|
46
|
+
attributes:
|
|
47
|
+
label: Alternative Solutions
|
|
48
|
+
description: Have you considered any alternative solutions or workarounds?
|
|
49
|
+
placeholder: Describe any alternative solutions you've considered...
|
|
50
|
+
|
|
51
|
+
- type: dropdown
|
|
52
|
+
id: category
|
|
53
|
+
attributes:
|
|
54
|
+
label: Feature Category
|
|
55
|
+
description: Which category does this feature belong to?
|
|
56
|
+
options:
|
|
57
|
+
- Component Examples
|
|
58
|
+
- Development Tools
|
|
59
|
+
- Vite Configuration
|
|
60
|
+
- Build/Deployment
|
|
61
|
+
- Documentation
|
|
62
|
+
- Performance
|
|
63
|
+
- Accessibility
|
|
64
|
+
- Testing
|
|
65
|
+
- Developer Experience
|
|
66
|
+
- TypeScript Integration
|
|
67
|
+
- Tailwind CSS Integration
|
|
68
|
+
- Other
|
|
69
|
+
validations:
|
|
70
|
+
required: true
|
|
71
|
+
|
|
72
|
+
- type: dropdown
|
|
73
|
+
id: priority
|
|
74
|
+
attributes:
|
|
75
|
+
label: Priority Level
|
|
76
|
+
description: How important is this feature to you?
|
|
77
|
+
options:
|
|
78
|
+
- Low - Nice to have
|
|
79
|
+
- Medium - Would be helpful
|
|
80
|
+
- High - Important for my use case
|
|
81
|
+
- Critical - Blocking my project
|
|
82
|
+
validations:
|
|
83
|
+
required: true
|
|
84
|
+
|
|
85
|
+
- type: checkboxes
|
|
86
|
+
id: components
|
|
87
|
+
attributes:
|
|
88
|
+
label: Related Components
|
|
89
|
+
description: Which components or areas would this feature affect?
|
|
90
|
+
options:
|
|
91
|
+
- label: Modus Web Components integration
|
|
92
|
+
- label: React component architecture
|
|
93
|
+
- label: Icon system
|
|
94
|
+
- label: Theme system
|
|
95
|
+
- label: Color system
|
|
96
|
+
- label: TypeScript definitions
|
|
97
|
+
- label: Vite configuration
|
|
98
|
+
- label: Tailwind CSS integration
|
|
99
|
+
- label: Development rules
|
|
100
|
+
- label: MCP servers
|
|
101
|
+
- label: Documentation
|
|
102
|
+
- label: Linting rules
|
|
103
|
+
|
|
104
|
+
- type: textarea
|
|
105
|
+
id: implementation
|
|
106
|
+
attributes:
|
|
107
|
+
label: Implementation Ideas
|
|
108
|
+
description: Do you have any ideas on how this could be implemented?
|
|
109
|
+
placeholder: Share any implementation ideas or technical approaches...
|
|
110
|
+
|
|
111
|
+
- type: textarea
|
|
112
|
+
id: examples
|
|
113
|
+
attributes:
|
|
114
|
+
label: Usage Examples
|
|
115
|
+
description: Provide examples of how this feature would be used
|
|
116
|
+
placeholder: |
|
|
117
|
+
```tsx
|
|
118
|
+
// Example usage
|
|
119
|
+
import { ModusButton } from './components/ModusButton';
|
|
120
|
+
|
|
121
|
+
function MyComponent() {
|
|
122
|
+
return (
|
|
123
|
+
<ModusButton variant="primary">
|
|
124
|
+
Your example here
|
|
125
|
+
</ModusButton>
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
- type: checkboxes
|
|
131
|
+
id: breaking-changes
|
|
132
|
+
attributes:
|
|
133
|
+
label: Breaking Changes
|
|
134
|
+
description: Would this feature require breaking changes?
|
|
135
|
+
options:
|
|
136
|
+
- label: This feature would require breaking changes
|
|
137
|
+
- label: This feature can be implemented without breaking changes
|
|
138
|
+
- label: I'm not sure about breaking changes
|
|
139
|
+
|
|
140
|
+
- type: textarea
|
|
141
|
+
id: benefits
|
|
142
|
+
attributes:
|
|
143
|
+
label: Benefits
|
|
144
|
+
description: What benefits would this feature provide to users?
|
|
145
|
+
placeholder: List the benefits this feature would provide...
|
|
146
|
+
|
|
147
|
+
- type: textarea
|
|
148
|
+
id: drawbacks
|
|
149
|
+
attributes:
|
|
150
|
+
label: Potential Drawbacks
|
|
151
|
+
description: Are there any potential drawbacks or concerns with this feature?
|
|
152
|
+
placeholder: List any potential drawbacks or concerns...
|
|
153
|
+
|
|
154
|
+
- type: checkboxes
|
|
155
|
+
id: contribution
|
|
156
|
+
attributes:
|
|
157
|
+
label: Contribution
|
|
158
|
+
description: Are you willing to contribute to this feature?
|
|
159
|
+
options:
|
|
160
|
+
- label: I would like to implement this feature myself
|
|
161
|
+
- label: I can help with testing and feedback
|
|
162
|
+
- label: I can help with documentation
|
|
163
|
+
- label: I can provide design/UX input
|
|
164
|
+
- label: I prefer to let others implement this
|
|
165
|
+
|
|
166
|
+
- type: textarea
|
|
167
|
+
id: additional-context
|
|
168
|
+
attributes:
|
|
169
|
+
label: Additional Context
|
|
170
|
+
description: Add any other context, mockups, or examples about the feature request
|
|
171
|
+
placeholder: Any additional information that might be helpful...
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
name: ❓ Question
|
|
2
|
+
description: Ask a question about using the Modus React App
|
|
3
|
+
title: "[QUESTION] "
|
|
4
|
+
labels: ["question", "needs-triage"]
|
|
5
|
+
assignees: ["julianoczkowski"]
|
|
6
|
+
|
|
7
|
+
body:
|
|
8
|
+
- type: markdown
|
|
9
|
+
attributes:
|
|
10
|
+
value: |
|
|
11
|
+
Have a question about using the Modus React App? We're here to help! Please provide as much context as possible.
|
|
12
|
+
|
|
13
|
+
- type: checkboxes
|
|
14
|
+
id: prerequisites
|
|
15
|
+
attributes:
|
|
16
|
+
label: Prerequisites
|
|
17
|
+
description: Please confirm you have completed the following steps
|
|
18
|
+
options:
|
|
19
|
+
- label: I have searched existing issues and discussions
|
|
20
|
+
required: true
|
|
21
|
+
- label: I have read the README.md documentation
|
|
22
|
+
required: true
|
|
23
|
+
- label: I have checked the development rules in .cursor/rules/
|
|
24
|
+
required: false
|
|
25
|
+
|
|
26
|
+
- type: dropdown
|
|
27
|
+
id: category
|
|
28
|
+
attributes:
|
|
29
|
+
label: Question Category
|
|
30
|
+
description: What category does your question fall into?
|
|
31
|
+
options:
|
|
32
|
+
- Setup/Installation
|
|
33
|
+
- Component Usage
|
|
34
|
+
- Development Workflow
|
|
35
|
+
- Color System
|
|
36
|
+
- Icon System
|
|
37
|
+
- Theme System
|
|
38
|
+
- Vite Configuration
|
|
39
|
+
- Build/Deployment
|
|
40
|
+
- TypeScript Integration
|
|
41
|
+
- Tailwind CSS Integration
|
|
42
|
+
- MCP Servers
|
|
43
|
+
- Development Rules
|
|
44
|
+
- Performance
|
|
45
|
+
- Accessibility
|
|
46
|
+
- Best Practices
|
|
47
|
+
- Troubleshooting
|
|
48
|
+
- Other
|
|
49
|
+
validations:
|
|
50
|
+
required: true
|
|
51
|
+
|
|
52
|
+
- type: textarea
|
|
53
|
+
id: question
|
|
54
|
+
attributes:
|
|
55
|
+
label: Your Question
|
|
56
|
+
description: What would you like to know?
|
|
57
|
+
placeholder: Ask your question here...
|
|
58
|
+
validations:
|
|
59
|
+
required: true
|
|
60
|
+
|
|
61
|
+
- type: textarea
|
|
62
|
+
id: context
|
|
63
|
+
attributes:
|
|
64
|
+
label: Context
|
|
65
|
+
description: Provide any relevant context about your project or use case
|
|
66
|
+
placeholder: |
|
|
67
|
+
- What are you trying to achieve?
|
|
68
|
+
- What have you tried so far?
|
|
69
|
+
- Any specific requirements or constraints?
|
|
70
|
+
|
|
71
|
+
- type: textarea
|
|
72
|
+
id: code-example
|
|
73
|
+
attributes:
|
|
74
|
+
label: Code Example (if applicable)
|
|
75
|
+
description: Share any relevant code that relates to your question
|
|
76
|
+
placeholder: |
|
|
77
|
+
```tsx
|
|
78
|
+
// Your code here
|
|
79
|
+
import { ModusButton } from './components/ModusButton';
|
|
80
|
+
|
|
81
|
+
function MyComponent() {
|
|
82
|
+
return <ModusButton variant="primary">Click me</ModusButton>;
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
render: tsx
|
|
86
|
+
|
|
87
|
+
- type: dropdown
|
|
88
|
+
id: experience
|
|
89
|
+
attributes:
|
|
90
|
+
label: Experience Level
|
|
91
|
+
description: What's your experience level with the technologies involved?
|
|
92
|
+
options:
|
|
93
|
+
- Beginner with React
|
|
94
|
+
- Intermediate with React
|
|
95
|
+
- Advanced with React
|
|
96
|
+
- New to Vite
|
|
97
|
+
- Familiar with Vite
|
|
98
|
+
- Expert with Vite
|
|
99
|
+
- New to Modus Design System
|
|
100
|
+
- Familiar with Modus Design System
|
|
101
|
+
- Expert with Modus Design System
|
|
102
|
+
- New to TypeScript
|
|
103
|
+
- Familiar with TypeScript
|
|
104
|
+
- Expert with TypeScript
|
|
105
|
+
- New to Tailwind CSS
|
|
106
|
+
- Familiar with Tailwind CSS
|
|
107
|
+
- Expert with Tailwind CSS
|
|
108
|
+
validations:
|
|
109
|
+
required: false
|
|
110
|
+
|
|
111
|
+
- type: textarea
|
|
112
|
+
id: environment
|
|
113
|
+
attributes:
|
|
114
|
+
label: Environment Details
|
|
115
|
+
description: Share relevant environment information
|
|
116
|
+
placeholder: |
|
|
117
|
+
- Node.js version:
|
|
118
|
+
- npm/yarn version:
|
|
119
|
+
- Browser:
|
|
120
|
+
- Operating System:
|
|
121
|
+
render: text
|
|
122
|
+
|
|
123
|
+
- type: checkboxes
|
|
124
|
+
id: urgency
|
|
125
|
+
attributes:
|
|
126
|
+
label: Urgency
|
|
127
|
+
description: How urgent is this question for you?
|
|
128
|
+
options:
|
|
129
|
+
- label: This is blocking my project
|
|
130
|
+
- label: This would help me move forward faster
|
|
131
|
+
- label: This is for learning/understanding
|
|
132
|
+
- label: No rush, just curious
|
|
133
|
+
|
|
134
|
+
- type: textarea
|
|
135
|
+
id: additional-info
|
|
136
|
+
attributes:
|
|
137
|
+
label: Additional Information
|
|
138
|
+
description: Any other information that might be helpful
|
|
139
|
+
placeholder: Any additional context or information...
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Modus React App - Copilot Instructions
|
|
2
|
+
|
|
3
|
+
React 19 + Vite boilerplate with Modus 2 Web Components (Trimble Design System). Uses TypeScript, Tailwind CSS 3, and React Router.
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm run dev # Development server
|
|
9
|
+
npm run build # Production build
|
|
10
|
+
npm run lint:all # All linting checks
|
|
11
|
+
npm run lint:colors # Color compliance
|
|
12
|
+
npm run lint:icons # Icon validation
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Design System (9 Colors Only)
|
|
16
|
+
|
|
17
|
+
**Base colors**: `bg-background`, `bg-card`, `bg-muted`, `bg-secondary`, `text-foreground`
|
|
18
|
+
**Semantic colors**: `bg-primary`, `bg-success`, `bg-warning`, `bg-destructive`
|
|
19
|
+
|
|
20
|
+
**NEVER use**: Generic Tailwind colors (`bg-blue-500`, `text-gray-600`), hex values, or RGB.
|
|
21
|
+
|
|
22
|
+
## Component Patterns
|
|
23
|
+
|
|
24
|
+
- Use wrapper components from `src/components/` (e.g., `ModusButton`, `ModusAlert`)
|
|
25
|
+
- Never use `ModusWc*` web components directly
|
|
26
|
+
- Use `useRef` + `useEffect` for event listeners
|
|
27
|
+
- Let Modus components manage their own state
|
|
28
|
+
|
|
29
|
+
## Critical Bugs
|
|
30
|
+
|
|
31
|
+
**Checkbox value inversion** - Always invert the value:
|
|
32
|
+
```tsx
|
|
33
|
+
const actualChecked = !event.detail.value;
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Select component** - Use `ModusDropdownMenu` instead of `ModusSelect` for reliable events.
|
|
37
|
+
|
|
38
|
+
**Modal pattern** - Use `forwardRef` + `useImperativeHandle`. Access dialog via `querySelector("dialog")`.
|
|
39
|
+
|
|
40
|
+
## Icons
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
<i className="modus-icons">icon_name</i>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
- Only Modus icons (no Font Awesome, Material Icons)
|
|
47
|
+
- Names use underscores: `save_disk`, `arrow_left` (not `save-disk`)
|
|
48
|
+
|
|
49
|
+
## Styling Rules
|
|
50
|
+
|
|
51
|
+
**Borders**: Use `border-default`, `border-primary`, `border-success`
|
|
52
|
+
- Directional: `border-bottom-default` (not `border-b border-default`)
|
|
53
|
+
|
|
54
|
+
**Opacity**: Use `text-foreground-80` (not `text-foreground/80`)
|
|
55
|
+
- CSS variables don't work with Tailwind opacity modifiers
|
|
56
|
+
|
|
57
|
+
**HTML Elements**: Use `<div>` only (no `h1`, `p`, `section`, `span`). Exception: `<i>` for icons.
|
|
58
|
+
|
|
59
|
+
## Themes
|
|
60
|
+
|
|
61
|
+
6 themes via `data-theme` on `<html>`:
|
|
62
|
+
- `modus-classic-light`, `modus-classic-dark`
|
|
63
|
+
- `modus-modern-light`, `modus-modern-dark`
|
|
64
|
+
- `connect-light`, `connect-dark`
|
|
65
|
+
|
|
66
|
+
## Forbidden
|
|
67
|
+
|
|
68
|
+
- Emojis in code or UI
|
|
69
|
+
- Semantic HTML elements (use divs)
|
|
70
|
+
- Controlling Modus component state from React useState
|
|
71
|
+
- Generic Tailwind colors
|
|
72
|
+
- Other icon libraries
|
|
73
|
+
|
|
74
|
+
## Architecture
|
|
75
|
+
|
|
76
|
+
- `src/pages/` - Application pages
|
|
77
|
+
- `src/components/` - Modus wrapper components
|
|
78
|
+
- `src/demos/` - Component demos (dev only)
|
|
79
|
+
- `src/dev/` - Dev Panel infrastructure
|
|
80
|
+
- `src/contexts/ThemeContext.tsx` - Theme management
|