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