@seedgrid/ai-toolkit 0.0.0-stage → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +151 -2
  3. package/dist/adapters/claude.js +114 -0
  4. package/dist/adapters/codex.js +108 -0
  5. package/dist/adapters/index.js +17 -0
  6. package/dist/adapters/shared.js +142 -0
  7. package/dist/adapters/types.js +1 -0
  8. package/dist/cli.js +203 -0
  9. package/dist/commands/common.js +98 -0
  10. package/dist/commands/doctor.js +290 -0
  11. package/dist/commands/init.js +9 -0
  12. package/dist/commands/install.js +107 -0
  13. package/dist/commands/remove.js +54 -0
  14. package/dist/commands/review.js +127 -0
  15. package/dist/commands/status.js +73 -0
  16. package/dist/commands/update.js +8 -0
  17. package/dist/commands/validate.js +27 -0
  18. package/dist/core/apply.js +181 -0
  19. package/dist/core/blocks.js +64 -0
  20. package/dist/core/content.js +528 -0
  21. package/dist/core/env.js +40 -0
  22. package/dist/core/frontmatter.js +29 -0
  23. package/dist/core/hash.js +14 -0
  24. package/dist/core/inspect.js +51 -0
  25. package/dist/core/lock.js +124 -0
  26. package/dist/core/paths.js +65 -0
  27. package/dist/core/plan.js +242 -0
  28. package/dist/core/tools.js +62 -0
  29. package/dist/core/types.js +11 -0
  30. package/dist/core/updates.js +121 -0
  31. package/docs/arquitetura.md +80 -0
  32. package/docs/compatibilidade.md +50 -0
  33. package/docs/formato.md +155 -0
  34. package/docs/instalacao.md +105 -0
  35. package/docs/manutencao.md +115 -0
  36. package/package.json +43 -4
  37. package/seedgridKB/SeedGrid/Extensions/Catalogo-de-enums.md +161 -0
  38. package/seedgridKB/SeedGrid/Extensions/Catalogo-de-propriedades.md +971 -0
  39. package/seedgridKB/SeedGrid/Extensions/Indice.md +63 -0
  40. package/seedgridKB/SeedGrid/Extensions/ai-pricing/Configuracao.md +124 -0
  41. package/seedgridKB/SeedGrid/Extensions/ai-pricing/Enums.md +40 -0
  42. package/seedgridKB/SeedGrid/Extensions/ai-pricing/Exemplos.md +97 -0
  43. package/seedgridKB/SeedGrid/Extensions/ai-pricing/Visao-geral.md +114 -0
  44. package/seedgridKB/SeedGrid/Extensions/apikeys/Configuracao-Rust.md +69 -0
  45. package/seedgridKB/SeedGrid/Extensions/apikeys/Configuracao.md +88 -0
  46. package/seedgridKB/SeedGrid/Extensions/apikeys/Enums.md +33 -0
  47. package/seedgridKB/SeedGrid/Extensions/apikeys/Exemplos.md +121 -0
  48. package/seedgridKB/SeedGrid/Extensions/apikeys/Rust.md +126 -0
  49. package/seedgridKB/SeedGrid/Extensions/apikeys/Visao-geral.md +111 -0
  50. package/seedgridKB/SeedGrid/Extensions/audit/Configuracao-Rust.md +93 -0
  51. package/seedgridKB/SeedGrid/Extensions/audit/Configuracao.md +127 -0
  52. package/seedgridKB/SeedGrid/Extensions/audit/Enums.md +66 -0
  53. package/seedgridKB/SeedGrid/Extensions/audit/Exemplos.md +151 -0
  54. package/seedgridKB/SeedGrid/Extensions/audit/Rust.md +120 -0
  55. package/seedgridKB/SeedGrid/Extensions/audit/Visao-geral.md +114 -0
  56. package/seedgridKB/SeedGrid/Extensions/backup/Configuracao-Rust.md +136 -0
  57. package/seedgridKB/SeedGrid/Extensions/backup/Configuracao.md +319 -0
  58. package/seedgridKB/SeedGrid/Extensions/backup/Enums.md +131 -0
  59. package/seedgridKB/SeedGrid/Extensions/backup/Exemplos.md +210 -0
  60. package/seedgridKB/SeedGrid/Extensions/backup/Rust.md +135 -0
  61. package/seedgridKB/SeedGrid/Extensions/backup/Visao-geral.md +150 -0
  62. package/seedgridKB/SeedGrid/Extensions/billing/Configuracao-Rust.md +86 -0
  63. package/seedgridKB/SeedGrid/Extensions/billing/Configuracao.md +243 -0
  64. package/seedgridKB/SeedGrid/Extensions/billing/Enums.md +165 -0
  65. package/seedgridKB/SeedGrid/Extensions/billing/Exemplos.md +205 -0
  66. package/seedgridKB/SeedGrid/Extensions/billing/Rust.md +109 -0
  67. package/seedgridKB/SeedGrid/Extensions/billing/Visao-geral.md +181 -0
  68. package/seedgridKB/SeedGrid/Extensions/broker/Configuracao-Rust.md +40 -0
  69. package/seedgridKB/SeedGrid/Extensions/broker/Visao-geral.md +114 -0
  70. package/seedgridKB/SeedGrid/Extensions/cache/Configuracao-Rust.md +73 -0
  71. package/seedgridKB/SeedGrid/Extensions/cache/Configuracao.md +112 -0
  72. package/seedgridKB/SeedGrid/Extensions/cache/Enums.md +36 -0
  73. package/seedgridKB/SeedGrid/Extensions/cache/Exemplos.md +149 -0
  74. package/seedgridKB/SeedGrid/Extensions/cache/Rust.md +81 -0
  75. package/seedgridKB/SeedGrid/Extensions/cache/Visao-geral.md +90 -0
  76. package/seedgridKB/SeedGrid/Extensions/commons/Configuracao.md +107 -0
  77. package/seedgridKB/SeedGrid/Extensions/commons/Enums.md +105 -0
  78. package/seedgridKB/SeedGrid/Extensions/commons/Exemplos.md +141 -0
  79. package/seedgridKB/SeedGrid/Extensions/commons/Visao-geral.md +99 -0
  80. package/seedgridKB/SeedGrid/Extensions/exchange/Configuracao.md +122 -0
  81. package/seedgridKB/SeedGrid/Extensions/exchange/Enums.md +29 -0
  82. package/seedgridKB/SeedGrid/Extensions/exchange/Exemplos.md +82 -0
  83. package/seedgridKB/SeedGrid/Extensions/exchange/Visao-geral.md +118 -0
  84. package/seedgridKB/SeedGrid/Extensions/filemanagement/Configuracao-Rust.md +110 -0
  85. package/seedgridKB/SeedGrid/Extensions/filemanagement/Configuracao.md +157 -0
  86. package/seedgridKB/SeedGrid/Extensions/filemanagement/Exemplos.md +157 -0
  87. package/seedgridKB/SeedGrid/Extensions/filemanagement/Rust.md +70 -0
  88. package/seedgridKB/SeedGrid/Extensions/filemanagement/Visao-geral.md +88 -0
  89. package/seedgridKB/SeedGrid/Extensions/login-tenancy/Configuracao-Rust.md +124 -0
  90. package/seedgridKB/SeedGrid/Extensions/login-tenancy/Configuracao.md +195 -0
  91. package/seedgridKB/SeedGrid/Extensions/login-tenancy/Enums.md +71 -0
  92. package/seedgridKB/SeedGrid/Extensions/login-tenancy/Exemplos.md +149 -0
  93. package/seedgridKB/SeedGrid/Extensions/login-tenancy/Rust.md +139 -0
  94. package/seedgridKB/SeedGrid/Extensions/login-tenancy/Visao-geral.md +130 -0
  95. package/seedgridKB/SeedGrid/Extensions/notification/Configuracao.md +141 -0
  96. package/seedgridKB/SeedGrid/Extensions/notification/Enums.md +52 -0
  97. package/seedgridKB/SeedGrid/Extensions/notification/Exemplos.md +141 -0
  98. package/seedgridKB/SeedGrid/Extensions/notification/Visao-geral.md +113 -0
  99. package/seedgridKB/SeedGrid/Extensions/privacy/Configuracao-Rust.md +67 -0
  100. package/seedgridKB/SeedGrid/Extensions/privacy/Configuracao.md +94 -0
  101. package/seedgridKB/SeedGrid/Extensions/privacy/Enums.md +79 -0
  102. package/seedgridKB/SeedGrid/Extensions/privacy/Exemplos.md +172 -0
  103. package/seedgridKB/SeedGrid/Extensions/privacy/Rust.md +107 -0
  104. package/seedgridKB/SeedGrid/Extensions/privacy/Visao-geral.md +90 -0
  105. package/seedgridKB/SeedGrid/Extensions/realtime/Configuracao-Rust.md +72 -0
  106. package/seedgridKB/SeedGrid/Extensions/realtime/Configuracao.md +104 -0
  107. package/seedgridKB/SeedGrid/Extensions/realtime/Exemplos.md +104 -0
  108. package/seedgridKB/SeedGrid/Extensions/realtime/Rust.md +69 -0
  109. package/seedgridKB/SeedGrid/Extensions/realtime/Visao-geral.md +105 -0
  110. package/seedgridKB/SeedGrid/Extensions/resilience/Configuracao-Rust.md +68 -0
  111. package/seedgridKB/SeedGrid/Extensions/resilience/Configuracao.md +186 -0
  112. package/seedgridKB/SeedGrid/Extensions/resilience/Enums.md +96 -0
  113. package/seedgridKB/SeedGrid/Extensions/resilience/Exemplos.md +229 -0
  114. package/seedgridKB/SeedGrid/Extensions/resilience/Rust.md +80 -0
  115. package/seedgridKB/SeedGrid/Extensions/resilience/Visao-geral.md +112 -0
  116. package/seedgridKB/SeedGrid/Extensions/runtime/Configuracao-Rust.md +90 -0
  117. package/seedgridKB/SeedGrid/Extensions/runtime/Visao-geral.md +114 -0
  118. package/seedgridKB/SeedGrid/Extensions/security/Configuracao-Rust.md +327 -0
  119. package/seedgridKB/SeedGrid/Extensions/security/Configuracao.md +510 -0
  120. package/seedgridKB/SeedGrid/Extensions/security/Enums.md +95 -0
  121. package/seedgridKB/SeedGrid/Extensions/security/Exemplos.md +218 -0
  122. package/seedgridKB/SeedGrid/Extensions/security/Rust.md +203 -0
  123. package/seedgridKB/SeedGrid/Extensions/security/Visao-geral.md +131 -0
  124. package/seedgridKB/SeedGrid/Extensions/subdomain-tenancy/Configuracao-Rust.md +188 -0
  125. package/seedgridKB/SeedGrid/Extensions/subdomain-tenancy/Configuracao.md +345 -0
  126. package/seedgridKB/SeedGrid/Extensions/subdomain-tenancy/Enums.md +117 -0
  127. package/seedgridKB/SeedGrid/Extensions/subdomain-tenancy/Exemplos.md +205 -0
  128. package/seedgridKB/SeedGrid/Extensions/subdomain-tenancy/Rust.md +161 -0
  129. package/seedgridKB/SeedGrid/Extensions/subdomain-tenancy/Visao-geral.md +142 -0
  130. package/seedgridKB/SeedGrid/Extensions/whatsapp/Configuracao-Rust.md +75 -0
  131. package/seedgridKB/SeedGrid/Extensions/whatsapp/Configuracao.md +152 -0
  132. package/seedgridKB/SeedGrid/Extensions/whatsapp/Enums.md +198 -0
  133. package/seedgridKB/SeedGrid/Extensions/whatsapp/Exemplos.md +173 -0
  134. package/seedgridKB/SeedGrid/Extensions/whatsapp/Rust.md +83 -0
  135. package/seedgridKB/SeedGrid/Extensions/whatsapp/Visao-geral.md +99 -0
  136. package/seedgridKB/SeedGrid/Mapa-dos-repositorios.md +112 -0
  137. package/seedgridKB/SeedGrid/SeedGrid-components/Indice.md +323 -0
  138. package/seedgridKB/SeedGrid/SeedGrid-components/buttons/API.md +257 -0
  139. package/seedgridKB/SeedGrid/SeedGrid-components/buttons/Exemplos.md +307 -0
  140. package/seedgridKB/SeedGrid/SeedGrid-components/buttons/Visao-geral.md +51 -0
  141. package/seedgridKB/SeedGrid/SeedGrid-components/datatable/API.md +174 -0
  142. package/seedgridKB/SeedGrid/SeedGrid-components/datatable/Exemplos.md +236 -0
  143. package/seedgridKB/SeedGrid/SeedGrid-components/datatable/Visao-geral.md +76 -0
  144. package/seedgridKB/SeedGrid/SeedGrid-components/digits/API.md +339 -0
  145. package/seedgridKB/SeedGrid/SeedGrid-components/digits/Exemplos.md +311 -0
  146. package/seedgridKB/SeedGrid/SeedGrid-components/digits/Visao-geral.md +57 -0
  147. package/seedgridKB/SeedGrid/SeedGrid-components/editor/API.md +125 -0
  148. package/seedgridKB/SeedGrid/SeedGrid-components/editor/Exemplos.md +116 -0
  149. package/seedgridKB/SeedGrid/SeedGrid-components/editor/Visao-geral.md +86 -0
  150. package/seedgridKB/SeedGrid/SeedGrid-components/feedback-e-exibicao/API.md +490 -0
  151. package/seedgridKB/SeedGrid/SeedGrid-components/feedback-e-exibicao/Exemplos.md +544 -0
  152. package/seedgridKB/SeedGrid/SeedGrid-components/feedback-e-exibicao/Visao-geral.md +69 -0
  153. package/seedgridKB/SeedGrid/SeedGrid-components/fundamentos/API.md +113 -0
  154. package/seedgridKB/SeedGrid/SeedGrid-components/fundamentos/Exemplos.md +159 -0
  155. package/seedgridKB/SeedGrid/SeedGrid-components/fundamentos/Visao-geral.md +92 -0
  156. package/seedgridKB/SeedGrid/SeedGrid-components/gadgets/API.md +516 -0
  157. package/seedgridKB/SeedGrid/SeedGrid-components/gadgets/Exemplos.md +629 -0
  158. package/seedgridKB/SeedGrid/SeedGrid-components/gadgets/Visao-geral.md +80 -0
  159. package/seedgridKB/SeedGrid/SeedGrid-components/inputs-selecao/API.md +615 -0
  160. package/seedgridKB/SeedGrid/SeedGrid-components/inputs-selecao/Exemplos.md +384 -0
  161. package/seedgridKB/SeedGrid/SeedGrid-components/inputs-selecao/Visao-geral.md +111 -0
  162. package/seedgridKB/SeedGrid/SeedGrid-components/inputs-texto/API.md +661 -0
  163. package/seedgridKB/SeedGrid/SeedGrid-components/inputs-texto/Exemplos.md +312 -0
  164. package/seedgridKB/SeedGrid/SeedGrid-components/inputs-texto/Visao-geral.md +123 -0
  165. package/seedgridKB/SeedGrid/SeedGrid-components/layout/API.md +1090 -0
  166. package/seedgridKB/SeedGrid/SeedGrid-components/layout/Exemplos.md +1172 -0
  167. package/seedgridKB/SeedGrid/SeedGrid-components/layout/Visao-geral.md +98 -0
  168. package/seedgridKB/SeedGrid/SeedGrid-components/modulos/Visao-geral.md +98 -0
  169. package/seedgridKB/SeedGrid/SeedGrid-components/modulos/fe-apikeys.md +118 -0
  170. package/seedgridKB/SeedGrid/SeedGrid-components/modulos/fe-audit.md +88 -0
  171. package/seedgridKB/SeedGrid/SeedGrid-components/modulos/fe-backup.md +131 -0
  172. package/seedgridKB/SeedGrid/SeedGrid-components/modulos/fe-billing-platform.md +132 -0
  173. package/seedgridKB/SeedGrid/SeedGrid-components/modulos/fe-billing-user.md +120 -0
  174. package/seedgridKB/SeedGrid/SeedGrid-components/modulos/fe-login-tenancy.md +119 -0
  175. package/seedgridKB/SeedGrid/SeedGrid-components/modulos/fe-security.md +427 -0
  176. package/seedgridKB/SeedGrid/SeedGrid-components/modulos/fe-self-enter.md +104 -0
  177. package/seedgridKB/SeedGrid/SeedGrid-components/modulos/fe-subdomain-tenancy.md +110 -0
  178. package/seedgridKB/SeedGrid/SeedGrid-components/navegacao-e-overlay/API.md +490 -0
  179. package/seedgridKB/SeedGrid/SeedGrid-components/navegacao-e-overlay/Exemplos.md +561 -0
  180. package/seedgridKB/SeedGrid/SeedGrid-components/navegacao-e-overlay/Visao-geral.md +82 -0
  181. package/seedgridKB/SeedGrid/SeedGrid-components/pacotes/Visao-geral.md +68 -0
  182. package/seedgridKB/SeedGrid/SeedGrid-components/pacotes/fe-commons.md +61 -0
  183. package/seedgridKB/SeedGrid/SeedGrid-components/pacotes/fe-core.md +140 -0
  184. package/seedgridKB/SeedGrid/SeedGrid-components/pacotes/fe-playground.md +112 -0
  185. package/seedgridKB/SeedGrid/SeedGrid-components/pacotes/fe-theme.md +97 -0
  186. package/seedgridKB/SeedGrid/SeedGrid-components/providers/API.md +177 -0
  187. package/seedgridKB/SeedGrid/SeedGrid-components/providers/Exemplos.md +332 -0
  188. package/seedgridKB/SeedGrid/SeedGrid-components/providers/Visao-geral.md +106 -0
  189. package/seedgridKB/SeedGrid/SeedGrid-components/showcase.md +70 -0
  190. package/seedgridKB/SeedGrid/Toolkit/agents/arquiteto.md +53 -0
  191. package/seedgridKB/SeedGrid/Toolkit/agents/backend-java.md +45 -0
  192. package/seedgridKB/SeedGrid/Toolkit/agents/backend-rust.md +43 -0
  193. package/seedgridKB/SeedGrid/Toolkit/agents/frontend-react.md +41 -0
  194. package/seedgridKB/SeedGrid/Toolkit/agents/qa.md +44 -0
  195. package/seedgridKB/SeedGrid/Toolkit/agents/revisor.md +40 -0
  196. package/seedgridKB/SeedGrid/Toolkit/references/fluxo-de-trabalho.md +78 -0
  197. package/seedgridKB/SeedGrid/Toolkit/references/glossario.md +15 -0
  198. package/seedgridKB/SeedGrid/Toolkit/references/modos-shared-native.md +27 -0
  199. package/seedgridKB/SeedGrid/Toolkit/rules/backend-java-seedgrid.md +54 -0
  200. package/seedgridKB/SeedGrid/Toolkit/rules/coordenacao.md +39 -0
  201. package/seedgridKB/SeedGrid/Toolkit/rules/formato-entrega.md +29 -0
  202. package/seedgridKB/SeedGrid/Toolkit/rules/frontend-seedgrid.md +47 -0
  203. package/seedgridKB/SeedGrid/Toolkit/rules/personalizacao-local.md +22 -0
  204. package/seedgridKB/SeedGrid/Toolkit/skills/planejar-mudanca/SKILL.md +38 -0
  205. package/seedgridKB/SeedGrid/Toolkit/skills/revisar-codigo/SKILL.md +33 -0
  206. package/seedgridKB/SeedGrid/Toolkit/skills/revisar-codigo/references/checklist.md +25 -0
  207. package/seedgridKB/SeedGrid/Toolkit/skills/seedgrid-backend-crud/SKILL.md +29 -0
  208. package/seedgridKB/SeedGrid/Toolkit/skills/seedgrid-bump/SKILL.md +26 -0
  209. package/seedgridKB/SeedGrid/Toolkit/skills/seedgrid-crud/SKILL.md +221 -0
  210. package/seedgridKB/SeedGrid/Toolkit/skills/seedgrid-crud/agents/openai.yaml +4 -0
  211. package/seedgridKB/SeedGrid/Toolkit/skills/seedgrid-crud/references/checklist.md +31 -0
  212. package/seedgridKB/SeedGrid/Toolkit/skills/seedgrid-crud/references/patterns.md +185 -0
  213. package/seedgridKB/SeedGrid/Toolkit/skills/seedgrid-crud/references/routing.md +66 -0
  214. package/seedgridKB/SeedGrid/Toolkit/skills/seedgrid-new-screen/SKILL.md +56 -0
  215. package/seedgridKB/SeedGrid/Toolkit/skills/seedgrid-new-screen/agents/openai.yaml +4 -0
  216. package/seedgridKB/SeedGrid/Toolkit/skills/seedgrid-new-screen/references/checklist.md +32 -0
  217. package/seedgridKB/SeedGrid/Toolkit/skills/seedgrid-new-screen/references/steps.md +114 -0
  218. package/seedgridKB/SeedGrid/Toolkit/skills/seedgrid-review/SKILL.md +61 -0
  219. package/seedgridKB/SeedGrid/Toolkit/skills/validar-mudanca/SKILL.md +29 -0
  220. package/seedgridKB/SeedGrid/Toolkit/templates/decisao-arquitetura.md +29 -0
  221. package/seedgridKB/SeedGrid/Toolkit/templates/especificacao-tarefa.md +32 -0
  222. package/seedgridKB/SeedGrid/Toolkit/templates/relatorio-validacao.md +30 -0
  223. package/seedgridKB/SeedGrid/Versoes.md +64 -0
  224. package/seedgridKB/SeedGrid/Visao-geral.md +35 -0
  225. package/seedgridKB/manifest.json +142 -0
@@ -0,0 +1,99 @@
1
+ ---
2
+ tags: [seedgrid, extension, whatsapp]
3
+ fonte: java/seedgrid-quarkus-ext-whatsapp
4
+ branch: main
5
+ commit: d8454f6313
6
+ analisado-em: 2026-10-14
7
+ ---
8
+
9
+ # seedgrid-whatsapp (Quarkus) — Visão geral
10
+
11
+ Links: [[SeedGrid/Extensions/whatsapp/Configuracao|Configuração do whatsapp]] · [[SeedGrid/Extensions/whatsapp/Exemplos|Exemplos do whatsapp]] · [[SeedGrid/Extensions/whatsapp/Rust|Porte Rust]] · [[SeedGrid/Extensions/whatsapp/Enums|Enums]]
12
+
13
+ ## Objetivo
14
+
15
+ Biblioteca/extension Quarkus para enviar mensagens WhatsApp por uma interface comum (`WhatsAppApi`), com troca de provider por configuração (`seedgrid.whatsapp.api`), e expor operações específicas da Evolution API (instâncias, grupos, labels, chat, perfil, mensagens interativas). Providers:
16
+
17
+ - **Evolution API** (self-hosted, Baileys) — módulo `seedgrid-whatsapp-evolution`.
18
+ - **WhatsApp Cloud API** (Meta Graph API) — módulo `seedgrid-whatsapp-whatsapp-cloud`.
19
+ - **Default** — `DefaultWhatsAppApi`, fallback que só registra WARNING e devolve resultado vazio.
20
+
21
+ ## Módulos e coordenadas (Confirmado — poms)
22
+
23
+ | Módulo | artifactId | Papel |
24
+ |---|---|---|
25
+ | raiz (pom) | `br.com.seedgrid:seedgrid-whatsapp:2026.08.16` | Agregador; parent `br.com.seedgrid:seedgrid-parent:2026.07.02` |
26
+ | runtime | `seedgrid-whatsapp-core` | Contratos (`WhatsAppApi` e interfaces da Evolution), DTOs, enums, config, producer, fallback. Usa `quarkus-extension-maven-plugin` (descriptor de extension) |
27
+ | deployment | `seedgrid-whatsapp-core-deployment` | `WhatsAppCoreProcessor`: feature `seedgrid-whatsapp-core`, indexa os jars dos providers, registra `DefaultWhatsAppApi` e `WhatsAppApiProducer` como unremovable |
28
+ | provider | `seedgrid-whatsapp-evolution` | `EvolutionRestClient` + `EvolutionWhatsAppApi` (jar comum com Jandex, não é extension própria) |
29
+ | provider | `seedgrid-whatsapp-whatsapp-cloud` | `CloudRestClient` + `OfficialCloudWhatsAppApi` (jar comum com Jandex) |
30
+
31
+ Todos com `groupId` `br.com.seedgrid` e versão `2026.08.16`.
32
+
33
+ ## Dependências SeedGrid
34
+
35
+ - `br.com.seedgrid:seedgrid-commons:2026.08.16` (core) — usado por `WhatsAppExceptionExtension implements ApiExceptionExtension`, que converte `WhatsAppException` em HTTP **422** com `ProblemDetails` (título `WhatsApp Error`).
36
+ - Providers dependem de `quarkus-rest-client-jackson`.
37
+ - **Observação (Não confirmado o motivo):** o pom do deployment declara `quarkus-hibernate-orm-deployment`, `quarkus-agroal-deployment`, `quarkus-datasource-deployment`, `quarkus-narayana-jta-deployment` etc., embora o core não use persistência; provavelmente herdados das necessidades do `seedgrid-commons`.
38
+
39
+ ## Arquitetura e fluxo
40
+
41
+ ```mermaid
42
+ flowchart LR
43
+ App[Código do app] -->|@Inject WhatsAppApi| P[WhatsAppApiProducer#produce]
44
+ P -->|api=default ou desconhecido| D[DefaultWhatsAppApi - só log]
45
+ P -->|api=evolution e bean resolvível| E[EvolutionWhatsAppApi]
46
+ P -->|api=whatsapp-cloud e bean resolvível| C[OfficialCloudWhatsAppApi]
47
+ E --> ERC[EvolutionRestClient configKey=evolution] -->|header apikey| EVO[(Evolution API)]
48
+ C --> CRC[CloudRestClient configKey=cloud] -->|Authorization: Bearer| META[(graph.facebook.com)]
49
+ ```
50
+
51
+ - `WhatsAppApiProducer` (`@ApplicationScoped`, método `@Produces WhatsAppApi produce()`) recebe `@EvolutionProvider Instance<WhatsAppApi>`, `@OfficialProvider Instance<WhatsAppApi>`, `DefaultWhatsAppApi` e `WhatsAppConfig`; se o provider pedido não for resolvível, devolve o Default (**Confirmado**).
52
+ - Os beans de provider têm `@LookupIfProperty(name = "seedgrid.whatsapp.api", stringValue = "evolution" | "whatsapp-cloud")` e qualificadores `@EvolutionProvider` / `@OfficialProvider`.
53
+ - Normalização de números (BR): aceita 11 dígitos (DDD + número) ou 13 começando com `55`; qualquer outro tamanho → `WhatsAppException("Phone number invalido...")`. Evolution envia `+55XXXXXXXXXXX`; Cloud envia `55XXXXXXXXXXX` (**Confirmado** — `normalizeBrNumberToEvolution` / `normalizeBrNumberToCloud`). Números fora do Brasil não são suportados por essa normalização.
54
+ - `channelId`: na Evolution é o nome da instância (path `{name}`); na Cloud é o `phoneNumberId`. Vazio → `WhatsAppException("channelId is required")`.
55
+
56
+ ## APIs públicas
57
+
58
+ | Interface (core, pacote `br.com.seedgrid.whatsapp.services`) | Implementada por | Conteúdo |
59
+ |---|---|---|
60
+ | `WhatsAppApi` | Evolution, Cloud, Default | `sendTextMessage`, `sendMediaFile`, `sendMediaUrl`, `sendAudioFile`, `sendAudioUrl`, `sendLocation`, `sendContact`, `sendReaction`, `sendSticker`, `sendTemplate` — todos `(String channelId, <DTO>)` → `WhatsAppSendMessageResultDTO` |
61
+ | `WhatsAppEvolutionMessagingApi` | Evolution | `sendPtv`, `sendPoll`, `sendList`, `sendButtons`, `sendStatus`, `offerCall` |
62
+ | `WhatsAppInstanceManagementApi` | Evolution | `createInstance`, `deleteInstance`, `getInstances`, `connectInstance` (QR base64), `getConnectionState`, `restartInstance`, `setWebHook`/`getWebHook` (`WebhookConfig`), `logoutInstance`, `setPresence`, `setSettings`/`getSettings` |
63
+ | `WhatsAppGroupApi` | Evolution | criar/consultar grupos, participantes, assunto/descrição/foto, convites, settings, mensagens efêmeras, sair |
64
+ | `WhatsAppLabelApi` | Evolution | `findLabels`, `handleLabel` |
65
+ | `WhatsAppChatApi` | Evolution | `whatsappNumbers`, leitura/arquivamento/edição/remoção de mensagens, presença, bloqueio, buscas (`WhatsAppQuery`), perfil e privacidade |
66
+
67
+ - Qualificadores CDI: `@EvolutionProvider`, `@OfficialProvider` (`br.com.seedgrid.whatsapp.qualifiers`).
68
+ - **Inferência (CDI):** como `EvolutionWhatsAppApi` declara o qualificador `@EvolutionProvider`, ele não tem `@Default`; para injetar as interfaces exclusivas da Evolution use `@EvolutionProvider WhatsAppInstanceManagementApi` (ou injete a classe `EvolutionWhatsAppApi`, como faz `EvolutionWhatsAppApiIT`). `@LookupIfProperty` só filtra lookup programático (`Instance`), não injeção direta.
69
+ - DTOs (`br.com.seedgrid.whatsapp.dtos`): records Java com construtor curto e campo opcional `WhatsAppMessageOptionsDTO options` (`quotedMessageId`, `linkPreview`, `delayMillis`, `mentioned`, `mentionEveryone`; fábricas `quoting`, `linkPreview`, `delay`). Resultado: `WhatsAppSendMessageResultDTO(messageId, status, recipient, timestamp, providerResponse)`.
70
+ - Exceção: `WhatsAppException` (RuntimeException) → 422 via `WhatsAppExceptionExtension`. Credenciais ausentes → `IllegalStateException`.
71
+ - Endpoints REST **expostos**: nenhum (a lib só consome APIs externas). Endpoints **consumidos**:
72
+ - Evolution (`EvolutionRestClient`, `@Path("/")`): `/instance/*`, `/message/send*/{name}`, `/call/offer/{name}`, `/webhook/set|find/{name}`, `/settings/set|find/{name}`, `/group/*/{name}`, `/label/*/{name}`, `/chat/*/{name}` — ~65 métodos.
73
+ - Cloud (`CloudRestClient`): `POST /{phoneNumberId}/messages`, `POST /{phoneNumberId}/media` (upload multipart montado por `CloudMultipart`; arquivos de mídia/áudio são subidos e depois enviados por id).
74
+ - Arquivos locais: `sendAudioFile` lê `fullFileName` do disco (`Files.readAllBytes`) em ambos os providers; `sendMediaFile` usa `mediaBase64`.
75
+
76
+ ## Migrations
77
+
78
+ Nenhuma (sem persistência).
79
+
80
+ ## Testes (não executados)
81
+
82
+ | Teste | Tipo | Cobertura |
83
+ |---|---|---|
84
+ | `seedgrid-whatsapp-evolution/src/test/java/.../services/EvolutionWhatsAppApiTest.java` | Unitário, Mockito (59 `@Test`) | Payloads de todos os tipos de mensagem, presença, labels, grupos, chat, valores dos enums |
85
+ | `seedgrid-whatsapp-evolution/src/test/java/.../evolution/services/EvolutionPayloadsTest.java` | Unitário (10) | `applyOptions`, `media`, `deriveMimeType`, `toResult` |
86
+ | `seedgrid-whatsapp-whatsapp-cloud/src/test/java/.../services/OfficialCloudWhatsAppApiTest.java` | Unitário, Mockito (14) | Payloads Graph API, upload multipart, áudio |
87
+ | `seedgrid-whatsapp-evolution/src/test/java/.../clients/EvolutionRestClientIT.java` | `@QuarkusTest` contra servidor real (11), só com `-Devolution.live=true` | Instância, envio, webhook, restart |
88
+ | `seedgrid-whatsapp-evolution/src/test/java/.../services/EvolutionWhatsAppApiIT.java` | `@QuarkusTest` contra servidor real (1), **sem guarda** | Envia texto real |
89
+
90
+ Não há testes no core nem no deployment.
91
+
92
+ ## Limitações
93
+
94
+ - Seleção de provider com fallback silencioso para `DefaultWhatsAppApi` (só WARNING por chamada).
95
+ - Normalização de telefone restrita a números brasileiros.
96
+ - Cloud implementa só `WhatsAppApi`; recursos de instância/grupo/label/chat existem apenas na Evolution.
97
+ - Credenciais validadas apenas no momento da chamada.
98
+
99
+ Detalhes de propriedades: [[SeedGrid/Extensions/whatsapp/Configuracao|Configuração do whatsapp]].
@@ -0,0 +1,112 @@
1
+ ---
2
+ tags: [seedgrid, mapa, repositorios]
3
+ fonte: seedgrid-platform
4
+ branch: main
5
+ analisado-em: 2026-10-14
6
+ ---
7
+
8
+ # Mapa dos repositórios
9
+
10
+ Raiz analisada: `seedgrid-platform`. A pasta raiz **não** é um repositório Git: cada módulo Java é um repositório próprio; `rust/` e `front/seedgrid-fe-components/` são repositórios únicos (monorepos).
11
+
12
+ Estado na análise (2026-10-14): todos na branch `main` e **sem alterações locais não commitadas** (`git status --short` vazio em todos).
13
+
14
+ ## Repositórios e commits analisados
15
+
16
+ ### Java / Quarkus (`java/`) — groupId `br.com.seedgrid`, Quarkus `3.30.8` (via `seedgrid-parent`)
17
+
18
+ | Repositório | Tipo | Versão (pom) | Commit | Data do commit | Nota |
19
+ |---|---|---|---|---|---|
20
+ | `seedgrid-parent` | POM pai (versões/BOM) | 2026.07.02 | `cc5eeb4bc1` | 2026-09-10 | — |
21
+ | `seedgrid-quarkus-ext-security` | Extension | 2026.10.13 | `450735386e` | 2026-10-13 | [[SeedGrid/Extensions/security/Visao-geral\|security]] |
22
+ | `seedgrid-quarkus-ext-apikeys` | Extension | 2026.10.09 | `bfc9c25877` | 2026-10-10 | [[SeedGrid/Extensions/apikeys/Visao-geral\|apikeys]] |
23
+ | `seedgrid-quarkus-ext-login-tenancy` | Extension | 2026.10.14 | `c67581bda9` | 2026-10-14 | [[SeedGrid/Extensions/login-tenancy/Visao-geral\|login-tenancy]] |
24
+ | `seedgrid-quarkus-ext-subdomain-tenancy` | Extension | 2026.10.14 | `fe62530a29` | 2026-10-14 | [[SeedGrid/Extensions/subdomain-tenancy/Visao-geral\|subdomain-tenancy]] |
25
+ | `seedgrid-quarkus-ext-billing` | Extension (core + stripe) | 2026.10.14 | `ba38efc347` | 2026-10-14 | [[SeedGrid/Extensions/billing/Visao-geral\|billing]] |
26
+ | `seedgrid-quarkus-ext-ai-pricing` | Extension | 2026.10.13 | `0608ca66b5` | 2026-10-13 | [[SeedGrid/Extensions/ai-pricing/Visao-geral\|ai-pricing]] |
27
+ | `seedgrid-quarkus-ext-exchange` | Extension | 2026.10.13 | `30f1fd6005` | 2026-10-13 | [[SeedGrid/Extensions/exchange/Visao-geral\|exchange]] |
28
+ | `seedgrid-quarkus-ext-audit` | Extension (core + postgresql + mongodb) | 2026.09.25 | `d5bf32e509` | 2026-09-25 | [[SeedGrid/Extensions/audit/Visao-geral\|audit]] |
29
+ | `seedgrid-quarkus-ext-backup` | Extension | 2026.10.09 | `3bed4075ea` | 2026-10-10 | [[SeedGrid/Extensions/backup/Visao-geral\|backup]] |
30
+ | `seedgrid-quarkus-ext-notification` | Extension (+ `api`) | 2026.10.15 | `3d00bee` | 2026-10-15 | [[SeedGrid/Extensions/notification/Visao-geral\|notification]] |
31
+ | `seedgrid-quarkus-ext-realtime` | Extension | 2026.10.08 | `8f13639b3c` | 2026-10-08 | [[SeedGrid/Extensions/realtime/Visao-geral\|realtime]] |
32
+ | `seedgrid-quarkus-ext-resilience` | Extension | 2026.10.13 | `eff41304f8` | 2026-10-13 | [[SeedGrid/Extensions/resilience/Visao-geral\|resilience]] |
33
+ | `seedgrid-quarkus-ext-whatsapp` | Extension (core + evolution + cloud) | 2026.08.16 | `d8454f6313` | 2026-08-16 | [[SeedGrid/Extensions/whatsapp/Visao-geral\|whatsapp]] |
34
+ | `seedgrid-quarkus-lib-cache` | Library (core + redis/valkey/dragonfly) | 2026.10.13 | `14bd916a09` | 2026-10-13 | [[SeedGrid/Extensions/cache/Visao-geral\|cache]] |
35
+ | `seedgrid-quarkus-lib-commons` | Library | 2026.10.08 | `fa49c344db` | 2026-10-08 | [[SeedGrid/Extensions/commons/Visao-geral\|commons]] |
36
+ | `seedgrid-quarkus-lib-filemanagement` | Library | 2026.07.08 | `35c89c7cf7` | 2026-07-20 | [[SeedGrid/Extensions/filemanagement/Visao-geral\|filemanagement]] |
37
+ | `seedgrid-quarkus-lib-privacy` | Library | 2026.07.27 | `79f8b03eeb` | 2026-09-25 | [[SeedGrid/Extensions/privacy/Visao-geral\|privacy]] |
38
+ | `seedgrid-test-multitenancy` | App Quarkus de teste/integração | — | `21c70b4254` | 2026-10-13 | não documentado em detalhe |
39
+ | `seedgrid-cli` | CLI em **Rust** (apesar de estar em `java/`) que gera apps Next.js com módulos `@seedgrid/fe-*` | — | `d3184afc84` | 2026-07-20 | não documentado em detalhe |
40
+ | `seedgrid-components-mcp` | Servidor MCP (TypeScript) que expõe o catálogo de componentes | — | `69fe6a1cf8` | 2026-09-17 | não documentado em detalhe |
41
+ | `examples/*` (12 apps) | Apps de exemplo, cada um com `.git` próprio | — | não registrados | — | usados como fonte de exemplos |
42
+
43
+ ### Rust (`rust/`) — workspace único
44
+
45
+ | Item | Valor |
46
+ |---|---|
47
+ | Commit | `be738a2d1e` (2026-10-08) |
48
+ | Versão do workspace | `2026.7.27` (`[workspace.package]` em `rust/Cargo.toml`; o README cita `2026.7.22` — divergência de documentação) |
49
+ | Membros | 13 crates `seedgrid-rust-crate-*`, `seedgrid-macros`, `seedgrid-runtime` e 5 crates do broker |
50
+ | Exemplos | `rust/examples/*` (fora do workspace) |
51
+
52
+ Cada crate é o **porte** da extension/lib Java de mesmo nome; a paridade é registrada em `rust/DIVERGENCES-SUMMARY.md` (decisão: Java é a fonte da verdade). As notas `Rust.md` / `Configuracao-Rust.md` ficam na mesma pasta da extension correspondente.
53
+
54
+ ### Front-end (`front/seedgrid-fe-components/`) — monorepo pnpm + Turborepo
55
+
56
+ | Item | Valor |
57
+ |---|---|
58
+ | Commit | `ad30fc11de` (2026-10-08) |
59
+ | Pacotes | `@seedgrid/fe-components` (2026.7.1), `@seedgrid/fe-core` (2026.7.1), `@seedgrid/fe-theme` (0.3.0), `@seedgrid/fe-commons` (0.2.0), `@seedgrid/fe-playground` (0.1.0), módulos `@seedgrid/fe-*` em `packages/modules/` |
60
+ | App | `apps/showcase` (vitrine dos componentes) |
61
+ | Stack | React 19, TypeScript 5, react-hook-form 7, lucide-react, TipTap 2 (editor) |
62
+
63
+ Documentação: [[SeedGrid/SeedGrid-components/Indice|Índice dos componentes]].
64
+
65
+ `front/next-projects/` contém apenas documentação de padrões/decisões (sem código) e não foi analisado.
66
+
67
+ ## Dependências entre módulos Java
68
+
69
+ Extraído dos `pom.xml` (excluindo `deployment` e `integration-tests`). Escopo `compile` salvo indicação.
70
+
71
+ ```mermaid
72
+ graph LR
73
+ notifApi["notification-api"]
74
+ loginTenancy["login-tenancy"]
75
+ subdomainTenancy["subdomain-tenancy"]
76
+ pulsePublisher["pulse-publisher (externo)"]
77
+ aiPricing["ai-pricing"]
78
+ commons --> privacy
79
+ security --> commons & privacy & filemanagement & cache & resilience & audit & whatsapp & notifApi
80
+ apikeys --> security & commons
81
+ audit --> commons & privacy
82
+ backup --> commons & privacy & filemanagement & resilience & audit
83
+ billing --> security & commons & privacy & resilience & audit & notifApi
84
+ loginTenancy --> security & apikeys & backup & billing & audit & filemanagement & resilience & privacy & commons & notification
85
+ subdomainTenancy --> security & apikeys & backup & billing & audit & resilience & privacy & commons & notification
86
+ notification --> notifApi & whatsapp
87
+ whatsapp --> commons
88
+ resilience --> cache
89
+ realtime --> commons & pulsePublisher
90
+ aiPricing -. provided .-> security & audit
91
+ aiPricing --> commons & notifApi
92
+ exchange -. provided .-> security & audit
93
+ exchange --> commons & notifApi
94
+ ```
95
+
96
+ Observações:
97
+ - `security` usa `seedgrid-whatsapp-evolution` e `seedgrid-whatsapp-whatsapp-cloud` como dependências **opcionais**.
98
+ - `audit-postgresql` aparece com escopo `test` em security, backup, login-tenancy e subdomain-tenancy.
99
+ - `seedgrid-pulse-publisher` (dependência de `realtime/runtime/pom.xml`) **não está** neste conjunto de repositórios — origem não confirmada.
100
+ - Faixas de versão das migrations SQL: `java/MIGRATION_RANGES.md`.
101
+
102
+ ## Relação entre as três frentes
103
+
104
+ ```mermaid
105
+ graph TD
106
+ J["Extensions Quarkus<br/>java/"] -- "porte 1:1 (Java = fonte da verdade)" --> R["Crates Rust<br/>rust/"]
107
+ J -- "APIs REST consumidas por" --> M["Módulos front @seedgrid/fe-*<br/>packages/modules"]
108
+ R -- "mesmas rotas/contratos" --> M
109
+ M --> C["@seedgrid/fe-components + fe-core + fe-theme"]
110
+ CLI["seedgrid-cli"] -- "monta apps Next.js com" --> M
111
+ MCP["seedgrid-components-mcp"] -- "expõe catálogo de" --> C
112
+ ```
@@ -0,0 +1,323 @@
1
+ ---
2
+ tags: [seedgrid, component, indice]
3
+ fonte: front/seedgrid-fe-components/packages/seedgrid-fe-components
4
+ branch: main
5
+ commit: ad30fc11de
6
+ analisado-em: 2026-10-14
7
+ gerado-por: scripts/kb-catalogs.mjs --only components
8
+ ---
9
+
10
+ # Índice dos componentes SeedGrid (front-end)
11
+
12
+ Monorepo `front/seedgrid-fe-components` (pnpm + Turborepo, React 19). Pacote principal `@seedgrid/fe-components` 2026.7.1; importação pública pelo barrel `src/index.ts` (`import { SgButton } from "@seedgrid/fe-components"`) e CSS em `@seedgrid/fe-components/style.css` — detalhes em [[SeedGrid/SeedGrid-components/fundamentos/Visao-geral|Fundamentos]].
13
+
14
+ - **Exportado = sim**: disponível no barrel público. **não**: interno (documentado só para referência).
15
+ - Cada grupo tem `Visao-geral` (quando usar), `API` (props completas, eventos, a11y) e `Exemplos` (TSX validado contra a API).
16
+ - Contratos comuns: react-hook-form e base `SgInputText` em [[SeedGrid/SeedGrid-components/inputs-texto/API|inputs-texto/API]].
17
+ - App de vitrine: [[SeedGrid/SeedGrid-components/showcase|Showcase]]. Pacotes de tema/core/playground: [[SeedGrid/SeedGrid-components/pacotes/Visao-geral|Pacotes]]. Módulos de tela ligados às extensions: [[SeedGrid/SeedGrid-components/modulos/Visao-geral|Módulos]].
18
+ - Esta nota é **gerada** (`node scripts/kb-catalogs.mjs --only components --write`) a partir das notas de cada grupo; os resumos são a 1ª frase da coluna "Para que serve"/"Use para" da Visao-geral (≤100 caracteres) — corrija a nota de origem e regenere.
19
+
20
+ ## Resumo
21
+
22
+ | Grupo | Componentes `Sg*` | Outros símbolos (hooks, funções, pacotes) | Notas |
23
+ |---|---|---|---|
24
+ | Inputs de texto e documentos | 15 | 0 | [[SeedGrid/SeedGrid-components/inputs-texto/Visao-geral\|Visão geral]] · [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] · [[SeedGrid/SeedGrid-components/inputs-texto/Exemplos\|Exemplos]] |
25
+ | Inputs de seleção e valores | 14 | 0 | [[SeedGrid/SeedGrid-components/inputs-selecao/Visao-geral\|Visão geral]] · [[SeedGrid/SeedGrid-components/inputs-selecao/API\|API]] · [[SeedGrid/SeedGrid-components/inputs-selecao/Exemplos\|Exemplos]] |
26
+ | Tabela de dados | 1 | 0 | [[SeedGrid/SeedGrid-components/datatable/Visao-geral\|Visão geral]] · [[SeedGrid/SeedGrid-components/datatable/API\|API]] · [[SeedGrid/SeedGrid-components/datatable/Exemplos\|Exemplos]] |
27
+ | Editor de texto rico | 1 | 0 | [[SeedGrid/SeedGrid-components/editor/Visao-geral\|Visão geral]] · [[SeedGrid/SeedGrid-components/editor/API\|API]] · [[SeedGrid/SeedGrid-components/editor/Exemplos\|Exemplos]] |
28
+ | Botões | 3 | 2 | [[SeedGrid/SeedGrid-components/buttons/Visao-geral\|Visão geral]] · [[SeedGrid/SeedGrid-components/buttons/API\|API]] · [[SeedGrid/SeedGrid-components/buttons/Exemplos\|Exemplos]] |
29
+ | Feedback e exibição | 11 | 12 | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/Visao-geral\|Visão geral]] · [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] · [[SeedGrid/SeedGrid-components/feedback-e-exibicao/Exemplos\|Exemplos]] |
30
+ | Layout e containers | 19 | 34 | [[SeedGrid/SeedGrid-components/layout/Visao-geral\|Visão geral]] · [[SeedGrid/SeedGrid-components/layout/API\|API]] · [[SeedGrid/SeedGrid-components/layout/Exemplos\|Exemplos]] |
31
+ | Navegação, overlay e wizard | 6 | 11 | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/Visao-geral\|Visão geral]] · [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] · [[SeedGrid/SeedGrid-components/navegacao-e-overlay/Exemplos\|Exemplos]] |
32
+ | Gadgets (relógio, calendário, gauges, QR) | 10 | 22 | [[SeedGrid/SeedGrid-components/gadgets/Visao-geral\|Visão geral]] · [[SeedGrid/SeedGrid-components/gadgets/API\|API]] · [[SeedGrid/SeedGrid-components/gadgets/Exemplos\|Exemplos]] |
33
+ | Dígitos animados | 8 | 0 | [[SeedGrid/SeedGrid-components/digits/Visao-geral\|Visão geral]] · [[SeedGrid/SeedGrid-components/digits/API\|API]] · [[SeedGrid/SeedGrid-components/digits/Exemplos\|Exemplos]] |
34
+ | Providers (ambiente/persistência e realtime) | 2 | 16 | [[SeedGrid/SeedGrid-components/providers/Visao-geral\|Visão geral]] · [[SeedGrid/SeedGrid-components/providers/API\|API]] · [[SeedGrid/SeedGrid-components/providers/Exemplos\|Exemplos]] |
35
+ | Fundamentos do @seedgrid/fe-components | 0 | 8 | [[SeedGrid/SeedGrid-components/fundamentos/Visao-geral\|Visão geral]] · [[SeedGrid/SeedGrid-components/fundamentos/API\|API]] · [[SeedGrid/SeedGrid-components/fundamentos/Exemplos\|Exemplos]] |
36
+ | Pacotes de apoio | 0 | 4 | [[SeedGrid/SeedGrid-components/pacotes/Visao-geral\|Visão geral]] |
37
+ | Módulos de tela @seedgrid/fe-* | 0 | 9 | [[SeedGrid/SeedGrid-components/modulos/Visao-geral\|Visão geral]] |
38
+ | Showcase | 0 | 1 | [[SeedGrid/SeedGrid-components/showcase\|Showcase]] |
39
+ | **Total** | **90** | **119** | |
40
+
41
+ ## Inputs de texto e documentos
42
+
43
+ | Nome | Exportado | Resumo | Nota |
44
+ |---|---|---|---|
45
+ | `SgInputText` | sim | Texto curto livre (nome, título, código) | [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] |
46
+ | `SgInputTextArea` | sim | Texto longo multilinha, com mínimo de linhas e palavras | [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] |
47
+ | `SgInputTextSearch` | sim | Caixa de busca com debounce (onSearchChange) | [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] |
48
+ | `SgInputEmail` | sim | E-mail com validação de formato e bloqueio de domínios temporários | [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] |
49
+ | `SgInputPassword` | sim | Senha com política configurável, barra de força, olho e gerador | [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] |
50
+ | `SgInputPhone` | sim | Telefone BR com máscara (10 ou 11 dígitos) | [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] |
51
+ | `SgInputCPF` | sim | CPF com máscara e dígito verificador | [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] |
52
+ | `SgInputCNPJ` | sim | CNPJ numérico ou alfanumérico, com consulta pública opcional | [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] |
53
+ | `SgInputCPFCNPJ` | sim | Campo único que aceita CPF ou CNPJ e detecta qual é | [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] |
54
+ | `SgInputPostalCode` | sim | CEP/código postal de BR, PT, US, ES, UY, AR e PY, com ViaCEP opcional | [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] |
55
+ | `SgInputDate` | sim | Data com o widget nativo (type="date") e limites min/max | [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] |
56
+ | `SgInputBirthDate` | sim | Data de nascimento com idade mínima/máxima | [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] |
57
+ | `SgInputNumber` | sim | Número decimal formatado pelo locale, com min/max | [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] |
58
+ | `SgInputCurrency` | sim | Valor monetário com símbolo via Intl (padrão BRL) | [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] |
59
+ | `SgInputOTP` | sim | Código de uso único segmentado, com máscara (999999, ###-###) | [[SeedGrid/SeedGrid-components/inputs-texto/API\|API]] |
60
+
61
+ ## Inputs de seleção e valores
62
+
63
+ | Nome | Exportado | Resumo | Nota |
64
+ |---|---|---|---|
65
+ | `SgAutocomplete` | sim | Busca em fonte grande ou remota, com sugestões enquanto o usuário digita (debounce, cache… | [[SeedGrid/SeedGrid-components/inputs-selecao/API\|API]] |
66
+ | `SgCombobox` | sim | Select de uma opção a partir de lista fixa ou carregada uma vez (type-ahead, agrupamento) | [[SeedGrid/SeedGrid-components/inputs-selecao/API\|API]] |
67
+ | `SgCheckboxGroup` | sim | Poucas opções, várias escolhas, todas visíveis; "selecionar todos" | [[SeedGrid/SeedGrid-components/inputs-selecao/API\|API]] |
68
+ | `SgRadioGroup` | sim | Poucas opções, uma escolha, todas visíveis | [[SeedGrid/SeedGrid-components/inputs-selecao/API\|API]] |
69
+ | `SgMultiSelect` | sim | Várias escolhas em dropdown compacto (resumo "N selecionadas") | [[SeedGrid/SeedGrid-components/inputs-selecao/API\|API]] |
70
+ | `SgMultiSelectChips` | sim | Várias escolhas exibidas como chips removíveis | [[SeedGrid/SeedGrid-components/inputs-selecao/API\|API]] |
71
+ | `SgOrderList` | sim | Ordenar uma lista (prioridade, etapas) | [[SeedGrid/SeedGrid-components/inputs-selecao/API\|API]] |
72
+ | `SgPickList` | sim | Transferir itens entre "disponíveis" e "selecionados" | [[SeedGrid/SeedGrid-components/inputs-selecao/API\|API]] |
73
+ | `SgPeriodSelector` | sim | Filtro de período relativo a hoje ("este mês", "últimos…", personalizado) | [[SeedGrid/SeedGrid-components/inputs-selecao/API\|API]] |
74
+ | `SgYearPartSelector` | sim | Recorte absoluto do ano (semestre, trimestre ou bimestre de um ano X) | [[SeedGrid/SeedGrid-components/inputs-selecao/API\|API]] |
75
+ | `SgToggleSwitch` | sim | Liga/desliga booleano | [[SeedGrid/SeedGrid-components/inputs-selecao/API\|API]] |
76
+ | `SgRating` | sim | Avaliação por estrelas (inteiras ou meias) | [[SeedGrid/SeedGrid-components/inputs-selecao/API\|API]] |
77
+ | `SgSlider` | sim | Número em faixa contínua (range nativo) | [[SeedGrid/SeedGrid-components/inputs-selecao/API\|API]] |
78
+ | `SgStepperInput` | sim | Número inteiro ou com passo, com botões +/− | [[SeedGrid/SeedGrid-components/inputs-selecao/API\|API]] |
79
+
80
+ ## Tabela de dados
81
+
82
+ | Nome | Exportado | Resumo | Nota |
83
+ |---|---|---|---|
84
+ | `SgDatatable` | sim | O SgDatatable é a tabela de dados do pacote @seedgrid/fe-components (v2026.7.1) | [[SeedGrid/SeedGrid-components/datatable/API\|API]] |
85
+
86
+ ## Editor de texto rico
87
+
88
+ | Nome | Exportado | Resumo | Nota |
89
+ |---|---|---|---|
90
+ | `SgTextEditor` | sim | O SgTextEditor é o editor de texto rico (HTML) do pacote @seedgrid/fe-components (v2026.7.1)… | [[SeedGrid/SeedGrid-components/editor/API\|API]] |
91
+
92
+ ## Botões
93
+
94
+ | Nome | Exportado | Resumo | Nota |
95
+ |---|---|---|---|
96
+ | `SgButton` | sim | Botão de ação com severity, appearance (solid/outline/ghost), size, shape, elevation, ícones… | [[SeedGrid/SeedGrid-components/buttons/API\|API]] |
97
+ | `SgSplitButton` | sim | Ação principal + menu dropdown de ações secundárias (items) | [[SeedGrid/SeedGrid-components/buttons/API\|API]] |
98
+ | `SgFloatActionButton` | sim | FAB fixo/absoluto com ações secundárias (layouts linear, circle, semi-circle, quarter-circle)… | [[SeedGrid/SeedGrid-components/buttons/API\|API]] |
99
+ | `buildFabStorageKey` | sim | null sem dragId; senão sg-fab-pos:${dragId} | [[SeedGrid/SeedGrid-components/buttons/API\|API]] |
100
+ | `parseStoredFabDragPosition` | sim | Aceita string JSON ou objeto; retorna {x,y} só se ambos forem números finitos, senão null | [[SeedGrid/SeedGrid-components/buttons/API\|API]] |
101
+
102
+ ## Feedback e exibição
103
+
104
+ | Nome | Exportado | Resumo | Nota |
105
+ |---|---|---|---|
106
+ | `SgAvatar` | sim | Avatar com imagem, ícone, iniciais ou fallback; severidade, formato e tamanhos | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
107
+ | `SgAvatarGroup` | sim | Avatares sobrepostos com contador +N | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
108
+ | `SgBadge` | sim | Etiqueta/contador com severidade, variantes, ponto pulsante, ícones e remoção | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
109
+ | `SgBadgeOverlay` | sim | Posiciona um badge sobre outro elemento | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
110
+ | `SgSkeleton` | sim | Placeholder de carregamento (formas e animações wave/pulse) | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
111
+ | `SgToaster` | sim | Pilha fixa de toasts disparados por toast(...) | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
112
+ | `SgToastHost` | sim | Define onde os toasts aparecem; vários hosts → o último montado vence | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
113
+ | `SgWhistler` | sim | Lista de avisos no fluxo do layout, disparados por sgWhistle.* | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
114
+ | `SgWhistleHost` | sim | Define onde os whistles aparecem (mesma regra de prioridade) | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
115
+ | `SgToasterHostContext` | não | Contexto booleano que faz o SgToaster interno do host pular a checagem de host | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
116
+ | `SgWhistlerHostContext` | não | Idem para whistles | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
117
+ | `dismissSgToast` | sim | sem id fecha todos; com id remove aquele | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
118
+ | `subscribeSgToasts` | sim | chama o listener imediatamente com o snapshot atual e a cada mudança; retorna a função de… | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
119
+ | `registerHost` | sim | empilha (ignora duplicado) e notifica | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
120
+ | `unregisterHost` | sim | remove e notifica | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
121
+ | `getActiveHostId` | sim | topo da pilha | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
122
+ | `hasAnyHost` | sim | pilha não vazia | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
123
+ | `subscribeHostRegistry` | sim | listener de mudanças; retorna cancelamento | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
124
+ | `nextHostId` | sim | sg-toast-host-<n> | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
125
+ | `dismissSgWhistle` | sim | sem id remove todos (chamando onClose de cada) | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
126
+ | `subscribeSgWhistles` | sim | snapshot imediato + mudanças; retorna cancelamento | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
127
+ | `toast` | sim | API imperativa de toasts (src/commons/SgToast.ts) | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
128
+ | `sgWhistle` | sim | API imperativa de whistles (src/commons/SgWhistle.ts) | [[SeedGrid/SeedGrid-components/feedback-e-exibicao/API\|API]] |
129
+
130
+ ## Layout e containers
131
+
132
+ | Nome | Exportado | Resumo | Nota |
133
+ |---|---|---|---|
134
+ | `SgStack` | sim | Flex em linha/coluna com gap, justify, align, wrap, grow | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
135
+ | `SgGrid` | sim | Grade CSS com colunas por breakpoint ou minItemWidth (auto-fit); respeita span/rowSpan dos filhos | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
136
+ | `SgPanel` | sim | Painel com borda/scroll e docking de painéis filhos por align (top/left/right/bottom/client) | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
137
+ | `SgScreen` | sim | Raiz de tela (100% × 100dvh por padrão) com o mesmo docking de SgPanel | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
138
+ | `SgGroupBox` | sim | fieldset + legend para agrupar campos | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
139
+ | `SgCard` | sim | Card com cabeçalho/rodapé, clicável, colapsável e arrastável (posição persistida) | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
140
+ | `SgAccordion` | sim | Seções colapsáveis verticais ou horizontais, controladas ou não | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
141
+ | `SgPageControl` | sim | Abas com páginas declarativas; select nativo opcional no celular | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
142
+ | `SgPageControlPage` | sim | Declaração de uma página do SgPageControl | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
143
+ | `SgExpandablePanel` | sim | Painel expansível inline ou overlay (drawer) com resize, foco preso e Esc | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
144
+ | `SgCarousel` | sim | Carrossel com vários itens visíveis, circular, autoplay, navegadores e indicadores | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
145
+ | `SgBreadcrumb` | sim | Trilha de navegação com colapso de excedentes ou rolagem | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
146
+ | `SgMenu` | sim | Menu de navegação: sidebar, drawer, inline, híbrido; variantes painel, em camadas e mega menu… | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
147
+ | `SgTreeView` | sim | Árvore com busca, checkboxes em cascata, modo confirmação, trilhas extras e ref imperativa | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
148
+ | `SgDockLayout` | sim | Provedor de zonas de encaixe e do estado persistido das toolbars | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
149
+ | `SgDockZone` | sim | Zona nomeada (top/bottom/left/right/free) de um SgDockLayout | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
150
+ | `SgDockScreen` | sim | SgScreen + SgDockLayout com grade 3×3 pronta | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
151
+ | `SgToolBar` | sim | Barra de ferramentas colapsável, arrastável entre zonas ou livre | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
152
+ | `SgToolbarIconButton` | sim | Botão de toolbar com ícone, rótulo, hint (tooltip), severidade e loading automático para onClick… | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
153
+ | `useSgDockLayout` | não | Hook do contexto do dock (exportado só de SgDockLayout.tsx) | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
154
+ | `renderDockContent e helpers de sgDocking.tsx` | não | Motor de docking de SgPanel/SgScreen | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
155
+ | `parseStoredPanelDragPosition` | sim | Aceita objeto ou string JSON; retorna {x,y} se ambos forem números finitos | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
156
+ | `buildToolbarStorageKey` | sim | sg-toolbar-pos:<id> | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
157
+ | `buildDockMenuStorageKey` | sim | sg-dockmenu-pos:<dragId>:parent\|viewport; null sem dragId (usado pelo SgDockMenu — ver navegação e… | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
158
+ | `resolveToolbarOrientationDirection` | sim | Função exportada de src/layout/toolbar-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
159
+ | `resolveToolbarDockOrientationDirection` | sim | Função exportada de src/layout/toolbar-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
160
+ | `buildToolbarLayoutState` | sim | Função exportada de src/layout/toolbar-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
161
+ | `buildMenuMaps` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
162
+ | `collectParentChain` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
163
+ | `computeActiveSets` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
164
+ | `resolveEffectiveActiveId` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
165
+ | `mergeExpandedIdsForActivePath` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
166
+ | `resolveTieredActiveState` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
167
+ | `resolveMenuLayoutState` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
168
+ | `resolveMenuNodeActionIntent` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
169
+ | `resolveExpandedIdsToggle` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
170
+ | `resolveMenuHintPosition` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
171
+ | `resolveHorizontalDockAlign` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
172
+ | `resolveTieredHoverPath` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
173
+ | `resolveTieredHoverIntent` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
174
+ | `resolveTieredClickState` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
175
+ | `resolveMenuSearchSelectionState` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
176
+ | `resolveTieredNodeClickIntent` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
177
+ | `resolveMegaMenuActiveNode` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
178
+ | `resolveMegaMenuInteraction` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
179
+ | `resolveMegaMenuHoverActiveId` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
180
+ | `resolveMenuAutocompleteItems` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
181
+ | `filterMenuNodes` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
182
+ | `collectMenuSearchEntries` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
183
+ | `flattenVisibleNodes` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
184
+ | `resolveMenuKeyboardAction` | sim | Função exportada de src/layout/menu-logic.ts | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
185
+ | `sgTreeFromJson` | sim | converte JSON (ícone por chave do registro) | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
186
+ | `sgTreeFromJsonWithChecked` | sim | idem e coleta checked: true, incluindo todos os descendentes de ramos marcados | [[SeedGrid/SeedGrid-components/layout/API\|API]] |
187
+
188
+ ## Navegação, overlay e wizard
189
+
190
+ | Nome | Exportado | Resumo | Nota |
191
+ |---|---|---|---|
192
+ | `SgDockMenu` | sim | Dock flutuante de ações com ícones, badges, efeito magnify, 8 posições ancoradas e arraste com… | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
193
+ | `SgPopup` | sim | Overlay contextual ancorado a um elemento (anchorRef), com título, lista de ações e/ou conteúdo… | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
194
+ | `SgDialog` | sim | Modal com cabeçalho/corpo/rodapé, severidade, animação, auto-fechamento, foco inicial, focus trap… | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
195
+ | `SgConfirmationDialog` | sim | SgDialog especializado em confirmar/cancelar, com ícone por severidade e botões configuráveis | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
196
+ | `SgWizard` | sim | Fluxo em etapas com stepper opcional, validação automática dos inputs da etapa, guardas… | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
197
+ | `SgWizardPage` | sim | Etapa de um SgWizard (título/ícone usados no stepper) | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
198
+ | `resolveDockMenuOrientation` | sim | Função exportada de src/menus/dock-menu-logic.ts | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
199
+ | `resolveDockMenuLiftDirection` | sim | Função exportada de src/menus/dock-menu-logic.ts | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
200
+ | `buildDockMenuLayout` | sim | Função exportada de src/menus/dock-menu-logic.ts | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
201
+ | `buildDockMenuItemMotion` | sim | Função exportada de src/menus/dock-menu-logic.ts | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
202
+ | `buildDockMenuLabelStyle` | sim | Função exportada de src/menus/dock-menu-logic.ts | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
203
+ | `buildDockMenuContainerStyle` | sim | Função exportada de src/menus/dock-menu-logic.ts | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
204
+ | `buildDockMenuContextMenuState` | sim | Função exportada de src/menus/dock-menu-logic.ts | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
205
+ | `buildDockMenuStorageKey` | sim | Função exportada de src/menus/dock-menu-logic.ts | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
206
+ | `clampWizardStep` | sim | initialStep ?? 0 limitado a [0, max(pageCount - 1, 0)] | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
207
+ | `canNavigateToWizardStep` | sim | false fora do intervalo ou para a etapa atual; anterior permitida em previous/previous-and-next… | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
208
+ | `canProceedWizardAction` | sim | Executa validateCurrentPage → validateStep(step) → beforeAction(step), parando no primeiro false | [[SeedGrid/SeedGrid-components/navegacao-e-overlay/API\|API]] |
209
+
210
+ ## Gadgets (relógio, calendário, gauges, QR)
211
+
212
+ | Nome | Exportado | Resumo | Nota |
213
+ |---|---|---|---|
214
+ | `SgCalendar` | sim | Calendário mensal (1–12 meses), seleção controlada/não controlada, limites e datas desabilitadas | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
215
+ | `SgClock` | sim | Relógio digital (9 estilos) ou analógico com temas SVG | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
216
+ | `SgTimeProvider` | sim | Hora sincronizada com o servidor (initialServerTime + performance.now()), tick por segundo | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
217
+ | `useSgTime` | sim | Hora sincronizada com o servidor (initialServerTime + performance.now()), tick por segundo | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
218
+ | `SgClockThemeProvider` | sim | Resolvedor de temas por contexto (temas locais + globais, modo strict/fallback) | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
219
+ | `useSgClockThemeResolver` | sim | Resolvedor de temas por contexto (temas locais + globais, modo strict/fallback) | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
220
+ | `createThemeResolver` | sim | Resolvedor de temas por contexto (temas locais + globais, modo strict/fallback) | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
221
+ | `registerTheme` | sim | Registro global e renderização de temas do relógio | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
222
+ | `registerThemes` | sim | Registro global e renderização de temas do relógio | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
223
+ | `getTheme` | sim | Registro global e renderização de temas do relógio | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
224
+ | `hasTheme` | sim | Registro global e renderização de temas do relógio | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
225
+ | `listThemes` | sim | Registro global e renderização de temas do relógio | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
226
+ | `unregisterTheme` | sim | Registro global e renderização de temas do relógio | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
227
+ | `clearThemes` | sim | Registro global e renderização de temas do relógio | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
228
+ | `resolveTheme` | sim | Registro global e renderização de temas do relógio | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
229
+ | `ThemeLayer` | sim | Registro global e renderização de temas do relógio | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
230
+ | `useDarkFlag` | sim | Registro global e renderização de temas do relógio | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
231
+ | `sgClockThemesBuiltIn` | sim | Registro global e renderização de temas do relógio | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
232
+ | `SgClockThemePicker` | sim | Seletor de tema com preview e busca | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
233
+ | `SgClockThemePreview` | sim | Miniatura SVG de um tema | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
234
+ | `SgLinearGauge` | sim | Medidor linear com faixas e ponteiros arrastáveis | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
235
+ | `SgRadialGauge` | sim | Medidor radial (needle/marker/range), anotações e conteúdo central | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
236
+ | `SgQRCode` | sim | QR Code SVG com logo central e fallback | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
237
+ | `SgStringAnimator` | sim | Anima texto de origem → destino caractere a caractere com dígitos animados | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
238
+ | `SG_STRING_ANIMATOR_DEFAULT_CHARSET` | sim | Anima texto de origem → destino caractere a caractere com dígitos animados | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
239
+ | `useSgTimeContext` | não | Contexto bruto do SgTimeProvider (null sem provider), usado por SgClock | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
240
+ | `filterClockThemes` | não | Busca/seleção do picker (testados em clock-theme-picker.test.mjs) | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
241
+ | `resolveClockThemeSelection` | não | Busca/seleção do picker (testados em clock-theme-picker.test.mjs) | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
242
+ | `themes/search.ts` | não | Busca/seleção do picker (testados em clock-theme-picker.test.mjs) | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
243
+ | `gauge/math.ts` | não | Matemática dos medidores (testada em gauge-math.test.mjs) | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
244
+ | `clampGaugeValue` | não | Matemática dos medidores (testada em gauge-math.test.mjs) | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
245
+ | `valueToGaugeRatio` | não | Matemática dos medidores (testada em gauge-math.test.mjs) | [[SeedGrid/SeedGrid-components/gadgets/API\|API]] |
246
+
247
+ ## Dígitos animados
248
+
249
+ | Nome | Exportado | Resumo | Nota |
250
+ |---|---|---|---|
251
+ | `SgDiscardDigit` | sim | Pilha de folhas; a do topo é descartada/chega ao trocar o valor; paginação imperativa via ref | [[SeedGrid/SeedGrid-components/digits/API\|API]] |
252
+ | `SgFadeDigit` | sim | Card com fade-out/fade-in (200 ms fixos) | [[SeedGrid/SeedGrid-components/digits/API\|API]] |
253
+ | `SgFlipDigit` | sim | Card flip via @pqina/flip (import dinâmico, SSR-safe) | [[SeedGrid/SeedGrid-components/digits/API\|API]] |
254
+ | `SgMatrixDigit` | sim | Texto em matriz de pontos 5×7 (LED) | [[SeedGrid/SeedGrid-components/digits/API\|API]] |
255
+ | `SgNeonDigit` | sim | Texto com brilho neon e troca animada | [[SeedGrid/SeedGrid-components/digits/API\|API]] |
256
+ | `SgRoller3DDigit` | sim | Tambor vertical que rola até value dentro de items | [[SeedGrid/SeedGrid-components/digits/API\|API]] |
257
+ | `SgSegmentDigit` | sim | Segmentos SVG compactos com currentColor; suporta | [[SeedGrid/SeedGrid-components/digits/API\|API]] |
258
+ | `SgSevenSegmentDigit` | sim | Display LED de 7 segmentos com paletas, glow e skew; hexadecimal 0-F | [[SeedGrid/SeedGrid-components/digits/API\|API]] |
259
+
260
+ ## Providers (ambiente/persistência e realtime)
261
+
262
+ | Nome | Exportado | Resumo | Nota |
263
+ |---|---|---|---|
264
+ | `SgEnvironmentProvider` | sim | Fornece namespace, estratégia e configuração de persistência | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
265
+ | `useSgEnvironment` | sim | Lê o ambiente (ou o padrão, sem provider) | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
266
+ | `useSgNamespaceProvider` | sim | Atalho para useSgEnvironment().namespaceProvider | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
267
+ | `useSgPersistence` | sim | load/save/clear com chave isolada por namespace e escopo | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
268
+ | `useSgPersistentState` | sim | "useState persistido" com hidratação assíncrona | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
269
+ | `useHasSgEnvironmentProvider` | não | Diz se há provider; usado por FAB, Card, Menu, ToolBar, DockMenu | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
270
+ | `buildSgPersistenceKey` | sim | Monta a chave sg:<namespace>[:<scope>]:<baseKey> | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
271
+ | `createLocalStorageStrategy` | sim | Estratégia sobre window.localStorage | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
272
+ | `createApiPersistenceStrategy` | sim | Estratégia REST (GET/POST/DELETE {baseUrl}/sg/persistence) | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
273
+ | `createCompositePersistenceStrategy` | sim | Combina primária + secundária (strict/fallback/mirror) | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
274
+ | `readLocalPersistentState` | sim | Helpers puros de estado persistido em Storage | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
275
+ | `writeLocalPersistentState` | sim | Helpers puros de estado persistido em Storage | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
276
+ | `clearLocalPersistentState` | sim | Helpers puros de estado persistido em Storage | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
277
+ | `resolvePersistedStateValue` | sim | Helpers puros de estado persistido em Storage | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
278
+ | `SgRealtimeProvider` | sim | Conexão ao Pulse e distribuição de avisos | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
279
+ | `useSgRealtimeEvent` | sim | Registra handler por channel + padrão de evento | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
280
+ | `useSgRealtimeStatus` | sim | { status, connected } para decidir aviso × polling | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
281
+ | `matchesSgRealtimeEvent` | sim | Casa nome exato, prefixo.* ou * | [[SeedGrid/SeedGrid-components/providers/API\|API]] |
282
+
283
+ ## Fundamentos do @seedgrid/fe-components
284
+
285
+ | Nome | Exportado | Resumo | Nota |
286
+ |---|---|---|---|
287
+ | `masks.ts` | sim | Máscaras de CPF, CNPJ (inclusive alfanumérico), CPF/CNPJ, CEP e códigos postais… | [[SeedGrid/SeedGrid-components/fundamentos/API\|API]] |
288
+ | `validators.ts` | sim | Validação CPF, CNPJ (alfanumérico), e-mail, domínios de e-mail descartáveis, senha (política)… | [[SeedGrid/SeedGrid-components/fundamentos/API\|API]] |
289
+ | `blocked-email-domains.ts` | sim | Lista padrão de 37 domínios descartáveis | [[SeedGrid/SeedGrid-components/fundamentos/API\|API]] |
290
+ | `rhf.ts` | não | Tipo RhfFieldProps e helpers resolveFieldError, mergeRequiredRule, usados internamente pelos inputs | [[SeedGrid/SeedGrid-components/fundamentos/API\|API]] |
291
+ | `i18n/` | sim | Provider, hooks, t, catálogos pt-BR, pt-PT, en-US, es, fr (214 chaves components.* cada) | [[SeedGrid/SeedGrid-components/fundamentos/API\|API]] |
292
+ | `injectStyles.ts` | não | Injeção do CSS compilado no <head> | [[SeedGrid/SeedGrid-components/fundamentos/API\|API]] |
293
+ | `generated/compiledStyles.ts` | não | Constante SEEDGRID_COMPILED_CSS (auto-gerada, ~67 KB) | [[SeedGrid/SeedGrid-components/fundamentos/API\|API]] |
294
+ | `ai-meta/` | não | Tipos SgMetaV0/SgAiHintsV0 dos *.meta.ts e generated-props.json; alimentam o manifesto de IA | [[SeedGrid/SeedGrid-components/fundamentos/API\|API]] |
295
+
296
+ ## Pacotes de apoio
297
+
298
+ | Nome | Exportado | Resumo | Nota |
299
+ |---|---|---|---|
300
+ | `@seedgrid/fe-theme` | sim | Tema por cor seed, tokens --sg-*, SeedThemeProvider | [[SeedGrid/SeedGrid-components/pacotes/fe-theme\|fe-theme]] |
301
+ | `@seedgrid/fe-core` | sim | Manifesto de módulo da CLI, registry, persistência, createApiClient, erros | [[SeedGrid/SeedGrid-components/pacotes/fe-core\|fe-core]] |
302
+ | `@seedgrid/fe-commons` | sim | createHttpClient, buscarCep, buscarCnpj | [[SeedGrid/SeedGrid-components/pacotes/fe-commons\|fe-commons]] |
303
+ | `@seedgrid/fe-playground` | sim | SgPlayground (Sandpack) | [[SeedGrid/SeedGrid-components/pacotes/fe-playground\|fe-playground]] |
304
+
305
+ ## Módulos de tela @seedgrid/fe-*
306
+
307
+ | Nome | Exportado | Resumo | Nota |
308
+ |---|---|---|---|
309
+ | `@seedgrid/fe-apikeys` | sim | Gestão de chaves de integração criadas por role, com o segredo exibido uma única vez na criação | [[SeedGrid/SeedGrid-components/modulos/fe-apikeys\|fe-apikeys]] |
310
+ | `@seedgrid/fe-audit` | sim | Consulta somente-leitura do trilho de auditoria (audit log) com filtros e detalhe antes/depois | [[SeedGrid/SeedGrid-components/modulos/fe-audit\|fe-audit]] |
311
+ | `@seedgrid/fe-backup` | sim | Cria jobs de export, acompanha o status com polling, baixa o ZIP gerado e remove jobs | [[SeedGrid/SeedGrid-components/modulos/fe-backup\|fe-backup]] |
312
+ | `@seedgrid/fe-billing-platform` | sim | CRUD de planos, faixas de preço (terms) com publicação/arquivamento e configuração do trial | [[SeedGrid/SeedGrid-components/modulos/fe-billing-platform\|fe-billing-platform]] |
313
+ | `@seedgrid/fe-billing-user` | sim | Assinatura corrente, uso do ciclo, checkout (1ª assinatura), troca de plano com prévia de rateio… | [[SeedGrid/SeedGrid-components/modulos/fe-billing-user\|fe-billing-user]] |
314
+ | `@seedgrid/fe-login-tenancy` | sim | URL única, o usuário escolhe a empresa após o login e o backend re-emite o par de tokens escopado… | [[SeedGrid/SeedGrid-components/modulos/fe-login-tenancy\|fe-login-tenancy]] |
315
+ | `@seedgrid/fe-security` | sim | Módulo-base de segurança do front SeedGrid (Next.js): sessão server-side com cookies httpOnly… | [[SeedGrid/SeedGrid-components/modulos/fe-security\|fe-security]] |
316
+ | `@seedgrid/fe-self-enter` | sim | Pedido público de acesso (nome/e-mail/senha) com confirmação de e-mail, convites de administrador… | [[SeedGrid/SeedGrid-components/modulos/fe-self-enter\|fe-self-enter]] |
317
+ | `@seedgrid/fe-subdomain-tenancy` | sim | Cada tenant vive em empresa.<sufixo>, com signup público que cria tenant + usuário root e… | [[SeedGrid/SeedGrid-components/modulos/fe-subdomain-tenancy\|fe-subdomain-tenancy]] |
318
+
319
+ ## Showcase
320
+
321
+ | Nome | Exportado | Resumo | Nota |
322
+ |---|---|---|---|
323
+ | `apps/showcase` | não | App Next.js que demonstra todos os componentes do @seedgrid/fe-components (páginas com exemplos… | [[SeedGrid/SeedGrid-components/showcase\|showcase]] |