@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,137 @@
1
+ ---
2
+ description: Modus Icons usage guide for Angular applications
3
+ globs: ["**/*.ts", "**/*.html", "**/*.scss", "**/*.css"]
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Modus Icons Usage Guide for Angular Applications
8
+
9
+ ## Overview
10
+
11
+ Modus Icons use **icon font ligatures** with **underscore naming convention**.
12
+
13
+ ## Icon Naming Convention
14
+
15
+ **CRITICAL: Modus Icons use UNDERSCORES (\_), not hyphens (-)**
16
+
17
+ ### CORRECT Icon Names
18
+
19
+ ```html
20
+ <i class="modus-icons">save_disk</i>
21
+ <i class="modus-icons">arrow_left</i>
22
+ <i class="modus-icons">arrow_right</i>
23
+ <i class="modus-icons">add_circle</i>
24
+ <i class="modus-icons">user_permissions</i>
25
+ ```
26
+
27
+ ### INCORRECT Icon Names
28
+
29
+ ```html
30
+ <!-- Don't use hyphens -->
31
+ <i class="modus-icons">save-disk</i>
32
+ <i class="modus-icons">arrow-left</i>
33
+ ```
34
+
35
+ ## Usage Patterns
36
+
37
+ ### Angular Component Integration
38
+
39
+ ```html
40
+ <!-- Icon with text (left position) -->
41
+ <modus-button icon="save_disk" iconPosition="left">Save File</modus-button>
42
+
43
+ <!-- Icon with text (right position) -->
44
+ <modus-button icon="download" iconPosition="right">Download</modus-button>
45
+
46
+ <!-- Icon only (requires aria-label) -->
47
+ <modus-button icon="settings" iconPosition="only" ariaLabel="Open settings"></modus-button>
48
+ ```
49
+
50
+ ### Direct HTML Usage
51
+
52
+ ```html
53
+ <!-- Decorative icon (not announced by screen readers) -->
54
+ <i class="modus-icons text-lg" aria-hidden="true">user_add</i>
55
+
56
+ <!-- Informational icon (announced by screen readers) -->
57
+ <i class="modus-icons text-base" role="img" aria-label="Settings">settings</i>
58
+ ```
59
+
60
+ ### Sizing Icons
61
+
62
+ Use Tailwind text utilities mapped to Modus font sizes:
63
+
64
+ | Tailwind Class | Size | Usage |
65
+ | -------------- | ---- | ---------------------- |
66
+ | `text-2xs` | 8px | Micro icons, badges |
67
+ | `text-xs` | 10px | Small labels, captions |
68
+ | `text-sm` | 12px | Secondary icons |
69
+ | `text-base` | 14px | **Modus default size** |
70
+ | `text-lg` | 16px | Body text icons |
71
+ | `text-xl` | 18px | Large icons |
72
+ | `text-2xl` | 20px | Prominent icons |
73
+ | `text-3xl` | 24px | Display icons |
74
+ | `text-4xl` | 30px | Hero icons |
75
+
76
+ ### Coloring Icons
77
+
78
+ Use design system color classes:
79
+
80
+ ```html
81
+ <i class="modus-icons text-primary">info</i>
82
+ <i class="modus-icons text-success">check_circle</i>
83
+ <i class="modus-icons text-warning">warning</i>
84
+ <i class="modus-icons text-error">error</i>
85
+ <i class="modus-icons text-muted-foreground">help</i>
86
+ ```
87
+
88
+ ## Common Icon Names
89
+
90
+ ### Navigation Icons
91
+
92
+ `arrow_left`, `arrow_right`, `arrow_up`, `arrow_down`, `chevron_left`, `chevron_right`, `menu`, `close`
93
+
94
+ ### Action Icons
95
+
96
+ `add`, `add_circle`, `edit`, `delete`, `save_disk`, `download`, `upload`, `copy`, `cut`, `paste`
97
+
98
+ ### Status Icons
99
+
100
+ `check`, `check_circle`, `error`, `warning`, `info`, `help`
101
+
102
+ ### File Icons
103
+
104
+ `file`, `file_upload`, `file_download`, `folder`, `image`, `document`
105
+
106
+ ## Accessibility Guidelines
107
+
108
+ ### Decorative Icons
109
+
110
+ ```html
111
+ <button>
112
+ <i class="modus-icons mr-2" aria-hidden="true">save_disk</i>
113
+ Save Document
114
+ </button>
115
+ ```
116
+
117
+ ### Informational Icons
118
+
119
+ ```html
120
+ <i class="modus-icons" role="img" aria-label="Warning">warning</i>
121
+ ```
122
+
123
+ ### Icon-Only Buttons
124
+
125
+ ```html
126
+ <modus-button icon="settings" iconPosition="only" ariaLabel="Open settings menu"></modus-button>
127
+ ```
128
+
129
+ ---
130
+
131
+ **Key Takeaways:**
132
+
133
+ 1. **Always use underscores** in icon names (`save_disk`, not `save-disk`)
134
+ 2. **Load font via HTML link**, not CSS import
135
+ 3. **Use `modus-icons` class** with icon name as text content
136
+ 4. **Provide accessibility labels** for informational and icon-only usage
137
+ 5. **Test visually** to ensure icons render as glyphs, not text
@@ -0,0 +1,36 @@
1
+ ---
2
+ description: Create comprehensive implementation guides for major feature development in Angular + Vite
3
+ globs: ["**/.cursor/rules/implementation-guides/**/*.md"]
4
+ alwaysApply: true
5
+ ---
6
+
7
+ # Implementation Guides - Short
8
+
9
+ Create comprehensive implementation guides for major feature development.
10
+
11
+ ## Key Rules
12
+
13
+ - **Create guides for major features** - Any feature requiring 2+ hours of development
14
+ - **Document before coding** - Plan architecture and approach first
15
+ - **Use required template sections** - Overview, architecture, plan, testing, review
16
+ - **Store in `implementation_guides/`** - Organized by feature name and date
17
+ - **Update status throughout development** - Planning > In Progress > Complete > Archived
18
+ - **Include post-implementation review** - Document lessons learned and improvements
19
+ - **Reference in commits** - Link to implementation guide in commit messages
20
+
21
+ ## When to Create
22
+
23
+ **Create guides for:**
24
+ - New page/view components with complex functionality
25
+ - New reusable components or design system additions
26
+ - API integrations
27
+ - Features requiring 2+ hours of development
28
+
29
+ **Skip for:**
30
+ - Simple bug fixes (< 30 minutes)
31
+ - Minor text or styling tweaks
32
+ - Documentation updates
33
+
34
+ ## Reference
35
+
36
+ For detailed template structure and lifecycle management, fetch the full rule: `modus-angular-implementation-guides`
@@ -0,0 +1,301 @@
1
+ ---
2
+ description: Create comprehensive implementation guides for major feature development in Angular + Vite
3
+ globs: ["**/.cursor/rules/implementation-guides/**/*.md"]
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Implementation Guide Documentation Rules for Angular + Vite
8
+
9
+ ## Pre-Development Documentation Requirements
10
+
11
+ ### MANDATORY: Implementation Guide Creation
12
+
13
+ **BEFORE starting ANY major feature development, you MUST:**
14
+
15
+ 1. **Create a comprehensive implementation guide** in `/implementation_guides/`
16
+ 2. **Document the complete approach** before writing any code
17
+ 3. **Get stakeholder review** of the implementation plan
18
+ 4. **Update guides with lessons learned** during and after implementation
19
+
20
+ ### What Constitutes a "Major Feature"
21
+
22
+ **Always create implementation guides for:**
23
+
24
+ - New page/view components with complex functionality
25
+ - New reusable component libraries or design system additions
26
+ - Integration with external APIs or services
27
+ - Authentication, authorization, or security features
28
+ - Data management patterns (stores, state management)
29
+ - Routing or navigation changes
30
+ - Performance optimization initiatives
31
+ - Accessibility improvements or compliance work
32
+ - Build process, tooling, or infrastructure changes
33
+ - Any feature requiring more than 2 hours of development time
34
+
35
+ **Skip implementation guides for:**
36
+
37
+ - Simple bug fixes (< 30 minutes)
38
+ - Minor text or styling tweaks
39
+ - Documentation updates
40
+ - Dependency version updates (unless breaking changes)
41
+
42
+ ## Implementation Guide Structure
43
+
44
+ ### File Location & Naming
45
+
46
+ ```text
47
+ implementation_guides/
48
+ ├── feature-name-YYYY-MM-DD.md # New feature guides
49
+ ├── integration-api-name-YYYY-MM-DD.md # API integration guides
50
+ ├── component-library-YYYY-MM-DD.md # Component development guides
51
+ └── performance-optimization-YYYY-MM-DD.md # Performance guides
52
+ ```
53
+
54
+ **Naming Convention:**
55
+
56
+ - Use kebab-case for file names
57
+ - Include date for chronological tracking
58
+ - Be descriptive but concise
59
+
60
+ ### Required Implementation Guide Template
61
+
62
+ ```markdown
63
+ # [Feature Name] Implementation Guide
64
+
65
+ **Date:** YYYY-MM-DD
66
+ **Author:** [Your Name]
67
+ **Status:** [Planning | In Progress | Complete | Archived]
68
+
69
+ ## Overview & Objectives
70
+
71
+ ### Problem Statement
72
+
73
+ - What problem are we solving?
74
+ - Why is this feature needed?
75
+ - What are the success criteria?
76
+
77
+ ### Goals & Requirements
78
+
79
+ - [ ] Functional requirement 1
80
+ - [ ] Functional requirement 2
81
+ - [ ] Non-functional requirement 1 (performance, accessibility, etc.)
82
+
83
+ ## Technical Architecture
84
+
85
+ ### Component Architecture
86
+
87
+ - High-level component structure
88
+ - Data flow diagrams
89
+ - State management approach (signals, services)
90
+
91
+ ### Angular-Specific Patterns
92
+
93
+ - Standalone components used
94
+ - Signal-based state management
95
+ - Service patterns
96
+ - Routing configuration
97
+
98
+ ### Dependencies & Integrations
99
+
100
+ - New dependencies required
101
+ - External API integrations
102
+ - Modus Web Components usage
103
+
104
+ ### File Structure Changes
105
+
106
+ ```text
107
+ src/app/
108
+ ├── components/
109
+ │ └── new-component.component.ts
110
+ ├── pages/
111
+ │ └── new-page/
112
+ │ └── new-page.component.ts
113
+ ├── services/
114
+ │ └── new-feature.service.ts
115
+ └── app.routes.ts
116
+ ```
117
+
118
+ ## Design System Integration
119
+
120
+ ### Modus Components Used
121
+
122
+ - List specific Modus Web Components
123
+ - Color variables and theming approach
124
+ - Accessibility considerations
125
+
126
+ ## Implementation Plan
127
+
128
+ ### Phase 1: Foundation
129
+
130
+ - [ ] Task 1
131
+ - [ ] Task 2
132
+ - [ ] Task 3
133
+
134
+ ### Phase 2: Core Features
135
+
136
+ - [ ] Task 1
137
+ - [ ] Task 2
138
+
139
+ ### Phase 3: Polish & Testing
140
+
141
+ - [ ] Task 1
142
+ - [ ] Task 2
143
+
144
+ ## Testing Strategy
145
+
146
+ ### Unit Testing
147
+
148
+ - Components to test
149
+ - Test scenarios
150
+ - Mock requirements
151
+
152
+ ### Integration Testing
153
+
154
+ - API integration tests
155
+ - Component interaction tests
156
+
157
+ ### Accessibility Testing
158
+
159
+ - WCAG compliance checklist
160
+ - Screen reader testing
161
+ - Keyboard navigation testing
162
+
163
+ ## Post-Implementation Review
164
+
165
+ ### Lessons Learned
166
+
167
+ _[Update this section during/after implementation]_
168
+
169
+ #### What Went Well
170
+
171
+ -
172
+
173
+ #### Challenges Encountered
174
+
175
+ -
176
+
177
+ #### Solutions & Workarounds
178
+
179
+ -
180
+
181
+ #### Future Improvements
182
+
183
+ -
184
+ ```
185
+
186
+ ## Implementation Guide Lifecycle
187
+
188
+ ### Pre-Development Phase
189
+
190
+ 1. **Create Implementation Guide**
191
+
192
+ ```bash
193
+ # Create new guide with proper naming
194
+ touch implementation_guides/feature-name-$(date +%Y-%m-%d).md
195
+ ```
196
+
197
+ 2. **Fill Out Complete Template**
198
+
199
+ - All sections must be completed before coding begins
200
+ - Get team/stakeholder review of the plan
201
+
202
+ ### During Implementation Phase
203
+
204
+ #### Update guides in real-time as you encounter issues
205
+
206
+ #### When You Encounter Problems
207
+
208
+ 1. **Document the Issue**
209
+
210
+ ```markdown
211
+ #### Challenge: [Brief Description]
212
+
213
+ **Date:** YYYY-MM-DD
214
+ **Problem:** Detailed description of what went wrong
215
+ **Impact:** How this affected the implementation
216
+ ```
217
+
218
+ 2. **Document the Solution**
219
+
220
+ ```markdown
221
+ **Solution:** Step-by-step solution implemented
222
+ **Code Changes:** Link to commits or describe changes
223
+ **Time Impact:** Additional time required
224
+ **Prevention:** How to avoid this in future implementations
225
+ ```
226
+
227
+ ### Quality Standards
228
+
229
+ **Every implementation guide must:**
230
+
231
+ - [ ] **Complete Template**: All required sections filled out
232
+ - [ ] **Technical Accuracy**: Architecture matches actual implementation
233
+ - [ ] **Lessons Learned**: Post-implementation section completed
234
+ - [ ] **Performance Data**: Actual metrics recorded
235
+ - [ ] **Accessibility Results**: WCAG compliance documented
236
+
237
+ ## Angular + Vite Specific Considerations
238
+
239
+ ### Component Architecture Patterns
240
+
241
+ ```typescript
242
+ @Component({
243
+ selector: 'app-new-component',
244
+ template: `
245
+ <div class="bg-background text-foreground">
246
+ @if (isLoading()) {
247
+ <modus-loader />
248
+ } @else {
249
+ <div>{{ content() }}</div>
250
+ }
251
+ </div>
252
+ `,
253
+ changeDetection: ChangeDetectionStrategy.OnPush,
254
+ })
255
+ export class NewComponent {
256
+ private service = inject(NewFeatureService);
257
+
258
+ readonly isLoading = signal(false);
259
+ readonly content = signal('');
260
+ }
261
+ ```
262
+
263
+ ### State Management Patterns
264
+
265
+ ```typescript
266
+ @Injectable({ providedIn: 'root' })
267
+ export class FeatureService {
268
+ private readonly featureState = signal(initialState);
269
+
270
+ readonly state = this.featureState.asReadonly();
271
+
272
+ updateState(newState: Partial<FeatureState>): void {
273
+ this.featureState.update(current => ({ ...current, ...newState }));
274
+ }
275
+ }
276
+ ```
277
+
278
+ ### Routing Patterns
279
+
280
+ ```typescript
281
+ export const routes: Routes = [
282
+ {
283
+ path: 'feature',
284
+ loadComponent: () => import('./feature/feature.component').then(m => m.FeatureComponent),
285
+ },
286
+ ];
287
+ ```
288
+
289
+ ## Common Anti-Patterns to Avoid
290
+
291
+ ### Don't Skip Implementation Guides
292
+
293
+ - **Never start major development without a guide**
294
+ - **Don't create guides after the fact** - they lose their planning value
295
+ - **Don't leave guides incomplete** - they become technical debt
296
+
297
+ ### Don't Create Shallow Guides
298
+
299
+ - **Avoid vague descriptions** - be specific about technical approaches
300
+ - **Don't skip the architecture section** - future developers need this context
301
+ - **Don't ignore lessons learned** - this is the most valuable section
@@ -0,0 +1,60 @@
1
+ ---
2
+ description: Integration patterns for Modus Web Components with Angular standalone wrapper components
3
+ globs: ["**/*.ts", "**/*.html", "**/*.scss", "**/*.css"]
4
+ alwaysApply: true
5
+ ---
6
+
7
+ # Modus Angular Integration - Short
8
+
9
+ Essential integration patterns for Modus Web Components with Angular.
10
+
11
+ ## Key Rules
12
+
13
+ - **Use wrapper components** - Always use `<modus-button>`, not `<modus-wc-button>` directly
14
+ - **Signal-based API** - Use `input()`, `output()`, `signal()`, `computed()`
15
+ - **OnPush change detection** - All components use `ChangeDetectionStrategy.OnPush`
16
+ - **Event handling** - Extract `event.detail` from CustomEvent when needed
17
+ - **Modern control flow** - Use `@if`, `@for`, `@switch`, not `*ngIf`, `*ngFor`
18
+ - **inject() for DI** - Use `inject()` function, not constructor injection
19
+
20
+ ## Wrapper Pattern
21
+
22
+ ```typescript
23
+ @Component({
24
+ selector: 'modus-button', // Users use <modus-button>
25
+ template: `
26
+ <modus-wc-button
27
+ [color]="color()"
28
+ [variant]="variant()"
29
+ (buttonClick)="handleButtonClick($event)"
30
+ >
31
+ <ng-content />
32
+ </modus-wc-button>
33
+ `,
34
+ changeDetection: ChangeDetectionStrategy.OnPush,
35
+ })
36
+ export class ModusButtonComponent {
37
+ readonly color = input<ButtonColor>('primary');
38
+ readonly buttonClick = output<MouseEvent | KeyboardEvent>();
39
+
40
+ handleButtonClick(event: CustomEvent<MouseEvent | KeyboardEvent>): void {
41
+ this.buttonClick.emit(event.detail);
42
+ }
43
+ }
44
+ ```
45
+
46
+ ## Template Usage
47
+
48
+ ```html
49
+ <!-- CORRECT: Use wrapper component -->
50
+ <modus-button [color]="'primary'" (buttonClick)="handleClick($event)">
51
+ Click Me
52
+ </modus-button>
53
+
54
+ <!-- WRONG: Never use web component directly -->
55
+ <modus-wc-button>Don't do this</modus-wc-button>
56
+ ```
57
+
58
+ ## Reference
59
+
60
+ For detailed integration patterns and component list, fetch the full rule: `modus-angular-integration`