@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,148 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { DemoPageComponent } from '../shared/demo-page.component';
|
|
4
|
+
import { DemoExampleComponent } from '../shared/demo-example.component';
|
|
5
|
+
import { ModusBadgeComponent } from '../../components/modus-badge.component';
|
|
6
|
+
import { ModusButtonComponent } from '../../components/modus-button.component';
|
|
7
|
+
import { ModusAvatarComponent } from '../../components/modus-avatar.component';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Demo page showcasing the Modus Badge component.
|
|
11
|
+
*
|
|
12
|
+
* Demonstrates badge features including:
|
|
13
|
+
* - Color variants (primary, secondary, tertiary, success, warning, danger, high-contrast)
|
|
14
|
+
* - Badge variants (filled, text, counter)
|
|
15
|
+
* - Different sizes (sm, md, lg)
|
|
16
|
+
* - Usage with other components (buttons, avatars)
|
|
17
|
+
*/
|
|
18
|
+
@Component({
|
|
19
|
+
selector: 'app-badge-demo-page',
|
|
20
|
+
standalone: true,
|
|
21
|
+
imports: [
|
|
22
|
+
CommonModule,
|
|
23
|
+
DemoPageComponent,
|
|
24
|
+
DemoExampleComponent,
|
|
25
|
+
ModusBadgeComponent,
|
|
26
|
+
ModusButtonComponent,
|
|
27
|
+
ModusAvatarComponent,
|
|
28
|
+
],
|
|
29
|
+
template: `
|
|
30
|
+
<demo-page
|
|
31
|
+
title="Modus Badge"
|
|
32
|
+
description="Badges are small status indicators that display counts, labels, or states. Use badges to highlight important information or indicate status."
|
|
33
|
+
>
|
|
34
|
+
<demo-example
|
|
35
|
+
title="Badge Colors"
|
|
36
|
+
description="Different color variants for various semantic meanings."
|
|
37
|
+
>
|
|
38
|
+
<div class="flex flex-wrap items-center gap-4">
|
|
39
|
+
<modus-badge color="primary">Primary</modus-badge>
|
|
40
|
+
<modus-badge color="secondary">Secondary</modus-badge>
|
|
41
|
+
<modus-badge color="tertiary">Tertiary</modus-badge>
|
|
42
|
+
<modus-badge color="success">Success</modus-badge>
|
|
43
|
+
<modus-badge color="warning">Warning</modus-badge>
|
|
44
|
+
<modus-badge color="danger">Danger</modus-badge>
|
|
45
|
+
<modus-badge color="high-contrast">High Contrast</modus-badge>
|
|
46
|
+
</div>
|
|
47
|
+
</demo-example>
|
|
48
|
+
|
|
49
|
+
<demo-example
|
|
50
|
+
title="Badge Variants"
|
|
51
|
+
description="Different visual styles for badges."
|
|
52
|
+
>
|
|
53
|
+
<div class="flex flex-col gap-4">
|
|
54
|
+
<div class="flex flex-wrap items-center gap-4">
|
|
55
|
+
<modus-badge variant="filled" color="primary">Filled</modus-badge>
|
|
56
|
+
<modus-badge variant="outlined" color="primary">Outlined</modus-badge>
|
|
57
|
+
<modus-badge variant="text" color="primary">Text</modus-badge>
|
|
58
|
+
<modus-badge variant="counter" color="primary">Counter</modus-badge>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
</demo-example>
|
|
62
|
+
|
|
63
|
+
<demo-example
|
|
64
|
+
title="Badge Sizes"
|
|
65
|
+
description="Different sizes for various contexts and visual hierarchy."
|
|
66
|
+
>
|
|
67
|
+
<div class="flex flex-wrap items-center gap-4">
|
|
68
|
+
<modus-badge size="sm" color="primary">Small</modus-badge>
|
|
69
|
+
<modus-badge size="md" color="primary">Medium</modus-badge>
|
|
70
|
+
<modus-badge size="lg" color="primary">Large</modus-badge>
|
|
71
|
+
</div>
|
|
72
|
+
</demo-example>
|
|
73
|
+
|
|
74
|
+
<demo-example
|
|
75
|
+
title="Badges with Numbers"
|
|
76
|
+
description="Use badges to display counts and numeric values."
|
|
77
|
+
>
|
|
78
|
+
<div class="flex flex-wrap items-center gap-4">
|
|
79
|
+
<modus-badge color="primary">5</modus-badge>
|
|
80
|
+
<modus-badge color="success">12</modus-badge>
|
|
81
|
+
<modus-badge color="warning">99+</modus-badge>
|
|
82
|
+
<modus-badge color="danger">1,234</modus-badge>
|
|
83
|
+
</div>
|
|
84
|
+
</demo-example>
|
|
85
|
+
|
|
86
|
+
<demo-example
|
|
87
|
+
title="Badges on Buttons"
|
|
88
|
+
description="Combine badges with buttons to show counts or status."
|
|
89
|
+
>
|
|
90
|
+
<div class="flex flex-wrap items-center gap-4">
|
|
91
|
+
<modus-button color="primary">
|
|
92
|
+
Notifications
|
|
93
|
+
<modus-badge color="danger" size="sm" variant="counter">3</modus-badge>
|
|
94
|
+
</modus-button>
|
|
95
|
+
<modus-button color="secondary">
|
|
96
|
+
Messages
|
|
97
|
+
<modus-badge color="primary" size="sm" variant="counter">12</modus-badge>
|
|
98
|
+
</modus-button>
|
|
99
|
+
<modus-button color="tertiary">
|
|
100
|
+
Updates
|
|
101
|
+
<modus-badge color="success" size="sm" variant="counter">5</modus-badge>
|
|
102
|
+
</modus-button>
|
|
103
|
+
</div>
|
|
104
|
+
</demo-example>
|
|
105
|
+
|
|
106
|
+
<demo-example
|
|
107
|
+
title="Badges on Avatars"
|
|
108
|
+
description="Use badges to indicate status or notifications on avatars."
|
|
109
|
+
>
|
|
110
|
+
<div class="flex flex-wrap items-center gap-6">
|
|
111
|
+
<div class="relative">
|
|
112
|
+
<modus-avatar alt="User" initials="JD" size="md" shape="circle" />
|
|
113
|
+
<div class="absolute -top-1 -right-1">
|
|
114
|
+
<modus-badge color="success" size="sm" variant="counter">●</modus-badge>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
<div class="relative">
|
|
118
|
+
<modus-avatar alt="User" initials="JS" size="md" shape="circle" />
|
|
119
|
+
<div class="absolute -top-1 -right-1">
|
|
120
|
+
<modus-badge color="danger" size="sm" variant="counter">3</modus-badge>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
<div class="relative">
|
|
124
|
+
<modus-avatar alt="User" initials="BJ" size="md" shape="circle" />
|
|
125
|
+
<div class="absolute -top-1 -right-1">
|
|
126
|
+
<modus-badge color="warning" size="sm" variant="counter">!</modus-badge>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
</demo-example>
|
|
131
|
+
|
|
132
|
+
<demo-example
|
|
133
|
+
title="Status Indicators"
|
|
134
|
+
description="Use badges as status indicators for different states."
|
|
135
|
+
>
|
|
136
|
+
<div class="flex flex-wrap items-center gap-4">
|
|
137
|
+
<modus-badge color="success" variant="filled">Active</modus-badge>
|
|
138
|
+
<modus-badge color="warning" variant="filled">Pending</modus-badge>
|
|
139
|
+
<modus-badge color="danger" variant="filled">Inactive</modus-badge>
|
|
140
|
+
<modus-badge color="primary" variant="filled">New</modus-badge>
|
|
141
|
+
<modus-badge color="secondary" variant="filled">Draft</modus-badge>
|
|
142
|
+
</div>
|
|
143
|
+
</demo-example>
|
|
144
|
+
</demo-page>
|
|
145
|
+
`,
|
|
146
|
+
})
|
|
147
|
+
export class BadgeDemoPageComponent {}
|
|
148
|
+
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Component, signal } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { DemoPageComponent } from '../shared/demo-page.component';
|
|
4
|
+
import { DemoExampleComponent } from '../shared/demo-example.component';
|
|
5
|
+
import { ModusBreadcrumbsComponent } from '../../components/modus-breadcrumbs.component';
|
|
6
|
+
import type { IBreadcrumb } from '@trimble-oss/moduswebcomponents';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Demo page showcasing the Modus Breadcrumbs component.
|
|
10
|
+
*
|
|
11
|
+
* Demonstrates breadcrumb features including:
|
|
12
|
+
* - Basic breadcrumb navigation
|
|
13
|
+
* - Different sizes (sm, md, lg)
|
|
14
|
+
* - Interactive navigation examples
|
|
15
|
+
* - Long path truncation examples
|
|
16
|
+
* - Accessibility features demonstration
|
|
17
|
+
*/
|
|
18
|
+
@Component({
|
|
19
|
+
selector: 'app-breadcrumbs-demo-page',
|
|
20
|
+
standalone: true,
|
|
21
|
+
imports: [CommonModule, DemoPageComponent, DemoExampleComponent, ModusBreadcrumbsComponent],
|
|
22
|
+
template: `
|
|
23
|
+
<demo-page
|
|
24
|
+
title="Modus Breadcrumbs"
|
|
25
|
+
description="Breadcrumbs show the hierarchical path to the current page. Use breadcrumbs to help users understand their location and navigate back through the application structure."
|
|
26
|
+
>
|
|
27
|
+
<demo-example
|
|
28
|
+
title="Basic Breadcrumbs"
|
|
29
|
+
description="Simple breadcrumb navigation showing the current path."
|
|
30
|
+
>
|
|
31
|
+
<modus-breadcrumbs [items]="basicItems()" />
|
|
32
|
+
</demo-example>
|
|
33
|
+
|
|
34
|
+
<demo-example
|
|
35
|
+
title="Breadcrumb Sizes"
|
|
36
|
+
description="Different sizes for various contexts and visual hierarchy."
|
|
37
|
+
>
|
|
38
|
+
<div class="flex flex-col gap-4">
|
|
39
|
+
<div>
|
|
40
|
+
<h4 class="text-base font-semibold mb-2 text-foreground">Small (sm)</h4>
|
|
41
|
+
<modus-breadcrumbs [items]="sizeItems()" size="sm" />
|
|
42
|
+
</div>
|
|
43
|
+
<div>
|
|
44
|
+
<h4 class="text-base font-semibold mb-2 text-foreground">Medium (md)</h4>
|
|
45
|
+
<modus-breadcrumbs [items]="sizeItems()" size="md" />
|
|
46
|
+
</div>
|
|
47
|
+
<div>
|
|
48
|
+
<h4 class="text-base font-semibold mb-2 text-foreground">Large (lg)</h4>
|
|
49
|
+
<modus-breadcrumbs [items]="sizeItems()" size="lg" />
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
</demo-example>
|
|
53
|
+
|
|
54
|
+
<demo-example
|
|
55
|
+
title="Deep Navigation Path"
|
|
56
|
+
description="Breadcrumbs showing a deep navigation hierarchy."
|
|
57
|
+
>
|
|
58
|
+
<modus-breadcrumbs [items]="deepPathItems()" />
|
|
59
|
+
</demo-example>
|
|
60
|
+
|
|
61
|
+
<demo-example
|
|
62
|
+
title="Breadcrumbs with Long Labels"
|
|
63
|
+
description="Breadcrumbs handle long labels gracefully with truncation."
|
|
64
|
+
>
|
|
65
|
+
<modus-breadcrumbs [items]="longLabelItems()" />
|
|
66
|
+
</demo-example>
|
|
67
|
+
</demo-page>
|
|
68
|
+
`,
|
|
69
|
+
})
|
|
70
|
+
export class BreadcrumbsDemoPageComponent {
|
|
71
|
+
readonly basicItems = signal<IBreadcrumb[]>([
|
|
72
|
+
{ label: 'Home', url: '/' },
|
|
73
|
+
{ label: 'Components', url: '/components' },
|
|
74
|
+
{ label: 'Breadcrumbs' },
|
|
75
|
+
]);
|
|
76
|
+
|
|
77
|
+
readonly sizeItems = signal<IBreadcrumb[]>([
|
|
78
|
+
{ label: 'Home', url: '/' },
|
|
79
|
+
{ label: 'Library', url: '/library' },
|
|
80
|
+
{ label: 'Data' },
|
|
81
|
+
]);
|
|
82
|
+
|
|
83
|
+
readonly deepPathItems = signal<IBreadcrumb[]>([
|
|
84
|
+
{ label: 'Home', url: '/' },
|
|
85
|
+
{ label: 'Projects', url: '/projects' },
|
|
86
|
+
{ label: 'Project Alpha', url: '/projects/alpha' },
|
|
87
|
+
{ label: 'Settings', url: '/projects/alpha/settings' },
|
|
88
|
+
{ label: 'Team' },
|
|
89
|
+
]);
|
|
90
|
+
|
|
91
|
+
readonly longLabelItems = signal<IBreadcrumb[]>([
|
|
92
|
+
{ label: 'Home', url: '/' },
|
|
93
|
+
{ label: 'This is a very long breadcrumb label', url: '/long' },
|
|
94
|
+
{ label: 'Another extremely long breadcrumb item name here' },
|
|
95
|
+
]);
|
|
96
|
+
}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { DemoPageComponent } from '../shared/demo-page.component';
|
|
4
|
+
import { DemoExampleComponent } from '../shared/demo-example.component';
|
|
5
|
+
import { ModusButtonComponent } from '../../components/modus-button.component';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Demo page showcasing the Modus Button component.
|
|
9
|
+
*
|
|
10
|
+
* Demonstrates all button features including:
|
|
11
|
+
* - Variants (primary, secondary, tertiary, warning, danger)
|
|
12
|
+
* - Styles (filled, outlined, borderless)
|
|
13
|
+
* - Sizes (xs, sm, md, lg)
|
|
14
|
+
* - Icons (left, right, only positions)
|
|
15
|
+
* - Icon sizes and colored icons
|
|
16
|
+
*/
|
|
17
|
+
@Component({
|
|
18
|
+
selector: 'app-button-demo-page',
|
|
19
|
+
standalone: true,
|
|
20
|
+
imports: [CommonModule, DemoPageComponent, DemoExampleComponent, ModusButtonComponent],
|
|
21
|
+
template: `
|
|
22
|
+
<demo-page
|
|
23
|
+
title="Modus Button"
|
|
24
|
+
description="Buttons trigger actions and provide clear call-to-action elements. Use primary buttons for the main action, secondary for supporting actions, and tertiary for subtle actions."
|
|
25
|
+
>
|
|
26
|
+
<demo-example
|
|
27
|
+
title="Button Variants"
|
|
28
|
+
description="Different button styles for various use cases and visual hierarchy."
|
|
29
|
+
>
|
|
30
|
+
<div class="flex flex-wrap gap-4">
|
|
31
|
+
<modus-button color="primary">Primary</modus-button>
|
|
32
|
+
<modus-button color="secondary">Secondary</modus-button>
|
|
33
|
+
<modus-button color="tertiary">Tertiary</modus-button>
|
|
34
|
+
<modus-button color="warning">Warning</modus-button>
|
|
35
|
+
<modus-button color="danger">Danger</modus-button>
|
|
36
|
+
</div>
|
|
37
|
+
</demo-example>
|
|
38
|
+
|
|
39
|
+
<demo-example
|
|
40
|
+
title="Button Styles"
|
|
41
|
+
description="Different visual styles to match your design needs."
|
|
42
|
+
>
|
|
43
|
+
<div class="flex flex-wrap gap-4">
|
|
44
|
+
<modus-button variant="filled">Filled</modus-button>
|
|
45
|
+
<modus-button variant="outlined">Outlined</modus-button>
|
|
46
|
+
<modus-button variant="borderless">Borderless</modus-button>
|
|
47
|
+
</div>
|
|
48
|
+
</demo-example>
|
|
49
|
+
|
|
50
|
+
<demo-example
|
|
51
|
+
title="Button Sizes"
|
|
52
|
+
description="Various sizes for different contexts and touch targets."
|
|
53
|
+
>
|
|
54
|
+
<div class="flex flex-wrap items-center gap-4">
|
|
55
|
+
<modus-button size="xs">Extra Small</modus-button>
|
|
56
|
+
<modus-button size="sm">Small</modus-button>
|
|
57
|
+
<modus-button size="md">Medium</modus-button>
|
|
58
|
+
<modus-button size="lg">Large</modus-button>
|
|
59
|
+
</div>
|
|
60
|
+
</demo-example>
|
|
61
|
+
|
|
62
|
+
<demo-example
|
|
63
|
+
title="Buttons with Icons"
|
|
64
|
+
description="Enhance buttons with icons for better visual communication."
|
|
65
|
+
>
|
|
66
|
+
<div class="flex flex-wrap gap-4">
|
|
67
|
+
<modus-button icon="save_disk" iconPosition="left">Save File</modus-button>
|
|
68
|
+
<modus-button icon="download" iconPosition="right">Download</modus-button>
|
|
69
|
+
<modus-button icon="settings" iconPosition="only" ariaLabel="Settings" />
|
|
70
|
+
</div>
|
|
71
|
+
</demo-example>
|
|
72
|
+
|
|
73
|
+
<demo-example
|
|
74
|
+
title="Button Icon Sizes"
|
|
75
|
+
description="Icon sizes automatically adapt to button size, or can be explicitly controlled."
|
|
76
|
+
>
|
|
77
|
+
<div class="space-y-6">
|
|
78
|
+
<!-- Automatic sizing based on button size -->
|
|
79
|
+
<div>
|
|
80
|
+
<h4 class="text-base font-semibold mb-3">Automatic Icon Sizing (by Button Size)</h4>
|
|
81
|
+
<div class="flex flex-wrap items-center gap-4">
|
|
82
|
+
<modus-button size="xs" icon="star" iconPosition="left">Extra Small</modus-button>
|
|
83
|
+
<modus-button size="sm" icon="star" iconPosition="left">Small</modus-button>
|
|
84
|
+
<modus-button size="md" icon="star" iconPosition="left">Medium</modus-button>
|
|
85
|
+
<modus-button size="lg" icon="star" iconPosition="left">Large</modus-button>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
<!-- Icon-only buttons with automatic sizing -->
|
|
90
|
+
<div>
|
|
91
|
+
<h4 class="text-base font-semibold mb-3">Icon-Only Buttons (Automatic Sizing)</h4>
|
|
92
|
+
<div class="flex flex-wrap items-center gap-4">
|
|
93
|
+
<modus-button
|
|
94
|
+
size="xs"
|
|
95
|
+
icon="settings"
|
|
96
|
+
iconPosition="only"
|
|
97
|
+
ariaLabel="Settings (XS)"
|
|
98
|
+
/>
|
|
99
|
+
<modus-button
|
|
100
|
+
size="sm"
|
|
101
|
+
icon="settings"
|
|
102
|
+
iconPosition="only"
|
|
103
|
+
ariaLabel="Settings (SM)"
|
|
104
|
+
/>
|
|
105
|
+
<modus-button
|
|
106
|
+
size="md"
|
|
107
|
+
icon="settings"
|
|
108
|
+
iconPosition="only"
|
|
109
|
+
ariaLabel="Settings (MD)"
|
|
110
|
+
/>
|
|
111
|
+
<modus-button
|
|
112
|
+
size="lg"
|
|
113
|
+
icon="settings"
|
|
114
|
+
iconPosition="only"
|
|
115
|
+
ariaLabel="Settings (LG)"
|
|
116
|
+
/>
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
|
|
120
|
+
<!-- Custom icon sizes -->
|
|
121
|
+
<div>
|
|
122
|
+
<h4 class="text-base font-semibold mb-3">Custom Icon Sizes (Explicit Control)</h4>
|
|
123
|
+
<div class="flex flex-wrap items-center gap-4">
|
|
124
|
+
<modus-button icon="star" iconSize="text-xs" iconPosition="left"
|
|
125
|
+
>Tiny Icon</modus-button
|
|
126
|
+
>
|
|
127
|
+
<modus-button icon="star" iconSize="text-sm" iconPosition="left"
|
|
128
|
+
>Small Icon</modus-button
|
|
129
|
+
>
|
|
130
|
+
<modus-button icon="star" iconSize="text-lg" iconPosition="left"
|
|
131
|
+
>Large Icon</modus-button
|
|
132
|
+
>
|
|
133
|
+
<modus-button icon="star" iconSize="text-2xl" iconPosition="left"
|
|
134
|
+
>XL Icon</modus-button
|
|
135
|
+
>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
<!-- Mixed sizes for comparison -->
|
|
140
|
+
<div>
|
|
141
|
+
<h4 class="text-base font-semibold mb-3">Size Comparison</h4>
|
|
142
|
+
<div class="flex flex-wrap items-center gap-4">
|
|
143
|
+
<modus-button size="lg" icon="download" iconSize="text-sm" iconPosition="left"
|
|
144
|
+
>Large Button, Small Icon</modus-button
|
|
145
|
+
>
|
|
146
|
+
<modus-button size="sm" icon="download" iconSize="text-xl" iconPosition="left"
|
|
147
|
+
>Small Button, Large Icon</modus-button
|
|
148
|
+
>
|
|
149
|
+
<modus-button
|
|
150
|
+
size="md"
|
|
151
|
+
icon="check_circle"
|
|
152
|
+
iconSize="text-3xl"
|
|
153
|
+
iconPosition="only"
|
|
154
|
+
ariaLabel="Success (Huge Icon)"
|
|
155
|
+
/>
|
|
156
|
+
</div>
|
|
157
|
+
</div>
|
|
158
|
+
</div>
|
|
159
|
+
</demo-example>
|
|
160
|
+
|
|
161
|
+
<demo-example
|
|
162
|
+
title="Icon Sizes"
|
|
163
|
+
description="Different icon sizes using Modus font scale for various contexts."
|
|
164
|
+
>
|
|
165
|
+
<div class="flex flex-wrap items-center gap-6">
|
|
166
|
+
<!-- Micro icons -->
|
|
167
|
+
<div class="flex flex-col items-center gap-2">
|
|
168
|
+
<i class="modus-icons text-2xs">star</i>
|
|
169
|
+
<span class="text-xs text-muted-foreground">2xs (8px)</span>
|
|
170
|
+
</div>
|
|
171
|
+
|
|
172
|
+
<!-- Small icons -->
|
|
173
|
+
<div class="flex flex-col items-center gap-2">
|
|
174
|
+
<i class="modus-icons text-xs">star</i>
|
|
175
|
+
<span class="text-xs text-muted-foreground">xs (10px)</span>
|
|
176
|
+
</div>
|
|
177
|
+
|
|
178
|
+
<!-- Secondary icons -->
|
|
179
|
+
<div class="flex flex-col items-center gap-2">
|
|
180
|
+
<i class="modus-icons text-sm">star</i>
|
|
181
|
+
<span class="text-xs text-muted-foreground">sm (12px)</span>
|
|
182
|
+
</div>
|
|
183
|
+
|
|
184
|
+
<!-- Base icons (Modus default) -->
|
|
185
|
+
<div class="flex flex-col items-center gap-2">
|
|
186
|
+
<i class="modus-icons text-base">star</i>
|
|
187
|
+
<span class="text-xs text-muted-foreground">base (14px)</span>
|
|
188
|
+
</div>
|
|
189
|
+
|
|
190
|
+
<!-- Standard icons -->
|
|
191
|
+
<div class="flex flex-col items-center gap-2">
|
|
192
|
+
<i class="modus-icons text-lg">star</i>
|
|
193
|
+
<span class="text-xs text-muted-foreground">lg (16px)</span>
|
|
194
|
+
</div>
|
|
195
|
+
|
|
196
|
+
<!-- Large icons -->
|
|
197
|
+
<div class="flex flex-col items-center gap-2">
|
|
198
|
+
<i class="modus-icons text-xl">star</i>
|
|
199
|
+
<span class="text-xs text-muted-foreground">xl (18px)</span>
|
|
200
|
+
</div>
|
|
201
|
+
|
|
202
|
+
<!-- Prominent icons -->
|
|
203
|
+
<div class="flex flex-col items-center gap-2">
|
|
204
|
+
<i class="modus-icons text-2xl">star</i>
|
|
205
|
+
<span class="text-xs text-muted-foreground">2xl (20px)</span>
|
|
206
|
+
</div>
|
|
207
|
+
|
|
208
|
+
<!-- Display icons -->
|
|
209
|
+
<div class="flex flex-col items-center gap-2">
|
|
210
|
+
<i class="modus-icons text-3xl">star</i>
|
|
211
|
+
<span class="text-xs text-muted-foreground">3xl (24px)</span>
|
|
212
|
+
</div>
|
|
213
|
+
|
|
214
|
+
<!-- Hero icons -->
|
|
215
|
+
<div class="flex flex-col items-center gap-2">
|
|
216
|
+
<i class="modus-icons text-4xl">star</i>
|
|
217
|
+
<span class="text-xs text-muted-foreground">4xl (30px)</span>
|
|
218
|
+
</div>
|
|
219
|
+
</div>
|
|
220
|
+
</demo-example>
|
|
221
|
+
|
|
222
|
+
<demo-example
|
|
223
|
+
title="Colored Icons"
|
|
224
|
+
description="Icons with different semantic colors from the 9-color design system."
|
|
225
|
+
>
|
|
226
|
+
<div class="flex flex-wrap items-center gap-6">
|
|
227
|
+
<div class="flex flex-col items-center gap-2">
|
|
228
|
+
<i class="modus-icons text-2xl text-primary">info</i>
|
|
229
|
+
<span class="text-xs text-muted-foreground">Primary</span>
|
|
230
|
+
</div>
|
|
231
|
+
|
|
232
|
+
<div class="flex flex-col items-center gap-2">
|
|
233
|
+
<i class="modus-icons text-2xl text-success">check_circle</i>
|
|
234
|
+
<span class="text-xs text-muted-foreground">Success</span>
|
|
235
|
+
</div>
|
|
236
|
+
|
|
237
|
+
<div class="flex flex-col items-center gap-2">
|
|
238
|
+
<i class="modus-icons text-2xl text-warning">warning</i>
|
|
239
|
+
<span class="text-xs text-muted-foreground">Warning</span>
|
|
240
|
+
</div>
|
|
241
|
+
|
|
242
|
+
<div class="flex flex-col items-center gap-2">
|
|
243
|
+
<i class="modus-icons text-2xl text-destructive">alert</i>
|
|
244
|
+
<span class="text-xs text-muted-foreground">Error</span>
|
|
245
|
+
</div>
|
|
246
|
+
|
|
247
|
+
<div class="flex flex-col items-center gap-2">
|
|
248
|
+
<i class="modus-icons text-2xl text-muted-foreground">help</i>
|
|
249
|
+
<span class="text-xs text-muted-foreground">Muted</span>
|
|
250
|
+
</div>
|
|
251
|
+
</div>
|
|
252
|
+
</demo-example>
|
|
253
|
+
</demo-page>
|
|
254
|
+
`,
|
|
255
|
+
})
|
|
256
|
+
export class ButtonDemoPageComponent {}
|