aiox-core 5.0.3 → 5.0.4

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 (468) hide show
  1. package/.aiox-core/core/execution/predictive-pipeline.js +1283 -0
  2. package/.aiox-core/core/memory/decision-memory.js +564 -0
  3. package/.aiox-core/data/entity-registry.yaml +1068 -1028
  4. package/.aiox-core/data/registry-update-log.jsonl +2 -2
  5. package/.aiox-core/development/templates/service-template/README.md.hbs +158 -158
  6. package/.aiox-core/development/templates/service-template/__tests__/index.test.ts.hbs +237 -237
  7. package/.aiox-core/development/templates/service-template/client.ts.hbs +403 -403
  8. package/.aiox-core/development/templates/service-template/errors.ts.hbs +182 -182
  9. package/.aiox-core/development/templates/service-template/index.ts.hbs +120 -120
  10. package/.aiox-core/development/templates/service-template/package.json.hbs +87 -87
  11. package/.aiox-core/development/templates/service-template/types.ts.hbs +145 -145
  12. package/.aiox-core/development/templates/squad-template/LICENSE +21 -21
  13. package/.aiox-core/infrastructure/templates/aiox-sync.yaml.template +182 -182
  14. package/.aiox-core/infrastructure/templates/coderabbit.yaml.template +279 -279
  15. package/.aiox-core/infrastructure/templates/github-workflows/ci.yml.template +169 -169
  16. package/.aiox-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -330
  17. package/.aiox-core/infrastructure/templates/github-workflows/release.yml.template +196 -196
  18. package/.aiox-core/infrastructure/templates/gitignore/gitignore-aiox-base.tmpl +63 -63
  19. package/.aiox-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -18
  20. package/.aiox-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -85
  21. package/.aiox-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -145
  22. package/.aiox-core/install-manifest.yaml +63 -55
  23. package/.aiox-core/local-config.yaml.template +71 -71
  24. package/.aiox-core/monitor/hooks/lib/__init__.py +1 -1
  25. package/.aiox-core/monitor/hooks/lib/enrich.py +58 -58
  26. package/.aiox-core/monitor/hooks/lib/send_event.py +47 -47
  27. package/.aiox-core/monitor/hooks/notification.py +29 -29
  28. package/.aiox-core/monitor/hooks/post_tool_use.py +45 -45
  29. package/.aiox-core/monitor/hooks/pre_compact.py +29 -29
  30. package/.aiox-core/monitor/hooks/pre_tool_use.py +40 -40
  31. package/.aiox-core/monitor/hooks/stop.py +29 -29
  32. package/.aiox-core/monitor/hooks/subagent_stop.py +29 -29
  33. package/.aiox-core/monitor/hooks/user_prompt_submit.py +38 -38
  34. package/.aiox-core/product/templates/adr.hbs +125 -125
  35. package/.aiox-core/product/templates/dbdr.hbs +241 -241
  36. package/.aiox-core/product/templates/epic.hbs +212 -212
  37. package/.aiox-core/product/templates/pmdr.hbs +186 -186
  38. package/.aiox-core/product/templates/prd-v2.0.hbs +216 -216
  39. package/.aiox-core/product/templates/prd.hbs +201 -201
  40. package/.aiox-core/product/templates/story.hbs +263 -263
  41. package/.aiox-core/product/templates/task.hbs +170 -170
  42. package/.aiox-core/product/templates/tmpl-comment-on-examples.sql +158 -158
  43. package/.aiox-core/product/templates/tmpl-migration-script.sql +91 -91
  44. package/.aiox-core/product/templates/tmpl-rls-granular-policies.sql +104 -104
  45. package/.aiox-core/product/templates/tmpl-rls-kiss-policy.sql +10 -10
  46. package/.aiox-core/product/templates/tmpl-rls-roles.sql +135 -135
  47. package/.aiox-core/product/templates/tmpl-rls-simple.sql +77 -77
  48. package/.aiox-core/product/templates/tmpl-rls-tenant.sql +152 -152
  49. package/.aiox-core/product/templates/tmpl-rollback-script.sql +77 -77
  50. package/.aiox-core/product/templates/tmpl-seed-data.sql +140 -140
  51. package/.aiox-core/product/templates/tmpl-smoke-test.sql +16 -16
  52. package/.aiox-core/product/templates/tmpl-staging-copy-merge.sql +139 -139
  53. package/.aiox-core/product/templates/tmpl-stored-proc.sql +140 -140
  54. package/.aiox-core/product/templates/tmpl-trigger.sql +152 -152
  55. package/.aiox-core/product/templates/tmpl-view-materialized.sql +133 -133
  56. package/.aiox-core/product/templates/tmpl-view.sql +177 -177
  57. package/.aiox-core/scripts/pm.sh +0 -0
  58. package/.claude/hooks/enforce-architecture-first.py +196 -196
  59. package/.claude/hooks/mind-clone-governance.py +192 -192
  60. package/.claude/hooks/read-protection.py +151 -151
  61. package/.claude/hooks/slug-validation.py +176 -176
  62. package/.claude/hooks/sql-governance.py +182 -182
  63. package/.claude/hooks/write-path-validation.py +194 -194
  64. package/LICENSE +33 -33
  65. package/bin/aiox-graph.js +0 -0
  66. package/bin/aiox-minimal.js +0 -0
  67. package/bin/aiox.js +0 -0
  68. package/package.json +1 -1
  69. package/packages/aiox-install/bin/aiox-install.js +0 -0
  70. package/packages/aiox-install/bin/edmcp.js +0 -0
  71. package/packages/aiox-pro-cli/bin/aiox-pro.js +0 -0
  72. package/packages/installer/src/wizard/pro-setup.js +28 -0
  73. package/pro/README.md +66 -66
  74. package/pro/feature-registry.yaml +225 -223
  75. package/pro/license/license-api.js +701 -679
  76. package/pro/package.json +39 -39
  77. package/pro/pro-config.yaml +63 -63
  78. package/pro/squads/README.md +24 -24
  79. package/pro/squads/design/HEADLINE.md +3 -3
  80. package/pro/squads/design/README.md +109 -109
  81. package/pro/squads/design/agents/brad-frost.md +1097 -1097
  82. package/pro/squads/design/agents/dan-mall.md +857 -857
  83. package/pro/squads/design/agents/dave-malouf.md +2272 -2272
  84. package/pro/squads/design/agents/design-chief.md +114 -114
  85. package/pro/squads/design/agents/ds-foundations-lead.md +194 -194
  86. package/pro/squads/design/agents/ds-token-architect.md +361 -361
  87. package/pro/squads/design/agents/nano-banana-generator.md +162 -162
  88. package/pro/squads/design/agents/storybook-expert.md +809 -809
  89. package/pro/squads/design/checklists/atomic-refactor-checklist.md +299 -299
  90. package/pro/squads/design/checklists/component-adaptation-checklist.md +81 -81
  91. package/pro/squads/design/checklists/design-fidelity-checklist.md +283 -283
  92. package/pro/squads/design/checklists/design-handoff-checklist.md +55 -55
  93. package/pro/squads/design/checklists/design-team-health-checklist.md +454 -454
  94. package/pro/squads/design/checklists/designops-maturity-checklist.md +518 -518
  95. package/pro/squads/design/checklists/ds-a11y-release-gate-checklist.md +45 -45
  96. package/pro/squads/design/checklists/ds-accessibility-wcag-checklist.md +147 -147
  97. package/pro/squads/design/checklists/ds-component-quality-checklist.md +150 -150
  98. package/pro/squads/design/checklists/ds-critical-eye-review-checklist.md +147 -147
  99. package/pro/squads/design/checklists/ds-migration-readiness-checklist.md +99 -99
  100. package/pro/squads/design/checklists/ds-pattern-audit-checklist.md +164 -164
  101. package/pro/squads/design/checklists/reading-accessibility-checklist.md +275 -275
  102. package/pro/squads/design/checklists/token-mapping-checklist.md +107 -107
  103. package/pro/squads/design/config/coding-standards.md +286 -286
  104. package/pro/squads/design/config/source-tree.md +59 -59
  105. package/pro/squads/design/config/tech-stack.md +48 -48
  106. package/pro/squads/design/config.yaml +204 -204
  107. package/pro/squads/design/data/agentic-design-systems-guide.md +46 -46
  108. package/pro/squads/design/data/agentic-ds-principles.md +100 -100
  109. package/pro/squads/design/data/atomic-design-principles.md +108 -108
  110. package/pro/squads/design/data/atomic-refactor-rules.md +582 -582
  111. package/pro/squads/design/data/base-component-specs.md +972 -972
  112. package/pro/squads/design/data/brad-frost-analysis-extract-implicit.yaml +270 -270
  113. package/pro/squads/design/data/brad-frost-analysis-find-0.8.yaml +176 -176
  114. package/pro/squads/design/data/brad-frost-analysis-qa-report.yaml +168 -168
  115. package/pro/squads/design/data/brad-frost-dna.yaml +713 -713
  116. package/pro/squads/design/data/capability-tools.yaml +124 -124
  117. package/pro/squads/design/data/component-adaptation-changelog.md +318 -318
  118. package/pro/squads/design/data/consolidation-algorithms.md +168 -168
  119. package/pro/squads/design/data/critical-eye-scoring-rules.yaml +240 -240
  120. package/pro/squads/design/data/design-token-best-practices.md +107 -107
  121. package/pro/squads/design/data/design-tokens-spec.yaml +418 -418
  122. package/pro/squads/design/data/ds-reference-architectures.md +93 -93
  123. package/pro/squads/design/data/f2-qa-report.md +168 -168
  124. package/pro/squads/design/data/f3-derived-components-changelog.md +100 -100
  125. package/pro/squads/design/data/f3-qa-report.md +208 -208
  126. package/pro/squads/design/data/figma-base-components-raw.md +101 -101
  127. package/pro/squads/design/data/figma-tokens-raw.md +1548 -1548
  128. package/pro/squads/design/data/fluent2-design-principles.md +114 -114
  129. package/pro/squads/design/data/high-retention-reading-guide.md +349 -349
  130. package/pro/squads/design/data/integration-patterns.md +207 -207
  131. package/pro/squads/design/data/internal-quality-chain.yaml +48 -48
  132. package/pro/squads/design/data/motion-tokens-guide.md +202 -202
  133. package/pro/squads/design/data/roi-calculation-guide.md +142 -142
  134. package/pro/squads/design/data/token-mapping-reference.md +213 -213
  135. package/pro/squads/design/data/w3c-dtcg-spec-reference.md +149 -149
  136. package/pro/squads/design/data/wcag-compliance-guide.md +267 -267
  137. package/pro/squads/design/docs/AUDIT_REPORT.md +97 -97
  138. package/pro/squads/design/docs/DS-CURATION-PIPELINE-PROPOSAL.md +577 -577
  139. package/pro/squads/design/docs/UPGRADE_PLAN.md +618 -618
  140. package/pro/squads/design/docs/brad-frost-research-validation.md +372 -372
  141. package/pro/squads/design/docs/dave-malouf-research-validation.md +391 -391
  142. package/pro/squads/design/docs/tool-discovery-report.md +87 -87
  143. package/pro/squads/design/docs/tool-integration-plan.md +44 -44
  144. package/pro/squads/design/protocols/ai-first-governance.md +56 -56
  145. package/pro/squads/design/protocols/governance-execution-boundary.md +59 -59
  146. package/pro/squads/design/protocols/handoff.md +60 -60
  147. package/pro/squads/design/rules/.claude-rules.md +88 -88
  148. package/pro/squads/design/scripts/design-system/curate_colors.cjs +447 -447
  149. package/pro/squads/design/scripts/design-system/curate_components.cjs +217 -217
  150. package/pro/squads/design/scripts/design-system/curate_radius.cjs +190 -190
  151. package/pro/squads/design/scripts/design-system/curate_shadows.cjs +208 -208
  152. package/pro/squads/design/scripts/design-system/curate_spacing.cjs +243 -243
  153. package/pro/squads/design/scripts/design-system/curate_typography.cjs +404 -404
  154. package/pro/squads/design/scripts/design-system/design-system-metadata.test.js +49 -49
  155. package/pro/squads/design/scripts/design-system/design_manifest_lib.cjs +142 -142
  156. package/pro/squads/design/scripts/design-system/fetch_page_images.cjs +195 -195
  157. package/pro/squads/design/scripts/design-system/generate_components_metadata.cjs +114 -114
  158. package/pro/squads/design/scripts/design-system/generate_curation_report.cjs +258 -258
  159. package/pro/squads/design/scripts/design-system/generate_tokens.cjs +342 -342
  160. package/pro/squads/design/scripts/design-system/sync_design_manifest.cjs +27 -27
  161. package/pro/squads/design/scripts/design-system/test_mcp_tools.cjs +232 -232
  162. package/pro/squads/design/scripts/design-system/validate_components_metadata.cjs +96 -96
  163. package/pro/squads/design/scripts/design-system/validate_curation.cjs +226 -226
  164. package/pro/squads/design/scripts/design-system/validate_design_manifest_drift.cjs +72 -72
  165. package/pro/squads/design/scripts/design-system/validate_mcp_skeleton.cjs +38 -38
  166. package/pro/squads/design/scripts/design-system/validate_registry.cjs +186 -186
  167. package/pro/squads/design/scripts/design-system/validate_task_checklist_bindings.cjs +78 -78
  168. package/pro/squads/design/scripts/dissect-artifact.cjs +806 -806
  169. package/pro/squads/design/scripts/validate-a11y-integration.cjs +40 -40
  170. package/pro/squads/design/scripts/validate-design-squad.py +411 -411
  171. package/pro/squads/design/squad.yaml +714 -714
  172. package/pro/squads/design/tasks/a11y-audit.md +340 -340
  173. package/pro/squads/design/tasks/aria-audit.md +525 -525
  174. package/pro/squads/design/tasks/atomic-refactor-execute.md +391 -391
  175. package/pro/squads/design/tasks/atomic-refactor-plan.md +262 -262
  176. package/pro/squads/design/tasks/audit-reading-experience.md +350 -350
  177. package/pro/squads/design/tasks/audit-tailwind-config.md +101 -101
  178. package/pro/squads/design/tasks/bootstrap-shadcn-library.md +96 -96
  179. package/pro/squads/design/tasks/bundle-audit.md +245 -245
  180. package/pro/squads/design/tasks/contrast-matrix.md +373 -373
  181. package/pro/squads/design/tasks/create-doc.md +135 -135
  182. package/pro/squads/design/tasks/dead-code-detection.md +329 -329
  183. package/pro/squads/design/tasks/design-compare.md +414 -414
  184. package/pro/squads/design/tasks/design-process-optimization.md +407 -407
  185. package/pro/squads/design/tasks/design-review-orchestration.md +99 -99
  186. package/pro/squads/design/tasks/design-team-scaling.md +407 -407
  187. package/pro/squads/design/tasks/design-tooling-audit.md +404 -404
  188. package/pro/squads/design/tasks/design-triage.md +89 -89
  189. package/pro/squads/design/tasks/designops-maturity-assessment.md +364 -364
  190. package/pro/squads/design/tasks/designops-metrics-setup.md +465 -465
  191. package/pro/squads/design/tasks/ds-agentic-audit.md +100 -100
  192. package/pro/squads/design/tasks/ds-agentic-setup.md +103 -103
  193. package/pro/squads/design/tasks/ds-audit-codebase.md +273 -273
  194. package/pro/squads/design/tasks/ds-build-component.md +349 -349
  195. package/pro/squads/design/tasks/ds-build-mcp-server.md +84 -84
  196. package/pro/squads/design/tasks/ds-calculate-roi.md +282 -282
  197. package/pro/squads/design/tasks/ds-compose-molecule.md +106 -106
  198. package/pro/squads/design/tasks/ds-consolidate-patterns.md +253 -253
  199. package/pro/squads/design/tasks/ds-context-contract.md +194 -194
  200. package/pro/squads/design/tasks/ds-critical-eye-compare.md +130 -130
  201. package/pro/squads/design/tasks/ds-critical-eye-decide.md +139 -139
  202. package/pro/squads/design/tasks/ds-critical-eye-inventory.md +111 -111
  203. package/pro/squads/design/tasks/ds-critical-eye-report.md +101 -101
  204. package/pro/squads/design/tasks/ds-critical-eye-score.md +109 -109
  205. package/pro/squads/design/tasks/ds-designops.md +99 -99
  206. package/pro/squads/design/tasks/ds-extend-pattern.md +91 -91
  207. package/pro/squads/design/tasks/ds-extract-tokens.md +312 -312
  208. package/pro/squads/design/tasks/ds-figma-pipeline.md +95 -95
  209. package/pro/squads/design/tasks/ds-fluent-audit.md +105 -105
  210. package/pro/squads/design/tasks/ds-fluent-build.md +110 -110
  211. package/pro/squads/design/tasks/ds-generate-ai-metadata.md +81 -81
  212. package/pro/squads/design/tasks/ds-generate-cursor-rules.md +74 -74
  213. package/pro/squads/design/tasks/ds-generate-documentation.md +101 -101
  214. package/pro/squads/design/tasks/ds-generate-migration-strategy.md +331 -331
  215. package/pro/squads/design/tasks/ds-generate-shock-report.md +323 -323
  216. package/pro/squads/design/tasks/ds-govern-a11y-compliance.md +93 -93
  217. package/pro/squads/design/tasks/ds-governance.md +187 -187
  218. package/pro/squads/design/tasks/ds-health-metrics.md +278 -278
  219. package/pro/squads/design/tasks/ds-integrate-squad.md +130 -130
  220. package/pro/squads/design/tasks/ds-integrate-workspace.md +100 -100
  221. package/pro/squads/design/tasks/ds-legacy-modernization.md +302 -302
  222. package/pro/squads/design/tasks/ds-mcp-status.md +65 -65
  223. package/pro/squads/design/tasks/ds-motion-audit.md +118 -118
  224. package/pro/squads/design/tasks/ds-multi-framework.md +96 -96
  225. package/pro/squads/design/tasks/ds-parallelization-gate.md +246 -246
  226. package/pro/squads/design/tasks/ds-query.md +90 -90
  227. package/pro/squads/design/tasks/ds-rebuild-artifact.md +369 -369
  228. package/pro/squads/design/tasks/ds-reverse-engineer.md +194 -194
  229. package/pro/squads/design/tasks/ds-scan-artifact.md +131 -131
  230. package/pro/squads/design/tasks/ds-setup-design-system.md +297 -297
  231. package/pro/squads/design/tasks/ds-sync-registry.md +287 -287
  232. package/pro/squads/design/tasks/ds-theme-multi-brand.md +90 -90
  233. package/pro/squads/design/tasks/ds-token-modes.md +108 -108
  234. package/pro/squads/design/tasks/ds-token-w3c-extract.md +105 -105
  235. package/pro/squads/design/tasks/ds-validate-ai-readiness.md +69 -69
  236. package/pro/squads/design/tasks/ds-visual-regression.md +130 -130
  237. package/pro/squads/design/tasks/execute-checklist.md +141 -141
  238. package/pro/squads/design/tasks/export-design-tokens-dtcg.md +97 -97
  239. package/pro/squads/design/tasks/f1-apply-foundations.md +154 -154
  240. package/pro/squads/design/tasks/f1-ingest-figma-tokens.md +130 -130
  241. package/pro/squads/design/tasks/f1-map-tokens-to-shadcn.md +145 -145
  242. package/pro/squads/design/tasks/f1-qa-foundations.md +95 -95
  243. package/pro/squads/design/tasks/f2-adapt-shadcn-components.md +155 -155
  244. package/pro/squads/design/tasks/f2-ingest-base-components.md +148 -148
  245. package/pro/squads/design/tasks/f2-qa-base-components.md +98 -98
  246. package/pro/squads/design/tasks/f3-derive-components.md +145 -145
  247. package/pro/squads/design/tasks/f3-qa-derived-components.md +101 -101
  248. package/pro/squads/design/tasks/focus-order-audit.md +450 -450
  249. package/pro/squads/design/tasks/sb-brownfield-migrate.md +367 -367
  250. package/pro/squads/design/tasks/sb-brownfield-scan.md +318 -318
  251. package/pro/squads/design/tasks/sb-configure.md +230 -230
  252. package/pro/squads/design/tasks/sb-expand-shadcn.md +213 -213
  253. package/pro/squads/design/tasks/sb-generate-all-stories.md +288 -288
  254. package/pro/squads/design/tasks/sb-install.md +152 -152
  255. package/pro/squads/design/tasks/sb-sync-workspace.md +239 -239
  256. package/pro/squads/design/tasks/sb-verify.md +203 -203
  257. package/pro/squads/design/tasks/tailwind-upgrade.md +117 -117
  258. package/pro/squads/design/tasks/token-usage-analytics.md +262 -262
  259. package/pro/squads/design/tasks/ux-rewrite-sixth-grade.md +82 -82
  260. package/pro/squads/design/tasks/validate-design-fidelity.md +222 -222
  261. package/pro/squads/design/templates/agent-template.yaml +46 -46
  262. package/pro/squads/design/templates/clone-mind-template.md +352 -352
  263. package/pro/squads/design/templates/component-prompt-injection-tmpl.md +236 -236
  264. package/pro/squads/design/templates/component-visual-spec-tmpl.md +378 -378
  265. package/pro/squads/design/templates/critical-eye-cycle-report-tmpl.md +165 -165
  266. package/pro/squads/design/templates/design-fidelity-report-tmpl.md +155 -155
  267. package/pro/squads/design/templates/ds-ai-component-metadata-schema-tmpl.json +138 -138
  268. package/pro/squads/design/templates/ds-artifact-analysis.md +70 -70
  269. package/pro/squads/design/templates/ds-health-report-tmpl.md +236 -236
  270. package/pro/squads/design/templates/ds-migration-strategy-tmpl.md +524 -524
  271. package/pro/squads/design/templates/ds-state-persistence-tmpl.yaml +194 -194
  272. package/pro/squads/design/templates/ds-tokens-schema-tmpl.yaml +139 -139
  273. package/pro/squads/design/templates/migration-strategy-tmpl.md +524 -524
  274. package/pro/squads/design/templates/reading-design-tokens.css +26 -26
  275. package/pro/squads/design/templates/state-persistence-tmpl.yaml +219 -219
  276. package/pro/squads/design/templates/tokens-schema-tmpl.yaml +305 -305
  277. package/pro/squads/design/workflows/agentic-readiness.yaml +83 -83
  278. package/pro/squads/design/workflows/audit-only.yaml +198 -198
  279. package/pro/squads/design/workflows/brownfield-complete.yaml +257 -257
  280. package/pro/squads/design/workflows/critical-eye.yaml +184 -184
  281. package/pro/squads/design/workflows/dtcg-tokens-governance.yaml +64 -64
  282. package/pro/squads/design/workflows/foundations-pipeline.yaml +192 -192
  283. package/pro/squads/design/workflows/greenfield-new.yaml +192 -192
  284. package/pro/squads/design/workflows/motion-quality.yaml +65 -65
  285. package/pro/squads/design/workflows/self-healing-workflow.yaml +237 -237
  286. package/pro/squads/design/workflows/storybook-brownfield-migration.yaml +400 -400
  287. package/pro/squads/design/workflows/storybook-full-setup.yaml +280 -280
  288. package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/ARQUITETURA_COGNITIVA_DE_ALEX_HORMOZI_EXTRA/303/207/303/203O_COMPLETA.md +215 -0
  289. package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/A_Rotina_de_Alta_Performance_de_Alex_Hormozi_Arquitetura,_Motiva/303/247/303/265es_e_Replica/303/247/303/243o.md +309 -0
  290. package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/O_sistema_completo_de_cria/303/247/303/243o_de_conte/303/272do_de_Alex_Hormozi.md +416 -0
  291. package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/Processo_Cria/303/247/303/243o_Conte/303/272do_Hormozi.md +0 -0
  292. package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/DECIS/303/225ES_ESTRAT/303/211GICAS_DE_DESIGN_SYSTEMS_(2022_2025).md +1038 -0
  293. package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/FRAMEWORK_COMPLETO_DE_IMPLEMENTA/303/207/303/203O_ATOMIC_DESIGN.md +797 -0
  294. package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/O_Cemit/303/251rio_de_Design_Systems.md +447 -0
  295. package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/PRINC/303/215PIOS_DE_RACIOC/303/215NIO.md +190 -0
  296. package/pro/squads/mmos-squad/minds/brad_frost/artifacts/DECIS/303/225ES_ESTRAT/303/211GICAS_DE_DESIGN_SYSTEMS_(2022_2025).md +1038 -0
  297. package/pro/squads/mmos-squad/minds/brad_frost/artifacts/FRAMEWORK_COMPLETO_DE_IMPLEMENTA/303/207/303/203O_ATOMIC_DESIGN.md +797 -0
  298. package/pro/squads/mmos-squad/minds/brad_frost/artifacts/O_Cemit/303/251rio_de_Design_Systems.md +447 -0
  299. package/pro/squads/mmos-squad/minds/brad_frost/artifacts/PRINC/303/215PIOS_DE_RACIOC/303/215NIO.md +190 -0
  300. package/pro/squads/mmos-squad/minds/elon_musk/artifacts/AN/303/201LISE_PSICOM/303/211TRICA_PROFUNDA_ELON_MUSK.md +291 -0
  301. package/pro/squads/mmos-squad/minds/elon_musk/artifacts/ASSINATURA_LINGU/303/215STICA_ELON_MUSK.md +485 -0
  302. package/pro/squads/mmos-squad/minds/elon_musk/artifacts/A_Arquitetura_Mental_de_Elon_Musk_Uma_An/303/241lise_Sistem/303/241tica_dos_Frameworks_de_Pensamento.md +907 -0
  303. package/pro/squads/mmos-squad/minds/elon_musk/artifacts/Dossi/303/252_Estrat/303/251gico_A_Arquitetura_Psicol/303/263gica_de_Elon_Musk.md +252 -0
  304. package/pro/squads/mmos-squad/minds/elon_musk/artifacts/Os_Padr/303/265es_de_Leitura_de_Elon_Musk_e_Sua_Influ/303/252ncia_Sistem/303/241tica.md +287 -0
  305. package/pro/squads/mmos-squad/minds/elon_musk/artifacts/Uma_an/303/241lise_psicol/303/263gica_abrangente.md +187 -0
  306. package/pro/squads/mmos-squad/minds/eugene_schwartz/artifacts/AN/303/201LISE_PSICOM/303/211TRICA_PROFUNDA_EUGENE_M._SCHWARTZ.md +790 -0
  307. package/pro/squads/mmos-squad/minds/eugene_schwartz/artifacts/An/303/241lise_Completa_Eugene_Schwartz_Arquitetura_Cognitiva_DEEP.md +210 -0
  308. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/5H_EXTRA/303/207/303/203O_COGNITIVA_COMPLETA_PEDRO_VAL/303/211RIO_LOPEZ.md +226 -0
  309. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_COMPARATIVA_REVISADA_PEDRO_VAL/303/211RIO_LOPEZ.md +246 -0
  310. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_LINGU/303/215STICA_CARIOCA_PEDRO_VAL/303/211RIO_LOPEZ.md +274 -0
  311. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_PSICOM/303/211TRICA_DEFINITIVA_PEDRO_VAL/303/211RIO_LOPEZ.md +821 -0
  312. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_PSICOM/303/211TRICA_PROFUNDA_PEDRO_VAL/303/211RIO.md +1844 -0
  313. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/C/303/201LCULO_DE_RARIDADE_ESTAT/303/215STICA_PEDRO_VAL/303/211RIO_LOPEZ.md +154 -0
  314. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/EXTRA/303/207/303/203O_PEDRO_VAL/303/211RIO.md +237 -0
  315. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/MAPEAMENTO_LINGU/303/215STICO_PROFUNDO.md +161 -0
  316. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/META_AXIOMAS_DE_PEDRO_VAL/303/211RIO.md +256 -0
  317. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/SISTEMA_IMUNOL/303/223GICO_COGNITIVO_PEDRO_VAL/303/211RIO_LOPEZ.md +586 -0
  318. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/SISTEMA_IMUNOL/303/223GICO_COGNITIVO_V2_/342/200/224_CLONE_IA.md +452 -0
  319. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/TABELA_COMPARATIVA_AN/303/201LISE_COMPLETA_DOS_CLONES_IA.md +102 -0
  320. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/WHATSAPP_PADR/303/225ES_LINGU/303/215STICOS_PEDRO_VAL/303/211RIO_LOPEZ.md +286 -0
  321. package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/heur/303/255sticas_de_decis/303/243o_e_algoritmos_mentais_/303/272nicos.md +268 -0
  322. package/pro/squads/mmos-squad/minds/ray_kurzweil/sources/books/PROTOCOLO_COMPLETO_DE_INTERROGA/303/207/303/203O_-_NAVAL_RAVIKANT.md +3624 -0
  323. package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/FRAMEWORK_COMPLETO_DE_IMPLEMENTA/303/207/303/203O_JOBS.md +488 -0
  324. package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/Framework_Cabe/303/247a_Steve.md +257 -0
  325. package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/Relat/303/263rio_Abrangente_sobre_Steve_Jobs_para_Cria/303/247/303/243o_de_Clone_de_IA.md +370 -0
  326. package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/Steve_Jobs_An/303/241lise_Psicol/303/263gica_Profunda_e_Valida/303/247/303/243o_Comportamental.md +65 -0
  327. package/pro/squads/squad-creator-pro/HEADLINE.md +3 -3
  328. package/pro/squads/squad-creator-pro/agents/oalanicolas.md +438 -438
  329. package/pro/squads/squad-creator-pro/agents/squad-chief.md +1651 -1651
  330. package/pro/squads/squad-creator-pro/agents/thiago_finch.md +976 -976
  331. package/pro/squads/squad-creator-pro/assessments/axioma-assessment-wf-create-squad.yaml +325 -325
  332. package/pro/squads/squad-creator-pro/checklists/create-agent-checklist.md +184 -184
  333. package/pro/squads/squad-creator-pro/checklists/create-squad-checklist.md +219 -219
  334. package/pro/squads/squad-creator-pro/checklists/create-workflow-checklist.md +224 -224
  335. package/pro/squads/squad-creator-pro/checklists/mental-model-integration-checklist.md +95 -95
  336. package/pro/squads/squad-creator-pro/checklists/squad-overview-checklist.md +393 -393
  337. package/pro/squads/squad-creator-pro/config/model-routing.yaml +693 -693
  338. package/pro/squads/squad-creator-pro/config/scoring-rubric.yaml +199 -199
  339. package/pro/squads/squad-creator-pro/config.yaml +35 -35
  340. package/pro/squads/squad-creator-pro/data/internal-infrastructure-library.yaml +99 -99
  341. package/pro/squads/squad-creator-pro/data/mental-model-task-matrix.yaml +692 -692
  342. package/pro/squads/squad-creator-pro/docs/ADR-001-model-tier-qualification.md +344 -344
  343. package/pro/squads/squad-creator-pro/docs/AGENT-COLLABORATION.md +609 -609
  344. package/pro/squads/squad-creator-pro/docs/MIGRATION-PLAN-AGENT-CONFORMITY.md +861 -861
  345. package/pro/squads/squad-creator-pro/docs/MODEL-TIER-QUALIFICATION.md +337 -337
  346. package/pro/squads/squad-creator-pro/docs/optimize-v4-proposal.md +354 -354
  347. package/pro/squads/squad-creator-pro/docs/task-optimization-framework.md +229 -229
  348. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_010.md +240 -240
  349. package/pro/squads/squad-creator-pro/protocols/ai-first-governance.md +63 -63
  350. package/pro/squads/squad-creator-pro/scripts/assess-sources.sh +443 -443
  351. package/pro/squads/squad-creator-pro/scripts/clone-review.sh +394 -394
  352. package/pro/squads/squad-creator-pro/scripts/create-agent-preflight.py +243 -243
  353. package/pro/squads/squad-creator-pro/scripts/cross-provider/compare-results.js +281 -281
  354. package/pro/squads/squad-creator-pro/scripts/cross-provider/cross-provider-runner.js +462 -462
  355. package/pro/squads/squad-creator-pro/scripts/fidelity-score.sh +519 -519
  356. package/pro/squads/squad-creator-pro/scripts/generate-squad-guide.js +558 -558
  357. package/pro/squads/squad-creator-pro/scripts/lib/config-loader.js +151 -151
  358. package/pro/squads/squad-creator-pro/scripts/model-tier-validator.cjs +369 -369
  359. package/pro/squads/squad-creator-pro/scripts/model-usage-logger.cjs +245 -245
  360. package/pro/squads/squad-creator-pro/scripts/modernization-score.sh +308 -308
  361. package/pro/squads/squad-creator-pro/scripts/scaffold-squad.cjs +281 -281
  362. package/pro/squads/squad-creator-pro/scripts/security_scanner.py +378 -378
  363. package/pro/squads/squad-creator-pro/scripts/squad-context-loader.cjs +205 -205
  364. package/pro/squads/squad-creator-pro/scripts/squad-state-manager.cjs +451 -451
  365. package/pro/squads/squad-creator-pro/scripts/squad-workflow-runner.cjs +471 -471
  366. package/pro/squads/squad-creator-pro/scripts/squad_utils.py +261 -261
  367. package/pro/squads/squad-creator-pro/scripts/tests/run_bash_tests.sh +29 -29
  368. package/pro/squads/squad-creator-pro/scripts/tests/test_assess_sources.sh +216 -216
  369. package/pro/squads/squad-creator-pro/scripts/tests/test_clone_review.sh +239 -239
  370. package/pro/squads/squad-creator-pro/scripts/tests/test_coherence_validator.py +212 -212
  371. package/pro/squads/squad-creator-pro/scripts/tests/test_fidelity_score.sh +298 -298
  372. package/pro/squads/squad-creator-pro/scripts/tests/test_modernization_score.sh +211 -211
  373. package/pro/squads/squad-creator-pro/scripts/tests/test_security_scanner.py +354 -354
  374. package/pro/squads/squad-creator-pro/scripts/tests/test_validate_clone.sh +252 -252
  375. package/pro/squads/squad-creator-pro/squad.yaml +36 -36
  376. package/pro/squads/squad-creator-pro/tasks/an-compare-outputs.md +354 -354
  377. package/pro/squads/squad-creator-pro/tasks/create-squad.md +933 -933
  378. package/pro/squads/squad-creator-pro/tasks/detect-squad-context.md +81 -81
  379. package/pro/squads/squad-creator-pro/tasks/lookup-model.md +78 -78
  380. package/pro/squads/squad-creator-pro/tasks/next-squad.md +487 -487
  381. package/pro/squads/squad-creator-pro/tasks/optimize-workflow.md +851 -851
  382. package/pro/squads/squad-creator-pro/tasks/parallel-discovery.md +58 -58
  383. package/pro/squads/squad-creator-pro/tasks/pv-axioma-assessment-wf-clone-mind.yaml +256 -256
  384. package/pro/squads/squad-creator-pro/tasks/qualify-task.md +265 -265
  385. package/pro/squads/squad-creator-pro/tasks/reexecute-squad-phase.md +64 -64
  386. package/pro/squads/squad-creator-pro/tasks/smoke-test-model-routing.md +167 -167
  387. package/pro/squads/squad-creator-pro/tasks/squad-overview.md +683 -683
  388. package/pro/squads/squad-creator-pro/tasks/validate-final-artifacts.md +80 -80
  389. package/pro/squads/squad-creator-pro/templates/orchestrator-tmpl.md +74 -74
  390. package/pro/squads/squad-creator-pro/test-cases/BATCH-PROGRESS.md +268 -268
  391. package/pro/squads/squad-creator-pro/test-cases/QUALIFICATION-DASHBOARD.yaml +13 -13
  392. package/pro/squads/squad-creator-pro/test-cases/_template.yaml +147 -147
  393. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/ASSESSMENT-SUMMARY.md +275 -275
  394. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/ASSESSMENT_SUMMARY.md +140 -140
  395. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/CHECKPOINT_MATRIX.md +202 -202
  396. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/EXECUTION-REPORT.md +413 -413
  397. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/EXECUTION_NOTES.md +358 -358
  398. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/README-v2.2.2.md +299 -299
  399. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/README.md +320 -320
  400. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/TEST-REPORT-v2.1.md +351 -351
  401. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/VERIFICATION-CHECKLIST.txt +247 -247
  402. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/formal-qualification-report.yaml +389 -389
  403. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-output.yaml +366 -366
  404. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.1-output.yaml +452 -452
  405. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.2.1-output.yaml +281 -281
  406. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.2.2-output.yaml +332 -332
  407. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/opus-baseline.yaml +517 -517
  408. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/qualification-report.yaml +213 -213
  409. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/test-case.yaml +69 -69
  410. package/pro/squads/squad-creator-pro/test-cases/an-clone-review/haiku-round-1.yaml +213 -213
  411. package/pro/squads/squad-creator-pro/test-cases/an-clone-review/opus-baseline.yaml +566 -566
  412. package/pro/squads/squad-creator-pro/test-cases/an-clone-review/qualification-report.yaml +82 -82
  413. package/pro/squads/squad-creator-pro/test-cases/an-design-clone/test-case.yaml +102 -102
  414. package/pro/squads/squad-creator-pro/test-cases/an-extract-dna/test-case.yaml +105 -105
  415. package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/haiku-round-1.yaml +262 -262
  416. package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/opus-baseline.yaml +266 -266
  417. package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/qualification-report.yaml +94 -94
  418. package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/haiku-round-1.yaml +282 -282
  419. package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/opus-baseline.yaml +470 -470
  420. package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/qualification-report.yaml +106 -106
  421. package/pro/squads/squad-creator-pro/test-cases/collect-sources/test-case.yaml +105 -105
  422. package/pro/squads/squad-creator-pro/test-cases/create-task/test-case.yaml +104 -104
  423. package/pro/squads/squad-creator-pro/test-cases/cross-provider/DASHBOARD.yaml +11 -11
  424. package/pro/squads/squad-creator-pro/test-cases/pv-audit/test-case.yaml +106 -106
  425. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/haiku-output.yaml +209 -209
  426. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/opus-baseline.yaml +96 -96
  427. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/sonnet-output.yaml +30 -30
  428. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/test-case.yaml +129 -129
  429. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/comparison-round-1.yaml +242 -242
  430. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/haiku-round-1.yaml +393 -393
  431. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/opus-baseline.yaml +488 -488
  432. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/qualification-report.yaml +74 -74
  433. package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/haiku-round-1.yaml +292 -292
  434. package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/opus-baseline.yaml +603 -603
  435. package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/qualification-report.yaml +97 -97
  436. package/pro/squads/squad-creator-pro/test-cases/smoke-test-model-routing/test-case.yaml +100 -100
  437. package/pro/squads/squad-creator-pro/test-cases/upgrade-squad/test-case.yaml +106 -106
  438. package/pro/squads/squad-creator-pro/test-cases/validate-squad/comparison-round-1.yaml +223 -223
  439. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-1-MINE.yaml +36 -36
  440. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-1.yaml +193 -193
  441. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-2.yaml +303 -303
  442. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-3-v4-task.yaml +149 -149
  443. package/pro/squads/squad-creator-pro/test-cases/validate-squad/opus-baseline.yaml +529 -529
  444. package/pro/squads/squad-creator-pro/test-cases/validate-squad/opus-round-3-v4-task.yaml +132 -132
  445. package/pro/squads/squad-creator-pro/test-cases/validate-squad/qualification-report.yaml +104 -104
  446. package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/haiku-output-v2-calibrated.yaml +200 -200
  447. package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/haiku-output.yaml +183 -183
  448. package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/opus-baseline.yaml +112 -112
  449. package/pro/squads/squad-creator-pro/workflows/create-squad.yaml +348 -348
  450. package/pro/squads/squad-creator-pro/workflows/modules/module-discovery.yaml +16 -16
  451. package/pro/squads/squad-creator-pro/workflows/modules/module-integration.yaml +16 -16
  452. package/pro/squads/squad-creator-pro/workflows/modules/module-quality-gates.yaml +15 -15
  453. package/pro/squads/squad-creator-pro/workflows/wf-brownfield-upgrade-squad.yaml +46 -46
  454. package/pro/squads/squad-creator-pro/workflows/wf-context-aware-create-squad.yaml +47 -47
  455. package/pro/squads/squad-creator-pro/workflows/wf-create-squad.yaml +1619 -1619
  456. package/pro/squads/squad-creator-pro/workflows/wf-cross-provider-qualification.yaml +711 -711
  457. package/pro/squads/squad-creator-pro/workflows/wf-model-tier-qualification.yaml +800 -800
  458. package/pro/squads/squad-creator-pro/workflows/wf-optimize-squad.yaml +684 -684
  459. package/scripts/check-markdown-links.py +352 -352
  460. package/scripts/dashboard-parallel-dev.sh +0 -0
  461. package/scripts/dashboard-parallel-phase3.sh +0 -0
  462. package/scripts/dashboard-parallel-phase4.sh +0 -0
  463. package/scripts/install-monitor-hooks.sh +0 -0
  464. package/.claude/hooks/code-intel-pretool.cjs +0 -107
  465. package/docs/guides/aios-workflows/README.md +0 -247
  466. package/docs/guides/aios-workflows/bob-orchestrator-workflow.md +0 -1536
  467. package/scripts/glue/README.md +0 -355
  468. package/scripts/glue/compose-agent-prompt.cjs +0 -362
@@ -1,972 +1,972 @@
1
- # Base Component Specs
2
-
3
- > Especificacoes visuais dos componentes base extraidas do Figma Dev Mode + screenshots.
4
- > Gerado pela task `f2-ingest-base-components`. Usado na Phase 2 para adaptar componentes shadcn.
5
-
6
- ---
7
-
8
- ## Design Patterns Globais
9
-
10
- ### Temas e Contexto
11
-
12
- | Propriedade | Valor |
13
- |---|---|
14
- | **Tema primario** | Dark-first (componentes desenhados sobre `surface/950` #101010) |
15
- | **Paleta** | Monocromatica — branco/preto para primary, sem brand colors em estados default |
16
- | **Feedback colors** | Khewra=destructive, Midori=success, Sahara=warning, Atmos=info |
17
-
18
- ### Size Scale (consistente em todos os componentes)
19
-
20
- | Size | Height | Icon Size | Font Size | Figma Token |
21
- |---|---|---|---|---|
22
- | **Tiny** | 24px | 16px | 12px | `spacing/24`, `font/size/4xs` |
23
- | **Mini** | 32px (btn 24px) | 20px | 12px | `spacing/32`, `font/size/4xs` |
24
- | **Small** | 32px (btn) / 48px (input) | 24px | 14px | `spacing/32`/`spacing/48`, `font/size/2xs` |
25
- | **Medium** | 40px (btn) / 64px (input) | 32px | 16px | `spacing/40`/`spacing/64`, `font/size/3xs` |
26
- | **Large** | 48px (btn) / 80px (input) | 32px | 16px | `spacing/48`/`spacing/80`, `font/size/3xs` |
27
-
28
- ### State Pattern (consistente em todos os componentes)
29
-
30
- | State | Visual Change |
31
- |---|---|
32
- | **Default** | Base appearance |
33
- | **Hover** | Background alpha increases (e.g. 10% → 20%), cursor pointer |
34
- | **Focus** | White outline ring, `border: 2px solid white`, `inset: -4px`, `border-radius: radius/max` (buttons) or `radius/md` (inputs) |
35
- | **Pressed** | Background alpha decreases slightly or darkens |
36
- | **Filled** | (Inputs only) White text, clear icon appears |
37
- | **Disabled** | `opacity: 0.2` (buttons) or `opacity: 0.5` (inputs), `pointer-events: none` |
38
-
39
- ### Focus Ring Pattern
40
-
41
- ```css
42
- /* Buttons (pill shape) */
43
- position: absolute;
44
- border: 2px solid var(--color/surface/white, white);
45
- inset: -4px;
46
- border-radius: var(--radius/max, 9999px);
47
-
48
- /* Inputs (rounded rect) */
49
- position: absolute;
50
- border: 2px solid var(--color/surface/white, white);
51
- inset: -4px;
52
- border-radius: var(--radius/md, 16px);
53
- ```
54
-
55
- ---
56
-
57
- ## 1. Button
58
-
59
- > **Prioridade: 1** — Componente mais usado, define padrao visual.
60
- > **shadcn mapping:** `Button`
61
-
62
- ### Variants
63
-
64
- | Variant | Figma Name | Background | Text Color | Border | Font |
65
- |---|---|---|---|---|---|
66
- | **Primary** | `type=primary` | `rgba(255,255,255,0.9)` | `var(--color/surface/950, #101010)` | none | Outfit Medium, uppercase, tracking 0.5px |
67
- | **Secondary** | `type=secondary` | transparent | `rgba(255,255,255,0.9)` | `2px solid rgba(255,255,255,0.3)` | Outfit Medium, uppercase, tracking 0.5px |
68
- | **Tertiary** | `type=tertiary` | `rgba(255,255,255,0.1)` | `rgba(255,255,255,0.8)` | none | Inter Medium, normal case |
69
- | **Quarter** (Ghost) | `type=quarter` | transparent | `rgba(255,255,255,0.8)` | none | Inter Medium, normal case |
70
-
71
- ### Sizes
72
-
73
- | Size | Height | Padding | Font Size | Icon Size | Line Height |
74
- |---|---|---|---|---|---|
75
- | **Mini** | 24px | `px-[12px]` | 12px (`font/size/4xs`) | 20px | 16px |
76
- | **Small** | 32px | `px-[12px]` | 14px (`font/size/2xs`) | 24px | 16px |
77
- | **Medium** | 40px | `px-[12px]` | 16px (`font/size/3xs`) | 32px | 16px |
78
- | **Large** | 48px | `px-[12px]` | 16px (`font/size/3xs`) | 32px | 16px |
79
-
80
- ### States (Primary variant)
81
-
82
- ```yaml
83
- default:
84
- background: "rgba(255,255,255,0.9)"
85
- color: "var(--color/surface/950, #101010)"
86
- border-radius: "100px" # pill shape (radius/max)
87
- padding: "0 12px"
88
- font-family: "Outfit"
89
- font-weight: 500
90
- text-transform: "uppercase"
91
- letter-spacing: "0.5px"
92
-
93
- hover:
94
- background: "var(--color/surface/white, #FFFFFF)" # full white
95
- cursor: "pointer"
96
-
97
- focus:
98
- background: "rgba(255,255,255,0.9)"
99
- ring: "2px solid var(--color/surface/white, white)"
100
- ring-offset: "-4px"
101
- ring-radius: "var(--radius/max, 9999px)"
102
-
103
- pressed:
104
- background: "rgba(255,255,255,0.7)" # slightly dimmer
105
-
106
- disabled:
107
- background: "rgba(255,255,255,0.9)"
108
- opacity: 0.2
109
- pointer-events: "none"
110
- ```
111
-
112
- ### States (Secondary variant)
113
-
114
- ```yaml
115
- default:
116
- background: "transparent"
117
- color: "rgba(255,255,255,0.9)"
118
- border: "2px solid rgba(255,255,255,0.3)"
119
- border-radius: "100px"
120
-
121
- hover:
122
- border-color: "rgba(255,255,255,0.5)"
123
- cursor: "pointer"
124
-
125
- focus:
126
- ring: "2px solid var(--color/surface/white, white)"
127
- ring-offset: "-4px"
128
-
129
- disabled:
130
- opacity: 0.2
131
- pointer-events: "none"
132
- ```
133
-
134
- ### States (Tertiary variant)
135
-
136
- ```yaml
137
- default:
138
- background: "rgba(255,255,255,0.1)"
139
- color: "rgba(255,255,255,0.8)"
140
- border-radius: "100px"
141
- font-family: "Inter"
142
- text-transform: "none"
143
-
144
- hover:
145
- background: "rgba(255,255,255,0.2)"
146
- cursor: "pointer"
147
-
148
- focus:
149
- ring: "2px solid white"
150
- ring-offset: "-4px"
151
-
152
- disabled:
153
- opacity: 0.2
154
- pointer-events: "none"
155
- ```
156
-
157
- ### States (Quarter/Ghost variant)
158
-
159
- ```yaml
160
- default:
161
- background: "transparent"
162
- color: "rgba(255,255,255,0.8)"
163
- border-radius: "100px"
164
- font-family: "Inter"
165
- text-transform: "none"
166
-
167
- hover:
168
- background: "rgba(255,255,255,0.1)"
169
- cursor: "pointer"
170
-
171
- focus:
172
- ring: "2px solid white"
173
- ring-offset: "-4px"
174
-
175
- disabled:
176
- opacity: 0.2
177
- pointer-events: "none"
178
- ```
179
-
180
- ### Token Mapping
181
-
182
- | Figma Value | CSS Variable | Notes |
183
- |---|---|---|
184
- | `rgba(255,255,255,0.9)` | `--primary` (dark mode) | Primary button bg |
185
- | `var(--color/surface/950)` | `--primary-foreground` (dark mode) | Primary button text |
186
- | `rgba(255,255,255,0.3)` border | `--border` | Secondary button outline |
187
- | `rgba(255,255,255,0.1)` | `--accent` / `--secondary` | Tertiary button bg |
188
- | `rgba(255,255,255,0.8)` | `--foreground` at 80% | Tertiary/Quarter text |
189
- | `100px` radius | `--radius` with `rounded-full` | Pill shape |
190
- | `opacity: 0.2` | — | Disabled state |
191
- | Focus ring | `--ring` / white border | 2px white outline, -4px offset |
192
-
193
- ### Layout
194
-
195
- - Icons: left (arrow_back) and/or right (arrow_forward), both optional
196
- - Text container: `px-[8px]` inner padding
197
- - Icon + text in flex row, items-center
198
-
199
- ---
200
-
201
- ## 2. Text Input
202
-
203
- > **Prioridade: 2** — Define padrao de formularios.
204
- > **shadcn mapping:** `Input`
205
-
206
- ### Sizes
207
-
208
- | Size | Height | Width | Padding | Font Size | Icon Size | Border Radius |
209
- |---|---|---|---|---|---|---|
210
- | **Tiny** | 32px | 260px | `pl-[12px] pr-[16px]` | 12px | 16px | `var(--radius/sm, 12px)` |
211
- | **Mini** | 40px | 260px | `pl-[14px] pr-[18px]` | 14px | 20px | `var(--radius/sm, 12px)` |
212
- | **Small** | 48px | 320px | `pl-[16px] pr-[20px]` | 16px | 24px | `var(--radius/sm, 12px)` |
213
- | **Medium** | 64px | 320px | `pl-[20px] pr-[24px]` | 16px | 24px | `var(--radius/sm, 12px)` |
214
- | **Large** | 80px | 320px | `pl-[24px] pr-[28px]` | 16px | 24px | `var(--radius/sm, 12px)` |
215
-
216
- ### States
217
-
218
- ```yaml
219
- default:
220
- background: "rgba(255,255,255,0.1)"
221
- color: "rgba(255,255,255,0.5)" # placeholder
222
- border: "none"
223
- border-radius: "var(--radius/sm, 12px)"
224
- font-family: "Inter"
225
- font-weight: 500
226
- overflow: "clip"
227
-
228
- hover:
229
- background: "rgba(255,255,255,0.2)"
230
- cursor: "pointer"
231
-
232
- focus:
233
- background: "rgba(255,255,255,0.1)"
234
- ring: "2px solid var(--color/surface/white, white)"
235
- ring-offset: "-4px"
236
- ring-radius: "var(--radius/md, 16px)"
237
-
238
- pressed:
239
- background: "rgba(255,255,255,0.1)"
240
- color: "rgba(255,255,255,1)" # text becomes full white
241
-
242
- filled:
243
- background: "rgba(255,255,255,0.1)"
244
- color: "rgba(255,255,255,1)" # user text full white
245
- # clear/X icon may appear on right
246
-
247
- disabled:
248
- background: "rgba(255,255,255,0.1)"
249
- opacity: "var(--opacity/50, 0.5)"
250
- pointer-events: "none"
251
- color: "rgba(255,255,255,0.6)"
252
- ```
253
-
254
- ### Token Mapping
255
-
256
- | Figma Value | CSS Variable | Notes |
257
- |---|---|---|
258
- | `rgba(255,255,255,0.1)` | `--input` (dark) / `--accent` | Input background |
259
- | `rgba(255,255,255,0.5)` | `--muted-foreground` | Placeholder text |
260
- | `rgba(255,255,255,1)` | `--foreground` | Filled/active text |
261
- | `var(--radius/sm, 12px)` | `--radius-lg` | Input border radius |
262
- | Focus ring 16px radius | `--radius-md` mapped to ring | Slightly larger than input radius |
263
- | `opacity: 0.5` | — | Disabled state |
264
-
265
- ### Layout
266
-
267
- - Left icon: optional (contextual — profile, search, lock, calendar, etc.)
268
- - Right icon: optional (info, clear X, eye toggle, etc.)
269
- - Gap between icon and text: `14px`
270
- - Placeholder and value text: Inter Medium
271
-
272
- ### Input Variants (shared pattern)
273
-
274
- All input types share the same base structure with different left/right icons:
275
-
276
- | Input Type | Left Icon | Right Icon | Special |
277
- |---|---|---|---|
278
- | **Text Input** | profile | info | — |
279
- | **Search Input** | search | kbd badge (CTRL+F) | — |
280
- | **Password Input** | lock | eye (toggle visibility) | Dots for hidden text |
281
- | **Date Input** | calendar | — | Placeholder: dd/mm/aaaa |
282
- | **Time Input** | clock | — | Placeholder: 00:00 |
283
- | **URL Input** | link | — | — |
284
- | **Email Input** | mail | clear X (on filled) | — |
285
- | **Number Input** | — | +/- stepper buttons | Stepper is unique |
286
- | **Upload Input** | upload | — | File list below, feedback states |
287
- | **Option Input** | number badge | — | Numbered choices, selected state |
288
-
289
- ---
290
-
291
- ## 3. Tag (Badge)
292
-
293
- > **Prioridade: 3** — Componente simples, valida tokens.
294
- > **shadcn mapping:** `Badge`
295
-
296
- ### Sizes
297
-
298
- | Size | Height | Padding | Font Size |
299
- |---|---|---|---|
300
- | **Tiny** | 20px | `px-[8px]` | 10px |
301
- | **Mini** | 24px | `px-[10px]` | 12px |
302
-
303
- ### States
304
-
305
- ```yaml
306
- default:
307
- background: "rgba(255,255,255,0.1)"
308
- color: "rgba(255,255,255,0.8)"
309
- border-radius: "100px" # pill
310
- font-family: "Inter"
311
- font-weight: 500
312
-
313
- hover:
314
- background: "rgba(255,255,255,0.2)"
315
-
316
- disabled:
317
- opacity: 0.5
318
- ```
319
-
320
- ### Layout
321
-
322
- - Optional close X button on right
323
- - Text + optional X icon in flex row
324
-
325
- ### Token Mapping
326
-
327
- | Figma Value | CSS Variable |
328
- |---|---|
329
- | `rgba(255,255,255,0.1)` bg | `--secondary` |
330
- | `rgba(255,255,255,0.8)` text | `--secondary-foreground` at 80% |
331
- | `100px` radius | `rounded-full` |
332
-
333
- ---
334
-
335
- ## 4. Checkbox
336
-
337
- > **shadcn mapping:** `Checkbox`
338
-
339
- ### Sizes
340
-
341
- | Size | Box Size | Icon Size |
342
- |---|---|---|
343
- | **Tiny** | 16px | 12px |
344
- | **Mini** | 20px | 16px |
345
- | **Small** | 24px | 20px |
346
-
347
- ### States
348
-
349
- ```yaml
350
- unchecked:
351
- background: "transparent"
352
- border: "2px solid rgba(255,255,255,0.3)"
353
- border-radius: "var(--radius/min, 4px)"
354
-
355
- checked:
356
- background: "rgba(255,255,255,0.9)"
357
- border: "none"
358
- icon-color: "var(--color/surface/950, #101010)" # dark checkmark
359
-
360
- indeterminate:
361
- background: "rgba(255,255,255,0.9)"
362
- border: "none"
363
- icon-color: "var(--color/surface/950, #101010)" # dark dash
364
-
365
- hover:
366
- border-color: "rgba(255,255,255,0.5)" # unchecked
367
- background: "var(--color/surface/white)" # checked
368
-
369
- focus:
370
- ring: "2px solid white"
371
- ring-offset: "-4px"
372
-
373
- disabled:
374
- opacity: 0.2
375
- ```
376
-
377
- ### Token Mapping
378
-
379
- | Figma Value | CSS Variable |
380
- |---|---|
381
- | `rgba(255,255,255,0.3)` border | `--border` |
382
- | `rgba(255,255,255,0.9)` checked bg | `--primary` (dark) |
383
- | `#101010` checkmark | `--primary-foreground` (dark) |
384
- | `4px` radius | `--radius-sm` |
385
-
386
- ---
387
-
388
- ## 5. Radio Button
389
-
390
- > **shadcn mapping:** `RadioGroup` + `RadioGroupItem`
391
-
392
- ### Sizes
393
-
394
- | Size | Outer Size | Inner Dot Size |
395
- |---|---|---|
396
- | **Tiny** | 16px | 8px |
397
- | **Mini** | 20px | 10px |
398
- | **Small** | 24px | 12px |
399
-
400
- ### States
401
-
402
- ```yaml
403
- unselected:
404
- background: "transparent"
405
- border: "2px solid rgba(255,255,255,0.3)"
406
- border-radius: "50%"
407
-
408
- selected:
409
- background: "transparent"
410
- border: "2px solid rgba(255,255,255,0.9)"
411
- inner-dot: "rgba(255,255,255,0.9)"
412
-
413
- hover:
414
- border-color: "rgba(255,255,255,0.5)"
415
-
416
- focus:
417
- ring: "2px solid white"
418
- ring-offset: "-4px"
419
- ring-radius: "50%"
420
-
421
- disabled:
422
- opacity: 0.2
423
- ```
424
-
425
- ---
426
-
427
- ## 6. Toggle (Switch)
428
-
429
- > **shadcn mapping:** `Switch`
430
-
431
- ### Sizes
432
-
433
- | Size | Track Width | Track Height | Thumb Size |
434
- |---|---|---|---|
435
- | **Tiny** | 28px | 16px | 12px |
436
- | **Mini** | 36px | 20px | 16px |
437
- | **Small** | 44px | 24px | 20px |
438
-
439
- ### States
440
-
441
- ```yaml
442
- off:
443
- track-background: "rgba(255,255,255,0.1)"
444
- thumb-background: "rgba(255,255,255,0.5)"
445
- border-radius: "100px"
446
-
447
- on:
448
- track-background: "rgba(255,255,255,0.9)"
449
- thumb-background: "var(--color/surface/950, #101010)"
450
- thumb-position: "right"
451
-
452
- hover:
453
- track-background: "rgba(255,255,255,0.2)" # off
454
- # or full white for on
455
-
456
- focus:
457
- ring: "2px solid white"
458
-
459
- disabled:
460
- opacity: 0.2
461
- ```
462
-
463
- ### Token Mapping
464
-
465
- | Figma Value | CSS Variable |
466
- |---|---|
467
- | `rgba(255,255,255,0.9)` on track | `--primary` (dark) |
468
- | `#101010` on thumb | `--primary-foreground` (dark) |
469
- | `rgba(255,255,255,0.1)` off track | `--input` |
470
-
471
- ---
472
-
473
- ## 7. Icon Button
474
-
475
- > **shadcn mapping:** `Button` variant=icon
476
-
477
- ### Sizes
478
-
479
- | Size | Dimensions | Icon Size | Border Radius |
480
- |---|---|---|---|
481
- | **Tiny** | 24x24 | 16px | `100px` (pill) |
482
- | **Mini** | 32x32 | 20px | `100px` |
483
- | **Small** | 40x40 | 24px | `100px` |
484
- | **Medium** | 48x48 | 32px | `100px` |
485
- | **Large** | 56x56 | 32px | `100px` |
486
-
487
- ### Variants (same as Button)
488
-
489
- - **Primary**: `bg-[rgba(255,255,255,0.9)]`, dark icon
490
- - **Secondary**: `border-2 border-[rgba(255,255,255,0.3)]`, white icon
491
- - **Tertiary**: `bg-[rgba(255,255,255,0.1)]`, white icon at 80%
492
- - **Quarter** (Ghost): transparent, white icon at 80%
493
-
494
- ### States
495
-
496
- Same pattern as Button: hover brightens, focus adds white ring, disabled opacity 0.2.
497
-
498
- ---
499
-
500
- ## 8. Link
501
-
502
- > **shadcn mapping:** Custom (no direct shadcn equivalent, use `<a>` with utility classes)
503
-
504
- ### Sizes
505
-
506
- | Size | Font Size | Icon Size |
507
- |---|---|---|
508
- | **Mini** | 12px | 16px |
509
- | **Small** | 14px | 20px |
510
-
511
- ### States
512
-
513
- ```yaml
514
- default:
515
- color: "rgba(255,255,255,0.8)"
516
- text-decoration: "underline"
517
- font-family: "Inter"
518
- font-weight: 500
519
-
520
- hover:
521
- color: "rgba(255,255,255,1)"
522
-
523
- focus:
524
- ring: "2px solid white"
525
- ring-offset: "-2px"
526
-
527
- pressed:
528
- color: "rgba(255,255,255,0.6)"
529
-
530
- disabled:
531
- opacity: 0.3
532
- ```
533
-
534
- ---
535
-
536
- ## 9. Avatar
537
-
538
- > **shadcn mapping:** `Avatar` + `AvatarImage` + `AvatarFallback`
539
-
540
- ### Features
541
-
542
- - Circular image with colored ring (brand colors)
543
- - Avatar groups with overlapping layout
544
- - Fallback: initials on colored background
545
-
546
- ### Sizes (estimated from screenshots)
547
-
548
- | Size | Dimensions | Ring Width |
549
- |---|---|---|
550
- | **Small** | 32px | 2px |
551
- | **Medium** | 40px | 2px |
552
- | **Large** | 48px | 3px |
553
-
554
- ### Ring Colors (brand palette)
555
-
556
- Various brand colors used: Atmos, Midori, Sahara, Khewra, Boreal, etc.
557
-
558
- ---
559
-
560
- ## 10. Tooltip
561
-
562
- > **shadcn mapping:** `Tooltip` + `TooltipTrigger` + `TooltipContent`
563
-
564
- ### Spec
565
-
566
- ```yaml
567
- background: "var(--color/surface/white, white)" # light tooltip on dark UI
568
- color: "var(--color/surface/950, #101010)"
569
- border-radius: "var(--radius/xs, 8px)"
570
- padding: "4px 8px"
571
- font-family: "Inter"
572
- font-size: "12px"
573
- font-weight: 500
574
- # Optional keyboard shortcut badge inside
575
- ```
576
-
577
- ---
578
-
579
- ## 11. Popover
580
-
581
- > **shadcn mapping:** `Popover` + `PopoverTrigger` + `PopoverContent`
582
-
583
- ### Spec
584
-
585
- ```yaml
586
- background: "var(--color/surface/900, #202020)"
587
- border: "1px solid rgba(255,255,255,0.1)"
588
- border-radius: "var(--radius/sm, 12px)"
589
- padding: "16px"
590
- box-shadow: "0 4px 24px rgba(0,0,0,0.3)"
591
- ```
592
-
593
- ### Variants
594
-
595
- - **Default**: Simple content
596
- - **With Form**: Contains inputs and action buttons
597
-
598
- ---
599
-
600
- ## 12. Dropdown (Select)
601
-
602
- > **shadcn mapping:** `Select` + `SelectTrigger` + `SelectContent` + `SelectItem`
603
-
604
- ### Trigger
605
-
606
- Same structure as Text Input — same sizes, same states, with chevron-down icon on right and optional clear X.
607
-
608
- ### Content (dropdown menu)
609
-
610
- ```yaml
611
- background: "var(--color/surface/900, #202020)"
612
- border: "1px solid rgba(255,255,255,0.1)"
613
- border-radius: "var(--radius/sm, 12px)"
614
- padding: "4px"
615
- box-shadow: "0 4px 24px rgba(0,0,0,0.3)"
616
- ```
617
-
618
- ---
619
-
620
- ## 13. Item Menu
621
-
622
- > **shadcn mapping:** `DropdownMenuItem` / `CommandItem`
623
-
624
- ### Sizes
625
-
626
- | Size | Height | Padding | Font Size |
627
- |---|---|---|---|
628
- | **Small** | 32px | `px-[12px]` | 14px |
629
- | **Medium** | 40px | `px-[16px]` | 14px |
630
- | **Large** | 48px | `px-[16px]` | 16px |
631
-
632
- ### States
633
-
634
- ```yaml
635
- default:
636
- background: "transparent"
637
- color: "rgba(255,255,255,0.8)"
638
- border-radius: "var(--radius/xs, 8px)"
639
-
640
- hover:
641
- background: "rgba(255,255,255,0.1)"
642
-
643
- focus:
644
- background: "rgba(255,255,255,0.1)"
645
- ring: "2px solid white"
646
-
647
- pressed:
648
- background: "rgba(255,255,255,0.05)"
649
-
650
- disabled:
651
- opacity: 0.3
652
- ```
653
-
654
- ### Layout
655
-
656
- - Left: optional icon (24px)
657
- - Center: label text
658
- - Right: optional shortcut text or chevron-right icon
659
- - Gap: 8px between elements
660
-
661
- ---
662
-
663
- ## 14. Textarea
664
-
665
- > **shadcn mapping:** `Textarea`
666
-
667
- ### Sizes
668
-
669
- | Size | Min Height | Padding | Font Size |
670
- |---|---|---|---|
671
- | **Tiny** | 64px | `p-[12px]` | 12px |
672
- | **Mini** | 80px | `p-[14px]` | 14px |
673
- | **Default** | 120px | `p-[16px]` | 16px |
674
-
675
- ### States
676
-
677
- Same as Text Input: `rgba(255,255,255,0.1)` bg, focus ring, disabled opacity 0.5.
678
-
679
- ```yaml
680
- default:
681
- background: "rgba(255,255,255,0.1)"
682
- border-radius: "var(--radius/sm, 12px)"
683
- font-family: "Inter"
684
- font-weight: 500
685
- resize: "vertical"
686
- ```
687
-
688
- ---
689
-
690
- ## 15. Dropdown Menu
691
-
692
- > **shadcn mapping:** `DropdownMenu` + `DropdownMenuContent` + `DropdownMenuItem` + `DropdownMenuSeparator`
693
-
694
- ### Variants
695
-
696
- - **Simple**: Plain text items
697
- - **With Search**: Search input at top, filtered items below
698
- - **Complete**: Sections with headers, icons, descriptions, and separators
699
-
700
- ### Container
701
-
702
- ```yaml
703
- background: "var(--color/surface/900, #202020)"
704
- border: "1px solid rgba(255,255,255,0.1)"
705
- border-radius: "var(--radius/sm, 12px)"
706
- padding: "4px"
707
- min-width: "200px"
708
- box-shadow: "0 4px 24px rgba(0,0,0,0.3)"
709
- ```
710
-
711
- ---
712
-
713
- ## 16. Toasts
714
-
715
- > **shadcn mapping:** `Sonner` (toast library)
716
- > **Nota do usuario:** "Animations sao apenas visualizacao, nao esta funcionando direito, fazer do jeito certo"
717
-
718
- ### Variants
719
-
720
- | Type | Icon Color | Icon | Token |
721
- |---|---|---|---|
722
- | **Success** | `--success` (Midori #3A913F) | Checkmark circle | `oklch(0.585 0.145 144.414)` |
723
- | **Error** | `--destructive` (Khewra #DC625E) | X circle | `oklch(0.646 0.154 24.222)` |
724
- | **Warning** | `--warning` (Sahara #D6A461) | Warning triangle | `oklch(0.751 0.103 73.232)` |
725
- | **Info** | `--info` (Atmos #77C5D5) | Info circle | `oklch(0.779 0.08 212.201)` |
726
-
727
- ### Spec
728
-
729
- ```yaml
730
- background: "var(--color/surface/900, #202020)"
731
- border: "1px solid rgba(255,255,255,0.1)"
732
- border-radius: "var(--radius/sm, 12px)"
733
- padding: "16px"
734
- color: "rgba(255,255,255,0.9)"
735
- font-family: "Inter"
736
- font-size: "14px"
737
- # Action buttons: "Confirmar" / "Desfazer" text links
738
- ```
739
-
740
- ### Layout
741
-
742
- - Left: colored status icon
743
- - Center: title (bold) + description
744
- - Right: optional action buttons (text links)
745
-
746
- ---
747
-
748
- ## 17. Basic Dialog
749
-
750
- > **shadcn mapping:** `Dialog` + `DialogContent` + `DialogHeader` + `DialogFooter`
751
-
752
- ### Spec
753
-
754
- ```yaml
755
- overlay:
756
- background: "rgba(0,0,0,0.5)"
757
-
758
- content:
759
- background: "var(--color/surface/900, #202020)"
760
- border: "1px solid rgba(255,255,255,0.1)"
761
- border-radius: "var(--radius/sm, 12px)"
762
- padding: "24px"
763
- max-width: "400px"
764
- box-shadow: "0 8px 32px rgba(0,0,0,0.5)"
765
-
766
- header:
767
- icon: "warning triangle (colored)"
768
- title: "Inter Bold, 18px, white"
769
- description: "Inter Regular, 14px, rgba(255,255,255,0.6)"
770
-
771
- body:
772
- # Optional input field
773
- margin-top: "16px"
774
-
775
- footer:
776
- display: "flex"
777
- gap: "8px"
778
- justify-content: "flex-end"
779
- margin-top: "24px"
780
- # Primary + Secondary buttons
781
- ```
782
-
783
- ---
784
-
785
- ## 18. Input Feedback
786
-
787
- > **shadcn mapping:** Custom validation states on Input
788
-
789
- ### Feedback Types
790
-
791
- | Type | Border Color | Icon Color | Token |
792
- |---|---|---|---|
793
- | **User Error** | `--destructive` (Khewra) | Khewra | Red border + error icon |
794
- | **System Error** | `--warning` (Sahara) | Sahara | Orange border + warning icon |
795
- | **Success** | `--success` (Midori) | Midori | Green border + check icon |
796
-
797
- ### Spec
798
-
799
- ```yaml
800
- error:
801
- border: "2px solid var(--destructive)"
802
- # Error message below input
803
- message-color: "var(--destructive)"
804
- message-font-size: "12px"
805
-
806
- warning:
807
- border: "2px solid var(--warning)"
808
- message-color: "var(--warning)"
809
-
810
- success:
811
- border: "2px solid var(--success)"
812
- message-color: "var(--success)"
813
-
814
- multiple:
815
- # Multiple validation messages stacked below input
816
- # Each with its own icon and color
817
- ```
818
-
819
- ---
820
-
821
- ## 19. Notification Bar
822
-
823
- > **shadcn mapping:** Custom component (Card-based)
824
-
825
- ### Spec
826
-
827
- ```yaml
828
- background: "var(--color/surface/900, #202020)"
829
- border: "1px solid rgba(255,255,255,0.1)"
830
- border-radius: "var(--radius/sm, 12px)"
831
- padding: "16px"
832
- # Layout: image left, content center, actions right
833
- # Content: title (bold), time (muted), description
834
- # Actions: Accept (primary button) / Decline (ghost button)
835
- ```
836
-
837
- ---
838
-
839
- ## 20. Chat Notification
840
-
841
- > **shadcn mapping:** Custom component
842
-
843
- ### Spec
844
-
845
- ```yaml
846
- background: "var(--color/surface/900, #202020)"
847
- border-radius: "var(--radius/sm, 12px)"
848
- padding: "12px 16px"
849
- # Layout: avatar left, content center, badge right
850
- # Content: name (bold white), message (muted), time
851
- # Badge: unread count (white bg, dark text, circular)
852
- ```
853
-
854
- ---
855
-
856
- ## 21. Comment Area
857
-
858
- > **shadcn mapping:** Custom (Textarea + action buttons)
859
-
860
- ### Spec
861
-
862
- ```yaml
863
- textarea:
864
- # Same as Textarea component base
865
- background: "rgba(255,255,255,0.1)"
866
- border-radius: "var(--radius/sm, 12px)"
867
-
868
- actions:
869
- # Bottom bar with + (attach), star (favorite), send icons
870
- # Icon buttons: ghost variant (quarter)
871
- padding: "8px"
872
- border-top: "1px solid rgba(255,255,255,0.1)"
873
- ```
874
-
875
- ---
876
-
877
- ## 22. Prompt Area
878
-
879
- > **shadcn mapping:** Custom (AI prompt input)
880
- > **Nota do usuario:** "Incompleto, precisa ser planejado"
881
-
882
- ### Spec (partial)
883
-
884
- ```yaml
885
- container:
886
- background: "rgba(255,255,255,0.1)"
887
- border-radius: "var(--radius/sm, 12px)"
888
- padding: "12px 16px"
889
-
890
- input:
891
- # Textarea-like input area
892
- font-family: "Inter"
893
- placeholder: "AI prompt text"
894
-
895
- actions:
896
- # Bottom: + (attach), mic (voice), send icon button
897
- # Model selector dropdown
898
- ```
899
-
900
- ---
901
-
902
- ## 23. Profile Header
903
-
904
- > **shadcn mapping:** Custom component
905
-
906
- ### Variants
907
-
908
- - **Default**: Avatar + name + role
909
- - **With Badges**: Avatar + name + role + badge tags
910
-
911
- ---
912
-
913
- ## Componentes Prontos para Adaptacao
914
-
915
- ### Prioridade Alta (core — adaptar primeiro)
916
-
917
- | # | Component | shadcn Base | Complexity |
918
- |---|---|---|---|
919
- | 1 | **Button** | `Button` | Alta — 4 variants, 4 sizes, 5 states |
920
- | 2 | **Text Input** | `Input` | Media — 5 sizes, 6 states, 10 sub-types |
921
- | 3 | **Tag** | `Badge` | Baixa — 2 sizes, pill shape |
922
- | 4 | **Checkbox** | `Checkbox` | Baixa — 3 sizes, 3 check states |
923
- | 5 | **Radio Button** | `RadioGroup` | Baixa — 3 sizes |
924
- | 6 | **Toggle** | `Switch` | Baixa — 3 sizes |
925
-
926
- ### Prioridade Media (compostos)
927
-
928
- | # | Component | shadcn Base | Complexity |
929
- |---|---|---|---|
930
- | 7 | **Icon Button** | `Button` variant=icon | Media — reusa Button |
931
- | 8 | **Dropdown** | `Select` | Media — trigger = Input |
932
- | 9 | **Item Menu** | `DropdownMenuItem` | Baixa |
933
- | 10 | **Textarea** | `Textarea` | Baixa — segue Input |
934
- | 11 | **Dropdown Menu** | `DropdownMenu` | Media — 3 variants |
935
- | 12 | **Tooltip** | `Tooltip` | Baixa |
936
- | 13 | **Popover** | `Popover` | Baixa |
937
-
938
- ### Prioridade Baixa (feedback + compostos complexos)
939
-
940
- | # | Component | shadcn Base | Complexity |
941
- |---|---|---|---|
942
- | 14 | **Toasts** | `Sonner` | Media — 4 types |
943
- | 15 | **Basic Dialog** | `Dialog` | Media |
944
- | 16 | **Input Feedback** | Custom on Input | Baixa — adds borders |
945
- | 17 | **Link** | Custom `<a>` | Baixa |
946
- | 18 | **Avatar** | `Avatar` | Baixa |
947
-
948
- ### Fora de Escopo (precisa planejamento)
949
-
950
- | # | Component | Motivo |
951
- |---|---|---|
952
- | 19 | **Notification Bar** | Componente custom, sem shadcn base |
953
- | 20 | **Chat Notification** | Componente custom, sem shadcn base |
954
- | 21 | **Comment Area** | Componente composto (textarea + actions) |
955
- | 22 | **Prompt Area** | Incompleto no Figma, precisa ser planejado |
956
- | 23 | **Profile Header** | Componente custom layout |
957
-
958
- ---
959
-
960
- ## Validacao
961
-
962
- - [x] Button especificado (4 variants, 4 sizes, 5 states)
963
- - [x] Input especificado (5 sizes, 6 states, 10 sub-types)
964
- - [x] Todos os estados basicos cobertos (default, hover, focus, pressed, disabled)
965
- - [x] Valores mapeados para tokens existentes da Phase 1
966
- - [x] Screenshots confirmam CSS do Figma Dev Mode (validacao cruzada OK)
967
-
968
- ---
969
-
970
- *Gerado por: Foundations Pipeline — Phase 2 (f2-ingest-base-components)*
971
- *Fonte: Figma Dev Mode + components-ref/ screenshots + Figma MCP design context*
972
- *Data: 2026-02-21*
1
+ # Base Component Specs
2
+
3
+ > Especificacoes visuais dos componentes base extraidas do Figma Dev Mode + screenshots.
4
+ > Gerado pela task `f2-ingest-base-components`. Usado na Phase 2 para adaptar componentes shadcn.
5
+
6
+ ---
7
+
8
+ ## Design Patterns Globais
9
+
10
+ ### Temas e Contexto
11
+
12
+ | Propriedade | Valor |
13
+ |---|---|
14
+ | **Tema primario** | Dark-first (componentes desenhados sobre `surface/950` #101010) |
15
+ | **Paleta** | Monocromatica — branco/preto para primary, sem brand colors em estados default |
16
+ | **Feedback colors** | Khewra=destructive, Midori=success, Sahara=warning, Atmos=info |
17
+
18
+ ### Size Scale (consistente em todos os componentes)
19
+
20
+ | Size | Height | Icon Size | Font Size | Figma Token |
21
+ |---|---|---|---|---|
22
+ | **Tiny** | 24px | 16px | 12px | `spacing/24`, `font/size/4xs` |
23
+ | **Mini** | 32px (btn 24px) | 20px | 12px | `spacing/32`, `font/size/4xs` |
24
+ | **Small** | 32px (btn) / 48px (input) | 24px | 14px | `spacing/32`/`spacing/48`, `font/size/2xs` |
25
+ | **Medium** | 40px (btn) / 64px (input) | 32px | 16px | `spacing/40`/`spacing/64`, `font/size/3xs` |
26
+ | **Large** | 48px (btn) / 80px (input) | 32px | 16px | `spacing/48`/`spacing/80`, `font/size/3xs` |
27
+
28
+ ### State Pattern (consistente em todos os componentes)
29
+
30
+ | State | Visual Change |
31
+ |---|---|
32
+ | **Default** | Base appearance |
33
+ | **Hover** | Background alpha increases (e.g. 10% → 20%), cursor pointer |
34
+ | **Focus** | White outline ring, `border: 2px solid white`, `inset: -4px`, `border-radius: radius/max` (buttons) or `radius/md` (inputs) |
35
+ | **Pressed** | Background alpha decreases slightly or darkens |
36
+ | **Filled** | (Inputs only) White text, clear icon appears |
37
+ | **Disabled** | `opacity: 0.2` (buttons) or `opacity: 0.5` (inputs), `pointer-events: none` |
38
+
39
+ ### Focus Ring Pattern
40
+
41
+ ```css
42
+ /* Buttons (pill shape) */
43
+ position: absolute;
44
+ border: 2px solid var(--color/surface/white, white);
45
+ inset: -4px;
46
+ border-radius: var(--radius/max, 9999px);
47
+
48
+ /* Inputs (rounded rect) */
49
+ position: absolute;
50
+ border: 2px solid var(--color/surface/white, white);
51
+ inset: -4px;
52
+ border-radius: var(--radius/md, 16px);
53
+ ```
54
+
55
+ ---
56
+
57
+ ## 1. Button
58
+
59
+ > **Prioridade: 1** — Componente mais usado, define padrao visual.
60
+ > **shadcn mapping:** `Button`
61
+
62
+ ### Variants
63
+
64
+ | Variant | Figma Name | Background | Text Color | Border | Font |
65
+ |---|---|---|---|---|---|
66
+ | **Primary** | `type=primary` | `rgba(255,255,255,0.9)` | `var(--color/surface/950, #101010)` | none | Outfit Medium, uppercase, tracking 0.5px |
67
+ | **Secondary** | `type=secondary` | transparent | `rgba(255,255,255,0.9)` | `2px solid rgba(255,255,255,0.3)` | Outfit Medium, uppercase, tracking 0.5px |
68
+ | **Tertiary** | `type=tertiary` | `rgba(255,255,255,0.1)` | `rgba(255,255,255,0.8)` | none | Inter Medium, normal case |
69
+ | **Quarter** (Ghost) | `type=quarter` | transparent | `rgba(255,255,255,0.8)` | none | Inter Medium, normal case |
70
+
71
+ ### Sizes
72
+
73
+ | Size | Height | Padding | Font Size | Icon Size | Line Height |
74
+ |---|---|---|---|---|---|
75
+ | **Mini** | 24px | `px-[12px]` | 12px (`font/size/4xs`) | 20px | 16px |
76
+ | **Small** | 32px | `px-[12px]` | 14px (`font/size/2xs`) | 24px | 16px |
77
+ | **Medium** | 40px | `px-[12px]` | 16px (`font/size/3xs`) | 32px | 16px |
78
+ | **Large** | 48px | `px-[12px]` | 16px (`font/size/3xs`) | 32px | 16px |
79
+
80
+ ### States (Primary variant)
81
+
82
+ ```yaml
83
+ default:
84
+ background: "rgba(255,255,255,0.9)"
85
+ color: "var(--color/surface/950, #101010)"
86
+ border-radius: "100px" # pill shape (radius/max)
87
+ padding: "0 12px"
88
+ font-family: "Outfit"
89
+ font-weight: 500
90
+ text-transform: "uppercase"
91
+ letter-spacing: "0.5px"
92
+
93
+ hover:
94
+ background: "var(--color/surface/white, #FFFFFF)" # full white
95
+ cursor: "pointer"
96
+
97
+ focus:
98
+ background: "rgba(255,255,255,0.9)"
99
+ ring: "2px solid var(--color/surface/white, white)"
100
+ ring-offset: "-4px"
101
+ ring-radius: "var(--radius/max, 9999px)"
102
+
103
+ pressed:
104
+ background: "rgba(255,255,255,0.7)" # slightly dimmer
105
+
106
+ disabled:
107
+ background: "rgba(255,255,255,0.9)"
108
+ opacity: 0.2
109
+ pointer-events: "none"
110
+ ```
111
+
112
+ ### States (Secondary variant)
113
+
114
+ ```yaml
115
+ default:
116
+ background: "transparent"
117
+ color: "rgba(255,255,255,0.9)"
118
+ border: "2px solid rgba(255,255,255,0.3)"
119
+ border-radius: "100px"
120
+
121
+ hover:
122
+ border-color: "rgba(255,255,255,0.5)"
123
+ cursor: "pointer"
124
+
125
+ focus:
126
+ ring: "2px solid var(--color/surface/white, white)"
127
+ ring-offset: "-4px"
128
+
129
+ disabled:
130
+ opacity: 0.2
131
+ pointer-events: "none"
132
+ ```
133
+
134
+ ### States (Tertiary variant)
135
+
136
+ ```yaml
137
+ default:
138
+ background: "rgba(255,255,255,0.1)"
139
+ color: "rgba(255,255,255,0.8)"
140
+ border-radius: "100px"
141
+ font-family: "Inter"
142
+ text-transform: "none"
143
+
144
+ hover:
145
+ background: "rgba(255,255,255,0.2)"
146
+ cursor: "pointer"
147
+
148
+ focus:
149
+ ring: "2px solid white"
150
+ ring-offset: "-4px"
151
+
152
+ disabled:
153
+ opacity: 0.2
154
+ pointer-events: "none"
155
+ ```
156
+
157
+ ### States (Quarter/Ghost variant)
158
+
159
+ ```yaml
160
+ default:
161
+ background: "transparent"
162
+ color: "rgba(255,255,255,0.8)"
163
+ border-radius: "100px"
164
+ font-family: "Inter"
165
+ text-transform: "none"
166
+
167
+ hover:
168
+ background: "rgba(255,255,255,0.1)"
169
+ cursor: "pointer"
170
+
171
+ focus:
172
+ ring: "2px solid white"
173
+ ring-offset: "-4px"
174
+
175
+ disabled:
176
+ opacity: 0.2
177
+ pointer-events: "none"
178
+ ```
179
+
180
+ ### Token Mapping
181
+
182
+ | Figma Value | CSS Variable | Notes |
183
+ |---|---|---|
184
+ | `rgba(255,255,255,0.9)` | `--primary` (dark mode) | Primary button bg |
185
+ | `var(--color/surface/950)` | `--primary-foreground` (dark mode) | Primary button text |
186
+ | `rgba(255,255,255,0.3)` border | `--border` | Secondary button outline |
187
+ | `rgba(255,255,255,0.1)` | `--accent` / `--secondary` | Tertiary button bg |
188
+ | `rgba(255,255,255,0.8)` | `--foreground` at 80% | Tertiary/Quarter text |
189
+ | `100px` radius | `--radius` with `rounded-full` | Pill shape |
190
+ | `opacity: 0.2` | — | Disabled state |
191
+ | Focus ring | `--ring` / white border | 2px white outline, -4px offset |
192
+
193
+ ### Layout
194
+
195
+ - Icons: left (arrow_back) and/or right (arrow_forward), both optional
196
+ - Text container: `px-[8px]` inner padding
197
+ - Icon + text in flex row, items-center
198
+
199
+ ---
200
+
201
+ ## 2. Text Input
202
+
203
+ > **Prioridade: 2** — Define padrao de formularios.
204
+ > **shadcn mapping:** `Input`
205
+
206
+ ### Sizes
207
+
208
+ | Size | Height | Width | Padding | Font Size | Icon Size | Border Radius |
209
+ |---|---|---|---|---|---|---|
210
+ | **Tiny** | 32px | 260px | `pl-[12px] pr-[16px]` | 12px | 16px | `var(--radius/sm, 12px)` |
211
+ | **Mini** | 40px | 260px | `pl-[14px] pr-[18px]` | 14px | 20px | `var(--radius/sm, 12px)` |
212
+ | **Small** | 48px | 320px | `pl-[16px] pr-[20px]` | 16px | 24px | `var(--radius/sm, 12px)` |
213
+ | **Medium** | 64px | 320px | `pl-[20px] pr-[24px]` | 16px | 24px | `var(--radius/sm, 12px)` |
214
+ | **Large** | 80px | 320px | `pl-[24px] pr-[28px]` | 16px | 24px | `var(--radius/sm, 12px)` |
215
+
216
+ ### States
217
+
218
+ ```yaml
219
+ default:
220
+ background: "rgba(255,255,255,0.1)"
221
+ color: "rgba(255,255,255,0.5)" # placeholder
222
+ border: "none"
223
+ border-radius: "var(--radius/sm, 12px)"
224
+ font-family: "Inter"
225
+ font-weight: 500
226
+ overflow: "clip"
227
+
228
+ hover:
229
+ background: "rgba(255,255,255,0.2)"
230
+ cursor: "pointer"
231
+
232
+ focus:
233
+ background: "rgba(255,255,255,0.1)"
234
+ ring: "2px solid var(--color/surface/white, white)"
235
+ ring-offset: "-4px"
236
+ ring-radius: "var(--radius/md, 16px)"
237
+
238
+ pressed:
239
+ background: "rgba(255,255,255,0.1)"
240
+ color: "rgba(255,255,255,1)" # text becomes full white
241
+
242
+ filled:
243
+ background: "rgba(255,255,255,0.1)"
244
+ color: "rgba(255,255,255,1)" # user text full white
245
+ # clear/X icon may appear on right
246
+
247
+ disabled:
248
+ background: "rgba(255,255,255,0.1)"
249
+ opacity: "var(--opacity/50, 0.5)"
250
+ pointer-events: "none"
251
+ color: "rgba(255,255,255,0.6)"
252
+ ```
253
+
254
+ ### Token Mapping
255
+
256
+ | Figma Value | CSS Variable | Notes |
257
+ |---|---|---|
258
+ | `rgba(255,255,255,0.1)` | `--input` (dark) / `--accent` | Input background |
259
+ | `rgba(255,255,255,0.5)` | `--muted-foreground` | Placeholder text |
260
+ | `rgba(255,255,255,1)` | `--foreground` | Filled/active text |
261
+ | `var(--radius/sm, 12px)` | `--radius-lg` | Input border radius |
262
+ | Focus ring 16px radius | `--radius-md` mapped to ring | Slightly larger than input radius |
263
+ | `opacity: 0.5` | — | Disabled state |
264
+
265
+ ### Layout
266
+
267
+ - Left icon: optional (contextual — profile, search, lock, calendar, etc.)
268
+ - Right icon: optional (info, clear X, eye toggle, etc.)
269
+ - Gap between icon and text: `14px`
270
+ - Placeholder and value text: Inter Medium
271
+
272
+ ### Input Variants (shared pattern)
273
+
274
+ All input types share the same base structure with different left/right icons:
275
+
276
+ | Input Type | Left Icon | Right Icon | Special |
277
+ |---|---|---|---|
278
+ | **Text Input** | profile | info | — |
279
+ | **Search Input** | search | kbd badge (CTRL+F) | — |
280
+ | **Password Input** | lock | eye (toggle visibility) | Dots for hidden text |
281
+ | **Date Input** | calendar | — | Placeholder: dd/mm/aaaa |
282
+ | **Time Input** | clock | — | Placeholder: 00:00 |
283
+ | **URL Input** | link | — | — |
284
+ | **Email Input** | mail | clear X (on filled) | — |
285
+ | **Number Input** | — | +/- stepper buttons | Stepper is unique |
286
+ | **Upload Input** | upload | — | File list below, feedback states |
287
+ | **Option Input** | number badge | — | Numbered choices, selected state |
288
+
289
+ ---
290
+
291
+ ## 3. Tag (Badge)
292
+
293
+ > **Prioridade: 3** — Componente simples, valida tokens.
294
+ > **shadcn mapping:** `Badge`
295
+
296
+ ### Sizes
297
+
298
+ | Size | Height | Padding | Font Size |
299
+ |---|---|---|---|
300
+ | **Tiny** | 20px | `px-[8px]` | 10px |
301
+ | **Mini** | 24px | `px-[10px]` | 12px |
302
+
303
+ ### States
304
+
305
+ ```yaml
306
+ default:
307
+ background: "rgba(255,255,255,0.1)"
308
+ color: "rgba(255,255,255,0.8)"
309
+ border-radius: "100px" # pill
310
+ font-family: "Inter"
311
+ font-weight: 500
312
+
313
+ hover:
314
+ background: "rgba(255,255,255,0.2)"
315
+
316
+ disabled:
317
+ opacity: 0.5
318
+ ```
319
+
320
+ ### Layout
321
+
322
+ - Optional close X button on right
323
+ - Text + optional X icon in flex row
324
+
325
+ ### Token Mapping
326
+
327
+ | Figma Value | CSS Variable |
328
+ |---|---|
329
+ | `rgba(255,255,255,0.1)` bg | `--secondary` |
330
+ | `rgba(255,255,255,0.8)` text | `--secondary-foreground` at 80% |
331
+ | `100px` radius | `rounded-full` |
332
+
333
+ ---
334
+
335
+ ## 4. Checkbox
336
+
337
+ > **shadcn mapping:** `Checkbox`
338
+
339
+ ### Sizes
340
+
341
+ | Size | Box Size | Icon Size |
342
+ |---|---|---|
343
+ | **Tiny** | 16px | 12px |
344
+ | **Mini** | 20px | 16px |
345
+ | **Small** | 24px | 20px |
346
+
347
+ ### States
348
+
349
+ ```yaml
350
+ unchecked:
351
+ background: "transparent"
352
+ border: "2px solid rgba(255,255,255,0.3)"
353
+ border-radius: "var(--radius/min, 4px)"
354
+
355
+ checked:
356
+ background: "rgba(255,255,255,0.9)"
357
+ border: "none"
358
+ icon-color: "var(--color/surface/950, #101010)" # dark checkmark
359
+
360
+ indeterminate:
361
+ background: "rgba(255,255,255,0.9)"
362
+ border: "none"
363
+ icon-color: "var(--color/surface/950, #101010)" # dark dash
364
+
365
+ hover:
366
+ border-color: "rgba(255,255,255,0.5)" # unchecked
367
+ background: "var(--color/surface/white)" # checked
368
+
369
+ focus:
370
+ ring: "2px solid white"
371
+ ring-offset: "-4px"
372
+
373
+ disabled:
374
+ opacity: 0.2
375
+ ```
376
+
377
+ ### Token Mapping
378
+
379
+ | Figma Value | CSS Variable |
380
+ |---|---|
381
+ | `rgba(255,255,255,0.3)` border | `--border` |
382
+ | `rgba(255,255,255,0.9)` checked bg | `--primary` (dark) |
383
+ | `#101010` checkmark | `--primary-foreground` (dark) |
384
+ | `4px` radius | `--radius-sm` |
385
+
386
+ ---
387
+
388
+ ## 5. Radio Button
389
+
390
+ > **shadcn mapping:** `RadioGroup` + `RadioGroupItem`
391
+
392
+ ### Sizes
393
+
394
+ | Size | Outer Size | Inner Dot Size |
395
+ |---|---|---|
396
+ | **Tiny** | 16px | 8px |
397
+ | **Mini** | 20px | 10px |
398
+ | **Small** | 24px | 12px |
399
+
400
+ ### States
401
+
402
+ ```yaml
403
+ unselected:
404
+ background: "transparent"
405
+ border: "2px solid rgba(255,255,255,0.3)"
406
+ border-radius: "50%"
407
+
408
+ selected:
409
+ background: "transparent"
410
+ border: "2px solid rgba(255,255,255,0.9)"
411
+ inner-dot: "rgba(255,255,255,0.9)"
412
+
413
+ hover:
414
+ border-color: "rgba(255,255,255,0.5)"
415
+
416
+ focus:
417
+ ring: "2px solid white"
418
+ ring-offset: "-4px"
419
+ ring-radius: "50%"
420
+
421
+ disabled:
422
+ opacity: 0.2
423
+ ```
424
+
425
+ ---
426
+
427
+ ## 6. Toggle (Switch)
428
+
429
+ > **shadcn mapping:** `Switch`
430
+
431
+ ### Sizes
432
+
433
+ | Size | Track Width | Track Height | Thumb Size |
434
+ |---|---|---|---|
435
+ | **Tiny** | 28px | 16px | 12px |
436
+ | **Mini** | 36px | 20px | 16px |
437
+ | **Small** | 44px | 24px | 20px |
438
+
439
+ ### States
440
+
441
+ ```yaml
442
+ off:
443
+ track-background: "rgba(255,255,255,0.1)"
444
+ thumb-background: "rgba(255,255,255,0.5)"
445
+ border-radius: "100px"
446
+
447
+ on:
448
+ track-background: "rgba(255,255,255,0.9)"
449
+ thumb-background: "var(--color/surface/950, #101010)"
450
+ thumb-position: "right"
451
+
452
+ hover:
453
+ track-background: "rgba(255,255,255,0.2)" # off
454
+ # or full white for on
455
+
456
+ focus:
457
+ ring: "2px solid white"
458
+
459
+ disabled:
460
+ opacity: 0.2
461
+ ```
462
+
463
+ ### Token Mapping
464
+
465
+ | Figma Value | CSS Variable |
466
+ |---|---|
467
+ | `rgba(255,255,255,0.9)` on track | `--primary` (dark) |
468
+ | `#101010` on thumb | `--primary-foreground` (dark) |
469
+ | `rgba(255,255,255,0.1)` off track | `--input` |
470
+
471
+ ---
472
+
473
+ ## 7. Icon Button
474
+
475
+ > **shadcn mapping:** `Button` variant=icon
476
+
477
+ ### Sizes
478
+
479
+ | Size | Dimensions | Icon Size | Border Radius |
480
+ |---|---|---|---|
481
+ | **Tiny** | 24x24 | 16px | `100px` (pill) |
482
+ | **Mini** | 32x32 | 20px | `100px` |
483
+ | **Small** | 40x40 | 24px | `100px` |
484
+ | **Medium** | 48x48 | 32px | `100px` |
485
+ | **Large** | 56x56 | 32px | `100px` |
486
+
487
+ ### Variants (same as Button)
488
+
489
+ - **Primary**: `bg-[rgba(255,255,255,0.9)]`, dark icon
490
+ - **Secondary**: `border-2 border-[rgba(255,255,255,0.3)]`, white icon
491
+ - **Tertiary**: `bg-[rgba(255,255,255,0.1)]`, white icon at 80%
492
+ - **Quarter** (Ghost): transparent, white icon at 80%
493
+
494
+ ### States
495
+
496
+ Same pattern as Button: hover brightens, focus adds white ring, disabled opacity 0.2.
497
+
498
+ ---
499
+
500
+ ## 8. Link
501
+
502
+ > **shadcn mapping:** Custom (no direct shadcn equivalent, use `<a>` with utility classes)
503
+
504
+ ### Sizes
505
+
506
+ | Size | Font Size | Icon Size |
507
+ |---|---|---|
508
+ | **Mini** | 12px | 16px |
509
+ | **Small** | 14px | 20px |
510
+
511
+ ### States
512
+
513
+ ```yaml
514
+ default:
515
+ color: "rgba(255,255,255,0.8)"
516
+ text-decoration: "underline"
517
+ font-family: "Inter"
518
+ font-weight: 500
519
+
520
+ hover:
521
+ color: "rgba(255,255,255,1)"
522
+
523
+ focus:
524
+ ring: "2px solid white"
525
+ ring-offset: "-2px"
526
+
527
+ pressed:
528
+ color: "rgba(255,255,255,0.6)"
529
+
530
+ disabled:
531
+ opacity: 0.3
532
+ ```
533
+
534
+ ---
535
+
536
+ ## 9. Avatar
537
+
538
+ > **shadcn mapping:** `Avatar` + `AvatarImage` + `AvatarFallback`
539
+
540
+ ### Features
541
+
542
+ - Circular image with colored ring (brand colors)
543
+ - Avatar groups with overlapping layout
544
+ - Fallback: initials on colored background
545
+
546
+ ### Sizes (estimated from screenshots)
547
+
548
+ | Size | Dimensions | Ring Width |
549
+ |---|---|---|
550
+ | **Small** | 32px | 2px |
551
+ | **Medium** | 40px | 2px |
552
+ | **Large** | 48px | 3px |
553
+
554
+ ### Ring Colors (brand palette)
555
+
556
+ Various brand colors used: Atmos, Midori, Sahara, Khewra, Boreal, etc.
557
+
558
+ ---
559
+
560
+ ## 10. Tooltip
561
+
562
+ > **shadcn mapping:** `Tooltip` + `TooltipTrigger` + `TooltipContent`
563
+
564
+ ### Spec
565
+
566
+ ```yaml
567
+ background: "var(--color/surface/white, white)" # light tooltip on dark UI
568
+ color: "var(--color/surface/950, #101010)"
569
+ border-radius: "var(--radius/xs, 8px)"
570
+ padding: "4px 8px"
571
+ font-family: "Inter"
572
+ font-size: "12px"
573
+ font-weight: 500
574
+ # Optional keyboard shortcut badge inside
575
+ ```
576
+
577
+ ---
578
+
579
+ ## 11. Popover
580
+
581
+ > **shadcn mapping:** `Popover` + `PopoverTrigger` + `PopoverContent`
582
+
583
+ ### Spec
584
+
585
+ ```yaml
586
+ background: "var(--color/surface/900, #202020)"
587
+ border: "1px solid rgba(255,255,255,0.1)"
588
+ border-radius: "var(--radius/sm, 12px)"
589
+ padding: "16px"
590
+ box-shadow: "0 4px 24px rgba(0,0,0,0.3)"
591
+ ```
592
+
593
+ ### Variants
594
+
595
+ - **Default**: Simple content
596
+ - **With Form**: Contains inputs and action buttons
597
+
598
+ ---
599
+
600
+ ## 12. Dropdown (Select)
601
+
602
+ > **shadcn mapping:** `Select` + `SelectTrigger` + `SelectContent` + `SelectItem`
603
+
604
+ ### Trigger
605
+
606
+ Same structure as Text Input — same sizes, same states, with chevron-down icon on right and optional clear X.
607
+
608
+ ### Content (dropdown menu)
609
+
610
+ ```yaml
611
+ background: "var(--color/surface/900, #202020)"
612
+ border: "1px solid rgba(255,255,255,0.1)"
613
+ border-radius: "var(--radius/sm, 12px)"
614
+ padding: "4px"
615
+ box-shadow: "0 4px 24px rgba(0,0,0,0.3)"
616
+ ```
617
+
618
+ ---
619
+
620
+ ## 13. Item Menu
621
+
622
+ > **shadcn mapping:** `DropdownMenuItem` / `CommandItem`
623
+
624
+ ### Sizes
625
+
626
+ | Size | Height | Padding | Font Size |
627
+ |---|---|---|---|
628
+ | **Small** | 32px | `px-[12px]` | 14px |
629
+ | **Medium** | 40px | `px-[16px]` | 14px |
630
+ | **Large** | 48px | `px-[16px]` | 16px |
631
+
632
+ ### States
633
+
634
+ ```yaml
635
+ default:
636
+ background: "transparent"
637
+ color: "rgba(255,255,255,0.8)"
638
+ border-radius: "var(--radius/xs, 8px)"
639
+
640
+ hover:
641
+ background: "rgba(255,255,255,0.1)"
642
+
643
+ focus:
644
+ background: "rgba(255,255,255,0.1)"
645
+ ring: "2px solid white"
646
+
647
+ pressed:
648
+ background: "rgba(255,255,255,0.05)"
649
+
650
+ disabled:
651
+ opacity: 0.3
652
+ ```
653
+
654
+ ### Layout
655
+
656
+ - Left: optional icon (24px)
657
+ - Center: label text
658
+ - Right: optional shortcut text or chevron-right icon
659
+ - Gap: 8px between elements
660
+
661
+ ---
662
+
663
+ ## 14. Textarea
664
+
665
+ > **shadcn mapping:** `Textarea`
666
+
667
+ ### Sizes
668
+
669
+ | Size | Min Height | Padding | Font Size |
670
+ |---|---|---|---|
671
+ | **Tiny** | 64px | `p-[12px]` | 12px |
672
+ | **Mini** | 80px | `p-[14px]` | 14px |
673
+ | **Default** | 120px | `p-[16px]` | 16px |
674
+
675
+ ### States
676
+
677
+ Same as Text Input: `rgba(255,255,255,0.1)` bg, focus ring, disabled opacity 0.5.
678
+
679
+ ```yaml
680
+ default:
681
+ background: "rgba(255,255,255,0.1)"
682
+ border-radius: "var(--radius/sm, 12px)"
683
+ font-family: "Inter"
684
+ font-weight: 500
685
+ resize: "vertical"
686
+ ```
687
+
688
+ ---
689
+
690
+ ## 15. Dropdown Menu
691
+
692
+ > **shadcn mapping:** `DropdownMenu` + `DropdownMenuContent` + `DropdownMenuItem` + `DropdownMenuSeparator`
693
+
694
+ ### Variants
695
+
696
+ - **Simple**: Plain text items
697
+ - **With Search**: Search input at top, filtered items below
698
+ - **Complete**: Sections with headers, icons, descriptions, and separators
699
+
700
+ ### Container
701
+
702
+ ```yaml
703
+ background: "var(--color/surface/900, #202020)"
704
+ border: "1px solid rgba(255,255,255,0.1)"
705
+ border-radius: "var(--radius/sm, 12px)"
706
+ padding: "4px"
707
+ min-width: "200px"
708
+ box-shadow: "0 4px 24px rgba(0,0,0,0.3)"
709
+ ```
710
+
711
+ ---
712
+
713
+ ## 16. Toasts
714
+
715
+ > **shadcn mapping:** `Sonner` (toast library)
716
+ > **Nota do usuario:** "Animations sao apenas visualizacao, nao esta funcionando direito, fazer do jeito certo"
717
+
718
+ ### Variants
719
+
720
+ | Type | Icon Color | Icon | Token |
721
+ |---|---|---|---|
722
+ | **Success** | `--success` (Midori #3A913F) | Checkmark circle | `oklch(0.585 0.145 144.414)` |
723
+ | **Error** | `--destructive` (Khewra #DC625E) | X circle | `oklch(0.646 0.154 24.222)` |
724
+ | **Warning** | `--warning` (Sahara #D6A461) | Warning triangle | `oklch(0.751 0.103 73.232)` |
725
+ | **Info** | `--info` (Atmos #77C5D5) | Info circle | `oklch(0.779 0.08 212.201)` |
726
+
727
+ ### Spec
728
+
729
+ ```yaml
730
+ background: "var(--color/surface/900, #202020)"
731
+ border: "1px solid rgba(255,255,255,0.1)"
732
+ border-radius: "var(--radius/sm, 12px)"
733
+ padding: "16px"
734
+ color: "rgba(255,255,255,0.9)"
735
+ font-family: "Inter"
736
+ font-size: "14px"
737
+ # Action buttons: "Confirmar" / "Desfazer" text links
738
+ ```
739
+
740
+ ### Layout
741
+
742
+ - Left: colored status icon
743
+ - Center: title (bold) + description
744
+ - Right: optional action buttons (text links)
745
+
746
+ ---
747
+
748
+ ## 17. Basic Dialog
749
+
750
+ > **shadcn mapping:** `Dialog` + `DialogContent` + `DialogHeader` + `DialogFooter`
751
+
752
+ ### Spec
753
+
754
+ ```yaml
755
+ overlay:
756
+ background: "rgba(0,0,0,0.5)"
757
+
758
+ content:
759
+ background: "var(--color/surface/900, #202020)"
760
+ border: "1px solid rgba(255,255,255,0.1)"
761
+ border-radius: "var(--radius/sm, 12px)"
762
+ padding: "24px"
763
+ max-width: "400px"
764
+ box-shadow: "0 8px 32px rgba(0,0,0,0.5)"
765
+
766
+ header:
767
+ icon: "warning triangle (colored)"
768
+ title: "Inter Bold, 18px, white"
769
+ description: "Inter Regular, 14px, rgba(255,255,255,0.6)"
770
+
771
+ body:
772
+ # Optional input field
773
+ margin-top: "16px"
774
+
775
+ footer:
776
+ display: "flex"
777
+ gap: "8px"
778
+ justify-content: "flex-end"
779
+ margin-top: "24px"
780
+ # Primary + Secondary buttons
781
+ ```
782
+
783
+ ---
784
+
785
+ ## 18. Input Feedback
786
+
787
+ > **shadcn mapping:** Custom validation states on Input
788
+
789
+ ### Feedback Types
790
+
791
+ | Type | Border Color | Icon Color | Token |
792
+ |---|---|---|---|
793
+ | **User Error** | `--destructive` (Khewra) | Khewra | Red border + error icon |
794
+ | **System Error** | `--warning` (Sahara) | Sahara | Orange border + warning icon |
795
+ | **Success** | `--success` (Midori) | Midori | Green border + check icon |
796
+
797
+ ### Spec
798
+
799
+ ```yaml
800
+ error:
801
+ border: "2px solid var(--destructive)"
802
+ # Error message below input
803
+ message-color: "var(--destructive)"
804
+ message-font-size: "12px"
805
+
806
+ warning:
807
+ border: "2px solid var(--warning)"
808
+ message-color: "var(--warning)"
809
+
810
+ success:
811
+ border: "2px solid var(--success)"
812
+ message-color: "var(--success)"
813
+
814
+ multiple:
815
+ # Multiple validation messages stacked below input
816
+ # Each with its own icon and color
817
+ ```
818
+
819
+ ---
820
+
821
+ ## 19. Notification Bar
822
+
823
+ > **shadcn mapping:** Custom component (Card-based)
824
+
825
+ ### Spec
826
+
827
+ ```yaml
828
+ background: "var(--color/surface/900, #202020)"
829
+ border: "1px solid rgba(255,255,255,0.1)"
830
+ border-radius: "var(--radius/sm, 12px)"
831
+ padding: "16px"
832
+ # Layout: image left, content center, actions right
833
+ # Content: title (bold), time (muted), description
834
+ # Actions: Accept (primary button) / Decline (ghost button)
835
+ ```
836
+
837
+ ---
838
+
839
+ ## 20. Chat Notification
840
+
841
+ > **shadcn mapping:** Custom component
842
+
843
+ ### Spec
844
+
845
+ ```yaml
846
+ background: "var(--color/surface/900, #202020)"
847
+ border-radius: "var(--radius/sm, 12px)"
848
+ padding: "12px 16px"
849
+ # Layout: avatar left, content center, badge right
850
+ # Content: name (bold white), message (muted), time
851
+ # Badge: unread count (white bg, dark text, circular)
852
+ ```
853
+
854
+ ---
855
+
856
+ ## 21. Comment Area
857
+
858
+ > **shadcn mapping:** Custom (Textarea + action buttons)
859
+
860
+ ### Spec
861
+
862
+ ```yaml
863
+ textarea:
864
+ # Same as Textarea component base
865
+ background: "rgba(255,255,255,0.1)"
866
+ border-radius: "var(--radius/sm, 12px)"
867
+
868
+ actions:
869
+ # Bottom bar with + (attach), star (favorite), send icons
870
+ # Icon buttons: ghost variant (quarter)
871
+ padding: "8px"
872
+ border-top: "1px solid rgba(255,255,255,0.1)"
873
+ ```
874
+
875
+ ---
876
+
877
+ ## 22. Prompt Area
878
+
879
+ > **shadcn mapping:** Custom (AI prompt input)
880
+ > **Nota do usuario:** "Incompleto, precisa ser planejado"
881
+
882
+ ### Spec (partial)
883
+
884
+ ```yaml
885
+ container:
886
+ background: "rgba(255,255,255,0.1)"
887
+ border-radius: "var(--radius/sm, 12px)"
888
+ padding: "12px 16px"
889
+
890
+ input:
891
+ # Textarea-like input area
892
+ font-family: "Inter"
893
+ placeholder: "AI prompt text"
894
+
895
+ actions:
896
+ # Bottom: + (attach), mic (voice), send icon button
897
+ # Model selector dropdown
898
+ ```
899
+
900
+ ---
901
+
902
+ ## 23. Profile Header
903
+
904
+ > **shadcn mapping:** Custom component
905
+
906
+ ### Variants
907
+
908
+ - **Default**: Avatar + name + role
909
+ - **With Badges**: Avatar + name + role + badge tags
910
+
911
+ ---
912
+
913
+ ## Componentes Prontos para Adaptacao
914
+
915
+ ### Prioridade Alta (core — adaptar primeiro)
916
+
917
+ | # | Component | shadcn Base | Complexity |
918
+ |---|---|---|---|
919
+ | 1 | **Button** | `Button` | Alta — 4 variants, 4 sizes, 5 states |
920
+ | 2 | **Text Input** | `Input` | Media — 5 sizes, 6 states, 10 sub-types |
921
+ | 3 | **Tag** | `Badge` | Baixa — 2 sizes, pill shape |
922
+ | 4 | **Checkbox** | `Checkbox` | Baixa — 3 sizes, 3 check states |
923
+ | 5 | **Radio Button** | `RadioGroup` | Baixa — 3 sizes |
924
+ | 6 | **Toggle** | `Switch` | Baixa — 3 sizes |
925
+
926
+ ### Prioridade Media (compostos)
927
+
928
+ | # | Component | shadcn Base | Complexity |
929
+ |---|---|---|---|
930
+ | 7 | **Icon Button** | `Button` variant=icon | Media — reusa Button |
931
+ | 8 | **Dropdown** | `Select` | Media — trigger = Input |
932
+ | 9 | **Item Menu** | `DropdownMenuItem` | Baixa |
933
+ | 10 | **Textarea** | `Textarea` | Baixa — segue Input |
934
+ | 11 | **Dropdown Menu** | `DropdownMenu` | Media — 3 variants |
935
+ | 12 | **Tooltip** | `Tooltip` | Baixa |
936
+ | 13 | **Popover** | `Popover` | Baixa |
937
+
938
+ ### Prioridade Baixa (feedback + compostos complexos)
939
+
940
+ | # | Component | shadcn Base | Complexity |
941
+ |---|---|---|---|
942
+ | 14 | **Toasts** | `Sonner` | Media — 4 types |
943
+ | 15 | **Basic Dialog** | `Dialog` | Media |
944
+ | 16 | **Input Feedback** | Custom on Input | Baixa — adds borders |
945
+ | 17 | **Link** | Custom `<a>` | Baixa |
946
+ | 18 | **Avatar** | `Avatar` | Baixa |
947
+
948
+ ### Fora de Escopo (precisa planejamento)
949
+
950
+ | # | Component | Motivo |
951
+ |---|---|---|
952
+ | 19 | **Notification Bar** | Componente custom, sem shadcn base |
953
+ | 20 | **Chat Notification** | Componente custom, sem shadcn base |
954
+ | 21 | **Comment Area** | Componente composto (textarea + actions) |
955
+ | 22 | **Prompt Area** | Incompleto no Figma, precisa ser planejado |
956
+ | 23 | **Profile Header** | Componente custom layout |
957
+
958
+ ---
959
+
960
+ ## Validacao
961
+
962
+ - [x] Button especificado (4 variants, 4 sizes, 5 states)
963
+ - [x] Input especificado (5 sizes, 6 states, 10 sub-types)
964
+ - [x] Todos os estados basicos cobertos (default, hover, focus, pressed, disabled)
965
+ - [x] Valores mapeados para tokens existentes da Phase 1
966
+ - [x] Screenshots confirmam CSS do Figma Dev Mode (validacao cruzada OK)
967
+
968
+ ---
969
+
970
+ *Gerado por: Foundations Pipeline — Phase 2 (f2-ingest-base-components)*
971
+ *Fonte: Figma Dev Mode + components-ref/ screenshots + Figma MCP design context*
972
+ *Data: 2026-02-21*