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