@polymorphism-tech/morph-spec 3.0.0 → 3.1.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 (240) hide show
  1. package/CLAUDE.md +68 -400
  2. package/README.md +198 -76
  3. package/bin/detect-agents.js +227 -225
  4. package/bin/morph-spec.js +10 -0
  5. package/bin/render-template.js +303 -302
  6. package/bin/semantic-detect-agents.js +247 -246
  7. package/bin/{task-manager.js → task-manager.cjs} +12 -1
  8. package/bin/validate-agents-skills.js +257 -251
  9. package/bin/validate-agents.js +70 -69
  10. package/bin/validate-phase.js +263 -263
  11. package/docs/getting-started.md +3 -3
  12. package/package.json +3 -4
  13. package/scripts/reorganize-skills.cjs +175 -0
  14. package/scripts/validate-agents-structure.cjs +52 -0
  15. package/scripts/validate-skills.cjs +180 -0
  16. package/src/commands/create-story.js +354 -351
  17. package/src/commands/detect-agents.js +13 -2
  18. package/src/commands/detect.js +104 -104
  19. package/src/commands/state.js +334 -333
  20. package/src/commands/sync.js +167 -167
  21. package/src/commands/task.js +1 -1
  22. package/src/commands/update.js +13 -1
  23. package/src/lib/context-generator.js +7 -4
  24. package/{detectors → src/lib/detectors}/config-detector.js +223 -223
  25. package/{detectors → src/lib/detectors}/conversation-analyzer.js +163 -163
  26. package/{detectors → src/lib/detectors}/index.js +84 -84
  27. package/{detectors → src/lib/detectors}/standards-generator.js +275 -275
  28. package/src/lib/hook-executor.js +2 -1
  29. package/src/lib/stack-resolver.js +148 -0
  30. package/src/lib/standards-context-injector.js +4 -3
  31. package/src/lib/state-manager.js +21 -4
  32. package/src/lib/team-orchestrator.js +2 -1
  33. package/src/lib/troubleshoot-grep.js +13 -3
  34. package/src/lib/validation-runner.js +2 -1
  35. package/src/utils/file-copier.js +3 -1
  36. package/{content → stacks/blazor-azure}/.azure/README.md +293 -293
  37. package/{content → stacks/blazor-azure}/.azure/docs/azure-devops-setup.md +454 -454
  38. package/{content → stacks/blazor-azure}/.azure/docs/branch-strategy.md +398 -398
  39. package/{content → stacks/blazor-azure}/.azure/docs/local-development.md +515 -515
  40. package/{content → stacks/blazor-azure}/.azure/pipelines/pipeline-variables.yml +34 -34
  41. package/{content → stacks/blazor-azure}/.azure/pipelines/prod-pipeline.yml +319 -319
  42. package/{content → stacks/blazor-azure}/.azure/pipelines/staging-pipeline.yml +234 -234
  43. package/{content → stacks/blazor-azure}/.azure/pipelines/templates/build-dotnet.yml +75 -75
  44. package/{content → stacks/blazor-azure}/.azure/pipelines/templates/deploy-app-service.yml +94 -94
  45. package/{content → stacks/blazor-azure}/.azure/pipelines/templates/deploy-container-app.yml +120 -120
  46. package/{content → stacks/blazor-azure}/.azure/pipelines/templates/infra-deploy.yml +90 -90
  47. package/{content → stacks/blazor-azure}/.claude/commands/morph-archive.md +79 -79
  48. package/{content → stacks/blazor-azure}/.claude/commands/morph-deploy.md +529 -529
  49. package/{content → stacks/blazor-azure}/.claude/commands/morph-infra.md +209 -209
  50. package/{content → stacks/blazor-azure}/.claude/commands/morph-troubleshoot.md +1 -1
  51. package/{content → stacks/blazor-azure}/.claude/settings.local.json +15 -15
  52. package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-setup.md +1 -1
  53. package/{content/.claude/skills/specialists → stacks/blazor-azure/.claude/skills/level-2-domains/architecture}/prompt-engineer.md +189 -189
  54. package/{content/.claude/skills/specialists → stacks/blazor-azure/.claude/skills/level-2-domains/architecture}/seo-growth-hacker.md +320 -320
  55. package/{content/.claude/skills/infra → stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure}/azure-deploy-specialist.md +699 -699
  56. package/{content → stacks/blazor-azure}/.morph/.morphversion +5 -5
  57. package/{content → stacks/blazor-azure}/.morph/archive/.gitkeep +25 -25
  58. package/{content → stacks/blazor-azure}/.morph/config/agents.json +7 -5
  59. package/{content → stacks/blazor-azure}/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -392
  60. package/{content → stacks/blazor-azure}/.morph/docs/workflows/enforcement-pipeline.md +3 -3
  61. package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/README.md +241 -241
  62. package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/contracts.ts +307 -307
  63. package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/spec.md +399 -399
  64. package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/tasks.md +168 -168
  65. package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/README.md +125 -125
  66. package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/contracts.cs +358 -358
  67. package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/decisions.md +246 -246
  68. package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/spec.md +236 -236
  69. package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/tasks.md +150 -150
  70. package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/README.md +309 -309
  71. package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/contracts.cs +433 -433
  72. package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/spec.md +479 -479
  73. package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/tasks.md +185 -185
  74. package/{content → stacks/blazor-azure}/.morph/examples/state-v3.json +188 -188
  75. package/{content → stacks/blazor-azure}/.morph/features/.gitkeep +25 -25
  76. package/{content → stacks/blazor-azure}/.morph/hooks/README.md +12 -12
  77. package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-all.sh +48 -48
  78. package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-specs.sh +49 -49
  79. package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-tests.sh +60 -60
  80. package/{content → stacks/blazor-azure}/.morph/project.md +160 -160
  81. package/{content → stacks/blazor-azure}/.morph/schemas/agent.schema.json +296 -296
  82. package/{content → stacks/blazor-azure}/.morph/specs/.gitkeep +20 -20
  83. package/{content → stacks/blazor-azure}/.morph/standards/agent-teams-workflow.md +2 -2
  84. package/{content → stacks/blazor-azure}/.morph/standards/coding.md +377 -377
  85. package/{content → stacks/blazor-azure}/.morph/standards/fluent-ui-setup.md +590 -590
  86. package/{content → stacks/blazor-azure}/.morph/standards/migration-guide.md +514 -514
  87. package/{content → stacks/blazor-azure}/.morph/standards/passkeys-auth.md +423 -423
  88. package/{content → stacks/blazor-azure}/.morph/standards/vector-search-rag.md +536 -536
  89. package/{content → stacks/blazor-azure}/.morph/state.json +17 -17
  90. package/{content → stacks/blazor-azure}/.morph/templates/FluentDesignTheme.cs +149 -149
  91. package/{content → stacks/blazor-azure}/.morph/templates/MudTheme.cs +281 -281
  92. package/{content → stacks/blazor-azure}/.morph/templates/component.razor +239 -239
  93. package/{content → stacks/blazor-azure}/.morph/templates/contracts.cs +217 -217
  94. package/{content → stacks/blazor-azure}/.morph/templates/design-system.css +226 -226
  95. package/{content → stacks/blazor-azure}/.morph/templates/infra/.dockerignore.example +89 -89
  96. package/{content → stacks/blazor-azure}/.morph/templates/infra/Dockerfile.example +82 -82
  97. package/{content → stacks/blazor-azure}/.morph/templates/infra/README.md +286 -286
  98. package/{content → stacks/blazor-azure}/.morph/templates/infra/app-insights.bicep +63 -63
  99. package/{content → stacks/blazor-azure}/.morph/templates/infra/app-service.bicep +164 -164
  100. package/{content → stacks/blazor-azure}/.morph/templates/infra/azure-pipelines-deploy.yml +480 -480
  101. package/{content → stacks/blazor-azure}/.morph/templates/infra/container-app-env.bicep +49 -49
  102. package/{content → stacks/blazor-azure}/.morph/templates/infra/container-app.bicep +156 -156
  103. package/{content → stacks/blazor-azure}/.morph/templates/infra/deploy.ps1 +229 -229
  104. package/{content → stacks/blazor-azure}/.morph/templates/infra/deploy.sh +208 -208
  105. package/{content → stacks/blazor-azure}/.morph/templates/infra/key-vault.bicep +91 -91
  106. package/{content → stacks/blazor-azure}/.morph/templates/infra/main.bicep +189 -189
  107. package/{content → stacks/blazor-azure}/.morph/templates/infra/parameters.dev.json +29 -29
  108. package/{content → stacks/blazor-azure}/.morph/templates/infra/parameters.prod.json +29 -29
  109. package/{content → stacks/blazor-azure}/.morph/templates/infra/parameters.staging.json +29 -29
  110. package/{content → stacks/blazor-azure}/.morph/templates/infra/sql-database.bicep +103 -103
  111. package/{content → stacks/blazor-azure}/.morph/templates/infra/storage.bicep +106 -106
  112. package/{content → stacks/blazor-azure}/.morph/templates/integrations/asaas-client.cs +387 -387
  113. package/{content → stacks/blazor-azure}/.morph/templates/integrations/asaas-webhook.cs +351 -351
  114. package/{content → stacks/blazor-azure}/.morph/templates/integrations/azure-identity-config.cs +288 -288
  115. package/{content → stacks/blazor-azure}/.morph/templates/integrations/clerk-config.cs +258 -258
  116. package/{content → stacks/blazor-azure}/.morph/templates/job.cs +171 -171
  117. package/{content → stacks/blazor-azure}/.morph/templates/migration.cs +83 -83
  118. package/{content → stacks/blazor-azure}/.morph/templates/repository.cs +141 -141
  119. package/{content → stacks/blazor-azure}/.morph/templates/saas/subscription.cs +347 -347
  120. package/{content → stacks/blazor-azure}/.morph/templates/saas/tenant.cs +338 -338
  121. package/{content → stacks/blazor-azure}/.morph/templates/service.cs +139 -139
  122. package/{content → stacks/blazor-azure}/.morph/templates/sprint-status.yaml +68 -68
  123. package/{content → stacks/blazor-azure}/.morph/templates/story.md +143 -143
  124. package/{content → stacks/blazor-azure}/.morph/templates/test.cs +239 -239
  125. package/{content → stacks/blazor-azure}/.morph/templates/ui-design-system.md +286 -286
  126. package/{content → stacks/blazor-azure}/.morph/templates/ui-flows.md +336 -336
  127. package/{content → stacks/blazor-azure}/.morph/templates/ui-mockups.md +133 -133
  128. package/{content → stacks/blazor-azure}/.morph/test-infra/example.bicep +59 -59
  129. package/{content → stacks/blazor-azure}/README.md +79 -79
  130. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/backend/dotnet-supabase.md +244 -0
  131. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/frontend/nextjs-supabase.md +335 -0
  132. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/infrastructure/easypanel-deployer.md +189 -0
  133. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/integrations/supabase-expert.md +170 -0
  134. package/stacks/nextjs-supabase/.morph/config/agents.json +345 -0
  135. package/stacks/nextjs-supabase/.morph/config/config.template.json +92 -0
  136. package/stacks/nextjs-supabase/.morph/docs/easypanel-setup.md +169 -0
  137. package/stacks/nextjs-supabase/.morph/docs/supabase-mcp-setup.md +247 -0
  138. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/README.md +697 -0
  139. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/spec.md +85 -0
  140. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/tasks.md +86 -0
  141. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/README.md +498 -0
  142. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/decisions.md +121 -0
  143. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/spec.md +138 -0
  144. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/tasks.md +162 -0
  145. package/stacks/nextjs-supabase/.morph/project.md +168 -0
  146. package/stacks/nextjs-supabase/.morph/standards/easypanel-deploy.md +191 -0
  147. package/stacks/nextjs-supabase/.morph/standards/nextjs-patterns.md +193 -0
  148. package/stacks/nextjs-supabase/.morph/standards/supabase-auth.md +171 -0
  149. package/stacks/nextjs-supabase/.morph/standards/supabase-pgvector.md +164 -0
  150. package/stacks/nextjs-supabase/.morph/standards/supabase-rls.md +179 -0
  151. package/stacks/nextjs-supabase/.morph/standards/supabase-storage.md +148 -0
  152. package/stacks/nextjs-supabase/.morph/templates/contracts.cs +173 -0
  153. package/stacks/nextjs-supabase/.morph/templates/contracts.ts +168 -0
  154. package/stacks/nextjs-supabase/.morph/templates/decisions.md +115 -0
  155. package/stacks/nextjs-supabase/.morph/templates/dockerfile-api.dockerfile +38 -0
  156. package/stacks/nextjs-supabase/.morph/templates/dockerfile-web.dockerfile +48 -0
  157. package/stacks/nextjs-supabase/.morph/templates/proposal.md +145 -0
  158. package/stacks/nextjs-supabase/.morph/templates/recap.md +134 -0
  159. package/stacks/nextjs-supabase/.morph/templates/rls-policy.sql +57 -0
  160. package/stacks/nextjs-supabase/.morph/templates/spec.md +231 -0
  161. package/stacks/nextjs-supabase/.morph/templates/supabase-migration.sql +100 -0
  162. package/stacks/nextjs-supabase/.morph/templates/tasks.md +257 -0
  163. package/stacks/nextjs-supabase/CLAUDE.md +149 -0
  164. package/stacks/nextjs-supabase/README.md +112 -0
  165. /package/{detectors → src/lib/detectors}/structure-detector.js +0 -0
  166. /package/{content → stacks/blazor-azure}/.claude/commands/morph-apply.md +0 -0
  167. /package/{content → stacks/blazor-azure}/.claude/commands/morph-preflight.md +0 -0
  168. /package/{content → stacks/blazor-azure}/.claude/commands/morph-proposal.md +0 -0
  169. /package/{content → stacks/blazor-azure}/.claude/commands/morph-status.md +0 -0
  170. /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/README.md +0 -0
  171. /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/code-review.md +0 -0
  172. /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/morph-checklist.md +0 -0
  173. /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/simulation-checklist.md +0 -0
  174. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/README.md +0 -0
  175. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/morph-replicate.md +0 -0
  176. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-clarify.md +0 -0
  177. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-design.md +0 -0
  178. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-tasks.md +0 -0
  179. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-uiux.md +0 -0
  180. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/README.md +0 -0
  181. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/ai-agents/ai-system-architect.md +0 -0
  182. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/architecture/po-pm-advisor.md +0 -0
  183. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/architecture/standards-architect.md +0 -0
  184. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/dotnet-senior.md +0 -0
  185. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/ef-modeler.md +0 -0
  186. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/hangfire-orchestrator.md +0 -0
  187. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/ms-agent-expert.md +0 -0
  188. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/frontend/blazor-builder.md +0 -0
  189. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/frontend/nextjs-expert.md +0 -0
  190. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/frontend/ui-ux-designer.md +0 -0
  191. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/azure-architect.md +0 -0
  192. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/bicep-architect.md +0 -0
  193. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/container-specialist.md +0 -0
  194. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/devops-engineer.md +0 -0
  195. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/asaas-financial.md +0 -0
  196. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/azure-identity.md +0 -0
  197. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/clerk-auth.md +0 -0
  198. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/resend-email.md +0 -0
  199. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/quality/code-analyzer.md +0 -0
  200. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/quality/testing-specialist.md +0 -0
  201. /package/{content → stacks/blazor-azure}/.claude/skills/level-3-technologies/README.md +0 -0
  202. /package/{content → stacks/blazor-azure}/.claude/skills/level-4-patterns/README.md +0 -0
  203. /package/{content → stacks/blazor-azure}/.morph/config/config.template.json +0 -0
  204. /package/{content → stacks/blazor-azure}/.morph/docs/workflows/design-impl.md +0 -0
  205. /package/{content → stacks/blazor-azure}/.morph/docs/workflows/fast-track.md +0 -0
  206. /package/{content → stacks/blazor-azure}/.morph/docs/workflows/full-morph.md +0 -0
  207. /package/{content → stacks/blazor-azure}/.morph/docs/workflows/standard.md +0 -0
  208. /package/{content → stacks/blazor-azure}/.morph/docs/workflows/ui-refresh.md +0 -0
  209. /package/{content → stacks/blazor-azure}/.morph/examples/scheduled-reports/decisions.md +0 -0
  210. /package/{content → stacks/blazor-azure}/.morph/examples/scheduled-reports/proposal.md +0 -0
  211. /package/{content → stacks/blazor-azure}/.morph/examples/scheduled-reports/spec.md +0 -0
  212. /package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-agents.sh +0 -0
  213. /package/{content → stacks/blazor-azure}/.morph/hooks/task-completed.js +0 -0
  214. /package/{content → stacks/blazor-azure}/.morph/hooks/teammate-idle.js +0 -0
  215. /package/{content → stacks/blazor-azure}/.morph/schemas/tasks.schema.json +0 -0
  216. /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-blazor-ui.md +0 -0
  217. /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-production.md +0 -0
  218. /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-setup.md +0 -0
  219. /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-workflows.md +0 -0
  220. /package/{content → stacks/blazor-azure}/.morph/standards/architecture.md +0 -0
  221. /package/{content → stacks/blazor-azure}/.morph/standards/azure.md +0 -0
  222. /package/{content → stacks/blazor-azure}/.morph/standards/dotnet10-migration.md +0 -0
  223. /package/{content → stacks/blazor-azure}/.morph/templates/CONTEXT-FEATURE.md +0 -0
  224. /package/{content → stacks/blazor-azure}/.morph/templates/CONTEXT.md +0 -0
  225. /package/{content → stacks/blazor-azure}/.morph/templates/agent.cs +0 -0
  226. /package/{content → stacks/blazor-azure}/.morph/templates/clarify-questions.md +0 -0
  227. /package/{content → stacks/blazor-azure}/.morph/templates/contracts/Commands.cs +0 -0
  228. /package/{content → stacks/blazor-azure}/.morph/templates/contracts/Entities.cs +0 -0
  229. /package/{content → stacks/blazor-azure}/.morph/templates/contracts/Queries.cs +0 -0
  230. /package/{content → stacks/blazor-azure}/.morph/templates/contracts/README.md +0 -0
  231. /package/{content → stacks/blazor-azure}/.morph/templates/decisions.md +0 -0
  232. /package/{content → stacks/blazor-azure}/.morph/templates/infra/deploy-checklist.md +0 -0
  233. /package/{content → stacks/blazor-azure}/.morph/templates/proposal.md +0 -0
  234. /package/{content → stacks/blazor-azure}/.morph/templates/recap.md +0 -0
  235. /package/{content → stacks/blazor-azure}/.morph/templates/simulation.md +0 -0
  236. /package/{content → stacks/blazor-azure}/.morph/templates/spec.md +0 -0
  237. /package/{content → stacks/blazor-azure}/.morph/templates/state.template.json +0 -0
  238. /package/{content → stacks/blazor-azure}/.morph/templates/tasks.md +0 -0
  239. /package/{content → stacks/blazor-azure}/.morph/templates/ui-components.md +0 -0
  240. /package/{content → stacks/blazor-azure}/CLAUDE.md +0 -0
@@ -1,18 +1,18 @@
1
- {
2
- "$schema": "./templates/state.template.json",
3
- "version": "2.1.1",
4
- "project": {
5
- "name": "{PROJECT_NAME}",
6
- "type": "blazor-server",
7
- "createdAt": null,
8
- "updatedAt": null
9
- },
10
- "features": {},
11
- "metadata": {
12
- "totalFeatures": 0,
13
- "completedFeatures": 0,
14
- "totalCostEstimated": 0,
15
- "totalTimeSpent": 0,
16
- "lastUpdated": null
17
- }
1
+ {
2
+ "$schema": "./templates/state.template.json",
3
+ "version": "2.1.1",
4
+ "project": {
5
+ "name": "{PROJECT_NAME}",
6
+ "type": "blazor-server",
7
+ "createdAt": null,
8
+ "updatedAt": null
9
+ },
10
+ "features": {},
11
+ "metadata": {
12
+ "totalFeatures": 0,
13
+ "completedFeatures": 0,
14
+ "totalCostEstimated": 0,
15
+ "totalTimeSpent": 0,
16
+ "lastUpdated": null
17
+ }
18
18
  }
@@ -1,149 +1,149 @@
1
- using Microsoft.FluentUI.AspNetCore.Components;
2
-
3
- namespace {Namespace}.Themes;
4
-
5
- /// <summary>
6
- /// Fluent UI Design Theme customizado para {Project Name}.
7
- /// Gerado automaticamente baseado em ui-design-system.md
8
- /// </summary>
9
- /// <remarks>
10
- /// Template MORPH-SPEC v2.1.1 by Polymorphism Tech
11
- /// </remarks>
12
- public static class FluentDesignTheme
13
- {
14
- /// <summary>
15
- /// Paleta de cores do tema
16
- /// </summary>
17
- public static DesignThemePalette GetPalette() => new()
18
- {
19
- // Cores Principais
20
- Primary = "#{hex da cor primária}", // Ex: #3b82f6
21
- Secondary = "#{hex da cor secundária}", // Ex: #6b7280
22
-
23
- // Cores de Estado
24
- Success = "#{hex}", // Ex: #10b981
25
- Error = "#{hex}", // Ex: #ef4444
26
- Warning = "#{hex}", // Ex: #f59e0b
27
- Info = "#{hex}", // Ex: #06b6d4
28
-
29
- // Neutros
30
- NeutralLight = "#{hex do gray-50}", // Ex: #f9fafb
31
- NeutralLighter = "#{hex do gray-100}", // Ex: #f3f4f6
32
- NeutralDark = "#{hex do gray-800}", // Ex: #1f2937
33
- NeutralDarker = "#{hex do gray-900}", // Ex: #111827
34
-
35
- // Background e Foreground
36
- Background = "#ffffff",
37
- Foreground = "#{hex do gray-900}", // Texto principal
38
-
39
- // Accent (geralmente = Primary)
40
- Accent = "#{hex da cor primária}",
41
- };
42
-
43
- /// <summary>
44
- /// Configuração de tipografia
45
- /// </summary>
46
- public static DesignThemeTypography GetTypography() => new()
47
- {
48
- FontFamily = "'{Font Name}', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
49
-
50
- // Tamanhos
51
- FontSizeBase = "1rem", // 16px
52
- FontSizeSmall = "0.875rem", // 14px
53
- FontSizeLarge = "1.125rem", // 18px
54
-
55
- // Weights
56
- FontWeightRegular = 400,
57
- FontWeightSemibold = 600,
58
- FontWeightBold = 700,
59
-
60
- // Line Heights
61
- LineHeightBase = 1.5,
62
- };
63
-
64
- /// <summary>
65
- /// Configuração de espaçamento e layout
66
- /// </summary>
67
- public static DesignThemeLayout GetLayout() => new()
68
- {
69
- // Espaçamento (baseado em múltiplos de {base}px - ex: 4px)
70
- SpacingBase = "0.25rem", // 4px
71
- SpacingSmall = "0.5rem", // 8px
72
- SpacingMedium = "1rem", // 16px
73
- SpacingLarge = "1.5rem", // 24px
74
-
75
- // Border Radius
76
- BorderRadiusSmall = "0.125rem", // 2px
77
- BorderRadiusMedium = "0.375rem", // 6px
78
- BorderRadiusLarge = "0.5rem", // 8px
79
-
80
- // Shadows (depende da biblioteca - ajustar conforme API)
81
- Elevation1 = "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
82
- Elevation2 = "0 4px 6px -1px rgba(0, 0, 0, 0.1)",
83
- Elevation3 = "0 10px 15px -3px rgba(0, 0, 0, 0.1)",
84
- };
85
-
86
- /// <summary>
87
- /// Aplica o tema customizado ao FluentUI
88
- /// </summary>
89
- /// <param name="services">Service collection</param>
90
- public static void AddFluentUIWithCustomTheme(this IServiceCollection services)
91
- {
92
- services.AddFluentUIComponents(options =>
93
- {
94
- // Aplicar paleta customizada
95
- options.DesignThemePalette = GetPalette();
96
-
97
- // Outras configurações do Fluent UI
98
- // ...
99
- });
100
- }
101
- }
102
-
103
- /// <summary>
104
- /// Classe de configuração de tipografia
105
- /// (Ajustar conforme API do Fluent UI Blazor v4.x)
106
- /// </summary>
107
- public class DesignThemeTypography
108
- {
109
- public string FontFamily { get; set; } = string.Empty;
110
- public string FontSizeBase { get; set; } = string.Empty;
111
- public string FontSizeSmall { get; set; } = string.Empty;
112
- public string FontSizeLarge { get; set; } = string.Empty;
113
- public int FontWeightRegular { get; set; }
114
- public int FontWeightSemibold { get; set; }
115
- public int FontWeightBold { get; set; }
116
- public double LineHeightBase { get; set; }
117
- }
118
-
119
- /// <summary>
120
- /// Classe de configuração de layout
121
- /// (Ajustar conforme API do Fluent UI Blazor v4.x)
122
- /// </summary>
123
- public class DesignThemeLayout
124
- {
125
- public string SpacingBase { get; set; } = string.Empty;
126
- public string SpacingSmall { get; set; } = string.Empty;
127
- public string SpacingMedium { get; set; } = string.Empty;
128
- public string SpacingLarge { get; set; } = string.Empty;
129
-
130
- public string BorderRadiusSmall { get; set; } = string.Empty;
131
- public string BorderRadiusMedium { get; set; } = string.Empty;
132
- public string BorderRadiusLarge { get; set; } = string.Empty;
133
-
134
- public string Elevation1 { get; set; } = string.Empty;
135
- public string Elevation2 { get; set; } = string.Empty;
136
- public string Elevation3 { get; set; } = string.Empty;
137
- }
138
-
139
- /// <summary>
140
- /// EXEMPLO DE USO:
141
- ///
142
- /// // Program.cs
143
- /// builder.Services.AddFluentUIWithCustomTheme();
144
- ///
145
- /// // App.razor ou MainLayout.razor
146
- /// <FluentDesignTheme Mode="DesignThemeMode.Light" />
147
- ///
148
- /// // Componentes podem acessar cores via CSS variables ou propriedades do tema
149
- /// </summary>
1
+ using Microsoft.FluentUI.AspNetCore.Components;
2
+
3
+ namespace {Namespace}.Themes;
4
+
5
+ /// <summary>
6
+ /// Fluent UI Design Theme customizado para {Project Name}.
7
+ /// Gerado automaticamente baseado em ui-design-system.md
8
+ /// </summary>
9
+ /// <remarks>
10
+ /// Template MORPH-SPEC v2.1.1 by Polymorphism Tech
11
+ /// </remarks>
12
+ public static class FluentDesignTheme
13
+ {
14
+ /// <summary>
15
+ /// Paleta de cores do tema
16
+ /// </summary>
17
+ public static DesignThemePalette GetPalette() => new()
18
+ {
19
+ // Cores Principais
20
+ Primary = "#{hex da cor primária}", // Ex: #3b82f6
21
+ Secondary = "#{hex da cor secundária}", // Ex: #6b7280
22
+
23
+ // Cores de Estado
24
+ Success = "#{hex}", // Ex: #10b981
25
+ Error = "#{hex}", // Ex: #ef4444
26
+ Warning = "#{hex}", // Ex: #f59e0b
27
+ Info = "#{hex}", // Ex: #06b6d4
28
+
29
+ // Neutros
30
+ NeutralLight = "#{hex do gray-50}", // Ex: #f9fafb
31
+ NeutralLighter = "#{hex do gray-100}", // Ex: #f3f4f6
32
+ NeutralDark = "#{hex do gray-800}", // Ex: #1f2937
33
+ NeutralDarker = "#{hex do gray-900}", // Ex: #111827
34
+
35
+ // Background e Foreground
36
+ Background = "#ffffff",
37
+ Foreground = "#{hex do gray-900}", // Texto principal
38
+
39
+ // Accent (geralmente = Primary)
40
+ Accent = "#{hex da cor primária}",
41
+ };
42
+
43
+ /// <summary>
44
+ /// Configuração de tipografia
45
+ /// </summary>
46
+ public static DesignThemeTypography GetTypography() => new()
47
+ {
48
+ FontFamily = "'{Font Name}', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
49
+
50
+ // Tamanhos
51
+ FontSizeBase = "1rem", // 16px
52
+ FontSizeSmall = "0.875rem", // 14px
53
+ FontSizeLarge = "1.125rem", // 18px
54
+
55
+ // Weights
56
+ FontWeightRegular = 400,
57
+ FontWeightSemibold = 600,
58
+ FontWeightBold = 700,
59
+
60
+ // Line Heights
61
+ LineHeightBase = 1.5,
62
+ };
63
+
64
+ /// <summary>
65
+ /// Configuração de espaçamento e layout
66
+ /// </summary>
67
+ public static DesignThemeLayout GetLayout() => new()
68
+ {
69
+ // Espaçamento (baseado em múltiplos de {base}px - ex: 4px)
70
+ SpacingBase = "0.25rem", // 4px
71
+ SpacingSmall = "0.5rem", // 8px
72
+ SpacingMedium = "1rem", // 16px
73
+ SpacingLarge = "1.5rem", // 24px
74
+
75
+ // Border Radius
76
+ BorderRadiusSmall = "0.125rem", // 2px
77
+ BorderRadiusMedium = "0.375rem", // 6px
78
+ BorderRadiusLarge = "0.5rem", // 8px
79
+
80
+ // Shadows (depende da biblioteca - ajustar conforme API)
81
+ Elevation1 = "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
82
+ Elevation2 = "0 4px 6px -1px rgba(0, 0, 0, 0.1)",
83
+ Elevation3 = "0 10px 15px -3px rgba(0, 0, 0, 0.1)",
84
+ };
85
+
86
+ /// <summary>
87
+ /// Aplica o tema customizado ao FluentUI
88
+ /// </summary>
89
+ /// <param name="services">Service collection</param>
90
+ public static void AddFluentUIWithCustomTheme(this IServiceCollection services)
91
+ {
92
+ services.AddFluentUIComponents(options =>
93
+ {
94
+ // Aplicar paleta customizada
95
+ options.DesignThemePalette = GetPalette();
96
+
97
+ // Outras configurações do Fluent UI
98
+ // ...
99
+ });
100
+ }
101
+ }
102
+
103
+ /// <summary>
104
+ /// Classe de configuração de tipografia
105
+ /// (Ajustar conforme API do Fluent UI Blazor v4.x)
106
+ /// </summary>
107
+ public class DesignThemeTypography
108
+ {
109
+ public string FontFamily { get; set; } = string.Empty;
110
+ public string FontSizeBase { get; set; } = string.Empty;
111
+ public string FontSizeSmall { get; set; } = string.Empty;
112
+ public string FontSizeLarge { get; set; } = string.Empty;
113
+ public int FontWeightRegular { get; set; }
114
+ public int FontWeightSemibold { get; set; }
115
+ public int FontWeightBold { get; set; }
116
+ public double LineHeightBase { get; set; }
117
+ }
118
+
119
+ /// <summary>
120
+ /// Classe de configuração de layout
121
+ /// (Ajustar conforme API do Fluent UI Blazor v4.x)
122
+ /// </summary>
123
+ public class DesignThemeLayout
124
+ {
125
+ public string SpacingBase { get; set; } = string.Empty;
126
+ public string SpacingSmall { get; set; } = string.Empty;
127
+ public string SpacingMedium { get; set; } = string.Empty;
128
+ public string SpacingLarge { get; set; } = string.Empty;
129
+
130
+ public string BorderRadiusSmall { get; set; } = string.Empty;
131
+ public string BorderRadiusMedium { get; set; } = string.Empty;
132
+ public string BorderRadiusLarge { get; set; } = string.Empty;
133
+
134
+ public string Elevation1 { get; set; } = string.Empty;
135
+ public string Elevation2 { get; set; } = string.Empty;
136
+ public string Elevation3 { get; set; } = string.Empty;
137
+ }
138
+
139
+ /// <summary>
140
+ /// EXEMPLO DE USO:
141
+ ///
142
+ /// // Program.cs
143
+ /// builder.Services.AddFluentUIWithCustomTheme();
144
+ ///
145
+ /// // App.razor ou MainLayout.razor
146
+ /// <FluentDesignTheme Mode="DesignThemeMode.Light" />
147
+ ///
148
+ /// // Componentes podem acessar cores via CSS variables ou propriedades do tema
149
+ /// </summary>