@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.
Files changed (450) hide show
  1. package/README.md +191 -0
  2. package/bin/create-trimble-app.js +9 -0
  3. package/package.json +67 -0
  4. package/src/cli.js +134 -0
  5. package/src/frameworks.js +28 -0
  6. package/src/scaffold.js +209 -0
  7. package/src/utils/file.js +47 -0
  8. package/src/utils/git.js +140 -0
  9. package/src/utils/install.js +25 -0
  10. package/src/utils/logger.js +124 -0
  11. package/templates/angular/.cursor/commands/remove-dev-content.md +394 -0
  12. package/templates/angular/.cursor/mcp.json +13 -0
  13. package/templates/angular/.cursor/rules/modus-angular-20.mdc +82 -0
  14. package/templates/angular/.cursor/rules/modus-angular-accordion-state-management-short.mdc +45 -0
  15. package/templates/angular/.cursor/rules/modus-angular-accordion-state-management.mdc +322 -0
  16. package/templates/angular/.cursor/rules/modus-angular-best-practices.mdc +472 -0
  17. package/templates/angular/.cursor/rules/modus-angular-border-usage-short.mdc +48 -0
  18. package/templates/angular/.cursor/rules/modus-angular-border-usage.mdc +286 -0
  19. package/templates/angular/.cursor/rules/modus-angular-button-group-usage-short.mdc +47 -0
  20. package/templates/angular/.cursor/rules/modus-angular-button-group-usage.mdc +263 -0
  21. package/templates/angular/.cursor/rules/modus-angular-checkbox-value-inversion-short.mdc +36 -0
  22. package/templates/angular/.cursor/rules/modus-angular-checkbox-value-inversion.mdc +92 -0
  23. package/templates/angular/.cursor/rules/modus-angular-chrome-devtools-testing-short.mdc +34 -0
  24. package/templates/angular/.cursor/rules/modus-angular-chrome-devtools-testing.mdc +185 -0
  25. package/templates/angular/.cursor/rules/modus-angular-color-usage-short.mdc +56 -0
  26. package/templates/angular/.cursor/rules/modus-angular-color-usage.mdc +208 -0
  27. package/templates/angular/.cursor/rules/modus-angular-components-reference.mdc +114 -0
  28. package/templates/angular/.cursor/rules/modus-angular-design-system.mdc +273 -0
  29. package/templates/angular/.cursor/rules/modus-angular-development-workflow-short.mdc +43 -0
  30. package/templates/angular/.cursor/rules/modus-angular-development-workflow.mdc +145 -0
  31. package/templates/angular/.cursor/rules/modus-angular-essentials.mdc +272 -0
  32. package/templates/angular/.cursor/rules/modus-angular-forms-validation-short.mdc +56 -0
  33. package/templates/angular/.cursor/rules/modus-angular-forms-validation.mdc +124 -0
  34. package/templates/angular/.cursor/rules/modus-angular-icon-names.mdc +70 -0
  35. package/templates/angular/.cursor/rules/modus-angular-icons-short.mdc +40 -0
  36. package/templates/angular/.cursor/rules/modus-angular-icons.mdc +137 -0
  37. package/templates/angular/.cursor/rules/modus-angular-implementation-guides-short.mdc +36 -0
  38. package/templates/angular/.cursor/rules/modus-angular-implementation-guides.mdc +301 -0
  39. package/templates/angular/.cursor/rules/modus-angular-integration-short.mdc +60 -0
  40. package/templates/angular/.cursor/rules/modus-angular-integration.mdc +1096 -0
  41. package/templates/angular/.cursor/rules/modus-angular-master.mdc +164 -0
  42. package/templates/angular/.cursor/rules/modus-angular-modal-usage-short.mdc +51 -0
  43. package/templates/angular/.cursor/rules/modus-angular-modal-usage.mdc +115 -0
  44. package/templates/angular/.cursor/rules/modus-angular-navbar-usage-short.mdc +49 -0
  45. package/templates/angular/.cursor/rules/modus-angular-navbar-usage.mdc +146 -0
  46. package/templates/angular/.cursor/rules/modus-angular-no-emojis.mdc +66 -0
  47. package/templates/angular/.cursor/rules/modus-angular-opacity-utilities-short.mdc +43 -0
  48. package/templates/angular/.cursor/rules/modus-angular-opacity-utilities.mdc +160 -0
  49. package/templates/angular/.cursor/rules/modus-angular-select-vs-dropdown-menu-short.mdc +51 -0
  50. package/templates/angular/.cursor/rules/modus-angular-select-vs-dropdown-menu.mdc +83 -0
  51. package/templates/angular/.cursor/rules/modus-angular-semantic-html-short.mdc +36 -0
  52. package/templates/angular/.cursor/rules/modus-angular-semantic-html.mdc +81 -0
  53. package/templates/angular/.cursor/rules/modus-angular-side-navigation-usage-short.mdc +50 -0
  54. package/templates/angular/.cursor/rules/modus-angular-side-navigation-usage.mdc +136 -0
  55. package/templates/angular/.cursor/rules/modus-angular-table-usage-short.mdc +52 -0
  56. package/templates/angular/.cursor/rules/modus-angular-table-usage.mdc +151 -0
  57. package/templates/angular/.cursor/rules/modus-angular-tailwind-usage-short.mdc +44 -0
  58. package/templates/angular/.cursor/rules/modus-angular-tailwind-usage.mdc +242 -0
  59. package/templates/angular/.cursor/rules/modus-angular-themes-short.mdc +54 -0
  60. package/templates/angular/.cursor/rules/modus-angular-themes.mdc +222 -0
  61. package/templates/angular/.cursor/rules/modus-angular-utility-panel-usage-short.mdc +52 -0
  62. package/templates/angular/.cursor/rules/modus-angular-utility-panel-usage.mdc +130 -0
  63. package/templates/angular/.cursor/rules/ux/gestalt-laws-detailed.mdc +514 -0
  64. package/templates/angular/.cursor/rules/ux/ux-ui-foundations.mdc +235 -0
  65. package/templates/angular/.cursor/skills/run-lint-checks/SKILL.md +169 -0
  66. package/templates/angular/.editorconfig +17 -0
  67. package/templates/angular/.github/dependabot.yml +19 -0
  68. package/templates/angular/.github/workflows/a11y-check.yml +135 -0
  69. package/templates/angular/.github/workflows/ci.yml +44 -0
  70. package/templates/angular/.husky/pre-commit +32 -0
  71. package/templates/angular/.postcssrc.json +5 -0
  72. package/templates/angular/.vscode/extensions.json +4 -0
  73. package/templates/angular/.vscode/launch.json +20 -0
  74. package/templates/angular/.vscode/tasks.json +42 -0
  75. package/templates/angular/CLAUDE.md +148 -0
  76. package/templates/angular/README.md +92 -0
  77. package/templates/angular/amplify.yml +25 -0
  78. package/templates/angular/angular.json +106 -0
  79. package/templates/angular/data/modusIcons.ts +861 -0
  80. package/templates/angular/package-lock.json +11030 -0
  81. package/templates/angular/package.json +66 -0
  82. package/templates/angular/public/angular-icon.svg +12 -0
  83. package/templates/angular/public/favicon.ico +0 -0
  84. package/templates/angular/public/modus-icons.css +49 -0
  85. package/templates/angular/public/vite.svg +1 -0
  86. package/templates/angular/scripts/README.md +410 -0
  87. package/templates/angular/scripts/check-border-violations.js +352 -0
  88. package/templates/angular/scripts/check-icon-names.js +402 -0
  89. package/templates/angular/scripts/check-inline-styles.js +292 -0
  90. package/templates/angular/scripts/check-modus-colors.js +282 -0
  91. package/templates/angular/scripts/check-modus-icons.js +263 -0
  92. package/templates/angular/scripts/check-opacity-utilities.js +426 -0
  93. package/templates/angular/scripts/check-semantic-html.js +452 -0
  94. package/templates/angular/scripts/check-typescript.js +109 -0
  95. package/templates/angular/src/app/app.config.ts +29 -0
  96. package/templates/angular/src/app/app.css +0 -0
  97. package/templates/angular/src/app/app.html +4 -0
  98. package/templates/angular/src/app/app.routes.ts +351 -0
  99. package/templates/angular/src/app/app.spec.ts +27 -0
  100. package/templates/angular/src/app/app.ts +47 -0
  101. package/templates/angular/src/app/components/README.md +77 -0
  102. package/templates/angular/src/app/components/index.ts +53 -0
  103. package/templates/angular/src/app/components/modus-accordion.component.ts +50 -0
  104. package/templates/angular/src/app/components/modus-alert.component.ts +133 -0
  105. package/templates/angular/src/app/components/modus-autocomplete.component.ts +262 -0
  106. package/templates/angular/src/app/components/modus-avatar.component.ts +75 -0
  107. package/templates/angular/src/app/components/modus-badge.component.ts +84 -0
  108. package/templates/angular/src/app/components/modus-breadcrumbs.component.ts +65 -0
  109. package/templates/angular/src/app/components/modus-button-group.component.ts +82 -0
  110. package/templates/angular/src/app/components/modus-button.component.ts +292 -0
  111. package/templates/angular/src/app/components/modus-card.component.ts +73 -0
  112. package/templates/angular/src/app/components/modus-checkbox.component.ts +117 -0
  113. package/templates/angular/src/app/components/modus-chip.component.ts +97 -0
  114. package/templates/angular/src/app/components/modus-collapse.component.ts +118 -0
  115. package/templates/angular/src/app/components/modus-date.component.ts +165 -0
  116. package/templates/angular/src/app/components/modus-dropdown-menu.component.ts +108 -0
  117. package/templates/angular/src/app/components/modus-file-dropzone.component.ts +121 -0
  118. package/templates/angular/src/app/components/modus-handle.component.ts +96 -0
  119. package/templates/angular/src/app/components/modus-icon.component.ts +81 -0
  120. package/templates/angular/src/app/components/modus-input-feedback.component.ts +54 -0
  121. package/templates/angular/src/app/components/modus-input-label.component.ts +62 -0
  122. package/templates/angular/src/app/components/modus-loader.component.ts +48 -0
  123. package/templates/angular/src/app/components/modus-logo.component.ts +115 -0
  124. package/templates/angular/src/app/components/modus-menu-item.component.ts +116 -0
  125. package/templates/angular/src/app/components/modus-menu.component.ts +58 -0
  126. package/templates/angular/src/app/components/modus-modal.component.ts +70 -0
  127. package/templates/angular/src/app/components/modus-navbar.component.ts +303 -0
  128. package/templates/angular/src/app/components/modus-number-input.component.ts +174 -0
  129. package/templates/angular/src/app/components/modus-pagination.component.ts +74 -0
  130. package/templates/angular/src/app/components/modus-panel.component.ts +61 -0
  131. package/templates/angular/src/app/components/modus-progress.component.ts +62 -0
  132. package/templates/angular/src/app/components/modus-radio.component.ts +102 -0
  133. package/templates/angular/src/app/components/modus-rating.component.ts +80 -0
  134. package/templates/angular/src/app/components/modus-select.component.ts +131 -0
  135. package/templates/angular/src/app/components/modus-side-navigation.component.ts +90 -0
  136. package/templates/angular/src/app/components/modus-skeleton.component.ts +54 -0
  137. package/templates/angular/src/app/components/modus-slider.component.ts +132 -0
  138. package/templates/angular/src/app/components/modus-stepper.component.ts +65 -0
  139. package/templates/angular/src/app/components/modus-switch.component.ts +118 -0
  140. package/templates/angular/src/app/components/modus-table.component.ts +204 -0
  141. package/templates/angular/src/app/components/modus-tabs.component.ts +82 -0
  142. package/templates/angular/src/app/components/modus-text-input.component.ts +221 -0
  143. package/templates/angular/src/app/components/modus-textarea.component.ts +168 -0
  144. package/templates/angular/src/app/components/modus-theme-switcher.component.ts +45 -0
  145. package/templates/angular/src/app/components/modus-time-input.component.ts +172 -0
  146. package/templates/angular/src/app/components/modus-toast.component.ts +63 -0
  147. package/templates/angular/src/app/components/modus-toolbar.component.ts +43 -0
  148. package/templates/angular/src/app/components/modus-tooltip.component.ts +83 -0
  149. package/templates/angular/src/app/components/modus-typography.component.ts +79 -0
  150. package/templates/angular/src/app/components/modus-utility-panel.component.ts +275 -0
  151. package/templates/angular/src/app/components/theme-demo.component.ts +1242 -0
  152. package/templates/angular/src/app/data/component-demos.ts +360 -0
  153. package/templates/angular/src/app/data/modus-icons.ts +806 -0
  154. package/templates/angular/src/app/demos/accordion/accordion-demo.component.ts +212 -0
  155. package/templates/angular/src/app/demos/alert/alert-demo.component.ts +108 -0
  156. package/templates/angular/src/app/demos/autocomplete/autocomplete-demo.component.ts +174 -0
  157. package/templates/angular/src/app/demos/avatar/avatar-demo.component.ts +149 -0
  158. package/templates/angular/src/app/demos/badge/badge-demo.component.ts +148 -0
  159. package/templates/angular/src/app/demos/breadcrumbs/breadcrumbs-demo.component.ts +96 -0
  160. package/templates/angular/src/app/demos/button/button-demo.component.ts +256 -0
  161. package/templates/angular/src/app/demos/button-group/button-group-demo.component.ts +215 -0
  162. package/templates/angular/src/app/demos/card/card-demo.component.ts +180 -0
  163. package/templates/angular/src/app/demos/checkbox/checkbox-demo.component.ts +71 -0
  164. package/templates/angular/src/app/demos/chip/chip-demo.component.ts +183 -0
  165. package/templates/angular/src/app/demos/date/date-demo.component.ts +193 -0
  166. package/templates/angular/src/app/demos/dropdown/dropdown-demo.component.ts +196 -0
  167. package/templates/angular/src/app/demos/file-dropzone/file-dropzone-demo.component.ts +176 -0
  168. package/templates/angular/src/app/demos/handle/handle-demo.component.ts +265 -0
  169. package/templates/angular/src/app/demos/icon/icon-demo.component.ts +65 -0
  170. package/templates/angular/src/app/demos/input-feedback/input-feedback-demo.component.ts +189 -0
  171. package/templates/angular/src/app/demos/input-label/input-label-demo.component.ts +330 -0
  172. package/templates/angular/src/app/demos/loader/loader-demo.component.ts +143 -0
  173. package/templates/angular/src/app/demos/logo/logo-demo.component.ts +191 -0
  174. package/templates/angular/src/app/demos/menu/menu-demo.component.ts +72 -0
  175. package/templates/angular/src/app/demos/modal/modal-demo.component.ts +278 -0
  176. package/templates/angular/src/app/demos/navbar/navbar-demo.component.ts +135 -0
  177. package/templates/angular/src/app/demos/number-input/number-input-demo.component.ts +175 -0
  178. package/templates/angular/src/app/demos/pagination/pagination-demo.component.ts +134 -0
  179. package/templates/angular/src/app/demos/panel/panel-demo.component.ts +235 -0
  180. package/templates/angular/src/app/demos/progress/progress-demo.component.ts +169 -0
  181. package/templates/angular/src/app/demos/radio/radio-demo.component.ts +161 -0
  182. package/templates/angular/src/app/demos/rating/rating-demo.component.ts +97 -0
  183. package/templates/angular/src/app/demos/select/select-demo.component.ts +107 -0
  184. package/templates/angular/src/app/demos/shared/demo-example-clean.component.ts +41 -0
  185. package/templates/angular/src/app/demos/shared/demo-example.component.ts +42 -0
  186. package/templates/angular/src/app/demos/shared/demo-page.component.ts +97 -0
  187. package/templates/angular/src/app/demos/shared/index.ts +3 -0
  188. package/templates/angular/src/app/demos/side-navigation/side-navigation-demo.component.ts +524 -0
  189. package/templates/angular/src/app/demos/skeleton/skeleton-demo.component.ts +112 -0
  190. package/templates/angular/src/app/demos/slider/slider-demo.component.ts +76 -0
  191. package/templates/angular/src/app/demos/stepper/stepper-demo.component.ts +79 -0
  192. package/templates/angular/src/app/demos/switch/switch-demo.component.ts +113 -0
  193. package/templates/angular/src/app/demos/table/table-demo.component.ts +405 -0
  194. package/templates/angular/src/app/demos/tabs/tabs-demo.component.ts +318 -0
  195. package/templates/angular/src/app/demos/text-input/text-input-demo.component.ts +160 -0
  196. package/templates/angular/src/app/demos/textarea/textarea-demo.component.ts +95 -0
  197. package/templates/angular/src/app/demos/theme-switcher/theme-switcher-demo.component.ts +38 -0
  198. package/templates/angular/src/app/demos/time-input/time-input-demo.component.ts +130 -0
  199. package/templates/angular/src/app/demos/toast/toast-demo.component.ts +258 -0
  200. package/templates/angular/src/app/demos/toolbar/toolbar-demo.component.ts +54 -0
  201. package/templates/angular/src/app/demos/tooltip/tooltip-demo.component.ts +163 -0
  202. package/templates/angular/src/app/demos/utility-panel/utility-panel-demo.component.ts +197 -0
  203. package/templates/angular/src/app/dev/dev-config.ts +119 -0
  204. package/templates/angular/src/app/dev/dev-panel/dev-panel.component.ts +215 -0
  205. package/templates/angular/src/app/dev/dev-panel.service.ts +63 -0
  206. package/templates/angular/src/app/dev/index.ts +8 -0
  207. package/templates/angular/src/app/dev/theme-switcher-dropdown/theme-switcher-dropdown.component.ts +134 -0
  208. package/templates/angular/src/app/dev-pages/color-palette/color-palette.component.ts +229 -0
  209. package/templates/angular/src/app/dev-pages/components-gallery/components-gallery.component.ts +486 -0
  210. package/templates/angular/src/app/dev-pages/icons/icons.component.ts +149 -0
  211. package/templates/angular/src/app/pages/home/home.component.ts +251 -0
  212. package/templates/angular/src/app/services/README.md +57 -0
  213. package/templates/angular/src/app/services/theme.service.ts +163 -0
  214. package/templates/angular/src/environments/environment.development.ts +8 -0
  215. package/templates/angular/src/environments/environment.ts +8 -0
  216. package/templates/angular/src/index.html +14 -0
  217. package/templates/angular/src/main.ts +6 -0
  218. package/templates/angular/src/styles.css +1328 -0
  219. package/templates/angular/tsconfig.app.json +15 -0
  220. package/templates/angular/tsconfig.json +35 -0
  221. package/templates/angular/tsconfig.spec.json +14 -0
  222. package/templates/config.json +23 -0
  223. package/templates/react/.cursor/commands/remove-dev-content.md +311 -0
  224. package/templates/react/.cursor/mcp.json +13 -0
  225. package/templates/react/.cursor/rules/README.md +240 -0
  226. package/templates/react/.cursor/rules/border-usage-guidelines-short.mdc +22 -0
  227. package/templates/react/.cursor/rules/border-usage-guidelines.mdc +380 -0
  228. package/templates/react/.cursor/rules/chrome-devtools-testing-react-short.mdc +23 -0
  229. package/templates/react/.cursor/rules/development-workflow-react-short.mdc +23 -0
  230. package/templates/react/.cursor/rules/development-workflow-react.mdc +292 -0
  231. package/templates/react/.cursor/rules/implementation-guides-react-short.mdc +23 -0
  232. package/templates/react/.cursor/rules/implementation-guides-react.mdc +446 -0
  233. package/templates/react/.cursor/rules/modus-accordion-state-management-react-short.mdc +23 -0
  234. package/templates/react/.cursor/rules/modus-accordion-state-management-react.mdc +445 -0
  235. package/templates/react/.cursor/rules/modus-button-group-usage-react-short.mdc +23 -0
  236. package/templates/react/.cursor/rules/modus-button-group-usage-react.mdc +117 -0
  237. package/templates/react/.cursor/rules/modus-checkbox-value-inversion-react-short.mdc +23 -0
  238. package/templates/react/.cursor/rules/modus-checkbox-value-inversion-react.mdc +492 -0
  239. package/templates/react/.cursor/rules/modus-color-usage-react-short.mdc +23 -0
  240. package/templates/react/.cursor/rules/modus-color-usage-react.mdc +420 -0
  241. package/templates/react/.cursor/rules/modus-components-reference.mdc +366 -0
  242. package/templates/react/.cursor/rules/modus-icon-names.mdc +63 -0
  243. package/templates/react/.cursor/rules/modus-icons-react-short.mdc +24 -0
  244. package/templates/react/.cursor/rules/modus-icons-react.mdc +402 -0
  245. package/templates/react/.cursor/rules/modus-modal-implementation-react-short.mdc +23 -0
  246. package/templates/react/.cursor/rules/modus-modal-implementation-react.mdc +831 -0
  247. package/templates/react/.cursor/rules/modus-navbar-side-navigation-react-short.mdc +23 -0
  248. package/templates/react/.cursor/rules/modus-navbar-side-navigation-react.mdc +247 -0
  249. package/templates/react/.cursor/rules/modus-no-emojis-react-short.mdc +23 -0
  250. package/templates/react/.cursor/rules/modus-opacity-utilities-react-short.mdc +70 -0
  251. package/templates/react/.cursor/rules/modus-opacity-utilities-react.mdc +208 -0
  252. package/templates/react/.cursor/rules/modus-react-best-practices-short.mdc +23 -0
  253. package/templates/react/.cursor/rules/modus-react-best-practices.mdc +508 -0
  254. package/templates/react/.cursor/rules/modus-react-essentials.mdc +209 -0
  255. package/templates/react/.cursor/rules/modus-react-integration-short.mdc +23 -0
  256. package/templates/react/.cursor/rules/modus-react-integration.mdc +509 -0
  257. package/templates/react/.cursor/rules/modus-react-key-warnings-short.mdc +23 -0
  258. package/templates/react/.cursor/rules/modus-react-key-warnings.mdc +805 -0
  259. package/templates/react/.cursor/rules/modus-react-master.mdc +160 -0
  260. package/templates/react/.cursor/rules/modus-select-vs-dropdown-menu-react-short.mdc +23 -0
  261. package/templates/react/.cursor/rules/modus-select-vs-dropdown-menu-react.mdc +442 -0
  262. package/templates/react/.cursor/rules/modus-semantic-html-react-short.mdc +23 -0
  263. package/templates/react/.cursor/rules/modus-semantic-html-react.mdc +427 -0
  264. package/templates/react/.cursor/rules/modus-tailwind-usage-react-short.mdc +23 -0
  265. package/templates/react/.cursor/rules/modus-tailwind-usage-react.mdc +642 -0
  266. package/templates/react/.cursor/rules/modus-themes-react-short.mdc +23 -0
  267. package/templates/react/.cursor/rules/modus-themes-react.mdc +506 -0
  268. package/templates/react/.cursor/rules/ux/gestalt-laws-detailed.mdc +456 -0
  269. package/templates/react/.cursor/rules/ux/ux-ui-foundations.mdc +211 -0
  270. package/templates/react/.cursor/skills/create-modus-form-component/SKILL.md +518 -0
  271. package/templates/react/.cursor/skills/create-modus-wrapper-component/SKILL.md +252 -0
  272. package/templates/react/.cursor/skills/fix-modus-component-event-issues/SKILL.md +345 -0
  273. package/templates/react/.cursor/skills/handle-modus-checkbox-value-bug/SKILL.md +202 -0
  274. package/templates/react/.cursor/skills/implement-modus-modal-with-refs/SKILL.md +386 -0
  275. package/templates/react/.cursor/skills/integrate-modus-icons/SKILL.md +300 -0
  276. package/templates/react/.cursor/skills/run-lint-checks/SKILL.md +235 -0
  277. package/templates/react/.cursor/skills/set-up-modus-event-listeners/SKILL.md +284 -0
  278. package/templates/react/.cursor/skills/style-modus-components-with-tailwind/SKILL.md +382 -0
  279. package/templates/react/.env.development +3 -0
  280. package/templates/react/.env.production +3 -0
  281. package/templates/react/.github/CODEOWNERS +28 -0
  282. package/templates/react/.github/ISSUE_TEMPLATE/bug_report.yml +176 -0
  283. package/templates/react/.github/ISSUE_TEMPLATE/config.yml +20 -0
  284. package/templates/react/.github/ISSUE_TEMPLATE/documentation.yml +115 -0
  285. package/templates/react/.github/ISSUE_TEMPLATE/feature_request.yml +171 -0
  286. package/templates/react/.github/ISSUE_TEMPLATE/question.yml +139 -0
  287. package/templates/react/.github/copilot-instructions.md +80 -0
  288. package/templates/react/.github/instructions/components.instructions.md +82 -0
  289. package/templates/react/.github/instructions/demos.instructions.md +82 -0
  290. package/templates/react/.github/instructions/pages.instructions.md +76 -0
  291. package/templates/react/.github/instructions/styles.instructions.md +77 -0
  292. package/templates/react/.github/instructions/typescript.instructions.md +101 -0
  293. package/templates/react/.github/pull_request_template.md +188 -0
  294. package/templates/react/.github/workflows/ci.yml +43 -0
  295. package/templates/react/.github/workflows/claude-code-review.yml +44 -0
  296. package/templates/react/.github/workflows/claude.yml +50 -0
  297. package/templates/react/.husky/pre-commit +28 -0
  298. package/templates/react/.vscode/extensions.json +8 -0
  299. package/templates/react/CLAUDE.md +119 -0
  300. package/templates/react/CODE_OF_CONDUCT.md +79 -0
  301. package/templates/react/CONTRIBUTING.md +65 -0
  302. package/templates/react/LICENSE +21 -0
  303. package/templates/react/README.md +728 -0
  304. package/templates/react/SECURITY.md +50 -0
  305. package/templates/react/eslint.config.js +23 -0
  306. package/templates/react/index.html +13 -0
  307. package/templates/react/package-lock.json +5209 -0
  308. package/templates/react/package.json +49 -0
  309. package/templates/react/postcss.config.js +6 -0
  310. package/templates/react/public/react.svg +1 -0
  311. package/templates/react/public/vite.svg +1 -0
  312. package/templates/react/readme_assets/getting_started_header.png +0 -0
  313. package/templates/react/readme_assets/hero.png +0 -0
  314. package/templates/react/readme_assets/modus_comp.png +0 -0
  315. package/templates/react/readme_assets/modus_figma_mcp.png +0 -0
  316. package/templates/react/readme_assets/teaser_comp.gif +0 -0
  317. package/templates/react/scripts/README.md +343 -0
  318. package/templates/react/scripts/check-border-violations.js +483 -0
  319. package/templates/react/scripts/check-icon-names.js +486 -0
  320. package/templates/react/scripts/check-inline-styles.js +364 -0
  321. package/templates/react/scripts/check-modus-colors.js +247 -0
  322. package/templates/react/scripts/check-modus-icons.js +256 -0
  323. package/templates/react/scripts/check-opacity-utilities.js +481 -0
  324. package/templates/react/scripts/check-semantic-html.js +476 -0
  325. package/templates/react/scripts/check-typescript.js +109 -0
  326. package/templates/react/src/App.css +42 -0
  327. package/templates/react/src/App.tsx +54 -0
  328. package/templates/react/src/assets/react.svg +1 -0
  329. package/templates/react/src/components/DemoExample.tsx +61 -0
  330. package/templates/react/src/components/DemoPage.tsx +81 -0
  331. package/templates/react/src/components/ModusAccordion.tsx +89 -0
  332. package/templates/react/src/components/ModusAlert.tsx +85 -0
  333. package/templates/react/src/components/ModusAutocomplete.tsx +207 -0
  334. package/templates/react/src/components/ModusAvatar.tsx +50 -0
  335. package/templates/react/src/components/ModusBadge.tsx +82 -0
  336. package/templates/react/src/components/ModusBreadcrumbs.tsx +75 -0
  337. package/templates/react/src/components/ModusButton.tsx +244 -0
  338. package/templates/react/src/components/ModusButtonGroup.tsx +91 -0
  339. package/templates/react/src/components/ModusCard.tsx +70 -0
  340. package/templates/react/src/components/ModusCheckbox.tsx +168 -0
  341. package/templates/react/src/components/ModusChip.tsx +93 -0
  342. package/templates/react/src/components/ModusDate.tsx +154 -0
  343. package/templates/react/src/components/ModusDropdownMenu.tsx +148 -0
  344. package/templates/react/src/components/ModusFileDropzone.tsx +140 -0
  345. package/templates/react/src/components/ModusHandle.tsx +101 -0
  346. package/templates/react/src/components/ModusIcon.tsx +49 -0
  347. package/templates/react/src/components/ModusInputFeedback.tsx +52 -0
  348. package/templates/react/src/components/ModusInputLabel.tsx +50 -0
  349. package/templates/react/src/components/ModusLoader.tsx +42 -0
  350. package/templates/react/src/components/ModusLogo.tsx +102 -0
  351. package/templates/react/src/components/ModusMenu.tsx +119 -0
  352. package/templates/react/src/components/ModusMenuItem.tsx +86 -0
  353. package/templates/react/src/components/ModusModal.tsx +145 -0
  354. package/templates/react/src/components/ModusNavbar.tsx +504 -0
  355. package/templates/react/src/components/ModusNumberInput.tsx +230 -0
  356. package/templates/react/src/components/ModusPagination.tsx +94 -0
  357. package/templates/react/src/components/ModusPanel.tsx +92 -0
  358. package/templates/react/src/components/ModusProgress.tsx +70 -0
  359. package/templates/react/src/components/ModusProvider.tsx +18 -0
  360. package/templates/react/src/components/ModusRadio.tsx +114 -0
  361. package/templates/react/src/components/ModusRating.tsx +108 -0
  362. package/templates/react/src/components/ModusSelect.tsx +171 -0
  363. package/templates/react/src/components/ModusSideNavigation.tsx +149 -0
  364. package/templates/react/src/components/ModusSkeleton.tsx +42 -0
  365. package/templates/react/src/components/ModusSlider.tsx +128 -0
  366. package/templates/react/src/components/ModusStepper.tsx +85 -0
  367. package/templates/react/src/components/ModusSwitch.tsx +130 -0
  368. package/templates/react/src/components/ModusTable.tsx +309 -0
  369. package/templates/react/src/components/ModusTabs.tsx +114 -0
  370. package/templates/react/src/components/ModusTextInput.tsx +179 -0
  371. package/templates/react/src/components/ModusTextarea.tsx +164 -0
  372. package/templates/react/src/components/ModusThemeSwitcher.tsx +58 -0
  373. package/templates/react/src/components/ModusTimeInput.tsx +176 -0
  374. package/templates/react/src/components/ModusToast.tsx +207 -0
  375. package/templates/react/src/components/ModusToolbar.tsx +70 -0
  376. package/templates/react/src/components/ModusTooltip.tsx +97 -0
  377. package/templates/react/src/components/ModusUtilityPanel.tsx +198 -0
  378. package/templates/react/src/components/ThemeSwitcherDropdown.tsx +117 -0
  379. package/templates/react/src/components/ThemeToggleSimple.tsx +157 -0
  380. package/templates/react/src/config/routes.ts +196 -0
  381. package/templates/react/src/contexts/ThemeContext.tsx +81 -0
  382. package/templates/react/src/contexts/ThemeContextData.tsx +89 -0
  383. package/templates/react/src/data/modusIcons.ts +865 -0
  384. package/templates/react/src/demos/accordion-demo/page.tsx +236 -0
  385. package/templates/react/src/demos/alert-demo/page.tsx +94 -0
  386. package/templates/react/src/demos/autocomplete-demo/page.tsx +166 -0
  387. package/templates/react/src/demos/avatar-demo/page.tsx +135 -0
  388. package/templates/react/src/demos/badge-demo/page.tsx +174 -0
  389. package/templates/react/src/demos/breadcrumbs-demo/page.tsx +88 -0
  390. package/templates/react/src/demos/button-demo/page.tsx +261 -0
  391. package/templates/react/src/demos/button-group-demo/page.tsx +231 -0
  392. package/templates/react/src/demos/card-demo/page.tsx +241 -0
  393. package/templates/react/src/demos/checkbox-demo/page.tsx +79 -0
  394. package/templates/react/src/demos/chip-demo/page.tsx +197 -0
  395. package/templates/react/src/demos/date-demo/page.tsx +179 -0
  396. package/templates/react/src/demos/dropdown-demo/page.tsx +150 -0
  397. package/templates/react/src/demos/file-dropzone-demo/page.tsx +186 -0
  398. package/templates/react/src/demos/handle-demo/page.tsx +313 -0
  399. package/templates/react/src/demos/icon-demo/page.tsx +72 -0
  400. package/templates/react/src/demos/input-feedback-demo/page.tsx +202 -0
  401. package/templates/react/src/demos/input-label-demo/page.tsx +392 -0
  402. package/templates/react/src/demos/loader-demo/page.tsx +138 -0
  403. package/templates/react/src/demos/logo-demo/page.tsx +292 -0
  404. package/templates/react/src/demos/menu-demo/page.tsx +70 -0
  405. package/templates/react/src/demos/modal-demo/page.tsx +332 -0
  406. package/templates/react/src/demos/navbar-demo/page.tsx +141 -0
  407. package/templates/react/src/demos/number-input-demo/page.tsx +180 -0
  408. package/templates/react/src/demos/pagination-demo/page.tsx +147 -0
  409. package/templates/react/src/demos/panel-demo/page.tsx +376 -0
  410. package/templates/react/src/demos/progress-demo/page.tsx +185 -0
  411. package/templates/react/src/demos/radio-demo/page.tsx +242 -0
  412. package/templates/react/src/demos/rating-demo/page.tsx +97 -0
  413. package/templates/react/src/demos/select-demo/page.tsx +111 -0
  414. package/templates/react/src/demos/side-navigation-demo/page.tsx +775 -0
  415. package/templates/react/src/demos/skeleton-demo/page.tsx +107 -0
  416. package/templates/react/src/demos/slider-demo/page.tsx +78 -0
  417. package/templates/react/src/demos/stepper-demo/page.tsx +86 -0
  418. package/templates/react/src/demos/switch-demo/page.tsx +146 -0
  419. package/templates/react/src/demos/table-demo/page.tsx +489 -0
  420. package/templates/react/src/demos/tabs-demo/page.tsx +187 -0
  421. package/templates/react/src/demos/text-input-demo/page.tsx +151 -0
  422. package/templates/react/src/demos/textarea-demo/page.tsx +73 -0
  423. package/templates/react/src/demos/theme-switcher-demo/page.tsx +26 -0
  424. package/templates/react/src/demos/time-input-demo/page.tsx +148 -0
  425. package/templates/react/src/demos/toast-demo/page.tsx +302 -0
  426. package/templates/react/src/demos/toolbar-demo/page.tsx +49 -0
  427. package/templates/react/src/demos/tooltip-demo/page.tsx +209 -0
  428. package/templates/react/src/demos/typography-test/page.tsx +28 -0
  429. package/templates/react/src/demos/utility-panel-demo/page.tsx +197 -0
  430. package/templates/react/src/dev/DevPanel.tsx +219 -0
  431. package/templates/react/src/dev/DevPanelContext.ts +14 -0
  432. package/templates/react/src/dev/DevPanelProvider.tsx +63 -0
  433. package/templates/react/src/dev/DevRoutes.tsx +98 -0
  434. package/templates/react/src/dev/config.ts +127 -0
  435. package/templates/react/src/dev/index.ts +8 -0
  436. package/templates/react/src/dev/useDevPanel.ts +17 -0
  437. package/templates/react/src/dev-pages/ColorPalettePage.tsx +347 -0
  438. package/templates/react/src/dev-pages/ComponentsGalleryPage.tsx +489 -0
  439. package/templates/react/src/dev-pages/IconsPage.tsx +137 -0
  440. package/templates/react/src/dev-pages/index.ts +3 -0
  441. package/templates/react/src/hooks/useTheme.ts +15 -0
  442. package/templates/react/src/index.css +635 -0
  443. package/templates/react/src/main.tsx +14 -0
  444. package/templates/react/src/pages/HomePage.tsx +283 -0
  445. package/templates/react/src/vite-env.d.ts +9 -0
  446. package/templates/react/tailwind.config.js +58 -0
  447. package/templates/react/tsconfig.app.json +27 -0
  448. package/templates/react/tsconfig.json +7 -0
  449. package/templates/react/tsconfig.node.json +25 -0
  450. package/templates/react/vite.config.ts +18 -0
@@ -0,0 +1,15 @@
1
+ /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2
+ /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3
+ {
4
+ "extends": "./tsconfig.json",
5
+ "compilerOptions": {
6
+ "outDir": "./out-tsc/app",
7
+ "types": []
8
+ },
9
+ "include": [
10
+ "src/**/*.ts"
11
+ ],
12
+ "exclude": [
13
+ "src/**/*.spec.ts"
14
+ ]
15
+ }
@@ -0,0 +1,35 @@
1
+ /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2
+ /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3
+ {
4
+ "compileOnSave": false,
5
+ "compilerOptions": {
6
+ "strict": true,
7
+ "noImplicitOverride": true,
8
+ "noPropertyAccessFromIndexSignature": true,
9
+ "noImplicitReturns": true,
10
+ "noFallthroughCasesInSwitch": true,
11
+ "skipLibCheck": true,
12
+ "isolatedModules": true,
13
+ "experimentalDecorators": true,
14
+ "importHelpers": true,
15
+ "target": "ES2022",
16
+ "module": "esnext",
17
+ "moduleResolution": "bundler"
18
+ },
19
+ "angularCompilerOptions": {
20
+ "enableI18nLegacyMessageIdFormat": false,
21
+ "strictInjectionParameters": true,
22
+ "strictInputAccessModifiers": true,
23
+ "typeCheckHostBindings": true,
24
+ "strictTemplates": true
25
+ },
26
+ "files": [],
27
+ "references": [
28
+ {
29
+ "path": "./tsconfig.app.json"
30
+ },
31
+ {
32
+ "path": "./tsconfig.spec.json"
33
+ }
34
+ ]
35
+ }
@@ -0,0 +1,14 @@
1
+ /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2
+ /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3
+ {
4
+ "extends": "./tsconfig.json",
5
+ "compilerOptions": {
6
+ "outDir": "./out-tsc/spec",
7
+ "types": [
8
+ "jasmine"
9
+ ]
10
+ },
11
+ "include": [
12
+ "src/**/*.ts"
13
+ ]
14
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "frameworks": {
3
+ "react": {
4
+ "name": "React + Vite + Modus 2.0 Components",
5
+ "description": "Theming + Icons + MCP + Skills",
6
+ "supportsTypeScript": true,
7
+ "badge": "●",
8
+ "note": "Most Popular"
9
+ },
10
+ "angular": {
11
+ "name": "Angular + Modus 2.0 Web Components",
12
+ "description": "Theming + Icons + MCP + Skills",
13
+ "supportsTypeScript": true,
14
+ "badge": "■",
15
+ "note": "Enterprise Grade"
16
+ }
17
+ },
18
+ "meta": {
19
+ "configVersion": "2.0.0",
20
+ "templatesIncluded": true,
21
+ "lastUpdated": "2026-01-28"
22
+ }
23
+ }
@@ -0,0 +1,311 @@
1
+ # Remove Dev Content
2
+
3
+ Remove all development and exploration content from this Modus React app, preparing it for production use while keeping all core Modus wrapper components intact.
4
+
5
+ ## Overview
6
+
7
+ This command removes:
8
+ - Dev Panel (floating development panel)
9
+ - All 48 component demo pages
10
+ - Reference pages (colors, icons, components gallery)
11
+ - Dev-only helper components
12
+ - Icon reference data (`src/data/modusIcons.ts`)
13
+
14
+ And updates:
15
+ - Icon names validation script to handle missing icon reference file gracefully
16
+
17
+ While preserving:
18
+ - All 45 Modus wrapper components
19
+ - Theme system (ThemeProvider, useTheme)
20
+ - Core infrastructure (ModusProvider, main.tsx, index.css)
21
+
22
+ ---
23
+
24
+ ## Step 1: Delete Entire Directories
25
+
26
+ Remove these directories completely:
27
+
28
+ ```
29
+ src/demos/ # 48 component demo pages
30
+ src/dev/ # Dev panel infrastructure
31
+ src/dev-pages/ # Colors, Icons, Components gallery pages
32
+ src/data/ # modusIcons.ts (only used by IconsPage)
33
+ src/config/ # Deprecated routes.ts
34
+ ```
35
+
36
+ ---
37
+
38
+ ## Step 2: Delete Dev-Only Files from src/components/
39
+
40
+ Remove these 4 files from `src/components/`:
41
+
42
+ ```
43
+ src/components/DemoPage.tsx
44
+ src/components/DemoExample.tsx
45
+ src/components/ThemeSwitcherDropdown.tsx
46
+ src/components/ThemeToggleSimple.tsx
47
+ ```
48
+
49
+ ---
50
+
51
+ ## Step 3: Update src/App.tsx
52
+
53
+ Remove all dev panel imports and usage. The file should become:
54
+
55
+ ```tsx
56
+ import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
57
+ import ModusProvider from "./components/ModusProvider";
58
+ import { ThemeProvider } from "./contexts/ThemeContext";
59
+
60
+ // Your pages
61
+ import HomePage from "./pages/HomePage";
62
+
63
+ /**
64
+ * Main Application Component.
65
+ *
66
+ * Structure:
67
+ * - ThemeProvider: Manages Modus themes (6 themes available)
68
+ * - ModusProvider: Provides Modus Web Components CSS
69
+ * - Router: React Router for navigation
70
+ *
71
+ * Add your routes below.
72
+ */
73
+ function App() {
74
+ return (
75
+ <ThemeProvider>
76
+ <ModusProvider>
77
+ <Router>
78
+ <Routes>
79
+ {/* Your application routes */}
80
+ <Route path="/" element={<HomePage />} />
81
+ {/* Example: <Route path="/about" element={<AboutPage />} /> */}
82
+ </Routes>
83
+ </Router>
84
+ </ModusProvider>
85
+ </ThemeProvider>
86
+ );
87
+ }
88
+
89
+ export default App;
90
+ ```
91
+
92
+ **What was removed:**
93
+ - Import: `import { DevPanelProvider, DevPanel, DevRoutes, isDevPanelEnabled } from "./dev";`
94
+ - Variable: `const showDevPanel = isDevPanelEnabled();`
95
+ - Component: `<DevPanelProvider>` wrapper
96
+ - Route: `{showDevPanel && <Route path="/dev/*" element={<DevRoutes />} />}`
97
+ - Component: `{showDevPanel && <DevPanel />}`
98
+
99
+ ---
100
+
101
+ ## Step 4: Update src/pages/HomePage.tsx
102
+
103
+ Remove all Dev Panel references from the HomePage. Specifically remove:
104
+
105
+ 1. The "Open Dev Panel" button (the ModusButton that dispatches a keyboard event)
106
+ 2. The "Use the Dev Panel" getting started item mentioning Ctrl+Shift+D
107
+ 3. Any references to the Dev Panel keyboard shortcut
108
+
109
+ Keep the overall page structure as a starting template for the user's app.
110
+
111
+ **Example of cleaned HomePage structure:**
112
+
113
+ ```tsx
114
+ import ModusButton from "../components/ModusButton";
115
+
116
+ export default function HomePage() {
117
+ return (
118
+ <div className="min-h-screen flex flex-col bg-background">
119
+ <div className="flex-1 flex flex-col items-center p-8">
120
+ <div className="max-w-4xl w-full space-y-8">
121
+ {/* Header */}
122
+ <div className="text-center space-y-4">
123
+ <div className="flex items-center justify-center gap-3">
124
+ <i className="modus-icons text-5xl text-primary">launch</i>
125
+ </div>
126
+ <div className="text-4xl font-bold text-foreground">
127
+ Modus React App
128
+ </div>
129
+ <div className="text-xl text-foreground-60">
130
+ A production-ready React boilerplate with Modus Design System
131
+ integration.
132
+ </div>
133
+ </div>
134
+
135
+ {/* Getting Started - without Dev Panel references */}
136
+ <div className="bg-card border-default rounded-lg p-6 space-y-4">
137
+ <div className="text-lg font-semibold text-foreground">
138
+ Getting Started
139
+ </div>
140
+ <div className="space-y-4 text-foreground-80">
141
+ <div className="flex gap-3">
142
+ <div className="flex-shrink-0 w-6 h-6 rounded-full bg-primary text-primary-foreground flex items-center justify-center text-sm font-bold">
143
+ 1
144
+ </div>
145
+ <div>
146
+ <div className="font-medium text-foreground">
147
+ Build Your App
148
+ </div>
149
+ <div className="text-sm text-foreground-60">
150
+ Start developing in src/pages/ - add your routes in App.tsx.
151
+ </div>
152
+ </div>
153
+ </div>
154
+ <div className="flex gap-3">
155
+ <div className="flex-shrink-0 w-6 h-6 rounded-full bg-primary text-primary-foreground flex items-center justify-center text-sm font-bold">
156
+ 2
157
+ </div>
158
+ <div>
159
+ <div className="font-medium text-foreground">
160
+ Use Modus Components
161
+ </div>
162
+ <div className="text-sm text-foreground-60">
163
+ Import components from src/components/ to build your UI.
164
+ </div>
165
+ </div>
166
+ </div>
167
+ <div className="flex gap-3">
168
+ <div className="flex-shrink-0 w-6 h-6 rounded-full bg-primary text-primary-foreground flex items-center justify-center text-sm font-bold">
169
+ 3
170
+ </div>
171
+ <div>
172
+ <div className="font-medium text-foreground">Deploy</div>
173
+ <div className="text-sm text-foreground-60">
174
+ Run npm run build for a production-ready bundle.
175
+ </div>
176
+ </div>
177
+ </div>
178
+ </div>
179
+ </div>
180
+
181
+ {/* Keep other sections as needed */}
182
+ </div>
183
+ </div>
184
+ </div>
185
+ );
186
+ }
187
+ ```
188
+
189
+ ---
190
+
191
+ ## Step 5: Update Icon Names Validation Script
192
+
193
+ Since `src/data/modusIcons.ts` is deleted (it was only used by the dev panel's IconsPage), we need to update the icon names validation script to handle the missing file gracefully.
194
+
195
+ Update `scripts/check-icon-names.js` to check if the file exists before reading it:
196
+
197
+ **Find this section near the top of the file:**
198
+
199
+ ```javascript
200
+ import fs from "fs";
201
+ import path from "path";
202
+ import { glob } from "glob";
203
+
204
+ // Read and parse the Modus icons data from TypeScript file
205
+ const iconsContent = fs.readFileSync(
206
+ path.join(process.cwd(), "src/data/modusIcons.ts"),
207
+ "utf8"
208
+ );
209
+ ```
210
+
211
+ **Replace it with:**
212
+
213
+ ```javascript
214
+ import fs from "fs";
215
+ import path from "path";
216
+ import { glob } from "glob";
217
+
218
+ // Colors for console output
219
+ const colors = {
220
+ red: "\x1b[31m",
221
+ green: "\x1b[32m",
222
+ yellow: "\x1b[33m",
223
+ blue: "\x1b[34m",
224
+ magenta: "\x1b[35m",
225
+ cyan: "\x1b[36m",
226
+ white: "\x1b[37m",
227
+ reset: "\x1b[0m",
228
+ bold: "\x1b[1m",
229
+ dim: "\x1b[2m",
230
+ };
231
+
232
+ // Check if modusIcons.ts exists (it may have been removed in production builds)
233
+ const iconsFilePath = path.join(process.cwd(), "src/data/modusIcons.ts");
234
+ if (!fs.existsSync(iconsFilePath)) {
235
+ console.log(
236
+ `${colors.bold}${colors.yellow}⚠️ Icon names validation skipped:${colors.reset}`
237
+ );
238
+ console.log(
239
+ `${colors.dim}The icon reference file (src/data/modusIcons.ts) is not present.${colors.reset}`
240
+ );
241
+ console.log(
242
+ `${colors.dim}This is normal if dev content has been removed.${colors.reset}\n`
243
+ );
244
+ process.exit(0);
245
+ }
246
+
247
+ // Read and parse the Modus icons data from TypeScript file
248
+ const iconsContent = fs.readFileSync(iconsFilePath, "utf8");
249
+ ```
250
+
251
+ **Also remove the duplicate colors definition** that appears later in the file (around line 46-58), since we've moved it to the top.
252
+
253
+ **What this does:**
254
+ - Moves the `colors` object definition to the top (before it's used)
255
+ - Checks if `modusIcons.ts` exists before trying to read it
256
+ - Gracefully skips validation with an informative message if the file is missing
257
+ - Exits with code 0 (success) so `npm run lint:all` continues without errors
258
+
259
+ ---
260
+
261
+ ## Files to KEEP (Do Not Touch)
262
+
263
+ These are core production files that must remain:
264
+
265
+ ### Modus Wrapper Components (45 files in src/components/)
266
+ - `ModusAccordion.tsx` through `ModusUtilityPanel.tsx`
267
+ - `ModusProvider.tsx` (required for Modus CSS)
268
+
269
+ ### Theme System
270
+ - `src/contexts/ThemeContext.tsx`
271
+ - `src/contexts/ThemeContextData.tsx`
272
+ - `src/hooks/useTheme.ts`
273
+
274
+ ### Core Infrastructure
275
+ - `src/main.tsx`
276
+ - `src/index.css`
277
+ - `src/App.css`
278
+ - `src/vite-env.d.ts`
279
+
280
+ ### Configuration
281
+ - `vite.config.ts`
282
+ - `package.json`
283
+ - `tsconfig.json` and related
284
+ - `.env.development` / `.env.production`
285
+
286
+ ### Cursor Rules and Skills
287
+ - `.cursor/rules/` (all files)
288
+ - `.cursor/skills/` (all files)
289
+
290
+ ---
291
+
292
+ ## Verification Checklist
293
+
294
+ After removal, verify:
295
+
296
+ - [ ] `npm run dev` starts without errors
297
+ - [ ] `npm run build` completes successfully
298
+ - [ ] `npm run type-check` passes without errors
299
+ - [ ] `npm run lint:all` completes successfully (icon names validation will skip gracefully)
300
+ - [ ] No import errors in App.tsx
301
+ - [ ] HomePage renders without Dev Panel button
302
+ - [ ] All Modus wrapper components are still present
303
+ - [ ] Theme switching still works (if you kept ThemeSwitcher component usage)
304
+
305
+ ---
306
+
307
+ ## Notes
308
+
309
+ - The Dev Panel is automatically hidden in production builds anyway (controlled by VITE_DEV_PANEL env var)
310
+ - This command is for users who want a clean codebase without any dev exploration code
311
+ - All Modus wrapper components remain fully functional for building your app
@@ -0,0 +1,13 @@
1
+ {
2
+ "mcpServers": {
3
+ "context7": {
4
+ "url": "https://mcp.context7.com/mcp",
5
+ "headers": {}
6
+ },
7
+
8
+ "modus-docs": {
9
+ "command": "npx",
10
+ "args": ["-y", "@julianoczkowski/mcp-modus"]
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,240 @@
1
+ # Cursor Rules Index
2
+
3
+ This directory contains all Cursor rules for the Modus React application. Rules provide persistent, reusable context to guide AI assistance.
4
+
5
+ ## Rule Structure
6
+
7
+ ### Rule Types
8
+
9
+ We use a **short/full rule pattern** for optimal performance and clarity:
10
+
11
+ 1. **Short Rules** (`*-short.mdc`):
12
+ - `alwaysApply: true` - Always included in chat context
13
+ - Concise summaries (<50 lines)
14
+ - Essential patterns only
15
+ - Reference full rules for details
16
+
17
+ 2. **Full Rules** (`*.mdc` without `-short`):
18
+ - `alwaysApply: false` - Apply intelligently based on context
19
+ - Detailed patterns and examples (<500 lines recommended)
20
+ - Comprehensive guidance
21
+ - Activated by file patterns (`globs`) or description matching
22
+
23
+ ### Rule Application
24
+
25
+ Rules are applied in this order (per Cursor documentation):
26
+
27
+ 1. **Team Rules** (if applicable)
28
+ 2. **Project Rules** (this directory)
29
+ - Always Apply rules (`alwaysApply: true`)
30
+ - Apply Intelligently rules (`alwaysApply: false` with descriptions)
31
+ - Apply to Specific Files (via `globs` patterns)
32
+ 3. **User Rules** (global preferences)
33
+
34
+ ### Rule File Format
35
+
36
+ All rules use frontmatter metadata:
37
+
38
+ ```yaml
39
+ ---
40
+ description: Brief contextual description for intelligent application
41
+ globs: ["**/*.tsx", "**/*.ts"] # File patterns that trigger this rule
42
+ alwaysApply: false # true = always apply, false = apply intelligently
43
+ ---
44
+ ```
45
+
46
+ ## Rule Categories
47
+
48
+ ### Component-Specific Rules
49
+
50
+ Rules for specific Modus components with targeted file patterns:
51
+
52
+ | Rule | Short | Full | Description |
53
+ |------|-------|------|-------------|
54
+ | Accordion | `modus-accordion-state-management-react-short.mdc` | `modus-accordion-state-management-react.mdc` | State management patterns |
55
+ | Button Group | `modus-button-group-usage-react-short.mdc` | `modus-button-group-usage-react.mdc` | Button group styling patterns |
56
+ | Checkbox | `modus-checkbox-value-inversion-react-short.mdc` | `modus-checkbox-value-inversion-react.mdc` | Value inversion bug handling |
57
+ | Modal | `modus-modal-implementation-react-short.mdc` | `modus-modal-implementation-react.mdc` | Modal implementation patterns |
58
+ | Navbar + Side Nav | `modus-navbar-side-navigation-react-short.mdc` | `modus-navbar-side-navigation-react.mdc` | Navigation integration |
59
+ | Select/Dropdown | `modus-select-vs-dropdown-menu-react-short.mdc` | `modus-select-vs-dropdown-menu-react.mdc` | Dropdown menu patterns |
60
+
61
+ **Globs Pattern**: `["**/components/Modus[Component]*.tsx", "**/demos/**/page.tsx"]`
62
+
63
+ ### Design System Rules
64
+
65
+ Rules for design system usage (colors, icons, borders, etc.):
66
+
67
+ | Rule | Short | Full | Description |
68
+ |------|-------|------|-------------|
69
+ | Colors | `modus-color-usage-react-short.mdc` | `modus-color-usage-react.mdc` | Color system usage |
70
+ | Icons | `modus-icons-react-short.mdc` | `modus-icons-react.mdc` | Icon usage patterns |
71
+ | Borders | `border-usage-guidelines-short.mdc` | `border-usage-guidelines.mdc` | Border utilities |
72
+ | Opacity | `modus-opacity-utilities-react-short.mdc` | `modus-opacity-utilities-react.mdc` | Opacity utilities |
73
+ | Semantic HTML | `modus-semantic-html-react-short.mdc` | `modus-semantic-html-react.mdc` | HTML element usage |
74
+ | Tailwind | `modus-tailwind-usage-react-short.mdc` | `modus-tailwind-usage-react.mdc` | Tailwind integration |
75
+ | Themes | `modus-themes-react-short.mdc` | `modus-themes-react.mdc` | Theme implementation |
76
+
77
+ **Globs Pattern**: `["**/*.tsx", "**/*.ts"]` or `["**/*.tsx", "**/*.css"]`
78
+
79
+ ### Integration & Best Practices
80
+
81
+ Rules for React integration and development patterns:
82
+
83
+ | Rule | Short | Full | Description |
84
+ |------|-------|------|-------------|
85
+ | Integration | `modus-react-integration-short.mdc` | `modus-react-integration.mdc` | React + Modus integration |
86
+ | Best Practices | `modus-react-best-practices-short.mdc` | `modus-react-best-practices.mdc` | React best practices |
87
+ | Key Warnings | `modus-react-key-warnings-short.mdc` | `modus-react-key-warnings.mdc` | React key prop patterns |
88
+ | Essentials | N/A | `modus-react-essentials.mdc` | Comprehensive essentials |
89
+
90
+ **Globs Pattern**: `["**/*.tsx", "**/*.ts"]`
91
+
92
+ ### Workflow & Testing
93
+
94
+ Rules for development workflow and testing:
95
+
96
+ | Rule | Short | Full | Description |
97
+ |------|-------|------|-------------|
98
+ | Development Workflow | `development-workflow-react-short.mdc` | `development-workflow-react.mdc` | Linting and quality checks |
99
+ | Chrome DevTools | `chrome-devtools-testing-react-short.mdc` | `chrome-devtools-testing-react.mdc` | Browser testing patterns |
100
+ | Implementation Guides | `implementation-guides-react-short.mdc` | `implementation-guides-react.mdc` | Feature development guides |
101
+
102
+ **Globs Pattern**: `["**/*.tsx", "**/*.ts", "**/*.css"]` or specific patterns
103
+
104
+ ### UX Rules
105
+
106
+ Rules in `ux/` subdirectory:
107
+
108
+ | Rule | Description |
109
+ |------|-------------|
110
+ | `ux-ui-foundations.mdc` | UI/UX foundations with Modus 2 + Tailwind |
111
+ | `gestalt-laws-detailed.mdc` | Gestalt Laws implementation guide |
112
+
113
+ **Globs Pattern**: `["**/*.tsx", "**/*.ts"]`
114
+
115
+ ### Reference Files
116
+
117
+ Reference documentation (not rules, but referenced by rules):
118
+
119
+ | File | Purpose |
120
+ |------|---------|
121
+ | `modus-icon-names.mdc` | Complete list of valid Modus icon names |
122
+ | `modus-components-reference.mdc` | Component reference guide |
123
+
124
+ ## Using Rules
125
+
126
+ ### Automatic Application
127
+
128
+ - **Short rules** (`alwaysApply: true`) are always included
129
+ - **Full rules** apply when:
130
+ - File matches `globs` pattern
131
+ - Description matches context
132
+ - Agent determines relevance
133
+
134
+ ### Manual Application
135
+
136
+ Reference rules in chat using `@` mentions:
137
+
138
+ ```
139
+ @modus-modal-implementation-react How do I implement a modal?
140
+ @modus-color-usage-react What colors should I use?
141
+ ```
142
+
143
+ ### Referencing Rules in Rules
144
+
145
+ Rules can reference other rules or files:
146
+
147
+ ```markdown
148
+ For detailed patterns, see: `modus-button-group-usage-react`
149
+ For icon names, see: `modus-icon-names`
150
+ ```
151
+
152
+ ## Rule Best Practices
153
+
154
+ Based on [Cursor documentation](https://cursor.com/docs/context/rules):
155
+
156
+ ### ✅ Do
157
+
158
+ - Keep rules focused and actionable
159
+ - Provide concrete examples
160
+ - Reference files instead of copying contents
161
+ - Keep rules under 500 lines (split if needed)
162
+ - Use clear, specific descriptions
163
+ - Cross-reference related rules
164
+
165
+ ### ❌ Don't
166
+
167
+ - Copy entire style guides (use linters)
168
+ - Document every possible command
169
+ - Add instructions for rare edge cases
170
+ - Duplicate what's in your codebase
171
+
172
+ ## Current Rule Status
173
+
174
+ ### Rule Length Compliance
175
+
176
+ ⚠️ **Rules exceeding 500 lines** (recommended limit):
177
+
178
+ - `modus-modal-implementation-react.mdc`: 831 lines
179
+ - `modus-react-key-warnings.mdc`: 805 lines
180
+ - `modus-tailwind-usage-react.mdc`: 642 lines
181
+ - `modus-react-integration.mdc`: 509 lines
182
+ - `modus-react-best-practices.mdc`: 508 lines
183
+ - `modus-themes-react.mdc`: 506 lines
184
+
185
+ **Recommendation**: Consider splitting these into focused sub-rules.
186
+
187
+ ### Rule Coverage
188
+
189
+ - ✅ All short rules have `alwaysApply: true`
190
+ - ✅ All full rules have `alwaysApply: false`
191
+ - ✅ All rules have `description:` and `globs:`
192
+ - ✅ Descriptions match between short and full rules
193
+ - ✅ References point to correct full rules
194
+
195
+ ## Quick Reference
196
+
197
+ ### Most Common Rules
198
+
199
+ 1. **Design System Colors**: `modus-color-usage-react-short.mdc` (always applied)
200
+ 2. **Icons**: `modus-icons-react-short.mdc` (always applied)
201
+ 3. **Component Patterns**: Component-specific rules apply when working with those components
202
+ 4. **React Integration**: `modus-react-integration.mdc` (applies intelligently)
203
+
204
+ ### Finding Rules
205
+
206
+ - **Component issues?** → Check component-specific rules
207
+ - **Styling questions?** → Check design system rules
208
+ - **React patterns?** → Check integration/best practices rules
209
+ - **Workflow help?** → Check workflow/testing rules
210
+
211
+ ## Maintenance
212
+
213
+ ### Adding New Rules
214
+
215
+ 1. Create short rule (`*-short.mdc`) with `alwaysApply: true`
216
+ 2. Create full rule (`.mdc`) with `alwaysApply: false`
217
+ 3. Add `description:` and `globs:` to both
218
+ 4. Update this README with new rule entry
219
+ 5. Ensure descriptions match between short and full
220
+
221
+ ### Updating Rules
222
+
223
+ 1. Update short rule summary
224
+ 2. Update full rule details
225
+ 3. Keep descriptions synchronized
226
+ 4. Verify globs patterns are appropriate
227
+ 5. Test rule application
228
+
229
+ ### Rule Naming Convention
230
+
231
+ - Short rules: `[name]-react-short.mdc`
232
+ - Full rules: `[name]-react.mdc`
233
+ - Reference files: `modus-[name].mdc`
234
+ - UX rules: `ux/[name].mdc`
235
+
236
+ ## Related Documentation
237
+
238
+ - [Cursor Rules Documentation](https://cursor.com/docs/context/rules)
239
+ - [Modus Design System](https://modus-web-components.trimble.com/)
240
+ - [Project CLAUDE.md](../CLAUDE.md) - Project-specific guidance
@@ -0,0 +1,22 @@
1
+ ---
2
+ description: Essential border usage rules for Modus Design System integration
3
+ globs: ["**/*.tsx", "**/*.css"]
4
+ alwaysApply: true
5
+ ---
6
+
7
+ # Border Usage Guidelines - Short
8
+
9
+ Essential border usage rules for Modus Design System integration.
10
+
11
+ ## Key Rules
12
+
13
+ - **Use design system border utilities only** - `border-default`, `border-success`, `border-warning`, `border-destructive`, `border-primary`
14
+ - **Never use Tailwind color classes in borders** - No `border-blue-500`, `border-gray-300`, etc.
15
+ - **Use `border-thick` for emphasis** - For important borders and separators
16
+ - **Use directional borders** - `border-t`, `border-b`, `border-l`, `border-r` with design system colors
17
+ - **No inline styles for borders** - Use Tailwind classes exclusively
18
+ - **Context-specific usage** - Cards use `border-default`, alerts use semantic colors, forms use `border-input`
19
+
20
+ ## Reference
21
+
22
+ For detailed border usage patterns, examples, and advanced techniques, fetch the full rule: `border-usage-guidelines`